oci 2.151.0__py3-none-any.whl → 2.152.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. oci/__init__.py +2 -2
  2. oci/access_governance_cp/access_governance_cp_client.py +8 -8
  3. oci/addons/__init__.py +20 -0
  4. oci/addons/adk/__init__.py +13 -0
  5. oci/addons/adk/agent.py +852 -0
  6. oci/addons/adk/agent_client.py +682 -0
  7. oci/addons/adk/agent_error.py +36 -0
  8. oci/addons/adk/auth/__init__.py +5 -0
  9. oci/addons/adk/auth/auth_provider.py +28 -0
  10. oci/addons/adk/auth/factory.py +78 -0
  11. oci/addons/adk/auth/oci/__init__.py +5 -0
  12. oci/addons/adk/auth/oci/instance_principal.py +53 -0
  13. oci/addons/adk/auth/oci/resource_principal.py +53 -0
  14. oci/addons/adk/auth/oci/session.py +91 -0
  15. oci/addons/adk/auth/oci/user_principal.py +64 -0
  16. oci/addons/adk/constants.py +17 -0
  17. oci/addons/adk/logger.py +163 -0
  18. oci/addons/adk/run/__init__.py +5 -0
  19. oci/addons/adk/run/response.py +56 -0
  20. oci/addons/adk/run/types.py +32 -0
  21. oci/addons/adk/tool/__init__.py +13 -0
  22. oci/addons/adk/tool/function_tool.py +334 -0
  23. oci/addons/adk/tool/prebuilt/__init__.py +8 -0
  24. oci/addons/adk/tool/prebuilt/agentic_rag_tool.py +49 -0
  25. oci/addons/adk/tool/prebuilt/calculator_toolkit.py +104 -0
  26. oci/addons/adk/tool/tool.py +37 -0
  27. oci/addons/adk/tool/toolkit.py +189 -0
  28. oci/addons/adk/tool/utils.py +120 -0
  29. oci/addons/adk/util.py +325 -0
  30. oci/adm/application_dependency_management_client.py +36 -36
  31. oci/ai_anomaly_detection/anomaly_detection_client.py +36 -36
  32. oci/ai_document/ai_service_document_client.py +26 -26
  33. oci/ai_language/ai_service_language_client.py +44 -44
  34. oci/ai_speech/ai_service_speech_client.py +19 -19
  35. oci/ai_vision/ai_service_vision_client.py +28 -28
  36. oci/analytics/analytics_client.py +24 -24
  37. oci/announcements_service/announcement_client.py +5 -5
  38. oci/announcements_service/announcement_subscription_client.py +9 -9
  39. oci/announcements_service/announcements_preferences_client.py +4 -4
  40. oci/announcements_service/service_client.py +1 -1
  41. oci/apigateway/api_gateway_client.py +21 -21
  42. oci/apigateway/deployment_client.py +6 -6
  43. oci/apigateway/gateway_client.py +6 -6
  44. oci/apigateway/subscribers_client.py +6 -6
  45. oci/apigateway/usage_plans_client.py +6 -6
  46. oci/apigateway/work_requests_client.py +5 -5
  47. oci/apm_config/config_client.py +12 -12
  48. oci/apm_control_plane/apm_domain_client.py +14 -14
  49. oci/apm_synthetics/apm_synthetic_client.py +28 -28
  50. oci/apm_traces/attributes_client.py +8 -8
  51. oci/apm_traces/query_client.py +2 -2
  52. oci/apm_traces/trace_client.py +4 -4
  53. oci/appmgmt_control/appmgmt_control_client.py +8 -8
  54. oci/artifacts/artifacts_client.py +32 -32
  55. oci/audit/audit_client.py +3 -3
  56. oci/autoscaling/auto_scaling_client.py +11 -11
  57. oci/bastion/bastion_client.py +15 -15
  58. oci/bds/bds_client.py +84 -84
  59. oci/blockchain/blockchain_platform_client.py +27 -27
  60. oci/budget/budget_client.py +10 -10
  61. oci/capacity_management/capacity_management_client.py +32 -32
  62. oci/certificates/certificates_client.py +5 -5
  63. oci/certificates_management/certificates_management_client.py +32 -32
  64. oci/cims/incident_client.py +6 -6
  65. oci/cloud_bridge/common_client.py +5 -5
  66. oci/cloud_bridge/discovery_client.py +15 -15
  67. oci/cloud_bridge/inventory_client.py +16 -16
  68. oci/cloud_bridge/ocb_agent_svc_client.py +23 -23
  69. oci/cloud_guard/cloud_guard_client.py +155 -155
  70. oci/cloud_migrations/migration_client.py +43 -43
  71. oci/cluster_placement_groups/cluster_placement_groups_cp_client.py +13 -13
  72. oci/compute_cloud_at_customer/compute_cloud_at_customer_client.py +12 -12
  73. oci/compute_instance_agent/compute_instance_agent_client.py +6 -6
  74. oci/compute_instance_agent/plugin_client.py +2 -2
  75. oci/compute_instance_agent/pluginconfig_client.py +1 -1
  76. oci/container_engine/container_engine_client.py +46 -46
  77. oci/container_instances/container_instance_client.py +18 -18
  78. oci/core/blockstorage_client.py +60 -60
  79. oci/core/compute_client.py +117 -117
  80. oci/core/compute_management_client.py +32 -32
  81. oci/core/virtual_network_client.py +258 -258
  82. oci/dashboard_service/dashboard_client.py +6 -6
  83. oci/dashboard_service/dashboard_group_client.py +6 -6
  84. oci/data_catalog/data_catalog_client.py +149 -149
  85. oci/data_flow/data_flow_client.py +45 -45
  86. oci/data_integration/data_integration_client.py +163 -163
  87. oci/data_labeling_service/data_labeling_management_client.py +17 -17
  88. oci/data_labeling_service_dataplane/data_labeling_client.py +15 -15
  89. oci/data_safe/data_safe_client.py +317 -317
  90. oci/data_science/data_science_client.py +145 -145
  91. oci/database/database_client.py +745 -469
  92. oci/database/models/__init__.py +2 -0
  93. oci/database/models/autonomous_db_version_summary.py +31 -0
  94. oci/database/models/backup.py +4 -2
  95. oci/database/models/backup_summary.py +4 -2
  96. oci/database/models/create_external_backup_job_details.py +4 -4
  97. oci/database/models/db_system.py +4 -2
  98. oci/database/models/db_system_summary.py +4 -2
  99. oci/database/models/db_system_upgrade_summary.py +152 -0
  100. oci/database/models/external_container_database.py +4 -2
  101. oci/database/models/external_container_database_summary.py +4 -2
  102. oci/database/models/external_database_base.py +4 -2
  103. oci/database/models/external_non_container_database.py +4 -2
  104. oci/database/models/external_non_container_database_summary.py +4 -2
  105. oci/database/models/external_pluggable_database.py +4 -2
  106. oci/database/models/external_pluggable_database_summary.py +4 -2
  107. oci/database_management/db_management_client.py +356 -230
  108. oci/database_management/db_management_client_composite_operations.py +44 -0
  109. oci/database_management/diagnosability_client.py +4 -4
  110. oci/database_management/managed_my_sql_databases_client.py +7 -247
  111. oci/database_management/models/__init__.py +0 -4
  112. oci/database_management/models/database_diagnostics_and_management_feature_details.py +35 -4
  113. oci/database_management/models/disable_database_management_feature_details.py +33 -2
  114. oci/database_management/models/disable_external_container_database_management_feature_details.py +33 -2
  115. oci/database_management/models/discovered_external_database.py +64 -2
  116. oci/database_management/models/exadata_infrastructure_lifecycle_state_values.py +40 -36
  117. oci/database_management/models/external_database_diagnostics_and_management_feature_details.py +64 -2
  118. oci/database_management/models/managed_database.py +2 -4
  119. oci/database_management/models/managed_database_summary.py +2 -4
  120. oci/database_management/models/modify_database_management_feature_details.py +1 -1
  121. oci/database_management/perfhub_client.py +1 -1
  122. oci/database_management/sql_tuning_client.py +17 -17
  123. oci/database_migration/database_migration_client.py +42 -42
  124. oci/database_tools/database_tools_client.py +23 -23
  125. oci/dblm/db_life_cycle_management_client.py +14 -14
  126. oci/delegate_access_control/delegate_access_control_client.py +26 -26
  127. oci/delegate_access_control/work_request_client.py +4 -4
  128. oci/demand_signal/occ_demand_signal_client.py +7 -7
  129. oci/desktops/desktop_service_client.py +21 -21
  130. oci/devops/devops_client.py +141 -141
  131. oci/disaster_recovery/disaster_recovery_client.py +31 -31
  132. oci/distributed_database/__init__.py +20 -0
  133. oci/distributed_database/distributed_autonomous_db_service_client.py +2315 -0
  134. oci/distributed_database/distributed_autonomous_db_service_client_composite_operations.py +605 -0
  135. oci/distributed_database/distributed_db_private_endpoint_service_client.py +944 -0
  136. oci/distributed_database/distributed_db_private_endpoint_service_client_composite_operations.py +238 -0
  137. oci/distributed_database/distributed_db_service_client.py +2435 -0
  138. oci/distributed_database/distributed_db_service_client_composite_operations.py +647 -0
  139. oci/distributed_database/distributed_db_work_request_service_client.py +654 -0
  140. oci/distributed_database/distributed_db_work_request_service_client_composite_operations.py +26 -0
  141. oci/distributed_database/models/__init__.py +158 -0
  142. oci/distributed_database/models/add_distributed_autonomous_database_gds_control_node_details.py +105 -0
  143. oci/distributed_database/models/add_distributed_database_gds_control_node_details.py +105 -0
  144. oci/distributed_database/models/catalog_peer_with_dedicated_infra.py +331 -0
  145. oci/distributed_database/models/catalog_peer_with_exadb_xs.py +331 -0
  146. oci/distributed_database/models/change_distributed_autonomous_database_compartment_details.py +74 -0
  147. oci/distributed_database/models/change_distributed_database_compartment_details.py +74 -0
  148. oci/distributed_database/models/change_distributed_database_private_endpoint_compartment_details.py +74 -0
  149. oci/distributed_database/models/change_distributed_db_backup_config_details.py +66 -0
  150. oci/distributed_database/models/configure_distributed_autonomous_database_gsms_details.py +103 -0
  151. oci/distributed_database/models/configure_distributed_database_gsms_details.py +103 -0
  152. oci/distributed_database/models/create_distributed_autonomous_database_catalog_details.py +101 -0
  153. oci/distributed_database/models/create_distributed_autonomous_database_catalog_with_dedicated_infra_details.py +342 -0
  154. oci/distributed_database/models/create_distributed_autonomous_database_details.py +799 -0
  155. oci/distributed_database/models/create_distributed_autonomous_database_shard_details.py +101 -0
  156. oci/distributed_database/models/create_distributed_autonomous_database_shard_with_dedicated_infra_details.py +377 -0
  157. oci/distributed_database/models/create_distributed_database_catalog_details.py +99 -0
  158. oci/distributed_database/models/create_distributed_database_catalog_with_exadb_xs_details.py +282 -0
  159. oci/distributed_database/models/create_distributed_database_details.py +810 -0
  160. oci/distributed_database/models/create_distributed_database_private_endpoint_details.py +260 -0
  161. oci/distributed_database/models/create_distributed_database_shard_details.py +99 -0
  162. oci/distributed_database/models/create_distributed_database_shard_with_exadb_xs_details.py +282 -0
  163. oci/distributed_database/models/distributed_autonomous_database.py +1143 -0
  164. oci/distributed_database/models/distributed_autonomous_database_associated_with_private_endpoint.py +105 -0
  165. oci/distributed_database/models/distributed_autonomous_database_catalog.py +194 -0
  166. oci/distributed_database/models/distributed_autonomous_database_catalog_with_dedicated_infra.py +559 -0
  167. oci/distributed_database/models/distributed_autonomous_database_collection.py +70 -0
  168. oci/distributed_database/models/distributed_autonomous_database_connection_string.py +70 -0
  169. oci/distributed_database/models/distributed_autonomous_database_gsm.py +385 -0
  170. oci/distributed_database/models/distributed_autonomous_database_gsm_image.py +105 -0
  171. oci/distributed_database/models/distributed_autonomous_database_shard.py +194 -0
  172. oci/distributed_database/models/distributed_autonomous_database_shard_with_dedicated_infra.py +592 -0
  173. oci/distributed_database/models/distributed_autonomous_database_summary.py +935 -0
  174. oci/distributed_database/models/distributed_autonomous_db_metadata.py +70 -0
  175. oci/distributed_database/models/distributed_database.py +1154 -0
  176. oci/distributed_database/models/distributed_database_associated_with_private_endpoint.py +105 -0
  177. oci/distributed_database/models/distributed_database_catalog.py +192 -0
  178. oci/distributed_database/models/distributed_database_catalog_with_exadb_xs.py +466 -0
  179. oci/distributed_database/models/distributed_database_collection.py +70 -0
  180. oci/distributed_database/models/distributed_database_gsm.py +385 -0
  181. oci/distributed_database/models/distributed_database_private_endpoint.py +639 -0
  182. oci/distributed_database/models/distributed_database_private_endpoint_collection.py +70 -0
  183. oci/distributed_database/models/distributed_database_private_endpoint_summary.py +479 -0
  184. oci/distributed_database/models/distributed_database_shard.py +192 -0
  185. oci/distributed_database/models/distributed_database_shard_with_exadb_xs.py +499 -0
  186. oci/distributed_database/models/distributed_database_summary.py +904 -0
  187. oci/distributed_database/models/distributed_db_backup_config.py +536 -0
  188. oci/distributed_database/models/distributed_db_backup_destination.py +362 -0
  189. oci/distributed_database/models/distributed_db_connection_string.py +70 -0
  190. oci/distributed_database/models/distributed_db_gsm_image.py +105 -0
  191. oci/distributed_database/models/distributed_db_metadata.py +70 -0
  192. oci/distributed_database/models/generate_distributed_autonomous_database_wallet_details.py +70 -0
  193. oci/distributed_database/models/generate_distributed_database_wallet_details.py +70 -0
  194. oci/distributed_database/models/patch_distributed_autonomous_database_details.py +73 -0
  195. oci/distributed_database/models/patch_distributed_database_details.py +73 -0
  196. oci/distributed_database/models/patch_insert_instruction.py +87 -0
  197. oci/distributed_database/models/patch_instruction.py +154 -0
  198. oci/distributed_database/models/patch_merge_instruction.py +95 -0
  199. oci/distributed_database/models/patch_remove_instruction.py +57 -0
  200. oci/distributed_database/models/shard_peer_with_dedicated_infra.py +331 -0
  201. oci/distributed_database/models/shard_peer_with_exadb_xs.py +331 -0
  202. oci/distributed_database/models/update_distributed_autonomous_database_details.py +136 -0
  203. oci/distributed_database/models/update_distributed_database_details.py +136 -0
  204. oci/distributed_database/models/update_distributed_database_private_endpoint_details.py +198 -0
  205. oci/distributed_database/models/upload_distributed_autonomous_database_signed_certificate_and_generate_wallet_details.py +71 -0
  206. oci/distributed_database/models/upload_distributed_database_signed_certificate_and_generate_wallet_details.py +71 -0
  207. oci/distributed_database/models/work_request.py +516 -0
  208. oci/distributed_database/models/work_request_error.py +134 -0
  209. oci/distributed_database/models/work_request_error_collection.py +70 -0
  210. oci/distributed_database/models/work_request_log_entry.py +101 -0
  211. oci/distributed_database/models/work_request_log_entry_collection.py +70 -0
  212. oci/distributed_database/models/work_request_resource.py +232 -0
  213. oci/distributed_database/models/work_request_summary.py +516 -0
  214. oci/distributed_database/models/work_request_summary_collection.py +70 -0
  215. oci/dns/dns_client.py +54 -54
  216. oci/dts/appliance_export_job_client.py +6 -6
  217. oci/dts/shipping_vendors_client.py +1 -1
  218. oci/dts/transfer_appliance_client.py +8 -8
  219. oci/dts/transfer_appliance_entitlement_client.py +3 -3
  220. oci/dts/transfer_device_client.py +5 -5
  221. oci/dts/transfer_job_client.py +6 -6
  222. oci/dts/transfer_package_client.py +7 -7
  223. oci/em_warehouse/em_warehouse_client.py +13 -13
  224. oci/email/email_client.py +31 -31
  225. oci/email_data_plane/email_dp_client.py +1 -1
  226. oci/events/events_client.py +6 -6
  227. oci/file_storage/file_storage_client.py +74 -74
  228. oci/fleet_apps_management/fleet_apps_management_admin_client.py +27 -27
  229. oci/fleet_apps_management/fleet_apps_management_catalog_client.py +7 -7
  230. oci/fleet_apps_management/fleet_apps_management_client.py +32 -32
  231. oci/fleet_apps_management/fleet_apps_management_maintenance_window_client.py +5 -5
  232. oci/fleet_apps_management/fleet_apps_management_operations_client.py +29 -29
  233. oci/fleet_apps_management/fleet_apps_management_provision_client.py +6 -6
  234. oci/fleet_apps_management/fleet_apps_management_runbooks_client.py +19 -19
  235. oci/fleet_apps_management/fleet_apps_management_work_request_client.py +4 -4
  236. oci/fleet_software_update/fleet_software_update_client.py +46 -46
  237. oci/functions/functions_invoke_client.py +1 -1
  238. oci/functions/functions_management_client.py +16 -16
  239. oci/fusion_apps/fusion_applications_client.py +41 -41
  240. oci/generative_ai/generative_ai_client.py +22 -22
  241. oci/generative_ai/models/create_dedicated_ai_cluster_details.py +4 -0
  242. oci/generative_ai/models/dedicated_ai_cluster.py +11 -3
  243. oci/generative_ai_agent/generative_ai_agent_client.py +38 -38
  244. oci/generative_ai_agent_runtime/generative_ai_agent_runtime_client.py +6 -6
  245. oci/generative_ai_inference/generative_ai_inference_client.py +6 -6
  246. oci/generic_artifacts_content/generic_artifacts_content_client.py +3 -3
  247. oci/globally_distributed_database/sharded_database_service_client.py +58 -58
  248. oci/golden_gate/golden_gate_client.py +89 -89
  249. oci/governance_rules_control_plane/governance_rule_client.py +15 -15
  250. oci/governance_rules_control_plane/work_request_client.py +5 -5
  251. oci/healthchecks/health_checks_client.py +17 -17
  252. oci/identity/identity_client.py +145 -145
  253. oci/identity_data_plane/dataplane_client.py +2 -2
  254. oci/identity_domains/identity_domains_client.py +311 -311
  255. oci/integration/integration_instance_client.py +19 -19
  256. oci/jms/java_management_service_client.py +79 -79
  257. oci/jms_java_downloads/java_download_client.py +25 -25
  258. oci/key_management/ekm_client.py +5 -5
  259. oci/key_management/kms_crypto_client.py +6 -6
  260. oci/key_management/kms_hsm_cluster_client.py +12 -12
  261. oci/key_management/kms_management_client.py +21 -21
  262. oci/key_management/kms_vault_client.py +14 -14
  263. oci/license_manager/license_manager_client.py +18 -18
  264. oci/limits/limits_client.py +4 -4
  265. oci/limits/quotas_client.py +7 -7
  266. oci/load_balancer/load_balancer_client.py +61 -61
  267. oci/lockbox/lockbox_client.py +24 -24
  268. oci/log_analytics/log_analytics_client.py +200 -200
  269. oci/logging/logging_management_client.py +30 -30
  270. oci/loggingingestion/logging_client.py +1 -1
  271. oci/loggingsearch/log_search_client.py +1 -1
  272. oci/lustre_file_storage/lustre_file_storage_client.py +11 -11
  273. oci/management_agent/management_agent_client.py +28 -28
  274. oci/management_dashboard/dashx_apis_client.py +14 -14
  275. oci/marketplace/account_client.py +2 -2
  276. oci/marketplace/marketplace_client.py +30 -30
  277. oci/marketplace_private_offer/attachment_client.py +5 -5
  278. oci/marketplace_private_offer/offer_client.py +6 -6
  279. oci/marketplace_publisher/attachment_client.py +5 -5
  280. oci/marketplace_publisher/marketplace_publisher_client.py +71 -71
  281. oci/marketplace_publisher/offer_client.py +6 -6
  282. oci/media_services/media_services_client.py +60 -60
  283. oci/media_services/media_stream_client.py +2 -2
  284. oci/mngdmac/mac_device_client.py +3 -3
  285. oci/mngdmac/mac_order_client.py +11 -11
  286. oci/model_deployment/__init__.py +14 -0
  287. oci/model_deployment/model_deployment_client.py +331 -0
  288. oci/model_deployment/model_deployment_client_composite_operations.py +26 -0
  289. oci/model_deployment/models/__init__.py +14 -0
  290. oci/model_deployment/models/inference_result.py +70 -0
  291. oci/monitoring/monitoring_client.py +18 -18
  292. oci/mysql/channels_client.py +7 -7
  293. oci/mysql/db_backups_client.py +7 -7
  294. oci/mysql/db_system_client.py +17 -17
  295. oci/mysql/models/create_db_system_details.py +31 -0
  296. oci/mysql/models/db_system.py +31 -0
  297. oci/mysql/models/db_system_snapshot.py +31 -0
  298. oci/mysql/models/replica.py +31 -0
  299. oci/mysql/models/replica_overrides.py +33 -2
  300. oci/mysql/models/replica_summary.py +31 -0
  301. oci/mysql/models/update_db_system_details.py +31 -0
  302. oci/mysql/mysqlaas_client.py +7 -7
  303. oci/mysql/replicas_client.py +5 -5
  304. oci/mysql/work_requests_client.py +4 -4
  305. oci/network_firewall/network_firewall_client.py +86 -86
  306. oci/network_load_balancer/network_load_balancer_client.py +35 -35
  307. oci/nosql/nosql_client.py +24 -24
  308. oci/object_storage/object_storage_client.py +55 -55
  309. oci/oce/oce_instance_client.py +10 -10
  310. oci/oci_control_center/occ_metrics_client.py +3 -3
  311. oci/ocvp/cluster_client.py +5 -5
  312. oci/ocvp/esxi_host_client.py +8 -8
  313. oci/ocvp/sddc_client.py +14 -14
  314. oci/ocvp/work_request_client.py +4 -4
  315. oci/oda/management_client.py +59 -59
  316. oci/oda/oda_client.py +17 -17
  317. oci/oda/odapackage_client.py +7 -7
  318. oci/onesubscription/billing_schedule_client.py +1 -1
  319. oci/onesubscription/commitment_client.py +2 -2
  320. oci/onesubscription/computed_usage_client.py +3 -3
  321. oci/onesubscription/invoice_summary_client.py +2 -2
  322. oci/onesubscription/organization_subscription_client.py +1 -1
  323. oci/onesubscription/ratecard_client.py +1 -1
  324. oci/onesubscription/subscribed_service_client.py +2 -2
  325. oci/onesubscription/subscription_client.py +1 -1
  326. oci/ons/notification_control_plane_client.py +6 -6
  327. oci/ons/notification_data_plane_client.py +10 -10
  328. oci/opa/opa_instance_client.py +13 -13
  329. oci/opensearch/models/__init__.py +2 -0
  330. oci/opensearch/models/create_opensearch_cluster_details.py +291 -0
  331. oci/opensearch/models/create_opensearch_cluster_pipeline_details.py +31 -0
  332. oci/opensearch/models/opensearch_cluster.py +291 -0
  333. oci/opensearch/models/opensearch_cluster_pipeline.py +31 -0
  334. oci/opensearch/models/opensearch_cluster_pipeline_summary.py +31 -0
  335. oci/opensearch/models/resize_opensearch_cluster_horizontal_details.py +31 -0
  336. oci/opensearch/models/resize_opensearch_cluster_vertical_details.py +217 -0
  337. oci/opensearch/models/shapes_details.py +70 -0
  338. oci/opensearch/models/update_cluster_specs_details.py +186 -0
  339. oci/opensearch/models/update_opensearch_cluster_pipeline_details.py +31 -0
  340. oci/opensearch/opensearch_cluster_backup_client.py +4 -4
  341. oci/opensearch/opensearch_cluster_client.py +87 -16
  342. oci/opensearch/opensearch_cluster_pipeline_client.py +5 -5
  343. oci/operator_access_control/access_requests_client.py +10 -10
  344. oci/operator_access_control/operator_actions_client.py +2 -2
  345. oci/operator_access_control/operator_control_assignment_client.py +8 -8
  346. oci/operator_access_control/operator_control_client.py +6 -6
  347. oci/opsi/operations_insights_client.py +181 -181
  348. oci/optimizer/optimizer_client.py +26 -26
  349. oci/os_management/event_client.py +8 -8
  350. oci/os_management/os_management_client.py +69 -69
  351. oci/os_management_hub/event_client.py +8 -8
  352. oci/os_management_hub/lifecycle_environment_client.py +13 -13
  353. oci/os_management_hub/managed_instance_client.py +33 -33
  354. oci/os_management_hub/managed_instance_group_client.py +26 -26
  355. oci/os_management_hub/management_station_client.py +10 -10
  356. oci/os_management_hub/onboarding_client.py +13 -13
  357. oci/os_management_hub/reporting_managed_instance_client.py +3 -3
  358. oci/os_management_hub/scheduled_job_client.py +7 -7
  359. oci/os_management_hub/software_source_client.py +33 -33
  360. oci/os_management_hub/work_request_client.py +5 -5
  361. oci/osp_gateway/address_rule_service_client.py +1 -1
  362. oci/osp_gateway/address_service_client.py +2 -2
  363. oci/osp_gateway/invoice_service_client.py +5 -5
  364. oci/osp_gateway/subscription_service_client.py +5 -5
  365. oci/osub_billing_schedule/billing_schedule_client.py +1 -1
  366. oci/osub_organization_subscription/organization_subscription_client.py +1 -1
  367. oci/osub_subscription/commitment_client.py +2 -2
  368. oci/osub_subscription/ratecard_client.py +1 -1
  369. oci/osub_subscription/subscription_client.py +1 -1
  370. oci/osub_usage/computed_usage_client.py +3 -3
  371. oci/psql/postgresql_client.py +34 -34
  372. oci/queue/queue_admin_client.py +11 -11
  373. oci/queue/queue_client.py +8 -8
  374. oci/recovery/database_recovery_client.py +26 -26
  375. oci/redis/redis_cluster_client.py +12 -12
  376. oci/resource_manager/resource_manager_client.py +52 -52
  377. oci/resource_scheduler/schedule_client.py +14 -14
  378. oci/resource_search/resource_search_client.py +3 -3
  379. oci/rover/rover_bundle_client.py +8 -8
  380. oci/rover/rover_cluster_client.py +8 -8
  381. oci/rover/rover_entitlement_client.py +6 -6
  382. oci/rover/rover_node_client.py +15 -15
  383. oci/rover/shape_client.py +1 -1
  384. oci/rover/work_requests_client.py +5 -5
  385. oci/sch/connector_plugins_client.py +2 -2
  386. oci/sch/service_connector_client.py +12 -12
  387. oci/secrets/secrets_client.py +3 -3
  388. oci/security_attribute/security_attribute_client.py +18 -18
  389. oci/service_catalog/service_catalog_client.py +26 -26
  390. oci/service_manager_proxy/service_manager_proxy_client.py +2 -2
  391. oci/service_mesh/service_mesh_client.py +48 -48
  392. oci/stack_monitoring/stack_monitoring_client.py +87 -87
  393. oci/streaming/stream_admin_client.py +18 -18
  394. oci/streaming/stream_client.py +8 -8
  395. oci/tenant_manager_control_plane/domain_client.py +5 -5
  396. oci/tenant_manager_control_plane/domain_governance_client.py +5 -5
  397. oci/tenant_manager_control_plane/governance_client.py +2 -2
  398. oci/tenant_manager_control_plane/link_client.py +3 -3
  399. oci/tenant_manager_control_plane/orders_client.py +2 -2
  400. oci/tenant_manager_control_plane/organization_client.py +10 -10
  401. oci/tenant_manager_control_plane/recipient_invitation_client.py +5 -5
  402. oci/tenant_manager_control_plane/sender_invitation_client.py +5 -5
  403. oci/tenant_manager_control_plane/subscription_client.py +11 -11
  404. oci/tenant_manager_control_plane/work_request_client.py +4 -4
  405. oci/threat_intelligence/threatintel_client.py +5 -5
  406. oci/usage/resources_client.py +2 -2
  407. oci/usage/rewards_client.py +6 -6
  408. oci/usage/usagelimits_client.py +1 -1
  409. oci/usage_api/usageapi_client.py +33 -33
  410. oci/vault/vaults_client.py +13 -13
  411. oci/vbs_inst/vbs_instance_client.py +10 -10
  412. oci/version.py +1 -1
  413. oci/visual_builder/vb_instance_client.py +14 -14
  414. oci/vn_monitoring/vn_monitoring_client.py +12 -12
  415. oci/vulnerability_scanning/vulnerability_scanning_client.py +58 -58
  416. oci/waa/waa_client.py +13 -13
  417. oci/waa/work_request_client.py +4 -4
  418. oci/waas/redirect_client.py +6 -6
  419. oci/waas/waas_client.py +66 -66
  420. oci/waf/waf_client.py +24 -24
  421. oci/work_requests/work_request_client.py +4 -4
  422. oci/zpr/zpr_client.py +15 -15
  423. {oci-2.151.0.dist-info → oci-2.152.1.dist-info}/METADATA +6 -1
  424. {oci-2.151.0.dist-info → oci-2.152.1.dist-info}/RECORD +428 -313
  425. oci/database_management/models/disable_external_mysql_associated_service_details.py +0 -144
  426. oci/database_management/models/enable_external_mysql_associated_service_details.py +0 -144
  427. {oci-2.151.0.dist-info → oci-2.152.1.dist-info}/LICENSE.txt +0 -0
  428. {oci-2.151.0.dist-info → oci-2.152.1.dist-info}/THIRD_PARTY_LICENSES.txt +0 -0
  429. {oci-2.151.0.dist-info → oci-2.152.1.dist-info}/WHEEL +0 -0
  430. {oci-2.151.0.dist-info → oci-2.152.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,334 @@
1
+ # coding: utf-8
2
+ # Copyright (c) 2016, 2025, Oracle and/or its affiliates. All rights reserved.
3
+ # This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
4
+
5
+ from inspect import getdoc, ismethod, signature
6
+ from typing import Any, Callable, Dict, get_type_hints
7
+
8
+ from docstring_parser import parse
9
+ from pydantic import BaseModel, ConfigDict, Field, validate_call
10
+
11
+ from oci.addons.adk.logger import default_logger as logger
12
+ from oci.addons.adk.util import DocstringParser, JsonSchemaGenerator
13
+
14
+
15
+ class FunctionTool(BaseModel):
16
+ """Represents a callable function with metadata for tool-based execution."""
17
+
18
+ name: str = Field(
19
+ description="The name of the tool, used for identification and invocation"
20
+ )
21
+
22
+ description: str = Field(
23
+ description="Human-readable description of what the tool does and how to use it"
24
+ )
25
+
26
+ parameters: Dict[str, Any] = Field(
27
+ default_factory=lambda: {"type": "object", "properties": {}, "required": []},
28
+ description="JSON Schema object describing function parameters, their types, and requirements", # noqa: E501
29
+ )
30
+
31
+ callable: Callable = Field(
32
+ description="The actual function that will be executed when the tool is invoked"
33
+ )
34
+
35
+ @classmethod
36
+ def from_callable(
37
+ cls, callable_func: Callable, strict: bool = False
38
+ ) -> "FunctionTool":
39
+ """
40
+ Create a FunctionTool from a callable function,
41
+ using docstring for function description and parameter descriptions
42
+
43
+ Args:
44
+ callable_func: The function to convert to a tool
45
+ strict: If True, mark all parameters as required regardless of defaults
46
+
47
+ Returns:
48
+ A FunctionTool instance representing the callable
49
+
50
+ Raises:
51
+ ValueError: If the function is not marked as a tool
52
+ """
53
+ # Verify the function is marked as a tool
54
+ if not hasattr(callable_func, "_is_tool"):
55
+ raise ValueError(
56
+ f"Function {callable_func.__name__} is not marked as a tool"
57
+ )
58
+
59
+ # Extract function name
60
+ # use _tool_name if provided, otherwise use the function's name
61
+ function_name = getattr(callable_func, "_tool_name", callable_func.__name__)
62
+
63
+ # Extract function description
64
+ # use _tool_description if provided, otherwise use the function's docstring
65
+ function_description = getattr(
66
+ callable_func,
67
+ "_tool_description",
68
+ DocstringParser.get_callable_description(callable_func),
69
+ )
70
+
71
+ # Build parameter schema
72
+ function_parameters = cls._build_parameter_schema(callable_func, strict)
73
+
74
+ return cls(
75
+ name=function_name,
76
+ description=function_description,
77
+ parameters=function_parameters,
78
+ callable=validate_call(config=ConfigDict(arbitrary_types_allowed=True))(
79
+ callable_func
80
+ ),
81
+ )
82
+
83
+ @classmethod
84
+ def from_callable_openai_tool(
85
+ cls, callable_func: Callable, openai_tool: Dict[str, Any], strict: bool = False
86
+ ) -> "FunctionTool":
87
+ """
88
+ Create a FunctionTool from a callable function
89
+ and dictionary loaded from an OpenAI JSON schema.
90
+
91
+ Args:
92
+ callable_func: The function to convert to a tool
93
+ openai_tool: Dictionary containing OpenAI JSON schema
94
+
95
+ Returns:
96
+ A FunctionTool instance using the given callable
97
+ but with the OpenAI tool JSON schema
98
+ """
99
+
100
+ # Verify the function is marked as a tool
101
+ if not hasattr(callable_func, "_is_tool"):
102
+ raise ValueError(
103
+ f"Function {callable_func.__name__} is not marked as a tool"
104
+ )
105
+
106
+ function_name = openai_tool.get("name")
107
+ function_description = openai_tool.get("description")
108
+ function_parameters_oai = openai_tool.get("parameters")
109
+
110
+ if (
111
+ not isinstance(function_parameters_oai, dict) or
112
+ function_name is None or
113
+ function_description is None
114
+ ):
115
+ raise ValueError(
116
+ f"Invalid OpenAI tool schema: "
117
+ f"name: {function_name}, "
118
+ f"description: {function_description}, "
119
+ f"parameters: {function_parameters_oai}"
120
+ )
121
+
122
+ # validate the function parameters name
123
+ # and type are the same as the OpenAI tool parameters
124
+ function_parameters_func = cls._build_parameter_schema(callable_func, strict)
125
+ for param_name, param_type in function_parameters_func.get(
126
+ "properties", {}
127
+ ).items():
128
+ if (
129
+ param_name not in function_parameters_oai.get("properties", {})
130
+ ):
131
+ raise ValueError(
132
+ f"Local function and OpenAI tool parameters mismatch:"
133
+ f" Function parameter {param_name} of local function "
134
+ f"{callable_func.__name__} cannot be found "
135
+ "in the OpenAI tool parameters"
136
+ )
137
+ if param_type.get("type") != function_parameters_oai.get(
138
+ "properties", {}
139
+ ).get(param_name).get("type"):
140
+ # Convert both 'integer' and OpenAI types to 'number'
141
+ local_type = (
142
+ "number"
143
+ if param_type.get("type") == "integer"
144
+ else param_type.get("type")
145
+ )
146
+ oai_type = (
147
+ "number"
148
+ if function_parameters_oai.get("properties", {})
149
+ .get(param_name)
150
+ .get("type") == "integer"
151
+ else function_parameters_oai.get("properties", {})
152
+ .get(param_name)
153
+ .get("type")
154
+ )
155
+ if local_type != oai_type:
156
+ raise ValueError(
157
+ f"Local function and OpenAI tool parameters mismatch: "
158
+ f" Function parameter {param_name} of local function "
159
+ f"{callable_func.__name__} has type {local_type} "
160
+ f" which does not match OpenAI tool parameter type {oai_type}"
161
+ )
162
+
163
+ # validate all parameters present in OpenAI tool parameters
164
+ # are present in the local function parameters
165
+ for param_name in function_parameters_oai.get("properties", {}):
166
+ if param_name not in function_parameters_func.get("properties", {}):
167
+ raise ValueError(
168
+ f"Local function and OpenAI tool parameters mismatch: "
169
+ f"Function parameter {param_name} is not "
170
+ "in the local function parameters"
171
+ )
172
+
173
+ return cls(
174
+ name=function_name,
175
+ description=function_description,
176
+ parameters=function_parameters_oai,
177
+ callable=validate_call(config=ConfigDict(arbitrary_types_allowed=True))(
178
+ callable_func
179
+ ),
180
+ )
181
+
182
+ def execute(self, arguments: Dict[str, Any]) -> Any:
183
+ """
184
+ Execute the function with the given arguments.
185
+
186
+ Args:
187
+ arguments: Dictionary of arguments to pass to the function
188
+
189
+ Returns:
190
+ The result of the function execution
191
+
192
+ Raises:
193
+ ValueError: If required arguments are missing or invalid
194
+ """
195
+ # Clean and filter arguments
196
+ filtered_args = self._prepare_arguments(arguments)
197
+
198
+ # Invoke the callable with the filtered arguments
199
+ result = self.callable(**filtered_args)
200
+
201
+ return result
202
+
203
+ def to_dict(self) -> Dict[str, Any]:
204
+ """Convert the tool to a dictionary representation, excluding the callable."""
205
+ return self.model_dump(
206
+ exclude_none=True, include={"name", "description", "parameters"}
207
+ )
208
+
209
+ # Private helper methods
210
+ def _prepare_arguments(self, arguments: Dict[str, Any]) -> Dict[str, Any]:
211
+ """
212
+ Clean and filter arguments for execution.
213
+
214
+ Args:
215
+ arguments: Raw arguments dictionary
216
+
217
+ Returns:
218
+ Cleaned and filtered arguments dictionary
219
+ """
220
+ # Clean up argument keys - remove any trailing colons and whitespace
221
+ cleaned_args = {
222
+ key.rstrip(":").strip(): value for key, value in arguments.items()
223
+ }
224
+
225
+ # Filter out any arguments that aren't in the function's parameters
226
+ valid_params = self.parameters.get("properties", {}).keys()
227
+ return {k: v for k, v in cleaned_args.items() if k in valid_params}
228
+
229
+ @staticmethod
230
+ def _build_parameter_schema(
231
+ callable_func: Callable, strict: bool
232
+ ) -> Dict[str, Any]:
233
+ """
234
+ Build a JSON schema for the function's parameters.
235
+
236
+ Args:
237
+ callable_func: The function to analyze
238
+ strict: If True, mark all parameters as required
239
+
240
+ Returns:
241
+ A JSON schema object describing the function parameters
242
+ """
243
+ parameters = {"type": "object", "properties": {}, "required": []}
244
+
245
+ try:
246
+ sig = signature(callable_func)
247
+ type_hints = get_type_hints(callable_func)
248
+
249
+ # If it's a bound method (like method of Toolkit),
250
+ # we need to get the original function's signature
251
+ if ismethod(callable_func):
252
+ sig = signature(callable_func.__func__)
253
+ type_hints = get_type_hints(callable_func.__func__)
254
+
255
+ # Remove agent parameter if present
256
+ if "agent" in sig.parameters:
257
+ type_hints.pop("agent", None)
258
+
259
+ # Filter out return type and only process parameters
260
+ param_type_hints = {
261
+ name: type_hints.get(name)
262
+ for name in sig.parameters
263
+ if name != "return" and name != "agent" and name != "self"
264
+ }
265
+
266
+ # Parse docstring for parameter descriptions
267
+ param_descriptions = FunctionTool._extract_param_descriptions(callable_func)
268
+
269
+ # Generate JSON schema for parameters
270
+ parameters = JsonSchemaGenerator.get_json_schema(
271
+ type_hints=param_type_hints,
272
+ param_descriptions=param_descriptions,
273
+ strict=strict,
274
+ )
275
+
276
+ logger.debug(f"Parameters: {parameters}")
277
+
278
+ # Determine required parameters
279
+ if strict:
280
+ parameters["required"] = [
281
+ name for name in parameters["properties"] if name != "agent"
282
+ ]
283
+ else:
284
+ parameters["required"] = [
285
+ name
286
+ for name, param in sig.parameters.items()
287
+ if param.default == param.empty and
288
+ name != "self" and
289
+ name != "agent"
290
+ ]
291
+
292
+ except Exception as e:
293
+ logger.print(
294
+ f"[yellow]Warning:[/] "
295
+ f"Could not parse args for {callable_func.__name__}: {e}"
296
+ )
297
+
298
+ return parameters
299
+
300
+ @staticmethod
301
+ def _extract_param_descriptions(callable_func: Callable) -> Dict[str, str]:
302
+ """
303
+ Extract parameter descriptions from function docstring.
304
+
305
+ Args:
306
+ callable_func: The function to analyze
307
+
308
+ Returns:
309
+ Dictionary mapping parameter names to their descriptions
310
+ """
311
+ param_descriptions = {}
312
+ if docstring := getdoc(callable_func):
313
+ parsed_doc = parse(docstring)
314
+ param_docs = parsed_doc.params
315
+
316
+ if param_docs is not None:
317
+ for param in param_docs:
318
+ param_name = param.arg_name
319
+ param_type = param.type_name
320
+ param_descriptions[param_name] = (
321
+ f"({param_type}) {param.description}"
322
+ )
323
+
324
+ return param_descriptions
325
+
326
+ # Equality comparison
327
+ def __eq__(self, other: object) -> bool:
328
+ if not isinstance(other, FunctionTool):
329
+ return NotImplemented
330
+ return (
331
+ self.name == other.name and
332
+ self.description == other.description and
333
+ self.parameters == other.parameters
334
+ )
@@ -0,0 +1,8 @@
1
+ # coding: utf-8
2
+ # Copyright (c) 2016, 2025, Oracle and/or its affiliates. All rights reserved.
3
+ # This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
4
+
5
+ from .agentic_rag_tool import AgenticRagTool
6
+ from .calculator_toolkit import CalculatorToolkit
7
+
8
+ __all__ = ["AgenticRagTool", "CalculatorToolkit"]
@@ -0,0 +1,49 @@
1
+ # coding: utf-8
2
+ # Copyright (c) 2016, 2025, Oracle and/or its affiliates. All rights reserved.
3
+ # This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
4
+
5
+ """
6
+ A prebuilt toolkit for performing RAG
7
+ """
8
+
9
+ from typing import List
10
+
11
+ from pydantic import BaseModel, Field
12
+
13
+
14
+ class AgenticRagTool(BaseModel):
15
+ """A server-side tool that uses an agentic RAG pipeline to answer a question.
16
+ This tool is hosted in OCI Agent Platform, behind an provisioned agent endpoint.
17
+
18
+ This tool performs an agentic RAG that runs its own smart agentic loop workflow,
19
+ rather than a statically configured RAG, for best quality results.
20
+ """
21
+
22
+ name: str = Field(
23
+ "RAG tool with Knowledge Bases",
24
+ description="The name of the tool, used for identification and invocation",
25
+ )
26
+
27
+ description: str = Field(
28
+ """Use this tool to answer questions that require searching,
29
+ retrieving, and synthesizing information from knowledge bases.
30
+ This tool accesses specified knowledge bases to find relevant information
31
+ and generates comprehensive, accurate responses based on the retrieved content.
32
+ Ideal for questions about documents, policies, technical information,
33
+ or any data stored in the connected knowledge bases.""",
34
+ description="Human-readable description of what the tool does and how to use it", # noqa: E501
35
+ )
36
+
37
+ knowledge_base_ids: List[str] = Field(
38
+ description="A list of knowledge base IDs this RAG tool uses"
39
+ )
40
+
41
+ # Equality comparison
42
+ def __eq__(self, other: object) -> bool:
43
+ if not isinstance(other, AgenticRagTool):
44
+ return NotImplemented
45
+ return (
46
+ self.name == other.name and
47
+ self.description == other.description and
48
+ sorted(self.knowledge_base_ids) == sorted(other.knowledge_base_ids)
49
+ )
@@ -0,0 +1,104 @@
1
+ # coding: utf-8
2
+ # Copyright (c) 2016, 2025, Oracle and/or its affiliates. All rights reserved.
3
+ # This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
4
+
5
+ """
6
+ A prebuilt toolkit for performing calculations
7
+ """
8
+
9
+ from oci.addons.adk.tool import Toolkit, tool
10
+
11
+
12
+ class CalculatorToolkit(Toolkit):
13
+ """A toolkit for performing calculations"""
14
+
15
+ def __init__(self):
16
+ super().__init__()
17
+
18
+ @tool
19
+ def add(self, left: float, right: float) -> float:
20
+ """Add two floats
21
+
22
+ Args:
23
+ left(float): The left operand
24
+ right(float): The right operand
25
+
26
+ Returns:
27
+ The sum of the two operands
28
+ """
29
+ return left + right
30
+
31
+ @tool
32
+ def subtract(self, left: float, right: float) -> float:
33
+ """Subtract two floats
34
+
35
+ Args:
36
+ left(float): The left operand
37
+ right(float): The right operand
38
+
39
+ Returns:
40
+ The difference of the two operands
41
+ """
42
+ return left - right
43
+
44
+ @tool
45
+ def multiply(self, left: float, right: float) -> float:
46
+ """Multiply two floats
47
+
48
+ Args:
49
+ left(float): The left operand
50
+ right(float): The right operand
51
+
52
+ Returns:
53
+ The product of the two operands
54
+ """
55
+ return left * right
56
+
57
+ @tool
58
+ def divide(self, left: float, right: float) -> float:
59
+ """Divide two floats
60
+
61
+ Args:
62
+ left(float): The left operand
63
+ right(float): The right operand
64
+
65
+ Returns:
66
+ The quotient of the two operands
67
+ """
68
+ return left / right
69
+
70
+ @tool
71
+ def power(self, base: float, exponent: float) -> float:
72
+ """Raise base to the power of exponent
73
+
74
+ Args:
75
+ base(float): The base
76
+ exponent(float): The exponent
77
+
78
+ Returns:
79
+ The result of raising the base to the power of the exponent
80
+ """
81
+ return base**exponent
82
+
83
+ @tool
84
+ def sqrt(self, number: float) -> float:
85
+ """Square root of a number
86
+
87
+ Args:
88
+ number(float): The number to square root
89
+
90
+ Returns:
91
+ The square root of the number
92
+ """
93
+ return number**0.5
94
+
95
+ def evaluate(self, expression: str) -> float:
96
+ """A method that will not be registered as a tool
97
+
98
+ Args:
99
+ expression: The expression to evaluate
100
+
101
+ Returns:
102
+ The result of the expression
103
+ """
104
+ raise NotImplementedError("This is not implemented")
@@ -0,0 +1,37 @@
1
+ # coding: utf-8
2
+ # Copyright (c) 2016, 2025, Oracle and/or its affiliates. All rights reserved.
3
+ # This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
4
+
5
+ from functools import wraps
6
+
7
+ from oci.addons.adk.util import get_callable_description
8
+
9
+
10
+ def tool(func=None, *, name=None, description=None):
11
+ """
12
+ Decorator to mark a function as a tool for the agent.
13
+
14
+ Args:
15
+ func: The function to decorate
16
+ name: Optional name for the tool (defaults to function name)
17
+ description: Optional description (defaults to function docstring)
18
+ """
19
+
20
+ def decorator(func):
21
+ @wraps(func)
22
+ def wrapper(*args, **kwargs):
23
+ return func(*args, **kwargs)
24
+
25
+ # wrap the function with tool metadata
26
+ wrapper._is_tool = True
27
+ wrapper._tool_name = name or func.__name__
28
+ wrapper._tool_description = (
29
+ description or get_callable_description(callable_func=func) or ""
30
+ )
31
+
32
+ return wrapper
33
+
34
+ # Handle both @tool and @tool(name="name", description="desc") syntax
35
+ if func is None:
36
+ return decorator
37
+ return decorator(func)