oci 2.129.1__py3-none-any.whl → 2.129.2__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 (265) hide show
  1. oci/access_governance_cp/access_governance_cp_client.py +8 -8
  2. oci/adm/application_dependency_management_client.py +36 -36
  3. oci/ai_anomaly_detection/anomaly_detection_client.py +36 -36
  4. oci/ai_document/ai_service_document_client.py +22 -22
  5. oci/ai_language/ai_service_language_client.py +44 -44
  6. oci/ai_speech/ai_service_speech_client.py +10 -10
  7. oci/ai_vision/ai_service_vision_client.py +25 -25
  8. oci/analytics/analytics_client.py +23 -23
  9. oci/announcements_service/announcement_client.py +4 -4
  10. oci/announcements_service/announcement_subscription_client.py +9 -9
  11. oci/announcements_service/announcements_preferences_client.py +4 -4
  12. oci/apigateway/api_gateway_client.py +21 -21
  13. oci/apigateway/deployment_client.py +6 -6
  14. oci/apigateway/gateway_client.py +6 -6
  15. oci/apigateway/subscribers_client.py +6 -6
  16. oci/apigateway/usage_plans_client.py +6 -6
  17. oci/apigateway/work_requests_client.py +5 -5
  18. oci/apm_config/config_client.py +9 -9
  19. oci/apm_control_plane/apm_domain_client.py +14 -14
  20. oci/apm_synthetics/apm_synthetic_client.py +28 -28
  21. oci/apm_traces/attributes_client.py +8 -8
  22. oci/apm_traces/query_client.py +2 -2
  23. oci/apm_traces/trace_client.py +4 -4
  24. oci/appmgmt_control/appmgmt_control_client.py +8 -8
  25. oci/artifacts/artifacts_client.py +32 -32
  26. oci/audit/audit_client.py +3 -3
  27. oci/autoscaling/auto_scaling_client.py +11 -11
  28. oci/bastion/bastion_client.py +15 -15
  29. oci/bds/bds_client.py +66 -66
  30. oci/blockchain/blockchain_platform_client.py +27 -27
  31. oci/budget/budget_client.py +10 -10
  32. oci/capacity_management/capacity_management_client.py +22 -22
  33. oci/certificates/certificates_client.py +5 -5
  34. oci/certificates_management/certificates_management_client.py +32 -32
  35. oci/cims/incident_client.py +8 -8
  36. oci/cims/user_client.py +1 -1
  37. oci/cloud_bridge/common_client.py +5 -5
  38. oci/cloud_bridge/discovery_client.py +14 -14
  39. oci/cloud_bridge/inventory_client.py +16 -16
  40. oci/cloud_bridge/ocb_agent_svc_client.py +23 -23
  41. oci/cloud_guard/cloud_guard_client.py +155 -155
  42. oci/cloud_migrations/migration_client.py +43 -43
  43. oci/cluster_placement_groups/cluster_placement_groups_cp_client.py +13 -13
  44. oci/compute_cloud_at_customer/compute_cloud_at_customer_client.py +12 -12
  45. oci/compute_instance_agent/compute_instance_agent_client.py +6 -6
  46. oci/compute_instance_agent/plugin_client.py +2 -2
  47. oci/compute_instance_agent/pluginconfig_client.py +1 -1
  48. oci/container_engine/container_engine_client.py +44 -44
  49. oci/container_instances/container_instance_client.py +18 -18
  50. oci/core/blockstorage_client.py +60 -60
  51. oci/core/compute_client.py +99 -99
  52. oci/core/compute_management_client.py +32 -32
  53. oci/core/virtual_network_client.py +247 -247
  54. oci/dashboard_service/dashboard_client.py +6 -6
  55. oci/dashboard_service/dashboard_group_client.py +6 -6
  56. oci/data_catalog/data_catalog_client.py +149 -149
  57. oci/data_flow/data_flow_client.py +42 -42
  58. oci/data_integration/data_integration_client.py +163 -163
  59. oci/data_labeling_service/data_labeling_management_client.py +17 -17
  60. oci/data_labeling_service_dataplane/data_labeling_client.py +15 -15
  61. oci/data_safe/data_safe_client.py +278 -278
  62. oci/data_science/data_science_client.py +91 -91
  63. oci/database/database_client.py +466 -352
  64. oci/database/database_client_composite_operations.py +38 -0
  65. oci/database/models/create_database_details.py +37 -2
  66. oci/database/models/key_store.py +7 -3
  67. oci/database/models/key_store_summary.py +7 -3
  68. oci/database_management/db_management_client.py +208 -208
  69. oci/database_management/diagnosability_client.py +4 -4
  70. oci/database_management/managed_my_sql_databases_client.py +7 -7
  71. oci/database_management/perfhub_client.py +1 -1
  72. oci/database_management/sql_tuning_client.py +17 -17
  73. oci/database_migration/database_migration_client.py +36 -36
  74. oci/database_tools/database_tools_client.py +23 -23
  75. oci/demand_signal/occ_demand_signal_client.py +7 -7
  76. oci/desktops/desktop_service_client.py +21 -21
  77. oci/devops/devops_client.py +89 -89
  78. oci/disaster_recovery/disaster_recovery_client.py +29 -29
  79. oci/dns/dns_client.py +52 -52
  80. oci/dts/appliance_export_job_client.py +6 -6
  81. oci/dts/shipping_vendors_client.py +1 -1
  82. oci/dts/transfer_appliance_client.py +8 -8
  83. oci/dts/transfer_appliance_entitlement_client.py +3 -3
  84. oci/dts/transfer_device_client.py +5 -5
  85. oci/dts/transfer_job_client.py +6 -6
  86. oci/dts/transfer_package_client.py +7 -7
  87. oci/em_warehouse/em_data_lake_client.py +13 -13
  88. oci/em_warehouse/em_warehouse_client.py +13 -13
  89. oci/email/email_client.py +31 -31
  90. oci/email_data_plane/email_dp_client.py +1 -1
  91. oci/events/events_client.py +6 -6
  92. oci/exceptions.py +46 -7
  93. oci/file_storage/file_storage_client.py +51 -51
  94. oci/fleet_software_update/fleet_software_update_client.py +44 -44
  95. oci/functions/functions_invoke_client.py +1 -1
  96. oci/functions/functions_management_client.py +16 -16
  97. oci/fusion_apps/data_masking_activity_client.py +3 -3
  98. oci/fusion_apps/fusion_applications_client.py +41 -41
  99. oci/fusion_apps/fusion_environment_client.py +15 -15
  100. oci/fusion_apps/fusion_environment_family_client.py +8 -8
  101. oci/fusion_apps/refresh_activity_client.py +4 -4
  102. oci/fusion_apps/scheduled_activity_client.py +2 -2
  103. oci/fusion_apps/service_attachment_client.py +2 -2
  104. oci/generative_ai/generative_ai_client.py +22 -22
  105. oci/generative_ai_inference/generative_ai_inference_client.py +4 -4
  106. oci/generic_artifacts_content/generic_artifacts_content_client.py +3 -3
  107. oci/globally_distributed_database/sharded_database_service_client.py +30 -30
  108. oci/golden_gate/golden_gate_client.py +68 -68
  109. oci/governance_rules_control_plane/governance_rule_client.py +15 -15
  110. oci/governance_rules_control_plane/work_request_client.py +5 -5
  111. oci/healthchecks/health_checks_client.py +17 -17
  112. oci/identity/identity_client.py +145 -145
  113. oci/identity_data_plane/dataplane_client.py +2 -2
  114. oci/identity_domains/identity_domains_client.py +300 -300
  115. oci/integration/integration_instance_client.py +15 -15
  116. oci/jms/java_management_service_client.py +66 -66
  117. oci/jms_java_downloads/java_download_client.py +25 -25
  118. oci/key_management/ekm_client.py +5 -5
  119. oci/key_management/kms_crypto_client.py +6 -6
  120. oci/key_management/kms_hsm_cluster_client.py +12 -12
  121. oci/key_management/kms_management_client.py +21 -21
  122. oci/key_management/kms_vault_client.py +14 -14
  123. oci/license_manager/license_manager_client.py +18 -18
  124. oci/limits/limits_client.py +4 -4
  125. oci/limits/quotas_client.py +7 -7
  126. oci/load_balancer/load_balancer_client.py +61 -61
  127. oci/lockbox/lockbox_client.py +24 -24
  128. oci/log_analytics/log_analytics_client.py +193 -193
  129. oci/logging/logging_management_client.py +30 -30
  130. oci/loggingingestion/logging_client.py +1 -1
  131. oci/loggingsearch/log_search_client.py +1 -1
  132. oci/management_agent/management_agent_client.py +28 -28
  133. oci/management_dashboard/dashx_apis_client.py +14 -14
  134. oci/marketplace/account_client.py +2 -2
  135. oci/marketplace/marketplace_client.py +30 -30
  136. oci/marketplace_private_offer/attachment_client.py +5 -5
  137. oci/marketplace_private_offer/offer_client.py +6 -6
  138. oci/marketplace_publisher/attachment_client.py +5 -5
  139. oci/marketplace_publisher/marketplace_publisher_client.py +71 -71
  140. oci/marketplace_publisher/offer_client.py +6 -6
  141. oci/media_services/media_services_client.py +60 -60
  142. oci/media_services/media_stream_client.py +2 -2
  143. oci/monitoring/monitoring_client.py +18 -18
  144. oci/mysql/channels_client.py +7 -7
  145. oci/mysql/db_backups_client.py +7 -7
  146. oci/mysql/db_system_client.py +17 -17
  147. oci/mysql/mysqlaas_client.py +7 -7
  148. oci/mysql/replicas_client.py +5 -5
  149. oci/mysql/work_requests_client.py +4 -4
  150. oci/network_firewall/network_firewall_client.py +80 -80
  151. oci/network_load_balancer/network_load_balancer_client.py +34 -34
  152. oci/nosql/nosql_client.py +24 -24
  153. oci/object_storage/__init__.py +2 -1
  154. oci/object_storage/object_storage_client.py +50 -50
  155. oci/object_storage/transfer/internal/download/DownloadConfiguration.py +232 -0
  156. oci/object_storage/transfer/internal/download/DownloadManager.py +902 -0
  157. oci/object_storage/transfer/internal/download/DownloadThread.py +375 -0
  158. oci/object_storage/transfer/internal/download/__init__.py +5 -0
  159. oci/oce/oce_instance_client.py +10 -10
  160. oci/oci_control_center/occ_metrics_client.py +3 -3
  161. oci/ocvp/cluster_client.py +5 -5
  162. oci/ocvp/esxi_host_client.py +8 -8
  163. oci/ocvp/sddc_client.py +14 -14
  164. oci/ocvp/work_request_client.py +4 -4
  165. oci/oda/management_client.py +59 -59
  166. oci/oda/oda_client.py +17 -17
  167. oci/oda/odapackage_client.py +7 -7
  168. oci/onesubscription/billing_schedule_client.py +1 -1
  169. oci/onesubscription/commitment_client.py +2 -2
  170. oci/onesubscription/computed_usage_client.py +3 -3
  171. oci/onesubscription/invoice_summary_client.py +2 -2
  172. oci/onesubscription/organization_subscription_client.py +1 -1
  173. oci/onesubscription/ratecard_client.py +1 -1
  174. oci/onesubscription/subscribed_service_client.py +2 -2
  175. oci/onesubscription/subscription_client.py +1 -1
  176. oci/ons/notification_control_plane_client.py +6 -6
  177. oci/ons/notification_data_plane_client.py +10 -10
  178. oci/opa/opa_instance_client.py +13 -13
  179. oci/opensearch/opensearch_cluster_backup_client.py +4 -4
  180. oci/opensearch/opensearch_cluster_client.py +14 -14
  181. oci/operator_access_control/access_requests_client.py +10 -10
  182. oci/operator_access_control/operator_actions_client.py +2 -2
  183. oci/operator_access_control/operator_control_assignment_client.py +8 -8
  184. oci/operator_access_control/operator_control_client.py +6 -6
  185. oci/opsi/operations_insights_client.py +175 -175
  186. oci/optimizer/optimizer_client.py +26 -26
  187. oci/os_management/event_client.py +8 -8
  188. oci/os_management/os_management_client.py +69 -69
  189. oci/os_management_hub/event_client.py +8 -8
  190. oci/os_management_hub/lifecycle_environment_client.py +12 -12
  191. oci/os_management_hub/managed_instance_client.py +31 -31
  192. oci/os_management_hub/managed_instance_group_client.py +25 -25
  193. oci/os_management_hub/management_station_client.py +10 -10
  194. oci/os_management_hub/onboarding_client.py +6 -6
  195. oci/os_management_hub/reporting_managed_instance_client.py +3 -3
  196. oci/os_management_hub/scheduled_job_client.py +7 -7
  197. oci/os_management_hub/software_source_client.py +27 -27
  198. oci/os_management_hub/work_request_client.py +4 -4
  199. oci/osp_gateway/address_rule_service_client.py +1 -1
  200. oci/osp_gateway/address_service_client.py +2 -2
  201. oci/osp_gateway/invoice_service_client.py +5 -5
  202. oci/osp_gateway/subscription_service_client.py +5 -5
  203. oci/osub_billing_schedule/billing_schedule_client.py +1 -1
  204. oci/osub_organization_subscription/organization_subscription_client.py +1 -1
  205. oci/osub_subscription/commitment_client.py +2 -2
  206. oci/osub_subscription/ratecard_client.py +1 -1
  207. oci/osub_subscription/subscription_client.py +1 -1
  208. oci/osub_usage/computed_usage_client.py +3 -3
  209. oci/psql/postgresql_client.py +33 -33
  210. oci/queue/queue_admin_client.py +11 -11
  211. oci/queue/queue_client.py +8 -8
  212. oci/recovery/database_recovery_client.py +25 -25
  213. oci/redis/redis_cluster_client.py +11 -11
  214. oci/resource_manager/resource_manager_client.py +52 -52
  215. oci/resource_scheduler/schedule_client.py +13 -13
  216. oci/resource_search/resource_search_client.py +3 -3
  217. oci/rover/rover_bundle_client.py +8 -8
  218. oci/rover/rover_cluster_client.py +8 -8
  219. oci/rover/rover_entitlement_client.py +6 -6
  220. oci/rover/rover_node_client.py +15 -15
  221. oci/rover/shape_client.py +1 -1
  222. oci/rover/work_requests_client.py +5 -5
  223. oci/sch/connector_plugins_client.py +2 -2
  224. oci/sch/service_connector_client.py +12 -12
  225. oci/secrets/secrets_client.py +3 -3
  226. oci/service_catalog/service_catalog_client.py +26 -26
  227. oci/service_manager_proxy/service_manager_proxy_client.py +2 -2
  228. oci/service_mesh/service_mesh_client.py +48 -48
  229. oci/stack_monitoring/stack_monitoring_client.py +64 -64
  230. oci/streaming/stream_admin_client.py +18 -18
  231. oci/streaming/stream_client.py +8 -8
  232. oci/tenant_manager_control_plane/domain_client.py +5 -5
  233. oci/tenant_manager_control_plane/domain_governance_client.py +5 -5
  234. oci/tenant_manager_control_plane/governance_client.py +2 -2
  235. oci/tenant_manager_control_plane/link_client.py +3 -3
  236. oci/tenant_manager_control_plane/orders_client.py +2 -2
  237. oci/tenant_manager_control_plane/organization_client.py +10 -10
  238. oci/tenant_manager_control_plane/recipient_invitation_client.py +5 -5
  239. oci/tenant_manager_control_plane/sender_invitation_client.py +5 -5
  240. oci/tenant_manager_control_plane/subscription_client.py +11 -11
  241. oci/tenant_manager_control_plane/work_request_client.py +4 -4
  242. oci/threat_intelligence/threatintel_client.py +5 -5
  243. oci/usage/resources_client.py +2 -2
  244. oci/usage/rewards_client.py +6 -6
  245. oci/usage/usagelimits_client.py +1 -1
  246. oci/usage_api/models/usage_summary.py +62 -0
  247. oci/usage_api/usageapi_client.py +33 -33
  248. oci/vault/vaults_client.py +13 -13
  249. oci/vbs_inst/vbs_instance_client.py +10 -10
  250. oci/version.py +1 -1
  251. oci/visual_builder/vb_instance_client.py +13 -13
  252. oci/vn_monitoring/vn_monitoring_client.py +12 -12
  253. oci/vulnerability_scanning/vulnerability_scanning_client.py +58 -58
  254. oci/waa/waa_client.py +13 -13
  255. oci/waa/work_request_client.py +4 -4
  256. oci/waas/redirect_client.py +6 -6
  257. oci/waas/waas_client.py +66 -66
  258. oci/waf/waf_client.py +24 -24
  259. oci/work_requests/work_request_client.py +4 -4
  260. {oci-2.129.1.dist-info → oci-2.129.2.dist-info}/METADATA +1 -1
  261. {oci-2.129.1.dist-info → oci-2.129.2.dist-info}/RECORD +265 -261
  262. {oci-2.129.1.dist-info → oci-2.129.2.dist-info}/LICENSE.txt +0 -0
  263. {oci-2.129.1.dist-info → oci-2.129.2.dist-info}/THIRD_PARTY_LICENSES.txt +0 -0
  264. {oci-2.129.1.dist-info → oci-2.129.2.dist-info}/WHEEL +0 -0
  265. {oci-2.129.1.dist-info → oci-2.129.2.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,375 @@
1
+ # coding: utf-8
2
+ # Copyright (c) 2016, 2024, 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
+ import six
6
+ import time
7
+ import multiprocessing
8
+ from enum import Enum
9
+ from oci.exceptions import DownloadTerminated, DownloadFailedIncorrectDownloadSize
10
+
11
+
12
+ class DownloadState(Enum):
13
+ DOWNLOADING = 0
14
+ PAUSED = 1
15
+ TERMINATED = 2
16
+
17
+
18
+ class DownloadThread(object):
19
+ """
20
+ The main class whose methods the threads use to perform the downloads and write to the stream.
21
+
22
+ :param: DownloadManager download_manager: The download manger object
23
+
24
+ :param: DownloadConfiguration download_configuration: The download configuration object
25
+
26
+ :param: ObjectStorageClient object_storage_client: The object storage client
27
+
28
+ :param: str namespace_name: The namespace name
29
+
30
+ :param: str bucket_name: The bucket name
31
+
32
+ :param: str object_name: The object name
33
+
34
+ :param: bytestream stream: The stream to write into
35
+
36
+ :param: int bytes_downloaded: The bytes downloaded so far before invoking this.
37
+
38
+ :param: int object_size: The total size of the download in bytes, including the bytes already downloaded
39
+
40
+ :param function progress_callback: (optional)
41
+ This function is used to update the progress bar of the download operation.
42
+ The arguments that it takes are (total_bytes_downloaded_so_far, total_bytes_to_download)
43
+
44
+ :param any start_byte: (optional)
45
+ The byte in the content of the object from which to start the download. The default value is 0
46
+
47
+ :param any end_byte: (optional)
48
+ The byte in the content of the object from which to stop the download. The default value is the last byte of the
49
+ object.
50
+ Note: Both the start_byte and end_byte are included in the download.
51
+
52
+ :param: bool did_some_parts_fail: True if some parts fail to download.
53
+
54
+ :param: dict failed_parts: A dictionary filled with all the failed parts. Key: Failed part, Value: Error
55
+ {(start_byte, end_byte) : error, (start_byte, end_byte): error,...}
56
+
57
+ :param str version_id: (optional)
58
+ VersionId used to identify a particular version of the object
59
+
60
+ :param str if_match: (optional)
61
+ The entity tag (ETag) to match with the ETag of an existing resource. If the specified ETag matches
62
+ the ETag of the existing resource, GET and HEAD requests will return the resource and PUT and POST
63
+ requests will upload the resource.
64
+
65
+ :param str if_none_match: (optional)
66
+ The entity tag (ETag) to avoid matching. Wildcards ('*') are not allowed. If the specified ETag does
67
+ not match the ETag of the existing resource, the request returns the expected response. If the ETag
68
+ matches the ETag of the existing resource, the request returns an HTTP 304 status without a response
69
+ body.
70
+
71
+ :param str opc_client_request_id: (optional)
72
+ The client request ID for tracing.
73
+
74
+
75
+ :param str opc_sse_customer_algorithm: (optional)
76
+ The optional header that specifies \"AES256\" as the encryption algorithm. For more information, see
77
+ `Using Your Own Keys for Server-Side Encryption`__.
78
+
79
+ __ https://docs.cloud.oracle.com/Content/Object/Tasks/usingyourencryptionkeys.htm
80
+
81
+ :param str opc_sse_customer_key: (optional)
82
+ The optional header that specifies the base64-encoded 256-bit encryption key to use to encrypt or
83
+ decrypt the data. For more information, see
84
+ `Using Your Own Keys for Server-Side Encryption`__.
85
+
86
+ __ https://docs.cloud.oracle.com/Content/Object/Tasks/usingyourencryptionkeys.htm
87
+
88
+ :param str opc_sse_customer_key_sha256: (optional)
89
+ The optional header that specifies the base64-encoded SHA256 hash of the encryption key. This
90
+ value is used to check the integrity of the encryption key. For more information, see
91
+ `Using Your Own Keys for Server-Side Encryption`__.
92
+
93
+ __ https://docs.cloud.oracle.com/Content/Object/Tasks/usingyourencryptionkeys.htm
94
+
95
+ :param str http_response_content_disposition: (optional)
96
+ Specify this query parameter to override the value of the Content-Disposition response header in the
97
+ GetObject response.
98
+
99
+ :param str http_response_cache_control: (optional)
100
+ Specify this query parameter to override the Cache-Control response header in the GetObject
101
+ response.
102
+
103
+ :param str http_response_content_type: (optional)
104
+ Specify this query parameter to override the Content-Type response header in the GetObject response.
105
+
106
+ :param str http_response_content_language: (optional)
107
+ Specify this query parameter to override the Content-Language response header in the GetObject
108
+ response.
109
+
110
+ :param str http_response_content_encoding: (optional)
111
+ Specify this query parameter to override the Content-Encoding response header in the GetObject
112
+ response.
113
+
114
+ :param str http_response_expires: (optional)
115
+ Specify this query parameter to override the Expires response header in the GetObject response.
116
+
117
+ :param obj retry_strategy: (optional)
118
+ A retry strategy to apply to this specific operation/call. This will override any retry strategy
119
+ set at the client-level.
120
+
121
+ This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation
122
+ uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
123
+ The specifics of the default retry strategy are described
124
+ `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.
125
+
126
+ To have this operation explicitly not perform any retries, pass an instance of
127
+ :py:class:`~oci.retry.NoneRetryStrategy`.
128
+
129
+ :param bool allow_control_chars: (optional)
130
+ allow_control_chars is a boolean to indicate whether or not this request should allow control
131
+ characters in the response object.
132
+ By default, the response will not allow control characters in strings
133
+ """
134
+ def __init__(self,
135
+ download_manager,
136
+ download_config,
137
+ object_storage_client,
138
+ namespace_name,
139
+ bucket_name,
140
+ object_name,
141
+ stream,
142
+ bytes_downloaded,
143
+ object_size,
144
+ progress_callback=None,
145
+ start_byte=0,
146
+ end_byte=None,
147
+ **kwargs
148
+ ):
149
+ self.download_manager = download_manager
150
+ self.download_config = download_config
151
+ self.object_storage_client = object_storage_client
152
+ self.namespace_name = namespace_name
153
+ self.bucket_name = bucket_name
154
+ self.object_name = object_name
155
+ self.stream = stream
156
+ self.stream_original_start = self.stream.tell()
157
+ self.bytes_downloaded = bytes_downloaded
158
+ self.object_size = object_size
159
+ self.progress_callback = progress_callback
160
+ self.start_byte = start_byte
161
+ self.end_byte = end_byte
162
+ self.did_some_parts_fail = False
163
+ self.failed_parts = {}
164
+
165
+ # Don't accept unknown kwargs
166
+ expected_kwargs = [
167
+ "allow_control_chars",
168
+ "retry_strategy",
169
+ "version_id",
170
+ "if_match",
171
+ "if_none_match",
172
+ "opc_client_request_id",
173
+ "opc_sse_customer_algorithm",
174
+ "opc_sse_customer_key",
175
+ "opc_sse_customer_key_sha256",
176
+ "http_response_content_disposition",
177
+ "http_response_cache_control",
178
+ "http_response_content_type",
179
+ "http_response_content_language",
180
+ "http_response_content_encoding",
181
+ "http_response_expires"
182
+ ]
183
+ extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs]
184
+ if extra_kwargs:
185
+ raise ValueError(
186
+ f"get_object got unknown kwargs: {extra_kwargs!r}")
187
+
188
+ self.header_args = kwargs
189
+
190
+ def get_start_bytes(self):
191
+ # Get the start bytes of the parts
192
+ start_byte = self.start_byte
193
+ while start_byte <= self.end_byte:
194
+ yield start_byte
195
+ start_byte += self.download_config.part_size_in_bytes
196
+
197
+ def get_response(self):
198
+ # Get the response from the multipart get operation
199
+ if self.did_some_parts_fail:
200
+ return -1
201
+
202
+ return self.bytes_downloaded
203
+
204
+ def get_part_with_start_byte(self, part_start_byte):
205
+ # This is overwritten by the SequentialDownloader and ParallelDownloader.
206
+ # This performs the get operation for the specific part.
207
+ pass
208
+
209
+ def write_part_to_stream(self, part_content, part_start_byte):
210
+ # This is overwritten by the SequentialDownloader and ParallelDownloader.
211
+ # This writes the content for the response of the get operation of the part into the stream.
212
+ pass
213
+
214
+
215
+ class SequentialDownloader(DownloadThread):
216
+
217
+ def __init__(self,
218
+ download_manager,
219
+ download_config,
220
+ object_storage_client,
221
+ namespace_name,
222
+ bucket_name,
223
+ object_name,
224
+ stream,
225
+ bytes_downloaded,
226
+ object_size,
227
+ progress_callback=None,
228
+ start_byte=0,
229
+ end_byte=None,
230
+ **kwargs
231
+ ):
232
+ super(SequentialDownloader, self).__init__(download_manager, download_config, object_storage_client,
233
+ namespace_name, bucket_name, object_name, stream, bytes_downloaded,
234
+ object_size, progress_callback, start_byte,
235
+ end_byte, **kwargs)
236
+
237
+ def write_part_to_stream(self, part_content, part_start_byte):
238
+ stream_start = self.stream_original_start + part_start_byte - self.start_byte
239
+ self.stream.seek(stream_start)
240
+ self.stream.write(part_content)
241
+ stream_end = self.stream.tell()
242
+ self.callback(stream_end - stream_start)
243
+ return stream_end - stream_start
244
+
245
+ def callback(self, downloaded_bytes):
246
+ self.bytes_downloaded += downloaded_bytes
247
+ total_bytes_downloaded = self.bytes_downloaded
248
+
249
+ if self.progress_callback:
250
+ self.progress_callback(total_bytes_downloaded, self.object_size)
251
+
252
+ def get_part_with_start_byte(self, part_start_byte):
253
+
254
+ while self.download_manager.state == DownloadState.PAUSED:
255
+ time.sleep(self.download_config.pause_wait_in_seconds)
256
+
257
+ if self.download_manager.state == DownloadState.TERMINATED:
258
+ self.stream.seek(0)
259
+ self.stream.truncate()
260
+ self.stream.close()
261
+
262
+ raise DownloadTerminated("Download canceled, Thread Stopped")
263
+
264
+ if self.end_byte:
265
+ part_end_byte = min(self.end_byte, part_start_byte + self.download_config.part_size_in_bytes - 1)
266
+ else:
267
+ part_end_byte = part_start_byte + self.download_config.part_size_in_bytes - 1
268
+
269
+ object_storage_client = self.object_storage_client
270
+ range_header = f"bytes={part_start_byte}-{part_end_byte}"
271
+
272
+ if 'retry_strategy' not in self.header_args:
273
+ self.header_args['retry_strategy'] = self.download_config.make_retry_strategy()
274
+
275
+ try:
276
+ response = object_storage_client.get_object(self.namespace_name, self.bucket_name, self.object_name,
277
+ range=range_header, **self.header_args)
278
+ part_content = response.data.content
279
+ response.data.close()
280
+ part_size_in_bytes = part_end_byte - part_start_byte + 1
281
+ if part_size_in_bytes > 0:
282
+ bytes_written = self.write_part_to_stream(part_content, part_start_byte)
283
+ if bytes_written != part_size_in_bytes:
284
+ self.did_some_parts_fail = True
285
+ self.failed_parts[(part_start_byte, part_end_byte)] = DownloadFailedIncorrectDownloadSize(
286
+ bytes_written, part_size_in_bytes
287
+ )
288
+
289
+ except Exception as e:
290
+ self.did_some_parts_fail = True
291
+ self.failed_parts[(part_start_byte, part_end_byte)] = e
292
+
293
+
294
+ class ParallelDownloader(DownloadThread):
295
+ def __init__(self,
296
+ download_manager,
297
+ download_config,
298
+ object_storage_client,
299
+ namespace_name,
300
+ bucket_name,
301
+ object_name,
302
+ stream,
303
+ bytes_downloaded,
304
+ object_size,
305
+ progress_callback=None,
306
+ start_byte=0,
307
+ end_byte=None,
308
+ **kwargs
309
+ ):
310
+ super(ParallelDownloader, self).__init__(download_manager, download_config, object_storage_client,
311
+ namespace_name, bucket_name, object_name, stream, bytes_downloaded,
312
+ object_size, progress_callback,
313
+ start_byte, end_byte, **kwargs)
314
+
315
+ self.stream_lock = multiprocessing.Lock()
316
+ self.callback_lock = multiprocessing.Lock()
317
+ self.failed_parts_lock = multiprocessing.Lock()
318
+
319
+ def write_part_to_stream(self, part_content, part_start_byte):
320
+ with self.stream_lock:
321
+ stream_start = self.stream_original_start + part_start_byte - self.start_byte
322
+ self.stream.seek(stream_start)
323
+ self.stream.write(part_content)
324
+ stream_end = self.stream.tell()
325
+ self.callback(stream_end - stream_start)
326
+ return stream_end - stream_start
327
+
328
+ def callback(self, downloaded_bytes):
329
+ with self.callback_lock:
330
+ self.bytes_downloaded += downloaded_bytes
331
+ total_bytes_downloaded = self.bytes_downloaded
332
+
333
+ if self.progress_callback:
334
+ self.progress_callback(total_bytes_downloaded, self.object_size)
335
+
336
+ def get_part_with_start_byte(self, part_start_byte):
337
+ while self.download_manager.state == DownloadState.PAUSED:
338
+ time.sleep(self.download_config.pause_wait_in_seconds)
339
+ if self.download_manager.state == DownloadState.TERMINATED:
340
+ self.stream.seek(0)
341
+ self.stream.truncate()
342
+ self.stream.close()
343
+ raise DownloadTerminated("Download canceled, Thread Stopped")
344
+
345
+ if self.end_byte:
346
+ part_end_byte = min(self.end_byte, part_start_byte + self.download_config.part_size_in_bytes - 1)
347
+ else:
348
+ part_end_byte = part_start_byte + self.download_config.part_size_in_bytes - 1
349
+
350
+ object_storage_client = self.object_storage_client
351
+ range_header = f"bytes={part_start_byte}-{part_end_byte}"
352
+
353
+ if 'retry_strategy' not in self.header_args:
354
+ self.header_args['retry_strategy'] = self.download_config.make_retry_strategy()
355
+
356
+ try:
357
+ response = object_storage_client.get_object(self.namespace_name, self.bucket_name, self.object_name,
358
+ range=range_header, **self.header_args)
359
+ part_content = response.data.content
360
+ response.data.close()
361
+ part_size_in_bytes = part_end_byte - part_start_byte + 1
362
+ if part_size_in_bytes > 0:
363
+ bytes_written = self.write_part_to_stream(part_content, part_start_byte)
364
+ if bytes_written != part_size_in_bytes:
365
+ with self.failed_parts_lock:
366
+ self.did_some_parts_fail = True
367
+ self.failed_parts[(part_start_byte, part_end_byte)] = DownloadFailedIncorrectDownloadSize(
368
+ bytes_written, part_size_in_bytes
369
+ )
370
+
371
+ except Exception as e:
372
+
373
+ with self.failed_parts_lock:
374
+ self.did_some_parts_fail = True
375
+ self.failed_parts[(part_start_byte, part_end_byte)] = e
@@ -0,0 +1,5 @@
1
+ # coding: utf-8
2
+ # Copyright (c) 2016, 2024, 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
+ # noqa: W391, W292
@@ -160,7 +160,7 @@ class OceInstanceClient(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.129.1/oce/change_oce_instance_compartment.py.html>`__ to see an example of how to use change_oce_instance_compartment API.
163
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/oce/change_oce_instance_compartment.py.html>`__ to see an example of how to use change_oce_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 = ['oceInstanceId']
@@ -270,7 +270,7 @@ class OceInstanceClient(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.129.1/oce/create_oce_instance.py.html>`__ to see an example of how to use create_oce_instance API.
273
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/oce/create_oce_instance.py.html>`__ to see an example of how to use create_oce_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 = []
@@ -366,7 +366,7 @@ class OceInstanceClient(object):
366
366
  :rtype: :class:`~oci.response.Response`
367
367
 
368
368
  :example:
369
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/oce/delete_oce_instance.py.html>`__ to see an example of how to use delete_oce_instance API.
369
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/oce/delete_oce_instance.py.html>`__ to see an example of how to use delete_oce_instance API.
370
370
  """
371
371
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
372
372
  required_arguments = ['oceInstanceId']
@@ -464,7 +464,7 @@ class OceInstanceClient(object):
464
464
  :rtype: :class:`~oci.response.Response`
465
465
 
466
466
  :example:
467
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/oce/get_oce_instance.py.html>`__ to see an example of how to use get_oce_instance API.
467
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/oce/get_oce_instance.py.html>`__ to see an example of how to use get_oce_instance API.
468
468
  """
469
469
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
470
470
  required_arguments = ['oceInstanceId']
@@ -562,7 +562,7 @@ class OceInstanceClient(object):
562
562
  :rtype: :class:`~oci.response.Response`
563
563
 
564
564
  :example:
565
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/oce/get_work_request.py.html>`__ to see an example of how to use get_work_request API.
565
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/oce/get_work_request.py.html>`__ to see an example of how to use get_work_request API.
566
566
  """
567
567
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
568
568
  required_arguments = ['workRequestId']
@@ -689,7 +689,7 @@ class OceInstanceClient(object):
689
689
  :rtype: :class:`~oci.response.Response`
690
690
 
691
691
  :example:
692
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/oce/list_oce_instances.py.html>`__ to see an example of how to use list_oce_instances API.
692
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/oce/list_oce_instances.py.html>`__ to see an example of how to use list_oce_instances API.
693
693
  """
694
694
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
695
695
  required_arguments = ['compartmentId']
@@ -823,7 +823,7 @@ class OceInstanceClient(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.129.1/oce/list_work_request_errors.py.html>`__ to see an example of how to use list_work_request_errors API.
826
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/oce/list_work_request_errors.py.html>`__ to see an example of how to use list_work_request_errors API.
827
827
  """
828
828
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
829
829
  required_arguments = ['workRequestId']
@@ -937,7 +937,7 @@ class OceInstanceClient(object):
937
937
  :rtype: :class:`~oci.response.Response`
938
938
 
939
939
  :example:
940
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/oce/list_work_request_logs.py.html>`__ to see an example of how to use list_work_request_logs API.
940
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/oce/list_work_request_logs.py.html>`__ to see an example of how to use list_work_request_logs API.
941
941
  """
942
942
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
943
943
  required_arguments = ['workRequestId']
@@ -1054,7 +1054,7 @@ class OceInstanceClient(object):
1054
1054
  :rtype: :class:`~oci.response.Response`
1055
1055
 
1056
1056
  :example:
1057
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/oce/list_work_requests.py.html>`__ to see an example of how to use list_work_requests API.
1057
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/oce/list_work_requests.py.html>`__ to see an example of how to use list_work_requests API.
1058
1058
  """
1059
1059
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
1060
1060
  required_arguments = ['compartmentId']
@@ -1163,7 +1163,7 @@ class OceInstanceClient(object):
1163
1163
  :rtype: :class:`~oci.response.Response`
1164
1164
 
1165
1165
  :example:
1166
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/oce/update_oce_instance.py.html>`__ to see an example of how to use update_oce_instance API.
1166
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/oce/update_oce_instance.py.html>`__ to see an example of how to use update_oce_instance API.
1167
1167
  """
1168
1168
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
1169
1169
  required_arguments = ['oceInstanceId']
@@ -153,7 +153,7 @@ class OccMetricsClient(object):
153
153
  :rtype: :class:`~oci.response.Response`
154
154
 
155
155
  :example:
156
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/ocicontrolcenter/list_metric_properties.py.html>`__ to see an example of how to use list_metric_properties API.
156
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/ocicontrolcenter/list_metric_properties.py.html>`__ to see an example of how to use list_metric_properties API.
157
157
  """
158
158
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
159
159
  required_arguments = ['namespaceName', 'compartmentId']
@@ -269,7 +269,7 @@ class OccMetricsClient(object):
269
269
  :rtype: :class:`~oci.response.Response`
270
270
 
271
271
  :example:
272
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/ocicontrolcenter/list_namespaces.py.html>`__ to see an example of how to use list_namespaces API.
272
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/ocicontrolcenter/list_namespaces.py.html>`__ to see an example of how to use list_namespaces API.
273
273
  """
274
274
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
275
275
  required_arguments = ['compartmentId']
@@ -375,7 +375,7 @@ class OccMetricsClient(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.129.1/ocicontrolcenter/request_summarized_metric_data.py.html>`__ to see an example of how to use request_summarized_metric_data API.
378
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/ocicontrolcenter/request_summarized_metric_data.py.html>`__ to see an example of how to use request_summarized_metric_data API.
379
379
  """
380
380
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
381
381
  required_arguments = []
@@ -159,7 +159,7 @@ class ClusterClient(object):
159
159
  :rtype: :class:`~oci.response.Response`
160
160
 
161
161
  :example:
162
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/ocvp/create_cluster.py.html>`__ to see an example of how to use create_cluster API.
162
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/ocvp/create_cluster.py.html>`__ to see an example of how to use create_cluster API.
163
163
  """
164
164
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
165
165
  required_arguments = []
@@ -263,7 +263,7 @@ class ClusterClient(object):
263
263
  :rtype: :class:`~oci.response.Response`
264
264
 
265
265
  :example:
266
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/ocvp/delete_cluster.py.html>`__ to see an example of how to use delete_cluster API.
266
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/ocvp/delete_cluster.py.html>`__ to see an example of how to use delete_cluster API.
267
267
  """
268
268
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
269
269
  required_arguments = ['clusterId']
@@ -364,7 +364,7 @@ class ClusterClient(object):
364
364
  :rtype: :class:`~oci.response.Response`
365
365
 
366
366
  :example:
367
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/ocvp/get_cluster.py.html>`__ to see an example of how to use get_cluster API.
367
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/ocvp/get_cluster.py.html>`__ to see an example of how to use get_cluster API.
368
368
  """
369
369
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
370
370
  required_arguments = ['clusterId']
@@ -510,7 +510,7 @@ class ClusterClient(object):
510
510
  :rtype: :class:`~oci.response.Response`
511
511
 
512
512
  :example:
513
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/ocvp/list_clusters.py.html>`__ to see an example of how to use list_clusters API.
513
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/ocvp/list_clusters.py.html>`__ to see an example of how to use list_clusters API.
514
514
  """
515
515
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
516
516
  required_arguments = []
@@ -656,7 +656,7 @@ class ClusterClient(object):
656
656
  :rtype: :class:`~oci.response.Response`
657
657
 
658
658
  :example:
659
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/ocvp/update_cluster.py.html>`__ to see an example of how to use update_cluster API.
659
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/ocvp/update_cluster.py.html>`__ to see an example of how to use update_cluster API.
660
660
  """
661
661
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
662
662
  required_arguments = ['clusterId']
@@ -157,7 +157,7 @@ class EsxiHostClient(object):
157
157
  :rtype: :class:`~oci.response.Response`
158
158
 
159
159
  :example:
160
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/ocvp/create_esxi_host.py.html>`__ to see an example of how to use create_esxi_host API.
160
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/ocvp/create_esxi_host.py.html>`__ to see an example of how to use create_esxi_host API.
161
161
  """
162
162
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
163
163
  required_arguments = []
@@ -269,7 +269,7 @@ class EsxiHostClient(object):
269
269
  :rtype: :class:`~oci.response.Response`
270
270
 
271
271
  :example:
272
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/ocvp/delete_esxi_host.py.html>`__ to see an example of how to use delete_esxi_host API.
272
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/ocvp/delete_esxi_host.py.html>`__ to see an example of how to use delete_esxi_host API.
273
273
  """
274
274
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
275
275
  required_arguments = ['esxiHostId']
@@ -370,7 +370,7 @@ class EsxiHostClient(object):
370
370
  :rtype: :class:`~oci.response.Response`
371
371
 
372
372
  :example:
373
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/ocvp/get_esxi_host.py.html>`__ to see an example of how to use get_esxi_host API.
373
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/ocvp/get_esxi_host.py.html>`__ to see an example of how to use get_esxi_host API.
374
374
  """
375
375
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
376
376
  required_arguments = ['esxiHostId']
@@ -485,7 +485,7 @@ class EsxiHostClient(object):
485
485
  :rtype: :class:`~oci.response.Response`
486
486
 
487
487
  :example:
488
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/ocvp/inplace_upgrade.py.html>`__ to see an example of how to use inplace_upgrade API.
488
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/ocvp/inplace_upgrade.py.html>`__ to see an example of how to use inplace_upgrade API.
489
489
  """
490
490
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
491
491
  required_arguments = ['esxiHostId']
@@ -658,7 +658,7 @@ class EsxiHostClient(object):
658
658
  :rtype: :class:`~oci.response.Response`
659
659
 
660
660
  :example:
661
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/ocvp/list_esxi_hosts.py.html>`__ to see an example of how to use list_esxi_hosts API.
661
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/ocvp/list_esxi_hosts.py.html>`__ to see an example of how to use list_esxi_hosts API.
662
662
  """
663
663
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
664
664
  required_arguments = []
@@ -815,7 +815,7 @@ class EsxiHostClient(object):
815
815
  :rtype: :class:`~oci.response.Response`
816
816
 
817
817
  :example:
818
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/ocvp/replace_host.py.html>`__ to see an example of how to use replace_host API.
818
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/ocvp/replace_host.py.html>`__ to see an example of how to use replace_host API.
819
819
  """
820
820
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
821
821
  required_arguments = ['esxiHostId']
@@ -940,7 +940,7 @@ class EsxiHostClient(object):
940
940
  :rtype: :class:`~oci.response.Response`
941
941
 
942
942
  :example:
943
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/ocvp/swap_billing.py.html>`__ to see an example of how to use swap_billing API.
943
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/ocvp/swap_billing.py.html>`__ to see an example of how to use swap_billing API.
944
944
  """
945
945
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
946
946
  required_arguments = ['esxiHostId', 'swapBillingHostId']
@@ -1061,7 +1061,7 @@ class EsxiHostClient(object):
1061
1061
  :rtype: :class:`~oci.response.Response`
1062
1062
 
1063
1063
  :example:
1064
- Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.1/ocvp/update_esxi_host.py.html>`__ to see an example of how to use update_esxi_host API.
1064
+ Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/2.129.2/ocvp/update_esxi_host.py.html>`__ to see an example of how to use update_esxi_host API.
1065
1065
  """
1066
1066
  # Required path and query arguments. These are in camelCase to replace values in service endpoints.
1067
1067
  required_arguments = ['esxiHostId']