oci 2.138.0__py3-none-any.whl → 2.139.0__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 (467) hide show
  1. oci/_vendor/idna/__init__.py +45 -2
  2. oci/_vendor/idna/codec.py +47 -43
  3. oci/_vendor/idna/compat.py +10 -7
  4. oci/_vendor/idna/core.py +210 -173
  5. oci/_vendor/idna/idnadata.py +3869 -1676
  6. oci/_vendor/idna/intranges.py +13 -9
  7. oci/_vendor/idna/package_data.py +2 -3
  8. oci/_vendor/idna/uts46data.py +8355 -8031
  9. oci/_vendor/urllib3/__init__.py +1 -1
  10. oci/_vendor/urllib3/_collections.py +19 -1
  11. oci/_vendor/urllib3/_version.py +2 -2
  12. oci/_vendor/urllib3/connection.py +8 -3
  13. oci/_vendor/urllib3/connectionpool.py +45 -13
  14. oci/_vendor/urllib3/contrib/__init__.py +1 -1
  15. oci/_vendor/urllib3/contrib/_appengine_environ.py +1 -1
  16. oci/_vendor/urllib3/contrib/_securetransport/__init__.py +1 -1
  17. oci/_vendor/urllib3/contrib/_securetransport/bindings.py +2 -2
  18. oci/_vendor/urllib3/contrib/_securetransport/low_level.py +1 -1
  19. oci/_vendor/urllib3/contrib/appengine.py +2 -2
  20. oci/_vendor/urllib3/contrib/ntlmpool.py +3 -3
  21. oci/_vendor/urllib3/contrib/pyopenssl.py +14 -7
  22. oci/_vendor/urllib3/contrib/securetransport.py +2 -4
  23. oci/_vendor/urllib3/contrib/socks.py +1 -1
  24. oci/_vendor/urllib3/exceptions.py +1 -1
  25. oci/_vendor/urllib3/fields.py +1 -1
  26. oci/_vendor/urllib3/filepost.py +1 -1
  27. oci/_vendor/urllib3/packages/__init__.py +2 -2
  28. oci/_vendor/urllib3/packages/backports/__init__.py +1 -1
  29. oci/_vendor/urllib3/packages/backports/makefile.py +1 -1
  30. oci/_vendor/urllib3/packages/backports/weakref_finalize.py +160 -0
  31. oci/_vendor/urllib3/packages/six.py +1 -2
  32. oci/_vendor/urllib3/poolmanager.py +7 -4
  33. oci/_vendor/urllib3/request.py +22 -1
  34. oci/_vendor/urllib3/response.py +65 -4
  35. oci/_vendor/urllib3/util/__init__.py +1 -1
  36. oci/_vendor/urllib3/util/connection.py +1 -1
  37. oci/_vendor/urllib3/util/proxy.py +1 -1
  38. oci/_vendor/urllib3/util/queue.py +1 -1
  39. oci/_vendor/urllib3/util/request.py +1 -1
  40. oci/_vendor/urllib3/util/response.py +1 -1
  41. oci/_vendor/urllib3/util/retry.py +5 -3
  42. oci/_vendor/urllib3/util/ssl_.py +14 -5
  43. oci/_vendor/urllib3/util/ssl_match_hostname.py +1 -1
  44. oci/_vendor/urllib3/util/ssltransport.py +1 -1
  45. oci/_vendor/urllib3/util/timeout.py +7 -4
  46. oci/_vendor/urllib3/util/url.py +8 -5
  47. oci/_vendor/urllib3/util/wait.py +1 -2
  48. oci/access_governance_cp/access_governance_cp_client.py +8 -8
  49. oci/adm/application_dependency_management_client.py +36 -36
  50. oci/ai_anomaly_detection/anomaly_detection_client.py +36 -36
  51. oci/ai_document/ai_service_document_client.py +26 -26
  52. oci/ai_language/ai_service_language_client.py +44 -44
  53. oci/ai_speech/ai_service_speech_client.py +19 -19
  54. oci/ai_vision/ai_service_vision_client.py +25 -25
  55. oci/analytics/analytics_client.py +24 -24
  56. oci/announcements_service/announcement_client.py +5 -5
  57. oci/announcements_service/announcement_subscription_client.py +9 -9
  58. oci/announcements_service/announcements_preferences_client.py +4 -4
  59. oci/announcements_service/service_client.py +1 -1
  60. oci/apigateway/api_gateway_client.py +21 -21
  61. oci/apigateway/deployment_client.py +6 -6
  62. oci/apigateway/gateway_client.py +6 -6
  63. oci/apigateway/subscribers_client.py +6 -6
  64. oci/apigateway/usage_plans_client.py +6 -6
  65. oci/apigateway/work_requests_client.py +5 -5
  66. oci/apm_config/config_client.py +9 -9
  67. oci/apm_control_plane/apm_domain_client.py +14 -14
  68. oci/apm_synthetics/apm_synthetic_client.py +28 -28
  69. oci/apm_traces/attributes_client.py +8 -8
  70. oci/apm_traces/query_client.py +2 -2
  71. oci/apm_traces/trace_client.py +4 -4
  72. oci/appmgmt_control/appmgmt_control_client.py +8 -8
  73. oci/artifacts/artifacts_client.py +32 -32
  74. oci/audit/audit_client.py +3 -3
  75. oci/autoscaling/auto_scaling_client.py +11 -11
  76. oci/bastion/bastion_client.py +15 -15
  77. oci/bds/bds_client.py +72 -72
  78. oci/blockchain/blockchain_platform_client.py +27 -27
  79. oci/budget/budget_client.py +10 -10
  80. oci/capacity_management/capacity_management_client.py +32 -32
  81. oci/certificates/certificates_client.py +5 -5
  82. oci/certificates_management/certificates_management_client.py +32 -32
  83. oci/cims/incident_client.py +13 -14
  84. oci/cims/models/__init__.py +4 -2
  85. oci/cims/models/cmos_user_group_info.py +103 -0
  86. oci/cims/models/create_incident.py +33 -2
  87. oci/cims/models/create_limit_item_details.py +2 -57
  88. oci/cims/models/create_user_details.py +4 -4
  89. oci/cims/models/incident.py +188 -0
  90. oci/cims/models/incident_resource_type.py +4 -4
  91. oci/cims/models/incident_summary.py +188 -0
  92. oci/cims/models/limit_item.py +2 -2
  93. oci/cims/models/{service_categories.py → services.py} +27 -27
  94. oci/cims/models/sub_categories.py +15 -15
  95. oci/cims/models/ticket.py +7 -3
  96. oci/cims/models/validation_response.py +33 -2
  97. oci/cloud_bridge/common_client.py +5 -5
  98. oci/cloud_bridge/discovery_client.py +15 -15
  99. oci/cloud_bridge/inventory_client.py +16 -16
  100. oci/cloud_bridge/ocb_agent_svc_client.py +22 -22
  101. oci/cloud_guard/cloud_guard_client.py +155 -155
  102. oci/cloud_migrations/migration_client.py +43 -43
  103. oci/cluster_placement_groups/cluster_placement_groups_cp_client.py +13 -13
  104. oci/compute_cloud_at_customer/compute_cloud_at_customer_client.py +12 -12
  105. oci/compute_instance_agent/compute_instance_agent_client.py +6 -6
  106. oci/compute_instance_agent/plugin_client.py +2 -2
  107. oci/compute_instance_agent/pluginconfig_client.py +1 -1
  108. oci/container_engine/container_engine_client.py +44 -44
  109. oci/container_instances/container_instance_client.py +18 -18
  110. oci/core/blockstorage_client.py +60 -60
  111. oci/core/compute_client.py +102 -102
  112. oci/core/compute_management_client.py +32 -32
  113. oci/core/virtual_network_client.py +247 -247
  114. oci/dashboard_service/dashboard_client.py +6 -6
  115. oci/dashboard_service/dashboard_group_client.py +6 -6
  116. oci/data_catalog/data_catalog_client.py +149 -149
  117. oci/data_flow/data_flow_client.py +44 -44
  118. oci/data_integration/data_integration_client.py +163 -163
  119. oci/data_labeling_service/data_labeling_management_client.py +17 -17
  120. oci/data_labeling_service_dataplane/data_labeling_client.py +15 -15
  121. oci/data_safe/data_safe_client.py +292 -292
  122. oci/data_science/data_science_client.py +92 -92
  123. oci/database/database_client.py +523 -398
  124. oci/database/database_client_composite_operations.py +88 -0
  125. oci/database/models/__init__.py +4 -0
  126. oci/database/models/autonomous_database.py +2 -2
  127. oci/database/models/autonomous_database_summary.py +2 -2
  128. oci/database/models/configure_exascale_exadata_infrastructure_details.py +72 -0
  129. oci/database/models/create_autonomous_database_base.py +2 -2
  130. oci/database/models/create_db_home_details.py +33 -2
  131. oci/database/models/create_db_home_from_backup_details.py +31 -0
  132. oci/database/models/create_db_home_from_database_details.py +31 -0
  133. oci/database/models/create_exascale_db_storage_vault_details.py +37 -2
  134. oci/database/models/create_pluggable_database_creation_type_details.py +2 -2
  135. oci/database/models/create_vm_cluster_details.py +37 -2
  136. oci/database/models/exadata_infrastructure.py +29 -2
  137. oci/database/models/exadata_infrastructure_summary.py +29 -2
  138. oci/database/models/exascale_config_details.py +103 -0
  139. oci/database/models/exascale_db_storage_vault.py +35 -0
  140. oci/database/models/exascale_db_storage_vault_summary.py +37 -2
  141. oci/database/models/update_autonomous_database_details.py +2 -2
  142. oci/database/models/vm_cluster.py +84 -2
  143. oci/database/models/vm_cluster_summary.py +84 -2
  144. oci/database_management/db_management_client.py +211 -211
  145. oci/database_management/diagnosability_client.py +4 -4
  146. oci/database_management/managed_my_sql_databases_client.py +7 -7
  147. oci/database_management/perfhub_client.py +1 -1
  148. oci/database_management/sql_tuning_client.py +17 -17
  149. oci/database_migration/database_migration_client.py +42 -42
  150. oci/database_tools/database_tools_client.py +23 -23
  151. oci/delegate_access_control/delegate_access_control_client.py +26 -26
  152. oci/delegate_access_control/work_request_client.py +4 -4
  153. oci/demand_signal/occ_demand_signal_client.py +7 -7
  154. oci/desktops/desktop_service_client.py +21 -21
  155. oci/devops/devops_client.py +141 -141
  156. oci/disaster_recovery/disaster_recovery_client.py +29 -29
  157. oci/dns/dns_client.py +54 -54
  158. oci/dts/appliance_export_job_client.py +6 -6
  159. oci/dts/shipping_vendors_client.py +1 -1
  160. oci/dts/transfer_appliance_client.py +8 -8
  161. oci/dts/transfer_appliance_entitlement_client.py +3 -3
  162. oci/dts/transfer_device_client.py +5 -5
  163. oci/dts/transfer_job_client.py +6 -6
  164. oci/dts/transfer_package_client.py +7 -7
  165. oci/em_warehouse/em_warehouse_client.py +13 -13
  166. oci/email/email_client.py +31 -31
  167. oci/email_data_plane/email_dp_client.py +1 -1
  168. oci/events/events_client.py +6 -6
  169. oci/file_storage/file_storage_client.py +68 -68
  170. oci/fleet_apps_management/fleet_apps_management_admin_client.py +25 -25
  171. oci/fleet_apps_management/fleet_apps_management_client.py +35 -35
  172. oci/fleet_apps_management/fleet_apps_management_maintenance_window_client.py +5 -5
  173. oci/fleet_apps_management/fleet_apps_management_operations_client.py +26 -26
  174. oci/fleet_apps_management/fleet_apps_management_runbooks_client.py +12 -12
  175. oci/fleet_software_update/fleet_software_update_client.py +46 -46
  176. oci/functions/functions_invoke_client.py +1 -1
  177. oci/functions/functions_management_client.py +16 -16
  178. oci/fusion_apps/fusion_applications_client.py +41 -41
  179. oci/generative_ai/generative_ai_client.py +22 -22
  180. oci/generative_ai/models/create_dedicated_ai_cluster_details.py +8 -0
  181. oci/generative_ai/models/dedicated_ai_cluster.py +20 -4
  182. oci/generative_ai/models/endpoint.py +1 -1
  183. oci/generative_ai/models/model.py +1 -1
  184. oci/generative_ai_agent/generative_ai_agent_client.py +33 -33
  185. oci/generative_ai_agent_runtime/generative_ai_agent_runtime_client.py +5 -5
  186. oci/generative_ai_inference/generative_ai_inference_client.py +6 -6
  187. oci/generative_ai_inference/models/__init__.py +10 -0
  188. oci/generative_ai_inference/models/base_chat_request.py +6 -2
  189. oci/generative_ai_inference/models/chat_content.py +11 -3
  190. oci/generative_ai_inference/models/cohere_chat_request.py +60 -2
  191. oci/generative_ai_inference/models/cohere_response_format.py +109 -0
  192. oci/generative_ai_inference/models/cohere_response_json_format.py +82 -0
  193. oci/generative_ai_inference/models/cohere_response_text_format.py +51 -0
  194. oci/generative_ai_inference/models/image_content.py +78 -0
  195. oci/generative_ai_inference/models/image_url.py +123 -0
  196. oci/generative_ai_inference/models/text_content.py +1 -1
  197. oci/generic_artifacts_content/generic_artifacts_content_client.py +3 -3
  198. oci/globally_distributed_database/sharded_database_service_client.py +30 -30
  199. oci/golden_gate/golden_gate_client.py +191 -69
  200. oci/golden_gate/golden_gate_client_composite_operations.py +44 -0
  201. oci/golden_gate/models/__init__.py +4 -0
  202. oci/golden_gate/models/amazon_kinesis_connection.py +46 -2
  203. oci/golden_gate/models/amazon_kinesis_connection_summary.py +46 -2
  204. oci/golden_gate/models/amazon_redshift_connection.py +52 -2
  205. oci/golden_gate/models/amazon_redshift_connection_summary.py +52 -2
  206. oci/golden_gate/models/amazon_s3_connection.py +46 -2
  207. oci/golden_gate/models/amazon_s3_connection_summary.py +46 -2
  208. oci/golden_gate/models/azure_data_lake_storage_connection.py +120 -2
  209. oci/golden_gate/models/azure_data_lake_storage_connection_summary.py +120 -2
  210. oci/golden_gate/models/azure_synapse_connection.py +52 -2
  211. oci/golden_gate/models/azure_synapse_connection_summary.py +52 -2
  212. oci/golden_gate/models/connection.py +33 -2
  213. oci/golden_gate/models/connection_summary.py +33 -2
  214. oci/golden_gate/models/create_amazon_kinesis_connection_details.py +47 -3
  215. oci/golden_gate/models/create_amazon_redshift_connection_details.py +53 -3
  216. oci/golden_gate/models/create_amazon_s3_connection_details.py +47 -3
  217. oci/golden_gate/models/create_azure_data_lake_storage_connection_details.py +118 -0
  218. oci/golden_gate/models/create_azure_synapse_connection_details.py +53 -3
  219. oci/golden_gate/models/create_connection_details.py +33 -2
  220. oci/golden_gate/models/create_db2_connection_details.py +125 -1
  221. oci/golden_gate/models/create_deployment_backup_details.py +31 -0
  222. oci/golden_gate/models/create_elasticsearch_connection_details.py +50 -0
  223. oci/golden_gate/models/create_generic_connection_details.py +7 -0
  224. oci/golden_gate/models/create_golden_gate_connection_details.py +46 -0
  225. oci/golden_gate/models/create_google_big_query_connection_details.py +49 -3
  226. oci/golden_gate/models/create_google_cloud_storage_connection_details.py +49 -3
  227. oci/golden_gate/models/create_hdfs_connection_details.py +7 -0
  228. oci/golden_gate/models/create_java_message_service_connection_details.py +270 -0
  229. oci/golden_gate/models/create_kafka_connection_details.py +235 -0
  230. oci/golden_gate/models/create_kafka_schema_registry_connection_details.py +239 -4
  231. oci/golden_gate/models/create_microsoft_sqlserver_connection_details.py +45 -1
  232. oci/golden_gate/models/create_mongo_db_connection_details.py +44 -0
  233. oci/golden_gate/models/create_mysql_connection_details.py +90 -1
  234. oci/golden_gate/models/create_oci_object_storage_connection_details.py +84 -1
  235. oci/golden_gate/models/create_oracle_connection_details.py +90 -1
  236. oci/golden_gate/models/create_oracle_nosql_connection_details.py +84 -1
  237. oci/golden_gate/models/create_postgresql_connection_details.py +88 -1
  238. oci/golden_gate/models/create_redis_connection_details.py +198 -0
  239. oci/golden_gate/models/create_snowflake_connection_details.py +128 -2
  240. oci/golden_gate/models/db2_connection.py +126 -2
  241. oci/golden_gate/models/db2_connection_summary.py +126 -2
  242. oci/golden_gate/models/default_refresh_connection_details.py +51 -0
  243. oci/golden_gate/models/deployment_backup.py +31 -0
  244. oci/golden_gate/models/deployment_backup_summary.py +31 -0
  245. oci/golden_gate/models/elasticsearch_connection.py +52 -2
  246. oci/golden_gate/models/elasticsearch_connection_summary.py +52 -2
  247. oci/golden_gate/models/export_deployment_wallet_details.py +35 -0
  248. oci/golden_gate/models/generic_connection.py +7 -0
  249. oci/golden_gate/models/generic_connection_summary.py +7 -0
  250. oci/golden_gate/models/golden_gate_connection.py +48 -2
  251. oci/golden_gate/models/golden_gate_connection_summary.py +48 -2
  252. oci/golden_gate/models/google_big_query_connection.py +48 -2
  253. oci/golden_gate/models/google_big_query_connection_summary.py +48 -2
  254. oci/golden_gate/models/google_cloud_storage_connection.py +48 -2
  255. oci/golden_gate/models/google_cloud_storage_connection_summary.py +48 -2
  256. oci/golden_gate/models/hdfs_connection.py +7 -0
  257. oci/golden_gate/models/hdfs_connection_summary.py +7 -0
  258. oci/golden_gate/models/import_deployment_wallet_details.py +35 -0
  259. oci/golden_gate/models/java_message_service_connection.py +272 -2
  260. oci/golden_gate/models/java_message_service_connection_summary.py +272 -2
  261. oci/golden_gate/models/kafka_connection.py +299 -2
  262. oci/golden_gate/models/kafka_connection_summary.py +237 -2
  263. oci/golden_gate/models/kafka_schema_registry_connection.py +239 -4
  264. oci/golden_gate/models/kafka_schema_registry_connection_summary.py +239 -4
  265. oci/golden_gate/models/microsoft_sqlserver_connection.py +46 -2
  266. oci/golden_gate/models/microsoft_sqlserver_connection_summary.py +46 -2
  267. oci/golden_gate/models/mongo_db_connection.py +46 -2
  268. oci/golden_gate/models/mongo_db_connection_summary.py +46 -2
  269. oci/golden_gate/models/mysql_connection.py +91 -2
  270. oci/golden_gate/models/mysql_connection_summary.py +91 -2
  271. oci/golden_gate/models/oci_object_storage_connection.py +85 -2
  272. oci/golden_gate/models/oci_object_storage_connection_summary.py +85 -2
  273. oci/golden_gate/models/oracle_connection.py +91 -2
  274. oci/golden_gate/models/oracle_connection_summary.py +91 -2
  275. oci/golden_gate/models/oracle_nosql_connection.py +85 -2
  276. oci/golden_gate/models/oracle_nosql_connection_summary.py +85 -2
  277. oci/golden_gate/models/postgresql_connection.py +89 -2
  278. oci/golden_gate/models/postgresql_connection_summary.py +89 -2
  279. oci/golden_gate/models/redis_connection.py +200 -2
  280. oci/golden_gate/models/redis_connection_summary.py +200 -2
  281. oci/golden_gate/models/refresh_connection_details.py +101 -0
  282. oci/golden_gate/models/snowflake_connection.py +128 -2
  283. oci/golden_gate/models/snowflake_connection_summary.py +128 -2
  284. oci/golden_gate/models/update_amazon_kinesis_connection_details.py +46 -2
  285. oci/golden_gate/models/update_amazon_redshift_connection_details.py +52 -2
  286. oci/golden_gate/models/update_amazon_s3_connection_details.py +46 -2
  287. oci/golden_gate/models/update_azure_data_lake_storage_connection_details.py +118 -0
  288. oci/golden_gate/models/update_azure_synapse_connection_details.py +52 -2
  289. oci/golden_gate/models/update_connection_details.py +33 -2
  290. oci/golden_gate/models/update_db2_connection_details.py +124 -0
  291. oci/golden_gate/models/update_elasticsearch_connection_details.py +50 -0
  292. oci/golden_gate/models/update_generic_connection_details.py +7 -0
  293. oci/golden_gate/models/update_golden_gate_connection_details.py +46 -0
  294. oci/golden_gate/models/update_google_big_query_connection_details.py +48 -2
  295. oci/golden_gate/models/update_google_cloud_storage_connection_details.py +48 -2
  296. oci/golden_gate/models/update_hdfs_connection_details.py +7 -0
  297. oci/golden_gate/models/update_java_message_service_connection_details.py +270 -0
  298. oci/golden_gate/models/update_kafka_connection_details.py +235 -0
  299. oci/golden_gate/models/update_kafka_schema_registry_connection_details.py +241 -4
  300. oci/golden_gate/models/update_microsoft_sqlserver_connection_details.py +44 -0
  301. oci/golden_gate/models/update_mongo_db_connection_details.py +44 -0
  302. oci/golden_gate/models/update_mysql_connection_details.py +89 -0
  303. oci/golden_gate/models/update_oci_object_storage_connection_details.py +83 -0
  304. oci/golden_gate/models/update_oracle_connection_details.py +89 -0
  305. oci/golden_gate/models/update_oracle_nosql_connection_details.py +83 -0
  306. oci/golden_gate/models/update_postgresql_connection_details.py +87 -0
  307. oci/golden_gate/models/update_redis_connection_details.py +198 -0
  308. oci/golden_gate/models/update_snowflake_connection_details.py +122 -2
  309. oci/golden_gate/models/work_request.py +7 -3
  310. oci/governance_rules_control_plane/governance_rule_client.py +15 -15
  311. oci/governance_rules_control_plane/work_request_client.py +5 -5
  312. oci/healthchecks/health_checks_client.py +17 -17
  313. oci/identity/identity_client.py +145 -145
  314. oci/identity_data_plane/dataplane_client.py +2 -2
  315. oci/identity_domains/identity_domains_client.py +311 -311
  316. oci/integration/integration_instance_client.py +19 -19
  317. oci/jms/java_management_service_client.py +75 -75
  318. oci/jms_java_downloads/java_download_client.py +25 -25
  319. oci/key_management/ekm_client.py +5 -5
  320. oci/key_management/kms_crypto_client.py +6 -6
  321. oci/key_management/kms_hsm_cluster_client.py +12 -12
  322. oci/key_management/kms_management_client.py +21 -21
  323. oci/key_management/kms_vault_client.py +14 -14
  324. oci/license_manager/license_manager_client.py +18 -18
  325. oci/limits/limits_client.py +4 -4
  326. oci/limits/quotas_client.py +7 -7
  327. oci/load_balancer/load_balancer_client.py +61 -61
  328. oci/lockbox/lockbox_client.py +24 -24
  329. oci/log_analytics/log_analytics_client.py +193 -193
  330. oci/logging/logging_management_client.py +30 -30
  331. oci/loggingingestion/logging_client.py +1 -1
  332. oci/loggingsearch/log_search_client.py +1 -1
  333. oci/management_agent/management_agent_client.py +28 -28
  334. oci/management_dashboard/dashx_apis_client.py +14 -14
  335. oci/marketplace/account_client.py +2 -2
  336. oci/marketplace/marketplace_client.py +30 -30
  337. oci/marketplace_private_offer/attachment_client.py +5 -5
  338. oci/marketplace_private_offer/offer_client.py +6 -6
  339. oci/marketplace_publisher/attachment_client.py +5 -5
  340. oci/marketplace_publisher/marketplace_publisher_client.py +71 -71
  341. oci/marketplace_publisher/offer_client.py +6 -6
  342. oci/media_services/media_services_client.py +60 -60
  343. oci/media_services/media_stream_client.py +2 -2
  344. oci/monitoring/monitoring_client.py +18 -18
  345. oci/mysql/channels_client.py +7 -7
  346. oci/mysql/db_backups_client.py +7 -7
  347. oci/mysql/db_system_client.py +17 -17
  348. oci/mysql/mysqlaas_client.py +7 -7
  349. oci/mysql/replicas_client.py +5 -5
  350. oci/mysql/work_requests_client.py +4 -4
  351. oci/network_firewall/network_firewall_client.py +86 -86
  352. oci/network_load_balancer/network_load_balancer_client.py +34 -34
  353. oci/nosql/nosql_client.py +24 -24
  354. oci/object_storage/object_storage_client.py +153 -57
  355. oci/oce/oce_instance_client.py +10 -10
  356. oci/oci_control_center/occ_metrics_client.py +3 -3
  357. oci/ocvp/cluster_client.py +5 -5
  358. oci/ocvp/esxi_host_client.py +8 -8
  359. oci/ocvp/sddc_client.py +14 -14
  360. oci/ocvp/work_request_client.py +4 -4
  361. oci/oda/management_client.py +59 -59
  362. oci/oda/oda_client.py +17 -17
  363. oci/oda/odapackage_client.py +7 -7
  364. oci/onesubscription/billing_schedule_client.py +1 -1
  365. oci/onesubscription/commitment_client.py +2 -2
  366. oci/onesubscription/computed_usage_client.py +3 -3
  367. oci/onesubscription/invoice_summary_client.py +2 -2
  368. oci/onesubscription/organization_subscription_client.py +1 -1
  369. oci/onesubscription/ratecard_client.py +1 -1
  370. oci/onesubscription/subscribed_service_client.py +2 -2
  371. oci/onesubscription/subscription_client.py +1 -1
  372. oci/ons/notification_control_plane_client.py +6 -6
  373. oci/ons/notification_data_plane_client.py +10 -10
  374. oci/opa/opa_instance_client.py +13 -13
  375. oci/opensearch/opensearch_cluster_backup_client.py +4 -4
  376. oci/opensearch/opensearch_cluster_client.py +14 -14
  377. oci/operator_access_control/access_requests_client.py +10 -10
  378. oci/operator_access_control/operator_actions_client.py +2 -2
  379. oci/operator_access_control/operator_control_assignment_client.py +8 -8
  380. oci/operator_access_control/operator_control_client.py +6 -6
  381. oci/opsi/operations_insights_client.py +180 -180
  382. oci/optimizer/optimizer_client.py +26 -26
  383. oci/os_management/event_client.py +8 -8
  384. oci/os_management/os_management_client.py +69 -69
  385. oci/os_management_hub/event_client.py +8 -8
  386. oci/os_management_hub/lifecycle_environment_client.py +12 -12
  387. oci/os_management_hub/managed_instance_client.py +31 -31
  388. oci/os_management_hub/managed_instance_group_client.py +25 -25
  389. oci/os_management_hub/management_station_client.py +10 -10
  390. oci/os_management_hub/onboarding_client.py +6 -6
  391. oci/os_management_hub/reporting_managed_instance_client.py +3 -3
  392. oci/os_management_hub/scheduled_job_client.py +7 -7
  393. oci/os_management_hub/software_source_client.py +27 -27
  394. oci/os_management_hub/work_request_client.py +4 -4
  395. oci/osp_gateway/address_rule_service_client.py +1 -1
  396. oci/osp_gateway/address_service_client.py +2 -2
  397. oci/osp_gateway/invoice_service_client.py +5 -5
  398. oci/osp_gateway/subscription_service_client.py +5 -5
  399. oci/osub_billing_schedule/billing_schedule_client.py +1 -1
  400. oci/osub_organization_subscription/organization_subscription_client.py +1 -1
  401. oci/osub_subscription/commitment_client.py +2 -2
  402. oci/osub_subscription/ratecard_client.py +1 -1
  403. oci/osub_subscription/subscription_client.py +1 -1
  404. oci/osub_usage/computed_usage_client.py +3 -3
  405. oci/psql/models/connection_details.py +29 -2
  406. oci/psql/models/endpoint.py +1 -1
  407. oci/psql/models/network_details.py +33 -2
  408. oci/psql/models/update_network_details.py +33 -2
  409. oci/psql/postgresql_client.py +33 -33
  410. oci/queue/queue_admin_client.py +11 -11
  411. oci/queue/queue_client.py +8 -8
  412. oci/recovery/database_recovery_client.py +26 -26
  413. oci/redis/redis_cluster_client.py +12 -12
  414. oci/regions_definitions.py +3 -0
  415. oci/resource_manager/resource_manager_client.py +52 -52
  416. oci/resource_scheduler/schedule_client.py +13 -13
  417. oci/resource_search/resource_search_client.py +3 -3
  418. oci/rover/rover_bundle_client.py +8 -8
  419. oci/rover/rover_cluster_client.py +8 -8
  420. oci/rover/rover_entitlement_client.py +6 -6
  421. oci/rover/rover_node_client.py +15 -15
  422. oci/rover/shape_client.py +1 -1
  423. oci/rover/work_requests_client.py +5 -5
  424. oci/sch/connector_plugins_client.py +2 -2
  425. oci/sch/service_connector_client.py +12 -12
  426. oci/secrets/secrets_client.py +3 -3
  427. oci/security_attribute/security_attribute_client.py +18 -18
  428. oci/service_catalog/service_catalog_client.py +26 -26
  429. oci/service_manager_proxy/service_manager_proxy_client.py +2 -2
  430. oci/service_mesh/service_mesh_client.py +48 -48
  431. oci/stack_monitoring/stack_monitoring_client.py +71 -71
  432. oci/streaming/stream_admin_client.py +18 -18
  433. oci/streaming/stream_client.py +8 -8
  434. oci/tenant_manager_control_plane/domain_client.py +5 -5
  435. oci/tenant_manager_control_plane/domain_governance_client.py +5 -5
  436. oci/tenant_manager_control_plane/governance_client.py +2 -2
  437. oci/tenant_manager_control_plane/link_client.py +3 -3
  438. oci/tenant_manager_control_plane/orders_client.py +2 -2
  439. oci/tenant_manager_control_plane/organization_client.py +10 -10
  440. oci/tenant_manager_control_plane/recipient_invitation_client.py +5 -5
  441. oci/tenant_manager_control_plane/sender_invitation_client.py +5 -5
  442. oci/tenant_manager_control_plane/subscription_client.py +11 -11
  443. oci/tenant_manager_control_plane/work_request_client.py +4 -4
  444. oci/threat_intelligence/threatintel_client.py +5 -5
  445. oci/usage/resources_client.py +2 -2
  446. oci/usage/rewards_client.py +6 -6
  447. oci/usage/usagelimits_client.py +1 -1
  448. oci/usage_api/usageapi_client.py +33 -33
  449. oci/vault/vaults_client.py +13 -13
  450. oci/vbs_inst/vbs_instance_client.py +10 -10
  451. oci/version.py +1 -1
  452. oci/visual_builder/vb_instance_client.py +13 -13
  453. oci/vn_monitoring/vn_monitoring_client.py +12 -12
  454. oci/vulnerability_scanning/vulnerability_scanning_client.py +58 -58
  455. oci/waa/waa_client.py +13 -13
  456. oci/waa/work_request_client.py +4 -4
  457. oci/waas/redirect_client.py +6 -6
  458. oci/waas/waas_client.py +66 -66
  459. oci/waf/waf_client.py +24 -24
  460. oci/work_requests/work_request_client.py +4 -4
  461. oci/zpr/zpr_client.py +15 -15
  462. {oci-2.138.0.dist-info → oci-2.139.0.dist-info}/METADATA +1 -1
  463. {oci-2.138.0.dist-info → oci-2.139.0.dist-info}/RECORD +467 -456
  464. {oci-2.138.0.dist-info → oci-2.139.0.dist-info}/THIRD_PARTY_LICENSES.txt +1 -1
  465. {oci-2.138.0.dist-info → oci-2.139.0.dist-info}/LICENSE.txt +0 -0
  466. {oci-2.138.0.dist-info → oci-2.139.0.dist-info}/WHEEL +0 -0
  467. {oci-2.138.0.dist-info → oci-2.139.0.dist-info}/top_level.txt +0 -0
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
3
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
- # Copyright 2008-2016 Andrey Petrov and contributors
4
+ # Copyright (c) 2008-2020 Andrey Petrov and contributors
5
5
 
