yandexcloud 0.336.0__py3-none-any.whl → 0.338.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 (193) hide show
  1. yandex/cloud/ai/assistants/v1/runs/run_service_pb2.py +11 -3
  2. yandex/cloud/ai/assistants/v1/runs/run_service_pb2.pyi +34 -0
  3. yandex/cloud/ai/assistants/v1/runs/run_service_pb2_grpc.py +45 -0
  4. yandex/cloud/ai/assistants/v1/runs/run_service_pb2_grpc.pyi +26 -0
  5. yandex/cloud/ai/dataset/v1/dataset_service_pb2.py +24 -24
  6. yandex/cloud/ai/dataset/v1/dataset_service_pb2.pyi +11 -1
  7. yandex/cloud/ai/foundation_models/v1/batch_inference_task_status_pb2.py +37 -0
  8. yandex/cloud/ai/foundation_models/v1/batch_inference_task_status_pb2.pyi +43 -0
  9. yandex/cloud/ai/foundation_models/v1/batch_inference_task_status_pb2_grpc.py +24 -0
  10. yandex/cloud/ai/foundation_models/v1/batch_inference_task_status_pb2_grpc.pyi +17 -0
  11. yandex/cloud/ai/foundation_models/v1/embedding/embedding_service_pb2.py +8 -7
  12. yandex/cloud/ai/foundation_models/v1/embedding/embedding_service_pb2.pyi +9 -1
  13. yandex/cloud/ai/foundation_models/v1/text_generation/text_generation_service_pb2.py +26 -15
  14. yandex/cloud/ai/foundation_models/v1/text_generation/text_generation_service_pb2.pyi +87 -0
  15. yandex/cloud/ai/foundation_models/v1/text_generation/text_generation_service_pb2_grpc.py +77 -0
  16. yandex/cloud/ai/foundation_models/v1/text_generation/text_generation_service_pb2_grpc.pyi +38 -0
  17. yandex/cloud/ai/tuning/v1/tuning_task_pb2.py +12 -5
  18. yandex/cloud/ai/tuning/v1/tuning_task_pb2.pyi +29 -1
  19. yandex/cloud/airflow/v1/cluster_pb2.py +36 -35
  20. yandex/cloud/airflow/v1/cluster_pb2.pyi +15 -2
  21. yandex/cloud/airflow/v1/cluster_service_pb2.py +42 -41
  22. yandex/cloud/airflow/v1/cluster_service_pb2.pyi +17 -4
  23. yandex/cloud/airflow/v1/maintenance_pb2.py +53 -0
  24. yandex/cloud/airflow/v1/maintenance_pb2.pyi +123 -0
  25. yandex/cloud/airflow/v1/maintenance_pb2_grpc.py +24 -0
  26. yandex/cloud/airflow/v1/maintenance_pb2_grpc.pyi +17 -0
  27. yandex/cloud/backup/v1/backup_service_pb2.py +44 -40
  28. yandex/cloud/backup/v1/backup_service_pb2.pyi +14 -2
  29. yandex/cloud/iam/v1/key_service_pb2.pyi +0 -2
  30. yandex/cloud/iot/devices/v1/device_pb2.py +18 -14
  31. yandex/cloud/iot/devices/v1/device_pb2.pyi +23 -1
  32. yandex/cloud/iot/devices/v1/device_service_pb2.py +65 -53
  33. yandex/cloud/iot/devices/v1/device_service_pb2.pyi +46 -2
  34. yandex/cloud/loadtesting/agent/v1/test_pb2.py +5 -5
  35. yandex/cloud/loadtesting/agent/v1/test_pb2.pyi +2 -0
  36. yandex/cloud/loadtesting/api/v1/test/status_pb2.py +2 -2
  37. yandex/cloud/loadtesting/api/v1/test/status_pb2.pyi +6 -2
  38. yandex/cloud/marketplace/licensemanager/saas/v1/instance_service_pb2.py +12 -5
  39. yandex/cloud/marketplace/licensemanager/saas/v1/instance_service_pb2.pyi +16 -0
  40. yandex/cloud/marketplace/licensemanager/saas/v1/instance_service_pb2_grpc.py +45 -0
  41. yandex/cloud/marketplace/licensemanager/saas/v1/instance_service_pb2_grpc.pyi +21 -0
  42. yandex/cloud/marketplace/licensemanager/v1/user_info_pb2.py +37 -0
  43. yandex/cloud/marketplace/licensemanager/v1/user_info_pb2.pyi +39 -0
  44. yandex/cloud/marketplace/licensemanager/v1/user_info_pb2_grpc.py +24 -0
  45. yandex/cloud/marketplace/licensemanager/v1/user_info_pb2_grpc.pyi +17 -0
  46. yandex/cloud/mdb/clickhouse/v1/cluster_service_pb2.py +170 -170
  47. yandex/cloud/mdb/clickhouse/v1/cluster_service_pb2.pyi +14 -2
  48. yandex/cloud/mdb/kafka/v1/user_pb2.py +4 -4
  49. yandex/cloud/mdb/kafka/v1/user_pb2.pyi +4 -0
  50. yandex/cloud/mdb/opensearch/v1/cluster_service_pb2.py +21 -3
  51. yandex/cloud/mdb/opensearch/v1/cluster_service_pb2.pyi +86 -0
  52. yandex/cloud/mdb/opensearch/v1/cluster_service_pb2_grpc.py +89 -0
  53. yandex/cloud/mdb/opensearch/v1/cluster_service_pb2_grpc.pyi +49 -3
  54. yandex/cloud/mdb/redis/v1/cluster_pb2.py +23 -23
  55. yandex/cloud/mdb/redis/v1/cluster_pb2.pyi +4 -0
  56. yandex/cloud/mdb/redis/v1/config/redis_pb2.py +10 -8
  57. yandex/cloud/mdb/redis/v1/config/redis_pb2.pyi +14 -2
  58. yandex/cloud/mdb/spqr/__init__.py +0 -0
  59. yandex/cloud/mdb/spqr/v1/__init__.py +0 -0
  60. yandex/cloud/mdb/spqr/v1/backup_pb2.py +40 -0
  61. yandex/cloud/mdb/spqr/v1/backup_pb2.pyi +97 -0
  62. yandex/cloud/mdb/spqr/v1/backup_pb2_grpc.py +24 -0
  63. yandex/cloud/mdb/spqr/v1/backup_pb2_grpc.pyi +17 -0
  64. yandex/cloud/mdb/spqr/v1/backup_service_pb2.py +68 -0
  65. yandex/cloud/mdb/spqr/v1/backup_service_pb2.pyi +121 -0
  66. yandex/cloud/mdb/spqr/v1/backup_service_pb2_grpc.py +193 -0
  67. yandex/cloud/mdb/spqr/v1/backup_service_pb2_grpc.pyi +101 -0
  68. yandex/cloud/mdb/spqr/v1/cluster_pb2.py +58 -0
  69. yandex/cloud/mdb/spqr/v1/cluster_pb2.pyi +330 -0
  70. yandex/cloud/mdb/spqr/v1/cluster_pb2_grpc.py +24 -0
  71. yandex/cloud/mdb/spqr/v1/cluster_pb2_grpc.pyi +17 -0
  72. yandex/cloud/mdb/spqr/v1/cluster_service_pb2.py +403 -0
  73. yandex/cloud/mdb/spqr/v1/cluster_service_pb2.pyi +1790 -0
  74. yandex/cloud/mdb/spqr/v1/cluster_service_pb2_grpc.py +1250 -0
  75. yandex/cloud/mdb/spqr/v1/cluster_service_pb2_grpc.pyi +588 -0
  76. yandex/cloud/mdb/spqr/v1/config_pb2.py +65 -0
  77. yandex/cloud/mdb/spqr/v1/config_pb2.pyi +341 -0
  78. yandex/cloud/mdb/spqr/v1/config_pb2_grpc.py +24 -0
  79. yandex/cloud/mdb/spqr/v1/config_pb2_grpc.pyi +17 -0
  80. yandex/cloud/mdb/spqr/v1/database_pb2.py +42 -0
  81. yandex/cloud/mdb/spqr/v1/database_pb2.pyi +51 -0
  82. yandex/cloud/mdb/spqr/v1/database_pb2_grpc.py +24 -0
  83. yandex/cloud/mdb/spqr/v1/database_pb2_grpc.pyi +17 -0
  84. yandex/cloud/mdb/spqr/v1/database_service_pb2.py +94 -0
  85. yandex/cloud/mdb/spqr/v1/database_service_pb2.pyi +219 -0
  86. yandex/cloud/mdb/spqr/v1/database_service_pb2_grpc.py +281 -0
  87. yandex/cloud/mdb/spqr/v1/database_service_pb2_grpc.pyi +141 -0
  88. yandex/cloud/mdb/spqr/v1/host_pb2.py +69 -0
  89. yandex/cloud/mdb/spqr/v1/host_pb2.pyi +394 -0
  90. yandex/cloud/mdb/spqr/v1/host_pb2_grpc.py +24 -0
  91. yandex/cloud/mdb/spqr/v1/host_pb2_grpc.pyi +17 -0
  92. yandex/cloud/mdb/spqr/v1/maintenance_pb2.py +53 -0
  93. yandex/cloud/mdb/spqr/v1/maintenance_pb2.pyi +137 -0
  94. yandex/cloud/mdb/spqr/v1/maintenance_pb2_grpc.py +24 -0
  95. yandex/cloud/mdb/spqr/v1/maintenance_pb2_grpc.pyi +17 -0
  96. yandex/cloud/mdb/spqr/v1/resource_preset_pb2.py +37 -0
  97. yandex/cloud/mdb/spqr/v1/resource_preset_pb2.pyi +45 -0
  98. yandex/cloud/mdb/spqr/v1/resource_preset_pb2_grpc.py +24 -0
  99. yandex/cloud/mdb/spqr/v1/resource_preset_pb2_grpc.pyi +17 -0
  100. yandex/cloud/mdb/spqr/v1/resource_preset_service_pb2.py +56 -0
  101. yandex/cloud/mdb/spqr/v1/resource_preset_service_pb2.pyi +84 -0
  102. yandex/cloud/mdb/spqr/v1/resource_preset_service_pb2_grpc.py +148 -0
  103. yandex/cloud/mdb/spqr/v1/resource_preset_service_pb2_grpc.pyi +80 -0
  104. yandex/cloud/mdb/spqr/v1/shard_pb2.py +37 -0
  105. yandex/cloud/mdb/spqr/v1/shard_pb2.pyi +31 -0
  106. yandex/cloud/mdb/spqr/v1/shard_pb2_grpc.py +24 -0
  107. yandex/cloud/mdb/spqr/v1/shard_pb2_grpc.pyi +17 -0
  108. yandex/cloud/mdb/spqr/v1/user_pb2.py +53 -0
  109. yandex/cloud/mdb/spqr/v1/user_pb2.pyi +133 -0
  110. yandex/cloud/mdb/spqr/v1/user_pb2_grpc.py +24 -0
  111. yandex/cloud/mdb/spqr/v1/user_pb2_grpc.pyi +17 -0
  112. yandex/cloud/mdb/spqr/v1/user_service_pb2.py +107 -0
  113. yandex/cloud/mdb/spqr/v1/user_service_pb2.pyi +293 -0
  114. yandex/cloud/mdb/spqr/v1/user_service_pb2_grpc.py +325 -0
  115. yandex/cloud/mdb/spqr/v1/user_service_pb2_grpc.pyi +161 -0
  116. yandex/cloud/monitoring/v3/dashboard_pb2.py +6 -5
  117. yandex/cloud/monitoring/v3/dashboard_pb2.pyi +9 -2
  118. yandex/cloud/monitoring/v3/dashboard_service_pb2.py +30 -29
  119. yandex/cloud/monitoring/v3/dashboard_service_pb2.pyi +17 -4
  120. yandex/cloud/monitoring/v3/timeline_pb2.py +37 -0
  121. yandex/cloud/monitoring/v3/timeline_pb2.pyi +31 -0
  122. yandex/cloud/monitoring/v3/timeline_pb2_grpc.py +24 -0
  123. yandex/cloud/monitoring/v3/timeline_pb2_grpc.pyi +17 -0
  124. yandex/cloud/searchapi/v2/gen_search_service_pb2.py +83 -0
  125. yandex/cloud/searchapi/v2/gen_search_service_pb2.pyi +297 -0
  126. yandex/cloud/searchapi/v2/gen_search_service_pb2_grpc.py +100 -0
  127. yandex/cloud/searchapi/v2/gen_search_service_pb2_grpc.pyi +47 -0
  128. yandex/cloud/searchapi/v2/search_query_pb2.py +8 -8
  129. yandex/cloud/searchapi/v2/search_query_pb2.pyi +8 -0
  130. yandex/cloud/searchapi/v2/search_service_pb2.py +16 -12
  131. yandex/cloud/serverless/eventrouter/v1/event_service_pb2.py +11 -3
  132. yandex/cloud/serverless/eventrouter/v1/event_service_pb2.pyi +24 -0
  133. yandex/cloud/serverless/eventrouter/v1/event_service_pb2_grpc.py +44 -0
  134. yandex/cloud/serverless/eventrouter/v1/event_service_pb2_grpc.pyi +20 -0
  135. yandex/cloud/storage/v1/s3api_pb2.py +7 -1
  136. yandex/cloud/storage/v1/s3api_pb2.pyi +128 -1
  137. yandex/cloud/video/v1/channel_pb2.py +16 -11
  138. yandex/cloud/video/v1/channel_pb2.pyi +32 -2
  139. yandex/cloud/video/v1/channel_service_pb2.py +34 -30
  140. yandex/cloud/video/v1/channel_service_pb2.pyi +27 -10
  141. yandex/cloud/video/v1/channel_service_pb2_grpc.py +4 -4
  142. yandex/cloud/video/v1/channel_service_pb2_grpc.pyi +12 -12
  143. yandex/cloud/video/v1/episode_pb2.pyi +5 -4
  144. yandex/cloud/video/v1/episode_service_pb2.py +56 -52
  145. yandex/cloud/video/v1/episode_service_pb2.pyi +18 -12
  146. yandex/cloud/video/v1/episode_service_pb2_grpc.py +4 -4
  147. yandex/cloud/video/v1/episode_service_pb2_grpc.pyi +12 -12
  148. yandex/cloud/video/v1/playlist_service_pb2.py +34 -30
  149. yandex/cloud/video/v1/playlist_service_pb2.pyi +11 -6
  150. yandex/cloud/video/v1/playlist_service_pb2_grpc.py +3 -3
  151. yandex/cloud/video/v1/playlist_service_pb2_grpc.pyi +9 -9
  152. yandex/cloud/video/v1/stream_line_pb2.py +16 -24
  153. yandex/cloud/video/v1/stream_line_pb2.pyi +34 -108
  154. yandex/cloud/video/v1/stream_line_service_pb2.py +60 -70
  155. yandex/cloud/video/v1/stream_line_service_pb2.pyi +17 -119
  156. yandex/cloud/video/v1/stream_line_service_pb2_grpc.py +3 -3
  157. yandex/cloud/video/v1/stream_line_service_pb2_grpc.pyi +9 -9
  158. yandex/cloud/video/v1/stream_pb2.py +12 -11
  159. yandex/cloud/video/v1/stream_pb2.pyi +19 -6
  160. yandex/cloud/video/v1/stream_service_pb2.py +54 -49
  161. yandex/cloud/video/v1/stream_service_pb2.pyi +34 -13
  162. yandex/cloud/video/v1/stream_service_pb2_grpc.py +2 -2
  163. yandex/cloud/video/v1/stream_service_pb2_grpc.pyi +6 -6
  164. yandex/cloud/video/v1/subtitle_pb2.py +6 -4
  165. yandex/cloud/video/v1/subtitle_pb2.pyi +30 -2
  166. yandex/cloud/video/v1/subtitle_service_pb2.py +21 -21
  167. yandex/cloud/video/v1/subtitle_service_pb2.pyi +7 -5
  168. yandex/cloud/video/v1/subtitle_service_pb2_grpc.py +1 -1
  169. yandex/cloud/video/v1/subtitle_service_pb2_grpc.pyi +3 -3
  170. yandex/cloud/video/v1/thumbnail_service_pb2.py +29 -25
  171. yandex/cloud/video/v1/thumbnail_service_pb2.pyi +68 -6
  172. yandex/cloud/video/v1/thumbnail_service_pb2_grpc.py +3 -3
  173. yandex/cloud/video/v1/thumbnail_service_pb2_grpc.pyi +9 -9
  174. yandex/cloud/video/v1/video_pb2.py +24 -18
  175. yandex/cloud/video/v1/video_pb2.pyi +130 -38
  176. yandex/cloud/video/v1/video_service_pb2.py +114 -66
  177. yandex/cloud/video/v1/video_service_pb2.pyi +279 -40
  178. yandex/cloud/video/v1/video_service_pb2_grpc.py +50 -6
  179. yandex/cloud/video/v1/video_service_pb2_grpc.pyi +38 -18
  180. yandex/cloud/ydb/v1/database_pb2.py +46 -46
  181. yandex/cloud/ydb/v1/database_pb2.pyi +10 -2
  182. yandex/cloud/ydb/v1/database_service_pb2.py +18 -18
  183. yandex/cloud/ydb/v1/database_service_pb2.pyi +10 -2
  184. yandexcloud/__init__.py +2 -2
  185. yandexcloud/_operation_waiter.py +17 -19
  186. yandexcloud/_retry_policy.py +17 -3
  187. yandexcloud/_wrappers/dataproc/__init__.py +39 -0
  188. {yandexcloud-0.336.0.dist-info → yandexcloud-0.338.0.dist-info}/METADATA +9 -9
  189. {yandexcloud-0.336.0.dist-info → yandexcloud-0.338.0.dist-info}/RECORD +193 -115
  190. {yandexcloud-0.336.0.dist-info → yandexcloud-0.338.0.dist-info}/AUTHORS +0 -0
  191. {yandexcloud-0.336.0.dist-info → yandexcloud-0.338.0.dist-info}/LICENSE +0 -0
  192. {yandexcloud-0.336.0.dist-info → yandexcloud-0.338.0.dist-info}/WHEEL +0 -0
  193. {yandexcloud-0.336.0.dist-info → yandexcloud-0.338.0.dist-info}/top_level.txt +0 -0
