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..8117c388 --- /dev/null +++ b/src/oci-db-observability-mcp-server/CHANGELOG.md @@ -0,0 +1,48 @@ +# Changelog + +## Unreleased + +### 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 + +### 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 + +- 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`. +- 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..b33e0d28 --- /dev/null +++ b/src/oci-db-observability-mcp-server/README.md @@ -0,0 +1,127 @@ +# OCI Database Observability MCP Server + +This package provides one MCP server for OCI Operations Insights (OPSI), +Database Management (DBM), and OCI Monitoring observability workflows. It +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. + +## 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. + +## Discovery workflow + +1. For a compartment-scoped operation, use a user-provided compartment OCID. + 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. +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, 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 + +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..f706ff73 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_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 importlib.metadata import version as distribution_version + +__project__ = "oracle.oci-db-observability-mcp-server" +__version__ = distribution_version(__project__) 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..2701127a --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/mcp.py @@ -0,0 +1,283 @@ +""" +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 typing import Annotated, Any +from fastmcp import FastMCP +from pydantic import Field +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() + + +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 " + "`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, " + "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. " + "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}, +) +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 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. 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: 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."), + 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]: + if not root_compartment_id: + 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, + 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"], + "compartmentRequirements": compartment_requirements(tool), + } + 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"], + "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`. 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( + 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/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..23b65db0 --- /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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "BlockingSessions", + "description": "The current blocking sessions.", + "unit": "count", + "statistic": "Max", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "15 minute", + "dimensions": [], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "FRAUtilization", + "description": "The flash recovery area utilization.", + "unit": "percent", + "statistic": "Mean", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "24 hour", + "dimensions": [ + "isPerpetual" + ], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "NonReclaimableFRA", + "description": "The non-reclaimable fast recovery area.", + "unit": "percent", + "statistic": "Mean", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "15 minute", + "dimensions": [ + "type", + "(Broken,", + "Failed)" + ], + "supportedDatabaseType": [ + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "Processes", + "description": "The number of database processes.", + "unit": "count", + "statistic": "Max", + "collectionInterval": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "ProcessLimitUtilization", + "description": "The process limit utilization.", + "unit": "percent", + "statistic": "Mean", + "collectionInterval": "1 minute", + "dimensions": [ + "instanceNumber", + "instanceName", + "hostName" + ], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "ReclaimableFRA", + "description": "The reclaimable fast recovery area.", + "unit": "percent", + "statistic": "Mean", + "collectionInterval": "15 minute", + "dimensions": [], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "ReclaimableFRASpace", + "description": "The flash recovery area reclaimable space.", + "unit": "GB", + "statistic": "Mean", + "collectionInterval": "15 minute", + "dimensions": [], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "RecoveryWindow", + "description": "The current recovery window of a database.", + "unit": "seconds", + "statistic": "Mean", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "5 minute", + "dimensions": [], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "RedoSize", + "description": "The average amount of redo generated.", + "unit": "MB per second", + "statistic": "Mean", + "collectionInterval": "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", + "collectionInterval": "15 minute", + "dimensions": [], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "SessionLimitUtilization", + "description": "The session limit utilization.", + "unit": "percent", + "statistic": "Mean", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "24 hour", + "dimensions": [ + "schemaName" + ], + "supportedDatabaseType": [ + "PDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "UsableFRA", + "description": "The usable fast recovery area.", + "unit": "percent", + "statistic": "Mean", + "collectionInterval": "15 minute", + "dimensions": [], + "supportedDatabaseType": [ + "CDB" + ] + }, + { + "namespace": "oracle_oci_database", + "name": "UsedFRASpace", + "description": "The flash recovery area space usage.", + "unit": "GB", + "statistic": "Max", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "1 minute", + "dimensions": [], + "supportedDatabaseType": [ + "CDB", + "PDB" + ] + }, + { + "namespace": "oracle_oci_exadata", + "name": "ASMDiskGroupCapacity", + "description": "The capacity of the ASM disk group.", + "unit": "GB", + "statistic": "Mean", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "2 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "DatabaseFlashCacheUsage", + "description": "The database flash cache usage.", + "unit": "MB", + "statistic": "Mean", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "15 minute", + "dimensions": [ + "resourceId", + "resourceName", + "exadataInfrastructureId", + "deploymentType" + ], + "supportedDatabaseType": [] + }, + { + "namespace": "oracle_oci_exadata", + "name": "FlashCacheSize", + "description": "The size of flash cache.", + "unit": "GB", + "statistic": "Mean", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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, + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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", + "collectionInterval": "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/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..58f215a4 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/skills.json @@ -0,0 +1,450 @@ +{ + "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": "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" + ] + }, + { + "name": "awr-historical-performance-analysis", + "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", + "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. 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", + "get_pdb_metrics", + "summarize_managed_database_availability_metrics" + ] + }, + { + "name": "database-inventory", + "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", + "list_database_configurations", + "list_database_insights", + "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.", + "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. 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" + ] + }, + { + "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. 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", + "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": "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", + "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. These tools do not provide DB Management AWR identifiers or AWR Hub discovery for managed-database analysis.", + "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. 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", + "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..a9549551 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/metadata/tools.json @@ -0,0 +1,16494 @@ +{ + "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 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", + "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. 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", + "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 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", + "skills": [ + "database-health-and-core-metrics" + ], + "inputSchema": { + "type": "object", + "properties": { + "end_time": { + "type": "string", + "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", + "description": "The OCID of the Managed Database." + }, + "start_time": { + "type": "string", + "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" + } + }, + "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 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", + "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", + "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", + "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 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", + "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. 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", + "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 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", + "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. 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", + "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": "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", + "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 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", + "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. This is not AWR Hub discovery and is not required for DB Management AWR analysis.", + "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. This does not provide DB Management AWR identifiers or AWR Hub discovery for managed-database analysis.", + "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. 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", + "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 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", + "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. 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", + "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": "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 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", + "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. 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" + } + }, + "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 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", + "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": "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 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", + "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. 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" + } + }, + "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 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", + "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 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", + "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 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": "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. 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. Provide exactly one of id, managed_database_id, or managed_database_group_id." + }, + "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 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" + } + }, + "oneOf": [ + { + "required": [ + "id" + ] + }, + { + "required": [ + "managed_database_id" + ] + }, + { + "required": [ + "managed_database_group_id" + ] + } + ], + "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 + }, + { + "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]|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."}, + "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 new file mode 100644 index 00000000..483f1643 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/registry.py @@ -0,0 +1,204 @@ +""" +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}, + "monitoring": {"MonitoringClient": oci.monitoring.MonitoringClient}, + "dbm": { + "DbManagementClient": oci.database_management.DbManagementClient, + "DiagnosabilityClient": oci.database_management.DiagnosabilityClient, + "SqlTuningClient": oci.database_management.SqlTuningClient, + }, + "identity": {"IdentityClient": oci.identity.IdentityClient}, +} +_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: + 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 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()) + 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']}") + 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)))) + + +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..b92184f6 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/runtime.py @@ -0,0 +1,302 @@ +""" +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 +from copy import copy +from datetime import datetime +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 .metric_catalog import MetricCatalogError, load_metric_catalog +from .registry import client_class, compartment_requirements +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]: + """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) + 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]: + """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) + + +@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() -> 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 + + +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 _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 " + "configured compartment discovery root 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 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 + + +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 _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"] + 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") + 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"], + 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 + max_results = arguments.get("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 + + +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") + _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) + 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)) + 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..9df7f44f --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/sdk_schema.py @@ -0,0 +1,222 @@ +""" +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] + if isinstance(existing, Mapping) and "oneOf" in existing: + result["oneOf"] = existing["oneOf"] + 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..333186b3 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_mcp_surface.py @@ -0,0 +1,225 @@ +""" +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", + "resolve_oci_compartment", + } + + +@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", Client) + 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="root-compartment-ocid", + 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": "root-compartment-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_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="", + include_subtree=True, + access_level="ACCESSIBLE", + name=None, + lifecycle_state=None, + limit=50, + page=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 search scope is configured"): + 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 + 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"] + 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)) + 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_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..b3e5dcbc --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_metric_catalog.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 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 + + +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"), + [ + ("{", "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() 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..edc30d73 --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_registry.py @@ -0,0 +1,359 @@ +""" +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 jsonschema import Draft202012Validator + +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 _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() + + 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") 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} + + +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() + 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") != "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"]) + 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_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 = { + 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() + 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"], + }, + ] + } + + +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"], + } 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..fb7b2cac --- /dev/null +++ b/src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server/tests/test_runtime.py @@ -0,0 +1,412 @@ +""" +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 importlib.metadata import version as distribution_version +from types import SimpleNamespace +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 + + +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: + 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(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.setattr(runtime, "client_class", lambda _service, _client: FakeClient) + + client = runtime.identity_bootstrap_client() + + assert isinstance(client, FakeClient) + assert client.signer is signer + + +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="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"), + [ + ("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"}) + + +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, "aggregated_datapoints": [{"value": 1}, {"value": 2}]}, + {"stream": 2, "aggregated_datapoints": [{"value": 3}]}, + ], + 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, "aggregated_datapoints": [{"value": 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"), + ({"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: + 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(("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"), + [ + ("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} 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..ae5bb671 --- /dev/null +++ b/src/oci-db-observability-mcp-server/pyproject.toml @@ -0,0 +1,85 @@ +[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/**"] + +[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", + "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" }, +]