6
6
  # Copyright (c) 2010-2020 Benjamin Peterson
7
7
  #
@@ -777,7 +777,6 @@ if PY3:
777
777
  value = None
778
778
  tb = None
779
779
 
780
-
781
780
  else:
782
781
 
783
782
  def exec_(_code_, _globs_=None, _locs_=None):
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
3
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
- # Copyright 2008-2016 Andrey Petrov and contributors
4
+ # Copyright (c) 2008-2020 Andrey Petrov and contributors
5
5
 
6
6
  from __future__ import absolute_import
7
7
 
@@ -9,7 +9,7 @@ import collections
9
9
  import functools
10
10
  import logging
11
11
 
12
- from ._collections import RecentlyUsedContainer
12
+ from ._collections import HTTPHeaderDict, RecentlyUsedContainer
13
13
  from .connectionpool import HTTPConnectionPool, HTTPSConnectionPool, port_by_scheme
14
14
  from .exceptions import (
15
15
  LocationValueError,
@@ -176,7 +176,7 @@ class PoolManager(RequestMethods):
176
176
  def __init__(self, num_pools=10, headers=None, **connection_pool_kw):
177
177
  RequestMethods.__init__(self, headers)
178
178
  self.connection_pool_kw = connection_pool_kw
179
- self.pools = RecentlyUsedContainer(num_pools, dispose_func=lambda p: p.close())
179
+ self.pools = RecentlyUsedContainer(num_pools)
180
180
 
181
181
  # Locally set the pool classes and keys so other PoolManagers can
182
182
  # override them.
@@ -387,9 +387,12 @@ class PoolManager(RequestMethods):
387
387
  # Support relative URLs for redirecting.
388
388
  redirect_location = urljoin(url, redirect_location)
389
389
 
390
- # RFC 7231, Section 6.4.4
391
390
  if response.status == 303:
391
+ # Change the method according to RFC 9110, Section 15.4.4.
392
392
  method = "GET"
393
+ # And lose the body not to transfer anything sensitive.
394
+ kw["body"] = None
395
+ kw["headers"] = HTTPHeaderDict(kw["headers"])._prepare_for_method_change()
393
396
 
394
397
  retries = kw.get("retries")
395
398
  if not isinstance(retries, Retry):
@@ -1,11 +1,14 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
3
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
- # Copyright 2008-2016 Andrey Petrov and contributors
4
+ # Copyright (c) 2008-2020 Andrey Petrov and contributors
5
5
 
6
6
  from __future__ import absolute_import
7
7
 
8
+ import sys
9
+
8
10
  from .filepost import encode_multipart_formdata
11
+ from .packages import six
9
12
  from .packages.six.moves.urllib.parse import urlencode
10
13
 
11
14
  __all__ = ["RequestMethods"]
@@ -173,3 +176,21 @@ class RequestMethods(object):
173
176
  extra_kw.update(urlopen_kw)
174
177
 
175
178
  return self.urlopen(method, url, **extra_kw)
179
+
180
+
181
+ if not six.PY2:
182
+
183
+ class RequestModule(sys.modules[__name__].__class__):
184
+ def __call__(self, *args, **kwargs):
185
+ """
186
+ If user tries to call this module directly urllib3 v2.x style raise an error to the user
187
+ suggesting they may need urllib3 v2
188
+ """
189
+ raise TypeError(
190
+ "'module' object is not callable\n"
191
+ "urllib3.request() method is not supported in this release, "
192
+ "upgrade to urllib3 v2 to use it\n"
193
+ "see https://urllib3.readthedocs.io/en/stable/v2-migration-guide.html"
194
+ )
195
+
196
+ sys.modules[__name__].__class__ = RequestModule
@@ -1,12 +1,14 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
3
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
- # Copyright 2008-2016 Andrey Petrov and contributors
4
+ # Copyright (c) 2008-2020 Andrey Petrov and contributors
5
5
 
6
6
  from __future__ import absolute_import
7
7
 
8
8
  import io
9
9
  import logging
10
+ import sys
11
+ import warnings
10
12
  import zlib
11
13
  from contextlib import contextmanager
12
14
  from socket import error as SocketError
@@ -20,6 +22,7 @@ try:
20
22
  except ImportError:
21
23
  brotli = None
22
24
 
25
+ from . import util
23
26
  from ._collections import HTTPHeaderDict
24
27
  from .connection import BaseSSLError, HTTPException
25
28
  from .exceptions import (
@@ -486,6 +489,54 @@ class HTTPResponse(io.IOBase):
486
489
  if self._original_response and self._original_response.isclosed():
487
490
  self.release_conn()
488
491
 
492
+ def _fp_read(self, amt):
493
+ """
494
+ Read a response with the thought that reading the number of bytes
495
+ larger than can fit in a 32-bit int at a time via SSL in some
496
+ known cases leads to an overflow error that has to be prevented
497
+ if `amt` or `self.length_remaining` indicate that a problem may
498
+ happen.
499
+
500
+ The known cases:
501
+ * 3.8 <= CPython < 3.9.7 because of a bug
502
+ https://github.com/urllib3/urllib3/issues/2513#issuecomment-1152559900.
503
+ * urllib3 injected with pyOpenSSL-backed SSL-support.
504
+ * CPython < 3.10 only when `amt` does not fit 32-bit int.
505
+ """
506
+ assert self._fp
507
+ c_int_max = 2 ** 31 - 1
508
+ if (
509
+ (
510
+ (amt and amt > c_int_max)
511
+ or (self.length_remaining and self.length_remaining > c_int_max)
512
+ )
513
+ and not util.IS_SECURETRANSPORT
514
+ and (util.IS_PYOPENSSL or sys.version_info < (3, 10))
515
+ ):
516
+ buffer = io.BytesIO()
517
+ # Besides `max_chunk_amt` being a maximum chunk size, it
518
+ # affects memory overhead of reading a response by this
519
+ # method in CPython.
520
+ # `c_int_max` equal to 2 GiB - 1 byte is the actual maximum
521
+ # chunk size that does not lead to an overflow error, but
522
+ # 256 MiB is a compromise.
523
+ max_chunk_amt = 2 ** 28
524
+ while amt is None or amt != 0:
525
+ if amt is not None:
526
+ chunk_amt = min(amt, max_chunk_amt)
527
+ amt -= chunk_amt
528
+ else:
529
+ chunk_amt = max_chunk_amt
530
+ data = self._fp.read(chunk_amt)
531
+ if not data:
532
+ break
533
+ buffer.write(data)
534
+ del data # to reduce peak memory usage by `max_chunk_amt`.
535
+ return buffer.getvalue()
536
+ else:
537
+ # StringIO doesn't like amt=None
538
+ return self._fp.read(amt) if amt is not None else self._fp.read()
539
+
489
540
  def read(self, amt=None, decode_content=None, cache_content=False):
490
541
  """
491
542
  Similar to :meth:`http.client.HTTPResponse.read`, but with two additional
@@ -518,13 +569,11 @@ class HTTPResponse(io.IOBase):
518
569
  fp_closed = getattr(self._fp, "closed", False)
519
570
 
520
571
  with self._error_catcher():
572
+ data = self._fp_read(amt) if not fp_closed else b""
521
573
  if amt is None:
522
- # cStringIO doesn't like amt=None
523
- data = self._fp.read() if not fp_closed else b""
524
574
  flush_decoder = True
525
575
  else:
526
576
  cache_content = False
527
- data = self._fp.read(amt) if not fp_closed else b""
528
577
  if (
529
578
  amt != 0 and not data
530
579
  ): # Platform-specific: Buggy versions of Python.
@@ -620,9 +669,21 @@ class HTTPResponse(io.IOBase):
620
669
 
621
670
  # Backwards-compatibility methods for http.client.HTTPResponse
622
671
  def getheaders(self):
672
+ warnings.warn(
673
+ "HTTPResponse.getheaders() is deprecated and will be removed "
674
+ "in urllib3 v2.1.0. Instead access HTTPResponse.headers directly.",
675
+ category=DeprecationWarning,
676
+ stacklevel=2,
677
+ )
623
678
  return self.headers
624
679
 
625
680
  def getheader(self, name, default=None):
681
+ warnings.warn(
682
+ "HTTPResponse.getheader() is deprecated and will be removed "
683
+ "in urllib3 v2.1.0. Instead use HTTPResponse.headers.get(name, default).",
684
+ category=DeprecationWarning,
685
+ stacklevel=2,
686
+ )
626
687
  return self.headers.get(name, default)
627
688
 
628
689
  # Backwards compatibility for http.cookiejar
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
3
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
- # Copyright 2008-2016 Andrey Petrov and contributors
4
+ # Copyright (c) 2008-2020 Andrey Petrov and contributors
5
5
 
6
6
  from __future__ import absolute_import
7
7
 
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
3
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
- # Copyright 2008-2016 Andrey Petrov and contributors
4
+ # Copyright (c) 2008-2020 Andrey Petrov and contributors
5
5
 
6
6
  from __future__ import absolute_import
7
7
 
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
3
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
- # Copyright 2008-2016 Andrey Petrov and contributors
4
+ # Copyright (c) 2008-2020 Andrey Petrov and contributors
5
5
 
6
6
  from .ssl_ import create_urllib3_context, resolve_cert_reqs, resolve_ssl_version
7
7
 
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
3
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
- # Copyright 2008-2016 Andrey Petrov and contributors
4
+ # Copyright (c) 2008-2020 Andrey Petrov and contributors
5
5
 
6
6
  import collections
7
7
 
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
3
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
- # Copyright 2008-2016 Andrey Petrov and contributors
4
+ # Copyright (c) 2008-2020 Andrey Petrov and contributors
5
5
 
6
6
  from __future__ import absolute_import
7
7
 
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
3
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
- # Copyright 2008-2016 Andrey Petrov and contributors
4
+ # Copyright (c) 2008-2020 Andrey Petrov and contributors
5
5
 
6
6
  from __future__ import absolute_import
7
7
 
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
3
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
- # Copyright 2008-2016 Andrey Petrov and contributors
4
+ # Copyright (c) 2008-2020 Andrey Petrov and contributors
5
5
 
6
6
  from __future__ import absolute_import
7
7
 
@@ -240,7 +240,9 @@ class Retry(object):
240
240
  RETRY_AFTER_STATUS_CODES = frozenset([413, 429, 503])
241
241
 
242
242
  #: Default headers to be used for ``remove_headers_on_redirect``
243
- DEFAULT_REMOVE_HEADERS_ON_REDIRECT = frozenset(["Authorization"])
243
+ DEFAULT_REMOVE_HEADERS_ON_REDIRECT = frozenset(
244
+ ["Cookie", "Authorization", "Proxy-Authorization"]
245
+ )
244
246
 
245
247
  #: Maximum backoff time.
246
248
  DEFAULT_BACKOFF_MAX = 120
@@ -399,7 +401,7 @@ class Retry(object):
399
401
  def get_retry_after(self, response):
400
402
  """Get the value of Retry-After in seconds."""
401
403
 
402
- retry_after = response.getheader("Retry-After")
404
+ retry_after = response.headers.get("Retry-After")
403
405
 
404
406
  if retry_after is None:
405
407
  return None
@@ -1,16 +1,16 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
3
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
- # Copyright 2008-2016 Andrey Petrov and contributors
4
+ # Copyright (c) 2008-2020 Andrey Petrov and contributors
5
5
 
6
6
  from __future__ import absolute_import
7
7
 
8
+ import hashlib
8
9
  import hmac
9
10
  import os
10
11
  import sys
11
12
  import warnings
12
13
  from binascii import hexlify, unhexlify
13
- from hashlib import md5, sha1, sha256
14
14
 
15
15
  from ..exceptions import (
16
16
  InsecurePlatformWarning,
@@ -29,7 +29,10 @@ IS_SECURETRANSPORT = False
29
29
  ALPN_PROTOCOLS = ["http/1.1"]
30
30
 
31
31
  # Maps the length of a digest to a possible hash function producing this digest
32
- HASHFUNC_MAP = {32: md5, 40: sha1, 64: sha256}
32
+ HASHFUNC_MAP = {
33
+ length: getattr(hashlib, algorithm, None)
34
+ for length, algorithm in ((32, "md5"), (40, "sha1"), (64, "sha256"))
35
+ }
33
36
 
34
37
 
35
38
  def _const_compare_digest_backport(a, b):
@@ -196,9 +199,15 @@ def assert_fingerprint(cert, fingerprint):
196
199
 
197
200
  fingerprint = fingerprint.replace(":", "").lower()
198
201
  digest_length = len(fingerprint)
199
- hashfunc = HASHFUNC_MAP.get(digest_length)
200
- if not hashfunc:
202
+ if digest_length not in HASHFUNC_MAP:
201
203
  raise SSLError("Fingerprint of invalid length: {0}".format(fingerprint))
204
+ hashfunc = HASHFUNC_MAP.get(digest_length)
205
+ if hashfunc is None:
206
+ raise SSLError(
207
+ "Hash function implementation unavailable for fingerprint length: {0}".format(
208
+ digest_length
209
+ )
210
+ )
202
211
 
203
212
  # We need encode() here for py32; works on py2 and p33.
204
213
  fingerprint_bytes = unhexlify(fingerprint.encode())
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
3
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
- # Copyright 2008-2016 Andrey Petrov and contributors
4
+ # Copyright (c) 2008-2020 Andrey Petrov and contributors
5
5
 
6
6
  """The match_hostname() function from Python 3.3.3, essential when using SSL."""
7
7
 
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
3
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
- # Copyright 2008-2016 Andrey Petrov and contributors
4
+ # Copyright (c) 2008-2020 Andrey Petrov and contributors
5
5
 
6
6
  import io
7
7
  import socket
@@ -1,15 +1,14 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
3
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
- # Copyright 2008-2016 Andrey Petrov and contributors
4
+ # Copyright (c) 2008-2020 Andrey Petrov and contributors
5
5
 
6
6
  from __future__ import absolute_import
7
7
 
8
8
  import time
9
9
 
10
- # The default socket timeout, used by httplib to indicate that no timeout was
11
- # specified by the user
12
- from socket import _GLOBAL_DEFAULT_TIMEOUT
10
+ # The default socket timeout, used by httplib to indicate that no timeout was; specified by the user
11
+ from socket import _GLOBAL_DEFAULT_TIMEOUT, getdefaulttimeout
13
12
 
14
13
  from ..exceptions import TimeoutStateError
15
14
 
@@ -121,6 +120,10 @@ class Timeout(object):
121
120
  # __str__ provided for backwards compatibility
122
121
  __str__ = __repr__
123
122
 
123
+ @classmethod
124
+ def resolve_default_timeout(cls, timeout):
125
+ return getdefaulttimeout() if timeout is cls.DEFAULT_TIMEOUT else timeout
126
+
124
127
  @classmethod
125
128
  def _validate_timeout(cls, value, name):
126
129
  """Check that a timeout attribute is valid.
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
3
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
- # Copyright 2008-2016 Andrey Petrov and contributors
4
+ # Copyright (c) 2008-2020 Andrey Petrov and contributors
5
5
 
6
6
  from __future__ import absolute_import
7
7
 
@@ -55,7 +55,7 @@ _variations = [
55
55
  "(?:(?:%(hex)s:){0,6}%(hex)s)?::",
56
56
  ]
57
57
 
58
- UNRESERVED_PAT = r"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._!\-~"
58
+ UNRESERVED_PAT = r"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._\-~"
59
59
  IPV6_PAT = "(?:" + "|".join([x % _subs for x in _variations]) + ")"
60
60
  ZONE_ID_PAT = "(?:%25|%)(?:[" + UNRESERVED_PAT + "]|%[a-fA-F0-9]{2})+"
61
61
  IPV6_ADDRZ_PAT = r"\[" + IPV6_PAT + r"(?:" + ZONE_ID_PAT + r")?\]"
@@ -68,7 +68,7 @@ IPV6_ADDRZ_RE = re.compile("^" + IPV6_ADDRZ_PAT + "$")
68
68
  BRACELESS_IPV6_ADDRZ_RE = re.compile("^" + IPV6_ADDRZ_PAT[2:-2] + "$")
69
69
  ZONE_ID_RE = re.compile("(" + ZONE_ID_PAT + r")\]$")
70
70
 
71
- _HOST_PORT_PAT = ("^(%s|%s|%s)(?::([0-9]{0,5}))?$") % (
71
+ _HOST_PORT_PAT = ("^(%s|%s|%s)(?::0*?(|0|[1-9][0-9]{0,4}))?$") % (
72
72
  REG_NAME_PAT,
73
73
  IPV4_PAT,
74
74
  IPV6_ADDRZ_PAT,
@@ -284,6 +284,9 @@ def _normalize_host(host, scheme):
284
284
  if scheme in NORMALIZABLE_SCHEMES:
285
285
  is_ipv6 = IPV6_ADDRZ_RE.match(host)
286
286
  if is_ipv6:
287
+ # IPv6 hosts of the form 'a::b%zone' are encoded in a URL as
288
+ # such per RFC 6874: 'a::b%25zone'. Unquote the ZoneID
289
+ # separator as necessary to return a valid RFC 4007 scoped IP.
287
290
  match = ZONE_ID_RE.search(host)
288
291
  if match:
289
292
  start, end = match.span(1)
@@ -305,7 +308,7 @@ def _normalize_host(host, scheme):
305
308
 
306
309
 
307
310
  def _idna_encode(name):
308
- if name and any([ord(x) > 128 for x in name]):
311
+ if name and any(ord(x) >= 128 for x in name):
309
312
  try:
310
313
  import idna
311
314
  except ImportError:
@@ -336,7 +339,7 @@ def parse_url(url):
336
339
  """
337
340
  Given a url, return a parsed :class:`.Url` namedtuple. Best-effort is
338
341
  performed to parse incomplete urls. Fields not provided will be None.
339
- This parser is RFC 3986 compliant.
342
+ This parser is RFC 3986 and RFC 6874 compliant.
340
343
 
341
344
  The parser logic and helper functions are based heavily on
342
345
  work done in the ``rfc3986`` module.
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  # Modified Work: Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
3
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
- # Copyright 2008-2016 Andrey Petrov and contributors
4
+ # Copyright (c) 2008-2020 Andrey Petrov and contributors
5
5
 
6
6
  import errno
7
7
  import select
@@ -47,7 +47,6 @@ if sys.version_info >= (3, 5):
47
47
  def _retry_on_intr(fn, timeout):
48
48
  return fn(timeout)
49
49
 
50
-
51
50
  else:
52
51
  # Old and broken Pythons.
53
52
  def _retry_on_intr(fn, timeout):
@@ -160,7 +160,7 @@ class AccessGovernanceCPClient(object):
160
160
  :rtype: :class:`~oci.response.Response`
161
161
 
162
162
  :example:
163
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.138.0/accessgovernancecp/change_governance_instance_compartment.py.html>`__ to see an example of how to use change_governance_instance_compartment API.
163
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.139.0/accessgovernancecp/change_governance_instance_compartment.py.html>`__ to see an example of how to use change_governance_instance_compartment API.
164
164
  """
165
165
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
166
166
  required_arguments = ['governanceInstanceId']
@@ -270,7 +270,7 @@ class AccessGovernanceCPClient(object):
270
270
  :rtype: :class:`~oci.response.Response`
271
271
 
272
272
  :example:
273
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.138.0/accessgovernancecp/create_governance_instance.py.html>`__ to see an example of how to use create_governance_instance API.
273
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.139.0/accessgovernancecp/create_governance_instance.py.html>`__ to see an example of how to use create_governance_instance API.
274
274
  """
275
275
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
276
276
  required_arguments = []
@@ -375,7 +375,7 @@ class AccessGovernanceCPClient(object):
375
375
  :rtype: :class:`~oci.response.Response`
376
376
 
377
377
  :example:
378
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.138.0/accessgovernancecp/delete_governance_instance.py.html>`__ to see an example of how to use delete_governance_instance API.
378
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.139.0/accessgovernancecp/delete_governance_instance.py.html>`__ to see an example of how to use delete_governance_instance API.
379
379
  """
380
380
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
381
381
  required_arguments = ['governanceInstanceId']
@@ -476,7 +476,7 @@ class AccessGovernanceCPClient(object):
476
476
  :rtype: :class:`~oci.response.Response`
477
477
 
478
478
  :example:
479
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.138.0/accessgovernancecp/get_governance_instance.py.html>`__ to see an example of how to use get_governance_instance API.
479
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.139.0/accessgovernancecp/get_governance_instance.py.html>`__ to see an example of how to use get_governance_instance API.
480
480
  """
481
481
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
482
482
  required_arguments = ['governanceInstanceId']
@@ -574,7 +574,7 @@ class AccessGovernanceCPClient(object):
574
574
  :rtype: :class:`~oci.response.Response`
575
575
 
576
576
  :example:
577
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.138.0/accessgovernancecp/get_governance_instance_configuration.py.html>`__ to see an example of how to use get_governance_instance_configuration API.
577
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.139.0/accessgovernancecp/get_governance_instance_configuration.py.html>`__ to see an example of how to use get_governance_instance_configuration API.
578
578
  """
579
579
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
580
580
  required_arguments = ['compartmentId']
@@ -692,7 +692,7 @@ class AccessGovernanceCPClient(object):
692
692
  :rtype: :class:`~oci.response.Response`
693
693
 
694
694
  :example:
695
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.138.0/accessgovernancecp/list_governance_instances.py.html>`__ to see an example of how to use list_governance_instances API.
695
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.139.0/accessgovernancecp/list_governance_instances.py.html>`__ to see an example of how to use list_governance_instances API.
696
696
  """
697
697
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
698
698
  required_arguments = ['compartmentId']
@@ -823,7 +823,7 @@ class AccessGovernanceCPClient(object):
823
823
  :rtype: :class:`~oci.response.Response`
824
824
 
825
825
  :example:
826
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.138.0/accessgovernancecp/update_governance_instance.py.html>`__ to see an example of how to use update_governance_instance API.
826
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.139.0/accessgovernancecp/update_governance_instance.py.html>`__ to see an example of how to use update_governance_instance API.
827
827
  """
828
828
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
829
829
  required_arguments = ['governanceInstanceId']
@@ -935,7 +935,7 @@ class AccessGovernanceCPClient(object):
935
935
  :rtype: :class:`~oci.response.Response`
936
936
 
937
937
  :example:
938
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.138.0/accessgovernancecp/update_governance_instance_configuration.py.html>`__ to see an example of how to use update_governance_instance_configuration API.
938
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.139.0/accessgovernancecp/update_governance_instance_configuration.py.html>`__ to see an example of how to use update_governance_instance_configuration API.
939
939
  """
940
940
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
941
941
  required_arguments = ['compartmentId']