@@ -1,14 +1,28 @@
1
1
  import json
2
- from typing import Tuple
2
+ from enum import Enum
3
+ from typing import Any, Dict, Tuple
3
4
 
4
5
  import grpc
5
6
 
6
7
 
8
+ class ThrottlingMode(str, Enum):
9
+ PERSISTENT = "persistent"
10
+ TEMPORARY = "temporary"
11
+
12
+
13
+ def get_throttling_policy(throttling_mode: ThrottlingMode) -> Dict[str, Any]:
14
+ if throttling_mode == ThrottlingMode.PERSISTENT:
15
+ return {"maxTokens": 100, "tokenRatio": 0.1}
16
+
17
+ return {"maxTokens": 6, "tokenRatio": 0.1}
18
+
19
+
7
20
  class RetryPolicy:
8
21
  def __init__(
9
22
  self,
10
23
  max_attempts: int = 4,
11
24
  status_codes: Tuple["grpc.StatusCode"] = (grpc.StatusCode.UNAVAILABLE,),
25
+ throttling_mode: ThrottlingMode = ThrottlingMode.TEMPORARY,
12
26
  ):
13
27
  self.__policy = {
14
28
  "methodConfig": [
@@ -21,10 +35,10 @@ class RetryPolicy:
21
35
  "backoffMultiplier": 2,
22
36
  "retryableStatusCodes": [status.name for status in status_codes],
23
37
  },
38
+ "waitForReady": True,
24
39
  }
25
40
  ],
26
- "retryThrottling": {"maxTokens": 100, "tokenRatio": 0.1},
27
- "waitForReady": True,
41
+ "retryThrottling": get_throttling_policy(throttling_mode),
28
42
  }
29
43
 
30
44
  def to_json(self) -> str:
@@ -474,6 +474,45 @@ class Dataproc:
474
474
  meta_type=cluster_service_pb.DeleteClusterMetadata,
475
475
  )
476
476
 
477
+ def stop_cluster(self, cluster_id=None, decommission_timeout=0):
478
+ """
479
+ Stop Yandex.Cloud Data Proc cluster.
480
+ :param cluster_id: ID of the cluster to stop.
481
+ :type cluster_id: str
482
+ :param decommission_timeout: Timeout to gracefully decommission nodes during downscaling. In seconds.
483
+ :type decommission_timeout: int
484
+ """
485
+ cluster_id = cluster_id or self.cluster_id
486
+ if not cluster_id:
487
+ raise RuntimeError("Cluster id must be specified.")
488
+
489
+ request = cluster_service_pb.StopClusterRequest(
490
+ cluster_id=cluster_id, decommission_timeout=decommission_timeout
491
+ )
492
+ return self.sdk.create_operation_and_get_result(
493
+ request,
494
+ service=cluster_service_grpc_pb.ClusterServiceStub,
495
+ method_name="Stop",
496
+ meta_type=cluster_service_pb.StopClusterMetadata,
497
+ )
498
+
499
+ def start_cluster(self, cluster_id=None):
500
+ """
501
+ Start Yandex.Cloud Data Proc cluster.
502
+ :param cluster_id: ID of the cluster to start.
503
+ :type cluster_id: str
504
+ """
505
+ cluster_id = cluster_id or self.cluster_id
506
+ if not cluster_id:
507
+ raise RuntimeError("Cluster id must be specified.")
508
+ request = cluster_service_pb.StartClusterRequest(cluster_id=cluster_id)
509
+ return self.sdk.create_operation_and_get_result(
510
+ request,
511
+ service=cluster_service_grpc_pb.ClusterServiceStub,
512
+ method_name="Start",
513
+ meta_type=cluster_service_pb.StartClusterMetadata,
514
+ )
515
+
477
516
  def create_hive_job(
478
517
  self,
479
518
  query=None,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: yandexcloud
3
- Version: 0.336.0
3
+ Version: 0.338.0
4
4
  Summary: The Yandex Cloud official SDK
5
5
  Author-email: Yandex LLC <cloud@support.yandex.ru>
6
6
  License: MIT
@@ -185,22 +185,22 @@ set_up_yc_api_endpoint(kz_region_endpoint)
185
185
  ```
186
186
 
187
187
  ### Retries
188
- If you want to retry SDK requests, build SDK with `retry_policy` field using `RetryPolicy` class:
188
+ SDK provide built-in retry policy, that supports [exponential backoff and jitter](https://aws.amazon.com/ru/blogs/architecture/exponential-backoff-and-jitter/), and also [retry budget](https://github.com/grpc/proposal/blob/master/A6-client-retries.md#throttling-retry-attempts-and-hedged-rpcs). It's necessary to avoid retry amplification.
189
189
 
190
190
  ```python
191
191
  import grpc
192
192
  from yandexcloud import SDK, RetryPolicy
193
193
 
194
- sdk = SDK(retry_policy=RetryPolicy(max_attempts=2, status_codes=(grpc.StatusCode.UNAVAILABLE,)))
194
+ sdk = SDK(retry_policy=RetryPolicy())
195
195
  ```
196
196
 
197
- It's **strongly recommended** to use default settings of RetryPolicy to avoid retry amplification:
198
- ```python
199
- import grpc
200
- from yandexcloud import SDK, RetryPolicy
197
+ SDK provide different modes for retry throttling policy:
198
+
199
+ * `persistent` is suitable when you use SDK in any long-lived application, when SDK instance will live long enough for manage budget;
200
+ * `temporary` is suitable when you use SDK in any short-lived application, e.g. scripts or CI/CD.
201
+
202
+ By default, SDK will use temporary mode, but you can change it through `throttling_mode` argument.
201
203
 
202
- sdk = SDK(retry_policy=RetryPolicy())
203
- ```
204
204
 
205
205
  ## Contributing
206
206
  ### Dependencies