yandexcloud 0.287.0__py3-none-any.whl → 0.289.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 (565) hide show
  1. yandex/cloud/access/access_pb2.pyi +288 -0
  2. yandex/cloud/ai/foundation_models/v1/embedding/embedding_service_pb2.pyi +63 -0
  3. yandex/cloud/ai/foundation_models/v1/image_generation/image_generation_pb2.pyi +53 -0
  4. yandex/cloud/ai/foundation_models/v1/image_generation/image_generation_service_pb2.pyi +67 -0
  5. yandex/cloud/ai/foundation_models/v1/text_classification/text_classification_pb2.pyi +55 -0
  6. yandex/cloud/ai/foundation_models/v1/text_classification/text_classification_service_pb2.pyi +122 -0
  7. yandex/cloud/ai/foundation_models/v1/text_common_pb2.pyi +195 -0
  8. yandex/cloud/ai/foundation_models/v1/text_generation/text_generation_service_pb2.pyi +122 -0
  9. yandex/cloud/ai/llm/v1alpha/llm_pb2.pyi +121 -0
  10. yandex/cloud/ai/llm/v1alpha/llm_service_pb2.pyi +280 -0
  11. yandex/cloud/ai/ocr/v1/ocr_pb2.pyi +364 -0
  12. yandex/cloud/ai/ocr/v1/ocr_service_pb2.pyi +92 -0
  13. yandex/cloud/ai/stt/v2/stt_service_pb2.pyi +299 -0
  14. yandex/cloud/ai/stt/v3/stt_pb2.pyi +1437 -0
  15. yandex/cloud/ai/stt/v3/stt_service_pb2.pyi +26 -0
  16. yandex/cloud/ai/translate/v2/translation_pb2.pyi +55 -0
  17. yandex/cloud/ai/translate/v2/translation_service_pb2.pyi +272 -0
  18. yandex/cloud/ai/tts/v3/tts_pb2.pyi +474 -0
  19. yandex/cloud/ai/tts/v3/tts_service_pb2.pyi +8 -0
  20. yandex/cloud/ai/vision/v1/classification_pb2.pyi +55 -0
  21. yandex/cloud/ai/vision/v1/face_detection_pb2.pyi +51 -0
  22. yandex/cloud/ai/vision/v1/image_copy_search_pb2.pyi +63 -0
  23. yandex/cloud/ai/vision/v1/primitives_pb2.pyi +51 -0
  24. yandex/cloud/ai/vision/v1/text_detection_pb2.pyi +196 -0
  25. yandex/cloud/ai/vision/v1/vision_service_pb2.pyi +284 -0
  26. yandex/cloud/ai/vision/v2/image_classifier_pb2.pyi +159 -0
  27. yandex/cloud/ai/vision/v2/image_classifier_service_pb2.pyi +8 -0
  28. yandex/cloud/ai/vision/v2/image_pb2.pyi +57 -0
  29. yandex/cloud/api/operation_pb2.pyi +47 -0
  30. yandex/cloud/apploadbalancer/v1/backend_group_pb2.pyi +944 -0
  31. yandex/cloud/apploadbalancer/v1/backend_group_service_pb2.pyi +558 -0
  32. yandex/cloud/apploadbalancer/v1/http_router_pb2.pyi +92 -0
  33. yandex/cloud/apploadbalancer/v1/http_router_service_pb2.pyi +389 -0
  34. yandex/cloud/apploadbalancer/v1/load_balancer_pb2.pyi +837 -0
  35. yandex/cloud/apploadbalancer/v1/load_balancer_service_pb2.pyi +1073 -0
  36. yandex/cloud/apploadbalancer/v1/logging_pb2.pyi +117 -0
  37. yandex/cloud/apploadbalancer/v1/payload_pb2.pyi +31 -0
  38. yandex/cloud/apploadbalancer/v1/target_group_pb2.pyi +117 -0
  39. yandex/cloud/apploadbalancer/v1/target_group_service_pb2.pyi +450 -0
  40. yandex/cloud/apploadbalancer/v1/tls_pb2.pyi +34 -0
  41. yandex/cloud/apploadbalancer/v1/virtual_host_pb2.pyi +798 -0
  42. yandex/cloud/apploadbalancer/v1/virtual_host_service_pb2.pyi +501 -0
  43. yandex/cloud/audittrails/v1/trail_pb2.pyi +449 -0
  44. yandex/cloud/audittrails/v1/trail_service_pb2.pyi +363 -0
  45. yandex/cloud/backup/v1/backup_pb2.pyi +468 -0
  46. yandex/cloud/backup/v1/backup_service_pb2.pyi +454 -0
  47. yandex/cloud/backup/v1/policy_pb2.pyi +742 -0
  48. yandex/cloud/backup/v1/policy_service_pb2.py +8 -8
  49. yandex/cloud/backup/v1/policy_service_pb2.pyi +342 -0
  50. yandex/cloud/backup/v1/provider_service_pb2.pyi +90 -0
  51. yandex/cloud/backup/v1/resource_pb2.pyi +273 -0
  52. yandex/cloud/backup/v1/resource_service_pb2.pyi +357 -0
  53. yandex/cloud/billing/v1/billable_object_pb2.pyi +65 -0
  54. yandex/cloud/billing/v1/billing_account_pb2.pyi +62 -0
  55. yandex/cloud/billing/v1/billing_account_service_pb2.pyi +190 -0
  56. yandex/cloud/billing/v1/budget_pb2.pyi +409 -0
  57. yandex/cloud/billing/v1/budget_service_pb2.pyi +151 -0
  58. yandex/cloud/billing/v1/customer_pb2.pyi +79 -0
  59. yandex/cloud/billing/v1/customer_service_pb2.pyi +187 -0
  60. yandex/cloud/billing/v1/service_pb2.pyi +37 -0
  61. yandex/cloud/billing/v1/service_service_pb2.pyi +96 -0
  62. yandex/cloud/billing/v1/sku_pb2.pyi +173 -0
  63. yandex/cloud/billing/v1/sku_service_pb2.pyi +128 -0
  64. yandex/cloud/cdn/v1/cache_service_pb2.pyi +95 -0
  65. yandex/cloud/cdn/v1/origin_group_pb2.pyi +54 -0
  66. yandex/cloud/cdn/v1/origin_group_service_pb2.pyi +252 -0
  67. yandex/cloud/cdn/v1/origin_pb2.pyi +186 -0
  68. yandex/cloud/cdn/v1/origin_service_pb2.pyi +262 -0
  69. yandex/cloud/cdn/v1/provider_service_pb2.pyi +86 -0
  70. yandex/cloud/cdn/v1/raw_logs_pb2.pyi +80 -0
  71. yandex/cloud/cdn/v1/raw_logs_service_pb2.pyi +207 -0
  72. yandex/cloud/cdn/v1/resource_pb2.pyi +1067 -0
  73. yandex/cloud/cdn/v1/resource_service_pb2.pyi +401 -0
  74. yandex/cloud/cdn/v1/rule_pb2.pyi +45 -0
  75. yandex/cloud/cdn/v1/rule_service_pb2.pyi +211 -0
  76. yandex/cloud/certificatemanager/v1/certificate_content_service_pb2.pyi +87 -0
  77. yandex/cloud/certificatemanager/v1/certificate_pb2.pyi +381 -0
  78. yandex/cloud/certificatemanager/v1/certificate_service_pb2.pyi +515 -0
  79. yandex/cloud/compute/v1/disk_pb2.pyi +202 -0
  80. yandex/cloud/compute/v1/disk_placement_group_pb2.pyi +143 -0
  81. yandex/cloud/compute/v1/disk_placement_group_service_pb2.pyi +425 -0
  82. yandex/cloud/compute/v1/disk_service_pb2.pyi +561 -0
  83. yandex/cloud/compute/v1/disk_type_pb2.pyi +39 -0
  84. yandex/cloud/compute/v1/disk_type_service_pb2.pyi +86 -0
  85. yandex/cloud/compute/v1/filesystem_pb2.pyi +137 -0
  86. yandex/cloud/compute/v1/filesystem_service_pb2.pyi +394 -0
  87. yandex/cloud/compute/v1/gpu_cluster_pb2.pyi +139 -0
  88. yandex/cloud/compute/v1/gpu_cluster_service_pb2.pyi +439 -0
  89. yandex/cloud/compute/v1/host_group_pb2.pyi +224 -0
  90. yandex/cloud/compute/v1/host_group_service_pb2.pyi +556 -0
  91. yandex/cloud/compute/v1/host_type_pb2.pyi +48 -0
  92. yandex/cloud/compute/v1/host_type_service_pb2.pyi +87 -0
  93. yandex/cloud/compute/v1/image_pb2.pyi +188 -0
  94. yandex/cloud/compute/v1/image_service_pb2.pyi +430 -0
  95. yandex/cloud/compute/v1/instance_pb2.pyi +798 -0
  96. yandex/cloud/compute/v1/instance_service_pb2.pyi +1806 -0
  97. yandex/cloud/compute/v1/instancegroup/instance_group_pb2.pyi +2064 -0
  98. yandex/cloud/compute/v1/instancegroup/instance_group_service_pb2.pyi +1004 -0
  99. yandex/cloud/compute/v1/maintenance_pb2.pyi +38 -0
  100. yandex/cloud/compute/v1/placement_group_pb2.pyi +115 -0
  101. yandex/cloud/compute/v1/placement_group_service_pb2.pyi +423 -0
  102. yandex/cloud/compute/v1/snapshot_pb2.pyi +139 -0
  103. yandex/cloud/compute/v1/snapshot_schedule_pb2.pyi +221 -0
  104. yandex/cloud/compute/v1/snapshot_schedule_service_pb2.pyi +678 -0
  105. yandex/cloud/compute/v1/snapshot_service_pb2.pyi +350 -0
  106. yandex/cloud/compute/v1/zone_pb2.pyi +63 -0
  107. yandex/cloud/compute/v1/zone_service_pb2.pyi +84 -0
  108. yandex/cloud/containerregistry/v1/blob_pb2.pyi +45 -0
  109. yandex/cloud/containerregistry/v1/image_pb2.pyi +75 -0
  110. yandex/cloud/containerregistry/v1/image_service_pb2.pyi +160 -0
  111. yandex/cloud/containerregistry/v1/ip_permission_pb2.pyi +95 -0
  112. yandex/cloud/containerregistry/v1/lifecycle_policy_pb2.pyi +131 -0
  113. yandex/cloud/containerregistry/v1/lifecycle_policy_service_pb2.pyi +479 -0
  114. yandex/cloud/containerregistry/v1/registry_pb2.pyi +103 -0
  115. yandex/cloud/containerregistry/v1/registry_service_pb2.pyi +386 -0
  116. yandex/cloud/containerregistry/v1/repository_pb2.pyi +35 -0
  117. yandex/cloud/containerregistry/v1/repository_service_pb2.pyi +202 -0
  118. yandex/cloud/containerregistry/v1/scan_policy_pb2.pyi +140 -0
  119. yandex/cloud/containerregistry/v1/scan_policy_service_pb2.pyi +177 -0
  120. yandex/cloud/containerregistry/v1/scanner_pb2.pyi +254 -0
  121. yandex/cloud/containerregistry/v1/scanner_service_pb2.pyi +234 -0
  122. yandex/cloud/dataproc/manager/v1/job_pb2.pyi +608 -0
  123. yandex/cloud/dataproc/manager/v1/job_service_pb2.pyi +201 -0
  124. yandex/cloud/dataproc/manager/v1/manager_service_pb2.pyi +449 -0
  125. yandex/cloud/dataproc/v1/cluster_pb2.pyi +351 -0
  126. yandex/cloud/dataproc/v1/cluster_service_pb2.pyi +764 -0
  127. yandex/cloud/dataproc/v1/common_pb2.pyi +75 -0
  128. yandex/cloud/dataproc/v1/job_pb2.pyi +526 -0
  129. yandex/cloud/dataproc/v1/job_service_pb2.pyi +250 -0
  130. yandex/cloud/dataproc/v1/resource_preset_pb2.pyi +45 -0
  131. yandex/cloud/dataproc/v1/resource_preset_service_pb2.pyi +83 -0
  132. yandex/cloud/dataproc/v1/subcluster_pb2.pyi +248 -0
  133. yandex/cloud/dataproc/v1/subcluster_service_pb2.pyi +301 -0
  134. yandex/cloud/datasphere/v1/app_token_service_pb2.pyi +27 -0
  135. yandex/cloud/datasphere/v1/folder_budget_service_pb2.pyi +101 -0
  136. yandex/cloud/datasphere/v1/node_execution_error_details_pb2.pyi +41 -0
  137. yandex/cloud/datasphere/v1/node_service_pb2.pyi +104 -0
  138. yandex/cloud/datasphere/v1/project_data_service_pb2.pyi +122 -0
  139. yandex/cloud/datasphere/v1/project_pb2.pyi +149 -0
  140. yandex/cloud/datasphere/v1/project_service_pb2.pyi +606 -0
  141. yandex/cloud/datasphere/v2/community_pb2.pyi +75 -0
  142. yandex/cloud/datasphere/v2/community_service_pb2.pyi +384 -0
  143. yandex/cloud/datasphere/v2/dataset_pb2.pyi +159 -0
  144. yandex/cloud/datasphere/v2/dataset_service_pb2.pyi +47 -0
  145. yandex/cloud/datasphere/v2/docker_image_service_pb2.pyi +29 -0
  146. yandex/cloud/datasphere/v2/jobs/jobs_pb2.pyi +484 -0
  147. yandex/cloud/datasphere/v2/jobs/project_job_service_pb2.pyi +694 -0
  148. yandex/cloud/datasphere/v2/project_pb2.pyi +265 -0
  149. yandex/cloud/datasphere/v2/project_service_pb2.pyi +815 -0
  150. yandex/cloud/datasphere/v2/resource_types_pb2.pyi +46 -0
  151. yandex/cloud/datasphere/v2/restrictions_pb2.pyi +127 -0
  152. yandex/cloud/datasphere/v2/s3_service_pb2.pyi +47 -0
  153. yandex/cloud/datasphere/v2/secret_pb2.pyi +102 -0
  154. yandex/cloud/datasphere/v2/user_pb2.pyi +43 -0
  155. yandex/cloud/datatransfer/v1/endpoint/clickhouse_pb2.pyi +295 -0
  156. yandex/cloud/datatransfer/v1/endpoint/common_pb2.pyi +324 -0
  157. yandex/cloud/datatransfer/v1/endpoint/kafka_pb2.pyi +294 -0
  158. yandex/cloud/datatransfer/v1/endpoint/metrika_pb2.pyi +84 -0
  159. yandex/cloud/datatransfer/v1/endpoint/mongo_pb2.pyi +191 -0
  160. yandex/cloud/datatransfer/v1/endpoint/mysql_pb2.pyi +261 -0
  161. yandex/cloud/datatransfer/v1/endpoint/parsers_pb2.pyi +91 -0
  162. yandex/cloud/datatransfer/v1/endpoint/postgres_pb2.pyi +326 -0
  163. yandex/cloud/datatransfer/v1/endpoint/serializers_pb2.pyi +105 -0
  164. yandex/cloud/datatransfer/v1/endpoint/ydb_pb2.pyi +154 -0
  165. yandex/cloud/datatransfer/v1/endpoint/yds_pb2.pyi +155 -0
  166. yandex/cloud/datatransfer/v1/endpoint_pb2.pyi +144 -0
  167. yandex/cloud/datatransfer/v1/endpoint_service_pb2.pyi +262 -0
  168. yandex/cloud/datatransfer/v1/transfer_pb2.pyi +689 -0
  169. yandex/cloud/datatransfer/v1/transfer_service_pb2.pyi +338 -0
  170. yandex/cloud/dns/v1/dns_zone_pb2.pyi +163 -0
  171. yandex/cloud/dns/v1/dns_zone_service_pb2.pyi +655 -0
  172. yandex/cloud/endpoint/api_endpoint_pb2.pyi +29 -0
  173. yandex/cloud/endpoint/api_endpoint_service_pb2.pyi +66 -0
  174. yandex/cloud/iam/v1/api_key_pb2.pyi +61 -0
  175. yandex/cloud/iam/v1/api_key_service_pb2.pyi +293 -0
  176. yandex/cloud/iam/v1/awscompatibility/access_key_pb2.pyi +61 -0
  177. yandex/cloud/iam/v1/awscompatibility/access_key_service_pb2.pyi +283 -0
  178. yandex/cloud/iam/v1/iam_token_service_pb2.pyi +80 -0
  179. yandex/cloud/iam/v1/key_pb2.pyi +90 -0
  180. yandex/cloud/iam/v1/key_service_pb2.pyi +320 -0
  181. yandex/cloud/iam/v1/resource_pb2.pyi +33 -0
  182. yandex/cloud/iam/v1/role_pb2.pyi +33 -0
  183. yandex/cloud/iam/v1/role_service_pb2.pyi +92 -0
  184. yandex/cloud/iam/v1/service_account_pb2.pyi +75 -0
  185. yandex/cloud/iam/v1/service_account_service_pb2.pyi +335 -0
  186. yandex/cloud/iam/v1/service_control_pb2.pyi +98 -0
  187. yandex/cloud/iam/v1/service_control_service_pb2.pyi +310 -0
  188. yandex/cloud/iam/v1/user_account_pb2.pyi +133 -0
  189. yandex/cloud/iam/v1/user_account_service_pb2.pyi +27 -0
  190. yandex/cloud/iam/v1/yandex_passport_user_account_service_pb2.pyi +27 -0
  191. yandex/cloud/iot/broker/v1/broker_data_service_pb2.pyi +45 -0
  192. yandex/cloud/iot/broker/v1/broker_pb2.pyi +209 -0
  193. yandex/cloud/iot/broker/v1/broker_service_pb2.pyi +627 -0
  194. yandex/cloud/iot/devices/v1/device_data_service_pb2.pyi +45 -0
  195. yandex/cloud/iot/devices/v1/device_pb2.pyi +233 -0
  196. yandex/cloud/iot/devices/v1/device_service_pb2.pyi +670 -0
  197. yandex/cloud/iot/devices/v1/registry_data_service_pb2.pyi +45 -0
  198. yandex/cloud/iot/devices/v1/registry_pb2.pyi +291 -0
  199. yandex/cloud/iot/devices/v1/registry_service_pb2.pyi +849 -0
  200. yandex/cloud/k8s/v1/cluster_pb2.pyi +610 -0
  201. yandex/cloud/k8s/v1/cluster_service_pb2.pyi +904 -0
  202. yandex/cloud/k8s/v1/maintenance_pb2.pyi +132 -0
  203. yandex/cloud/k8s/v1/node_group_pb2.pyi +365 -0
  204. yandex/cloud/k8s/v1/node_group_service_pb2.pyi +566 -0
  205. yandex/cloud/k8s/v1/node_pb2.pyi +784 -0
  206. yandex/cloud/k8s/v1/version_pb2.pyi +68 -0
  207. yandex/cloud/k8s/v1/version_service_pb2.pyi +64 -0
  208. yandex/cloud/kms/v1/asymmetricencryption/asymmetric_encryption_crypto_service_pb2.pyi +92 -0
  209. yandex/cloud/kms/v1/asymmetricencryption/asymmetric_encryption_key_pb2.pyi +149 -0
  210. yandex/cloud/kms/v1/asymmetricencryption/asymmetric_encryption_key_service_pb2.pyi +335 -0
  211. yandex/cloud/kms/v1/asymmetricsignature/asymmetric_signature_crypto_service_pb2.pyi +140 -0
  212. yandex/cloud/kms/v1/asymmetricsignature/asymmetric_signature_key_pb2.pyi +189 -0
  213. yandex/cloud/kms/v1/asymmetricsignature/asymmetric_signature_key_service_pb2.pyi +335 -0
  214. yandex/cloud/kms/v1/symmetric_crypto_service_pb2.pyi +270 -0
  215. yandex/cloud/kms/v1/symmetric_key_pb2.pyi +260 -0
  216. yandex/cloud/kms/v1/symmetric_key_service_pb2.pyi +591 -0
  217. yandex/cloud/loadbalancer/v1/health_check_pb2.pyi +102 -0
  218. yandex/cloud/loadbalancer/v1/network_load_balancer_pb2.pyi +364 -0
  219. yandex/cloud/loadbalancer/v1/network_load_balancer_service_pb2.pyi +747 -0
  220. yandex/cloud/loadbalancer/v1/target_group_pb2.pyi +109 -0
  221. yandex/cloud/loadbalancer/v1/target_group_service_pb2.pyi +434 -0
  222. yandex/cloud/loadtesting/agent/v1/agent_pb2.pyi +26 -0
  223. yandex/cloud/loadtesting/agent/v1/agent_registration_service_pb2.py +10 -10
  224. yandex/cloud/loadtesting/agent/v1/agent_registration_service_pb2.pyi +83 -0
  225. yandex/cloud/loadtesting/agent/v1/agent_service_pb2.pyi +79 -0
  226. yandex/cloud/loadtesting/agent/v1/job_service_pb2.pyi +309 -0
  227. yandex/cloud/loadtesting/agent/v1/monitoring_service_pb2.pyi +102 -0
  228. yandex/cloud/loadtesting/agent/v1/test_pb2.pyi +181 -0
  229. yandex/cloud/loadtesting/agent/v1/test_service_pb2.pyi +105 -0
  230. yandex/cloud/loadtesting/agent/v1/trail_service_pb2.pyi +178 -0
  231. yandex/cloud/loadtesting/api/v1/agent/agent_pb2.pyi +91 -0
  232. yandex/cloud/loadtesting/api/v1/agent/create_compute_instance_pb2.pyi +120 -0
  233. yandex/cloud/loadtesting/api/v1/agent/status_pb2.pyi +97 -0
  234. yandex/cloud/loadtesting/api/v1/agent_service_pb2.pyi +301 -0
  235. yandex/cloud/loadtesting/api/v1/common/quantiles_pb2.pyi +61 -0
  236. yandex/cloud/loadtesting/api/v1/common/tag_pb2.pyi +33 -0
  237. yandex/cloud/loadtesting/api/v1/config/config_pb2.pyi +53 -0
  238. yandex/cloud/loadtesting/api/v1/config_service_pb2.pyi +165 -0
  239. yandex/cloud/loadtesting/api/v1/report/status_pb2.pyi +45 -0
  240. yandex/cloud/loadtesting/api/v1/report/table/report_pb2.pyi +79 -0
  241. yandex/cloud/loadtesting/api/v1/report_service_pb2.pyi +78 -0
  242. yandex/cloud/loadtesting/api/v1/test/agent_selector_pb2.pyi +42 -0
  243. yandex/cloud/loadtesting/api/v1/test/artifact_settings_pb2.pyi +61 -0
  244. yandex/cloud/loadtesting/api/v1/test/details_pb2.pyi +54 -0
  245. yandex/cloud/loadtesting/api/v1/test/file_pointer_pb2.pyi +34 -0
  246. yandex/cloud/loadtesting/api/v1/test/imbalance_point_pb2.pyi +37 -0
  247. yandex/cloud/loadtesting/api/v1/test/object_storage_pb2.pyi +33 -0
  248. yandex/cloud/loadtesting/api/v1/test/single_agent_configuration_pb2.pyi +74 -0
  249. yandex/cloud/loadtesting/api/v1/test/status_pb2.pyi +96 -0
  250. yandex/cloud/loadtesting/api/v1/test/summary_pb2.pyi +96 -0
  251. yandex/cloud/loadtesting/api/v1/test/test_pb2.pyi +65 -0
  252. yandex/cloud/loadtesting/api/v1/test_service_pb2.pyi +233 -0
  253. yandex/cloud/lockbox/v1/payload_pb2.pyi +61 -0
  254. yandex/cloud/lockbox/v1/payload_service_pb2.pyi +31 -0
  255. yandex/cloud/lockbox/v1/secret_pb2.pyi +209 -0
  256. yandex/cloud/lockbox/v1/secret_service_pb2.pyi +634 -0
  257. yandex/cloud/logging/v1/export_pb2.pyi +121 -0
  258. yandex/cloud/logging/v1/export_service_pb2.pyi +474 -0
  259. yandex/cloud/logging/v1/log_entry_pb2.pyi +289 -0
  260. yandex/cloud/logging/v1/log_group_pb2.pyi +143 -0
  261. yandex/cloud/logging/v1/log_group_service_pb2.pyi +479 -0
  262. yandex/cloud/logging/v1/log_ingestion_service_pb2.pyi +98 -0
  263. yandex/cloud/logging/v1/log_reading_service_pb2.pyi +171 -0
  264. yandex/cloud/logging/v1/log_resource_pb2.pyi +65 -0
  265. yandex/cloud/logging/v1/sink_pb2.pyi +124 -0
  266. yandex/cloud/logging/v1/sink_service_pb2.pyi +390 -0
  267. yandex/cloud/marketplace/licensemanager/v1/instance_pb2.pyi +135 -0
  268. yandex/cloud/marketplace/licensemanager/v1/instance_service_pb2.pyi +102 -0
  269. yandex/cloud/marketplace/licensemanager/v1/lock_pb2.pyi +99 -0
  270. yandex/cloud/marketplace/licensemanager/v1/lock_service_pb2.pyi +230 -0
  271. yandex/cloud/marketplace/licensemanager/v1/template_pb2.pyi +107 -0
  272. yandex/cloud/marketplace/metering/v1/image_product_usage_service_pb2.pyi +64 -0
  273. yandex/cloud/marketplace/metering/v1/usage_record_pb2.pyi +111 -0
  274. yandex/cloud/marketplace/v1/metering/image_product_usage_service_pb2.pyi +64 -0
  275. yandex/cloud/marketplace/v1/metering/usage_record_pb2.pyi +111 -0
  276. yandex/cloud/mdb/clickhouse/v1/backup_pb2.pyi +97 -0
  277. yandex/cloud/mdb/clickhouse/v1/backup_service_pb2.py +9 -3
  278. yandex/cloud/mdb/clickhouse/v1/backup_service_pb2.pyi +125 -0
  279. yandex/cloud/mdb/clickhouse/v1/cluster_pb2.pyi +747 -0
  280. yandex/cloud/mdb/clickhouse/v1/cluster_service_pb2.py +130 -130
  281. yandex/cloud/mdb/clickhouse/v1/cluster_service_pb2.pyi +2274 -0
  282. yandex/cloud/mdb/clickhouse/v1/config/clickhouse_pb2.pyi +1473 -0
  283. yandex/cloud/mdb/clickhouse/v1/database_pb2.pyi +51 -0
  284. yandex/cloud/mdb/clickhouse/v1/database_service_pb2.pyi +184 -0
  285. yandex/cloud/mdb/clickhouse/v1/format_schema_pb2.pyi +67 -0
  286. yandex/cloud/mdb/clickhouse/v1/format_schema_service_pb2.pyi +246 -0
  287. yandex/cloud/mdb/clickhouse/v1/maintenance_pb2.pyi +129 -0
  288. yandex/cloud/mdb/clickhouse/v1/ml_model_pb2.pyi +63 -0
  289. yandex/cloud/mdb/clickhouse/v1/ml_model_service_pb2.pyi +241 -0
  290. yandex/cloud/mdb/clickhouse/v1/resource_preset_pb2.pyi +45 -0
  291. yandex/cloud/mdb/clickhouse/v1/resource_preset_service_pb2.pyi +83 -0
  292. yandex/cloud/mdb/clickhouse/v1/user_pb2.pyi +1717 -0
  293. yandex/cloud/mdb/clickhouse/v1/user_service_pb2.pyi +353 -0
  294. yandex/cloud/mdb/clickhouse/v1/version_pb2.pyi +43 -0
  295. yandex/cloud/mdb/clickhouse/v1/versions_service_pb2.pyi +67 -0
  296. yandex/cloud/mdb/elasticsearch/v1/auth_pb2.pyi +139 -0
  297. yandex/cloud/mdb/elasticsearch/v1/auth_service_pb2.pyi +247 -0
  298. yandex/cloud/mdb/elasticsearch/v1/backup_pb2.pyi +69 -0
  299. yandex/cloud/mdb/elasticsearch/v1/backup_service_pb2.pyi +87 -0
  300. yandex/cloud/mdb/elasticsearch/v1/cluster_pb2.pyi +544 -0
  301. yandex/cloud/mdb/elasticsearch/v1/cluster_service_pb2.pyi +1422 -0
  302. yandex/cloud/mdb/elasticsearch/v1/config/elasticsearch_pb2.pyi +105 -0
  303. yandex/cloud/mdb/elasticsearch/v1/extension_pb2.pyi +67 -0
  304. yandex/cloud/mdb/elasticsearch/v1/extension_service_pb2.pyi +223 -0
  305. yandex/cloud/mdb/elasticsearch/v1/maintenance_pb2.pyi +115 -0
  306. yandex/cloud/mdb/elasticsearch/v1/resource_preset_pb2.pyi +45 -0
  307. yandex/cloud/mdb/elasticsearch/v1/resource_preset_service_pb2.pyi +85 -0
  308. yandex/cloud/mdb/elasticsearch/v1/user_pb2.pyi +53 -0
  309. yandex/cloud/mdb/elasticsearch/v1/user_service_pb2.pyi +247 -0
  310. yandex/cloud/mdb/greenplum/v1/backup_pb2.pyi +110 -0
  311. yandex/cloud/mdb/greenplum/v1/backup_service_pb2.pyi +122 -0
  312. yandex/cloud/mdb/greenplum/v1/cluster_pb2.pyi +519 -0
  313. yandex/cloud/mdb/greenplum/v1/cluster_service_pb2.pyi +1274 -0
  314. yandex/cloud/mdb/greenplum/v1/config_pb2.pyi +961 -0
  315. yandex/cloud/mdb/greenplum/v1/hba_rule_pb2.pyi +101 -0
  316. yandex/cloud/mdb/greenplum/v1/hba_rule_service_pb2.pyi +184 -0
  317. yandex/cloud/mdb/greenplum/v1/host_pb2.pyi +127 -0
  318. yandex/cloud/mdb/greenplum/v1/maintenance_pb2.pyi +145 -0
  319. yandex/cloud/mdb/greenplum/v1/pxf_pb2.py +37 -37
  320. yandex/cloud/mdb/greenplum/v1/pxf_pb2.pyi +539 -0
  321. yandex/cloud/mdb/greenplum/v1/pxf_service_pb2.py +22 -22
  322. yandex/cloud/mdb/greenplum/v1/pxf_service_pb2.pyi +164 -0
  323. yandex/cloud/mdb/greenplum/v1/resource_preset_pb2.pyi +89 -0
  324. yandex/cloud/mdb/greenplum/v1/resource_preset_service_pb2.pyi +91 -0
  325. yandex/cloud/mdb/kafka/v1/cluster_pb2.pyi +844 -0
  326. yandex/cloud/mdb/kafka/v1/cluster_service_pb2.pyi +915 -0
  327. yandex/cloud/mdb/kafka/v1/common_pb2.pyi +71 -0
  328. yandex/cloud/mdb/kafka/v1/connector_pb2.pyi +690 -0
  329. yandex/cloud/mdb/kafka/v1/connector_service_pb2.pyi +342 -0
  330. yandex/cloud/mdb/kafka/v1/maintenance_pb2.pyi +115 -0
  331. yandex/cloud/mdb/kafka/v1/resource_preset_pb2.pyi +45 -0
  332. yandex/cloud/mdb/kafka/v1/resource_preset_service_pb2.pyi +85 -0
  333. yandex/cloud/mdb/kafka/v1/topic_pb2.pyi +375 -0
  334. yandex/cloud/mdb/kafka/v1/topic_service_pb2.pyi +252 -0
  335. yandex/cloud/mdb/kafka/v1/user_pb2.pyi +137 -0
  336. yandex/cloud/mdb/kafka/v1/user_service_pb2.pyi +360 -0
  337. yandex/cloud/mdb/mongodb/v1/backup_pb2.pyi +97 -0
  338. yandex/cloud/mdb/mongodb/v1/backup_service_pb2.pyi +121 -0
  339. yandex/cloud/mdb/mongodb/v1/cluster_pb2.pyi +1890 -0
  340. yandex/cloud/mdb/mongodb/v1/cluster_service_pb2.pyi +3146 -0
  341. yandex/cloud/mdb/mongodb/v1/config/mongodb3_6_pb2.pyi +536 -0
  342. yandex/cloud/mdb/mongodb/v1/config/mongodb4_0_pb2.pyi +522 -0
  343. yandex/cloud/mdb/mongodb/v1/config/mongodb4_2_pb2.pyi +693 -0
  344. yandex/cloud/mdb/mongodb/v1/config/mongodb4_4_enterprise_pb2.pyi +781 -0
  345. yandex/cloud/mdb/mongodb/v1/config/mongodb4_4_pb2.pyi +693 -0
  346. yandex/cloud/mdb/mongodb/v1/config/mongodb5_0_enterprise_pb2.pyi +794 -0
  347. yandex/cloud/mdb/mongodb/v1/config/mongodb5_0_pb2.pyi +699 -0
  348. yandex/cloud/mdb/mongodb/v1/config/mongodb6_0_enterprise_pb2.pyi +794 -0
  349. yandex/cloud/mdb/mongodb/v1/config/mongodb6_0_pb2.pyi +699 -0
  350. yandex/cloud/mdb/mongodb/v1/database_pb2.pyi +51 -0
  351. yandex/cloud/mdb/mongodb/v1/database_service_pb2.pyi +184 -0
  352. yandex/cloud/mdb/mongodb/v1/maintenance_pb2.pyi +129 -0
  353. yandex/cloud/mdb/mongodb/v1/resource_preset_pb2.pyi +45 -0
  354. yandex/cloud/mdb/mongodb/v1/resource_preset_service_pb2.pyi +84 -0
  355. yandex/cloud/mdb/mongodb/v1/user_pb2.pyi +91 -0
  356. yandex/cloud/mdb/mongodb/v1/user_service_pb2.pyi +347 -0
  357. yandex/cloud/mdb/mysql/v1/backup_pb2.pyi +111 -0
  358. yandex/cloud/mdb/mysql/v1/backup_service_pb2.pyi +129 -0
  359. yandex/cloud/mdb/mysql/v1/cluster_pb2.pyi +601 -0
  360. yandex/cloud/mdb/mysql/v1/cluster_service_pb2.pyi +1537 -0
  361. yandex/cloud/mdb/mysql/v1/config/mysql5_7_pb2.pyi +1023 -0
  362. yandex/cloud/mdb/mysql/v1/config/mysql8_0_pb2.pyi +969 -0
  363. yandex/cloud/mdb/mysql/v1/database_pb2.pyi +52 -0
  364. yandex/cloud/mdb/mysql/v1/database_service_pb2.pyi +192 -0
  365. yandex/cloud/mdb/mysql/v1/maintenance_pb2.pyi +129 -0
  366. yandex/cloud/mdb/mysql/v1/resource_preset_pb2.pyi +49 -0
  367. yandex/cloud/mdb/mysql/v1/resource_preset_service_pb2.pyi +86 -0
  368. yandex/cloud/mdb/mysql/v1/user_pb2.pyi +357 -0
  369. yandex/cloud/mdb/mysql/v1/user_service_pb2.pyi +378 -0
  370. yandex/cloud/mdb/mysql/v1alpha/backup_pb2.pyi +53 -0
  371. yandex/cloud/mdb/mysql/v1alpha/backup_service_pb2.pyi +89 -0
  372. yandex/cloud/mdb/mysql/v1alpha/cluster_pb2.pyi +470 -0
  373. yandex/cloud/mdb/mysql/v1alpha/cluster_service_pb2.pyi +1025 -0
  374. yandex/cloud/mdb/mysql/v1alpha/config/mysql5_7_pb2.pyi +87 -0
  375. yandex/cloud/mdb/mysql/v1alpha/database_pb2.pyi +49 -0
  376. yandex/cloud/mdb/mysql/v1alpha/database_service_pb2.pyi +184 -0
  377. yandex/cloud/mdb/mysql/v1alpha/resource_preset_pb2.pyi +45 -0
  378. yandex/cloud/mdb/mysql/v1alpha/resource_preset_service_pb2.pyi +83 -0
  379. yandex/cloud/mdb/mysql/v1alpha/user_pb2.pyi +185 -0
  380. yandex/cloud/mdb/mysql/v1alpha/user_service_pb2.pyi +312 -0
  381. yandex/cloud/mdb/opensearch/v1/auth_pb2.pyi +69 -0
  382. yandex/cloud/mdb/opensearch/v1/backup_pb2.pyi +69 -0
  383. yandex/cloud/mdb/opensearch/v1/backup_service_pb2.pyi +91 -0
  384. yandex/cloud/mdb/opensearch/v1/cluster_pb2.pyi +726 -0
  385. yandex/cloud/mdb/opensearch/v1/cluster_service_pb2.pyi +1827 -0
  386. yandex/cloud/mdb/opensearch/v1/config/opensearch_pb2.pyi +63 -0
  387. yandex/cloud/mdb/opensearch/v1/maintenance_pb2.pyi +155 -0
  388. yandex/cloud/mdb/opensearch/v1/resource_preset_pb2.pyi +45 -0
  389. yandex/cloud/mdb/opensearch/v1/resource_preset_service_pb2.pyi +87 -0
  390. yandex/cloud/mdb/postgresql/v1/backup_pb2.pyi +139 -0
  391. yandex/cloud/mdb/postgresql/v1/backup_service_pb2.pyi +125 -0
  392. yandex/cloud/mdb/postgresql/v1/cluster_pb2.pyi +935 -0
  393. yandex/cloud/mdb/postgresql/v1/cluster_service_pb2.pyi +1708 -0
  394. yandex/cloud/mdb/postgresql/v1/config/host10_1c_pb2.pyi +507 -0
  395. yandex/cloud/mdb/postgresql/v1/config/host10_pb2.pyi +507 -0
  396. yandex/cloud/mdb/postgresql/v1/config/host11_1c_pb2.pyi +501 -0
  397. yandex/cloud/mdb/postgresql/v1/config/host11_pb2.pyi +501 -0
  398. yandex/cloud/mdb/postgresql/v1/config/host12_1c_pb2.pyi +501 -0
  399. yandex/cloud/mdb/postgresql/v1/config/host12_pb2.pyi +501 -0
  400. yandex/cloud/mdb/postgresql/v1/config/host13_1c_pb2.pyi +501 -0
  401. yandex/cloud/mdb/postgresql/v1/config/host13_pb2.pyi +501 -0
  402. yandex/cloud/mdb/postgresql/v1/config/host14_1c_pb2.pyi +497 -0
  403. yandex/cloud/mdb/postgresql/v1/config/host14_pb2.pyi +497 -0
  404. yandex/cloud/mdb/postgresql/v1/config/host15_1c_pb2.pyi +497 -0
  405. yandex/cloud/mdb/postgresql/v1/config/host15_pb2.pyi +497 -0
  406. yandex/cloud/mdb/postgresql/v1/config/host16_1c_pb2.pyi +516 -0
  407. yandex/cloud/mdb/postgresql/v1/config/host16_pb2.pyi +516 -0
  408. yandex/cloud/mdb/postgresql/v1/config/host9_6_pb2.pyi +458 -0
  409. yandex/cloud/mdb/postgresql/v1/config/postgresql10_1c_pb2.pyi +931 -0
  410. yandex/cloud/mdb/postgresql/v1/config/postgresql10_pb2.pyi +923 -0
  411. yandex/cloud/mdb/postgresql/v1/config/postgresql11_1c_pb2.pyi +975 -0
  412. yandex/cloud/mdb/postgresql/v1/config/postgresql11_pb2.pyi +967 -0
  413. yandex/cloud/mdb/postgresql/v1/config/postgresql12_1c_pb2.pyi +999 -0
  414. yandex/cloud/mdb/postgresql/v1/config/postgresql12_pb2.pyi +991 -0
  415. yandex/cloud/mdb/postgresql/v1/config/postgresql13_1c_pb2.pyi +1053 -0
  416. yandex/cloud/mdb/postgresql/v1/config/postgresql13_pb2.pyi +1051 -0
  417. yandex/cloud/mdb/postgresql/v1/config/postgresql14_1c_pb2.pyi +1081 -0
  418. yandex/cloud/mdb/postgresql/v1/config/postgresql14_pb2.pyi +1079 -0
  419. yandex/cloud/mdb/postgresql/v1/config/postgresql15_1c_pb2.pyi +1091 -0
  420. yandex/cloud/mdb/postgresql/v1/config/postgresql15_pb2.pyi +1083 -0
  421. yandex/cloud/mdb/postgresql/v1/config/postgresql16_1c_pb2.pyi +1093 -0
  422. yandex/cloud/mdb/postgresql/v1/config/postgresql16_pb2.pyi +1085 -0
  423. yandex/cloud/mdb/postgresql/v1/config/postgresql9_6_pb2.pyi +651 -0
  424. yandex/cloud/mdb/postgresql/v1/database_pb2.pyi +150 -0
  425. yandex/cloud/mdb/postgresql/v1/database_service_pb2.pyi +260 -0
  426. yandex/cloud/mdb/postgresql/v1/maintenance_pb2.pyi +129 -0
  427. yandex/cloud/mdb/postgresql/v1/perf_diag_pb2.pyi +462 -0
  428. yandex/cloud/mdb/postgresql/v1/perf_diag_service_pb2.pyi +139 -0
  429. yandex/cloud/mdb/postgresql/v1/resource_preset_pb2.pyi +45 -0
  430. yandex/cloud/mdb/postgresql/v1/resource_preset_service_pb2.pyi +83 -0
  431. yandex/cloud/mdb/postgresql/v1/user_pb2.pyi +534 -0
  432. yandex/cloud/mdb/postgresql/v1/user_service_pb2.pyi +396 -0
  433. yandex/cloud/mdb/redis/v1/backup_pb2.pyi +65 -0
  434. yandex/cloud/mdb/redis/v1/backup_service_pb2.pyi +89 -0
  435. yandex/cloud/mdb/redis/v1/cluster_pb2.pyi +610 -0
  436. yandex/cloud/mdb/redis/v1/cluster_service_pb2.pyi +1686 -0
  437. yandex/cloud/mdb/redis/v1/config/redis5_0_pb2.pyi +204 -0
  438. yandex/cloud/mdb/redis/v1/config/redis6_0_pb2.pyi +204 -0
  439. yandex/cloud/mdb/redis/v1/config/redis6_2_pb2.pyi +210 -0
  440. yandex/cloud/mdb/redis/v1/config/redis7_0_pb2.pyi +210 -0
  441. yandex/cloud/mdb/redis/v1/config/redis_pb2.pyi +210 -0
  442. yandex/cloud/mdb/redis/v1/maintenance_pb2.pyi +129 -0
  443. yandex/cloud/mdb/redis/v1/resource_preset_pb2.pyi +45 -0
  444. yandex/cloud/mdb/redis/v1/resource_preset_service_pb2.pyi +83 -0
  445. yandex/cloud/mdb/sqlserver/v1/backup_pb2.pyi +62 -0
  446. yandex/cloud/mdb/sqlserver/v1/backup_service_pb2.pyi +90 -0
  447. yandex/cloud/mdb/sqlserver/v1/cluster_pb2.pyi +571 -0
  448. yandex/cloud/mdb/sqlserver/v1/cluster_service_pb2.pyi +1226 -0
  449. yandex/cloud/mdb/sqlserver/v1/config/sqlserver2016sp2_pb2.pyi +231 -0
  450. yandex/cloud/mdb/sqlserver/v1/config/sqlserver2017_pb2.pyi +231 -0
  451. yandex/cloud/mdb/sqlserver/v1/config/sqlserver2019_pb2.pyi +231 -0
  452. yandex/cloud/mdb/sqlserver/v1/database_pb2.pyi +52 -0
  453. yandex/cloud/mdb/sqlserver/v1/database_service_pb2.pyi +384 -0
  454. yandex/cloud/mdb/sqlserver/v1/resource_preset_pb2.pyi +45 -0
  455. yandex/cloud/mdb/sqlserver/v1/resource_preset_service_pb2.pyi +83 -0
  456. yandex/cloud/mdb/sqlserver/v1/user_pb2.pyi +185 -0
  457. yandex/cloud/mdb/sqlserver/v1/user_service_pb2.pyi +368 -0
  458. yandex/cloud/monitoring/v3/chart_widget_pb2.pyi +641 -0
  459. yandex/cloud/monitoring/v3/dashboard_pb2.pyi +122 -0
  460. yandex/cloud/monitoring/v3/dashboard_service_pb2.pyi +377 -0
  461. yandex/cloud/monitoring/v3/downsampling_pb2.pyi +118 -0
  462. yandex/cloud/monitoring/v3/parametrization_pb2.pyi +256 -0
  463. yandex/cloud/monitoring/v3/text_widget_pb2.pyi +29 -0
  464. yandex/cloud/monitoring/v3/title_widget_pb2.pyi +69 -0
  465. yandex/cloud/monitoring/v3/unit_format_pb2.pyi +480 -0
  466. yandex/cloud/monitoring/v3/widget_pb2.pyi +82 -0
  467. yandex/cloud/oauth/claims_pb2.pyi +136 -0
  468. yandex/cloud/operation/operation_pb2.pyi +89 -0
  469. yandex/cloud/operation/operation_service_pb2.pyi +43 -0
  470. yandex/cloud/organizationmanager/v1/group_mapping_pb2.pyi +57 -0
  471. yandex/cloud/organizationmanager/v1/group_mapping_service_pb2.pyi +305 -0
  472. yandex/cloud/organizationmanager/v1/group_pb2.pyi +51 -0
  473. yandex/cloud/organizationmanager/v1/group_service_pb2.pyi +464 -0
  474. yandex/cloud/organizationmanager/v1/organization_pb2.pyi +73 -0
  475. yandex/cloud/organizationmanager/v1/organization_service_pb2.pyi +231 -0
  476. yandex/cloud/organizationmanager/v1/os_login_service_pb2.pyi +421 -0
  477. yandex/cloud/organizationmanager/v1/saml/certificate_pb2.pyi +53 -0
  478. yandex/cloud/organizationmanager/v1/saml/certificate_service_pb2.pyi +298 -0
  479. yandex/cloud/organizationmanager/v1/saml/federation_pb2.pyi +179 -0
  480. yandex/cloud/organizationmanager/v1/saml/federation_service_pb2.pyi +625 -0
  481. yandex/cloud/organizationmanager/v1/ssh_certificate_service_pb2.pyi +62 -0
  482. yandex/cloud/organizationmanager/v1/user_account_pb2.pyi +133 -0
  483. yandex/cloud/organizationmanager/v1/user_service_pb2.pyi +150 -0
  484. yandex/cloud/organizationmanager/v1/user_ssh_key_pb2.pyi +53 -0
  485. yandex/cloud/organizationmanager/v1/user_ssh_key_service_pb2.pyi +194 -0
  486. yandex/cloud/quota/quota_pb2.pyi +88 -0
  487. yandex/cloud/reference/reference_pb2.pyi +77 -0
  488. yandex/cloud/resourcemanager/v1/cloud_pb2.pyi +73 -0
  489. yandex/cloud/resourcemanager/v1/cloud_service_pb2.pyi +360 -0
  490. yandex/cloud/resourcemanager/v1/folder_pb2.pyi +109 -0
  491. yandex/cloud/resourcemanager/v1/folder_service_pb2.pyi +364 -0
  492. yandex/cloud/serverless/apigateway/v1/apigateway_pb2.py +24 -21
  493. yandex/cloud/serverless/apigateway/v1/apigateway_pb2.pyi +332 -0
  494. yandex/cloud/serverless/apigateway/v1/apigateway_service_pb2.py +53 -48
  495. yandex/cloud/serverless/apigateway/v1/apigateway_service_pb2.pyi +618 -0
  496. yandex/cloud/serverless/apigateway/websocket/v1/connection_pb2.pyi +71 -0
  497. yandex/cloud/serverless/apigateway/websocket/v1/connection_service_pb2.pyi +113 -0
  498. yandex/cloud/serverless/containers/v1/container_pb2.pyi +538 -0
  499. yandex/cloud/serverless/containers/v1/container_service_pb2.pyi +668 -0
  500. yandex/cloud/serverless/functions/v1/function_pb2.pyi +607 -0
  501. yandex/cloud/serverless/functions/v1/function_service_pb2.pyi +1073 -0
  502. yandex/cloud/serverless/functions/v1/network_service_pb2.pyi +312 -0
  503. yandex/cloud/serverless/mdbproxy/v1/proxy_pb2.pyi +163 -0
  504. yandex/cloud/serverless/mdbproxy/v1/proxy_service_pb2.pyi +359 -0
  505. yandex/cloud/serverless/triggers/v1/predicate_pb2.pyi +80 -0
  506. yandex/cloud/serverless/triggers/v1/trigger_pb2.pyi +1109 -0
  507. yandex/cloud/serverless/triggers/v1/trigger_service_pb2.pyi +439 -0
  508. yandex/cloud/speechsense/v1/audio_pb2.pyi +204 -0
  509. yandex/cloud/speechsense/v1/talk_service_pb2.pyi +161 -0
  510. yandex/cloud/speechsense/v1/text_pb2.pyi +70 -0
  511. yandex/cloud/storage/v1/bucket_pb2.pyi +1465 -0
  512. yandex/cloud/storage/v1/bucket_service_pb2.pyi +540 -0
  513. yandex/cloud/validation_pb2.pyi +53 -0
  514. yandex/cloud/video/v1/channel_pb2.pyi +79 -0
  515. yandex/cloud/video/v1/channel_service_pb2.pyi +259 -0
  516. yandex/cloud/video/v1/episode_pb2.pyi +140 -0
  517. yandex/cloud/video/v1/episode_service_pb2.pyi +451 -0
  518. yandex/cloud/video/v1/stream_line_pb2.pyi +305 -0
  519. yandex/cloud/video/v1/stream_line_service_pb2.pyi +563 -0
  520. yandex/cloud/video/v1/stream_pb2.pyi +197 -0
  521. yandex/cloud/video/v1/stream_service_pb2.pyi +396 -0
  522. yandex/cloud/video/v1/thumbnail_pb2.pyi +39 -0
  523. yandex/cloud/video/v1/thumbnail_service_pb2.pyi +184 -0
  524. yandex/cloud/video/v1/video_pb2.pyi +211 -0
  525. yandex/cloud/video/v1/video_service_pb2.pyi +464 -0
  526. yandex/cloud/vpc/v1/address_pb2.pyi +226 -0
  527. yandex/cloud/vpc/v1/address_service_pb2.pyi +491 -0
  528. yandex/cloud/vpc/v1/gateway_pb2.pyi +92 -0
  529. yandex/cloud/vpc/v1/gateway_service_pb2.pyi +403 -0
  530. yandex/cloud/vpc/v1/network_pb2.pyi +79 -0
  531. yandex/cloud/vpc/v1/network_service_pb2.pyi +547 -0
  532. yandex/cloud/vpc/v1/route_table_pb2.pyi +136 -0
  533. yandex/cloud/vpc/v1/route_table_service_pb2.pyi +381 -0
  534. yandex/cloud/vpc/v1/security_group_pb2.pyi +266 -0
  535. yandex/cloud/vpc/v1/security_group_service_pb2.pyi +591 -0
  536. yandex/cloud/vpc/v1/subnet_pb2.pyi +155 -0
  537. yandex/cloud/vpc/v1/subnet_service_pb2.pyi +593 -0
  538. yandex/cloud/ydb/v1/backup_pb2.pyi +353 -0
  539. yandex/cloud/ydb/v1/backup_service_pb2.pyi +166 -0
  540. yandex/cloud/ydb/v1/database_pb2.pyi +577 -0
  541. yandex/cloud/ydb/v1/database_service_pb2.pyi +550 -0
  542. yandex/cloud/ydb/v1/location_pb2.pyi +29 -0
  543. yandex/cloud/ydb/v1/location_service_pb2.pyi +83 -0
  544. yandex/cloud/ydb/v1/resource_preset_pb2.pyi +32 -0
  545. yandex/cloud/ydb/v1/resource_preset_service_pb2.pyi +83 -0
  546. yandex/cloud/ydb/v1/storage_type_pb2.pyi +32 -0
  547. yandex/cloud/ydb/v1/storage_type_service_pb2.pyi +83 -0
  548. yandexcloud/_auth_fabric.py +46 -41
  549. yandexcloud/_auth_plugin.py +36 -18
  550. yandexcloud/_backoff.py +8 -7
  551. yandexcloud/_channels.py +27 -13
  552. yandexcloud/_helpers.py +15 -29
  553. yandexcloud/_operation_waiter.py +32 -18
  554. yandexcloud/_retry_interceptor.py +39 -22
  555. yandexcloud/_sdk.py +81 -32
  556. yandexcloud/_wrappers/__init__.py +9 -2
  557. yandexcloud/_wrappers/dataproc/__init__.py +11 -10
  558. yandexcloud/auth.py +10 -2
  559. yandexcloud/operations.py +22 -7
  560. {yandexcloud-0.287.0.dist-info → yandexcloud-0.289.0.dist-info}/AUTHORS +2 -3
  561. {yandexcloud-0.287.0.dist-info → yandexcloud-0.289.0.dist-info}/METADATA +4 -4
  562. {yandexcloud-0.287.0.dist-info → yandexcloud-0.289.0.dist-info}/RECORD +565 -26
  563. {yandexcloud-0.287.0.dist-info → yandexcloud-0.289.0.dist-info}/LICENSE +0 -0
  564. {yandexcloud-0.287.0.dist-info → yandexcloud-0.289.0.dist-info}/WHEEL +0 -0
  565. {yandexcloud-0.287.0.dist-info → yandexcloud-0.289.0.dist-info}/top_level.txt +0 -0
yandexcloud/_helpers.py CHANGED
@@ -1,4 +1,5 @@
1
1
  # -*- coding: utf-8 -*-
2
+ from typing import TYPE_CHECKING, Optional
2
3
 
3
4
  from yandex.cloud.iam.v1.service_account_service_pb2 import ListServiceAccountsRequest
4
5
  from yandex.cloud.iam.v1.service_account_service_pb2_grpc import (
@@ -9,64 +10,51 @@ from yandex.cloud.vpc.v1.network_service_pb2_grpc import NetworkServiceStub
9
10
  from yandex.cloud.vpc.v1.subnet_service_pb2 import ListSubnetsRequest
10
11
  from yandex.cloud.vpc.v1.subnet_service_pb2_grpc import SubnetServiceStub
11
12
 
13
+ if TYPE_CHECKING:
14
+ from yandexcloud._sdk import SDK
12
15
 
13
- class Helpers(object):
14
- def __init__(self, sdk):
16
+
17
+ class Helpers:
18
+ def __init__(self, sdk: "SDK"):
15
19
  self.sdk = sdk
16
20
 
17
- def find_service_account_id(self, folder_id):
21
+ def find_service_account_id(self, folder_id: str) -> str:
18
22
  """
19
23
  Get service account id in case the folder has the only one service account
20
24
 
21
25
  :param folder_id: ID of the folder
22
- :type folder_id: str
23
26
  :return ID of the service account
24
- :rtype str
25
27
  """
26
28
  service = self.sdk.client(ServiceAccountServiceStub)
27
29
  service_accounts = service.List(ListServiceAccountsRequest(folder_id=folder_id)).service_accounts
28
30
  if len(service_accounts) == 1:
29
31
  return service_accounts[0].id
30
32
  if len(service_accounts) == 0:
31
- raise RuntimeError(
32
- "There are no service accounts in folder {folder_id}, please create it.".format(folder_id=folder_id)
33
- )
34
- raise RuntimeError(
35
- "There are more than one service account in folder {folder_id}, please specify it".format(
36
- folder_id=folder_id
37
- )
38
- )
33
+ raise RuntimeError(f"There are no service accounts in folder {folder_id}, please create it.")
34
+ raise RuntimeError(f"There are more than one service account in folder {folder_id}, please specify it")
39
35
 
40
- def find_network_id(self, folder_id):
36
+ def find_network_id(self, folder_id: str) -> str:
41
37
  """
42
38
  Get ID of the first network in folder
43
39
 
44
40
  :param folder_id: ID of the folder
45
- :type folder_id: str
46
41
  :return ID of the network
47
- :rtype str
48
42
  """
49
43
  networks = self.sdk.client(NetworkServiceStub).List(ListNetworksRequest(folder_id=folder_id)).networks
50
44
  if not networks:
51
- raise RuntimeError("No networks in folder: {folder_id}".format(folder_id=folder_id))
45
+ raise RuntimeError(f"No networks in folder: {folder_id}")
52
46
  if len(networks) > 1:
53
- raise RuntimeError(
54
- "There are more than one network in folder {folder_id}, please specify it".format(folder_id=folder_id)
55
- )
47
+ raise RuntimeError("There are more than one network in folder {folder_id}, please specify it")
56
48
  return networks[0].id
57
49
 
58
- def find_subnet_id(self, folder_id, zone_id, network_id=None):
50
+ def find_subnet_id(self, folder_id: str, zone_id: str, network_id: Optional[str] = None) -> str:
59
51
  """
60
52
  Get ID of the subnetwork of specified network in specified availability zone
61
53
 
62
54
  :param folder_id: ID of the folder
63
- :type folder_id: str
64
55
  :param zone_id: ID of the availability zone
65
- :type zone_id: str
66
56
  :param network_id: ID of the network
67
- :type network_id: str
68
57
  :return ID of the subnetwork
69
- :rtype str
70
58
  """
71
59
  subnet_service = self.sdk.client(SubnetServiceStub)
72
60
  subnets = subnet_service.List(ListSubnetsRequest(folder_id=folder_id)).subnets
@@ -77,7 +65,5 @@ class Helpers(object):
77
65
  if len(applicable) == 1:
78
66
  return applicable[0].id
79
67
  if len(applicable) == 0:
80
- raise RuntimeError("There are no subnets in {zone_id} zone, please create it.".format(zone_id=zone_id))
81
- raise RuntimeError(
82
- "There are more than one subnet in {zone_id} zone, please specify it".format(zone_id=zone_id)
83
- )
68
+ raise RuntimeError(f"There are no subnets in {zone_id} zone, please create it.")
69
+ raise RuntimeError(f"There are more than one subnet in {zone_id} zone, please specify it")
@@ -1,6 +1,7 @@
1
1
  import logging
2
2
  import time
3
3
  from datetime import datetime
4
+ from typing import TYPE_CHECKING, Optional, Type, Union
4
5
 
5
6
  import grpc
6
7
  from google.protobuf.empty_pb2 import Empty
@@ -11,8 +12,14 @@ from yandexcloud._backoff import backoff_exponential_jittered_min_interval
11
12
  from yandexcloud._retry_interceptor import RetryInterceptor
12
13
  from yandexcloud.operations import OperationError, OperationResult
13
14
 
15
+ if TYPE_CHECKING:
16
+ import google.protobuf.message
14
17
 
15
- def operation_waiter(sdk, operation_id, timeout):
18
+ from yandex.cloud.operation.operation_pb2 import Operation
19
+ from yandexcloud._sdk import SDK
20
+
21
+
22
+ def operation_waiter(sdk: "SDK", operation_id: str, timeout: Optional[float]) -> "OperationWaiter":
16
23
  retriable_codes = (
17
24
  grpc.StatusCode.UNAVAILABLE,
18
25
  grpc.StatusCode.RESOURCE_EXHAUSTED,
@@ -32,14 +39,21 @@ def operation_waiter(sdk, operation_id, timeout):
32
39
  return OperationWaiter(operation_id, operation_service, timeout)
33
40
 
34
41
 
35
- def wait_for_operation(sdk, operation_id, timeout):
42
+ def wait_for_operation(sdk: "SDK", operation_id: str, timeout: Optional[float]) -> Optional["Operation"]:
36
43
  waiter = operation_waiter(sdk, operation_id, timeout)
37
44
  for _ in waiter:
38
45
  time.sleep(1)
39
46
  return waiter.operation
40
47
 
41
48
 
42
- def get_operation_result(sdk, operation, response_type=None, meta_type=None, timeout=None, logger=None):
49
+ def get_operation_result(
50
+ sdk: "SDK",
51
+ operation: "Operation",
52
+ response_type: Optional[Type["google.protobuf.message.Message"]] = None,
53
+ meta_type: Optional[Type["google.protobuf.message.Message"]] = None,
54
+ timeout: Optional[float] = None,
55
+ logger: Optional[logging.Logger] = None,
56
+ ) -> Union["OperationResult", "OperationError"]:
43
57
  if not logger:
44
58
  logger = logging.getLogger()
45
59
  logger.addHandler(logging.NullHandler())
@@ -47,8 +61,8 @@ def get_operation_result(sdk, operation, response_type=None, meta_type=None, tim
47
61
  created_at = datetime.fromtimestamp(operation.created_at.seconds)
48
62
  message = (
49
63
  "Running Yandex.Cloud operation. ID: {id}. "
50
- + "Description: {description}. Created at: {created_at}. "
51
- + "Created by: {created_by}."
64
+ "Description: {description}. Created at: {created_at}. "
65
+ "Created by: {created_by}."
52
66
  )
53
67
  message = message.format(
54
68
  id=operation.id,
@@ -60,14 +74,14 @@ def get_operation_result(sdk, operation, response_type=None, meta_type=None, tim
60
74
  unpacked_meta = meta_type()
61
75
  operation.metadata.Unpack(unpacked_meta)
62
76
  operation_result.meta = unpacked_meta
63
- message += " Meta: {unpacked_meta}.".format(unpacked_meta=unpacked_meta)
77
+ message += f" Meta: {unpacked_meta}."
64
78
  logger.info(message)
65
79
  result = wait_for_operation(sdk, operation.id, timeout=timeout)
80
+ if result is None:
81
+ return OperationError(message="Unexpected operation result", operation_result=OperationResult(operation))
66
82
  if result.error and result.error.code:
67
83
  error_message = (
68
- "Error Yandex.Cloud operation. ID: {id}. "
69
- + "Error code: {code}. Details: {details}. "
70
- + "Message: {message}."
84
+ "Error Yandex.Cloud operation. ID: {id}. Error code: {code}. Details: {details}. Message: {message}."
71
85
  )
72
86
  error_message = error_message.format(
73
87
  id=result.id,
@@ -76,38 +90,38 @@ def get_operation_result(sdk, operation, response_type=None, meta_type=None, tim
76
90
  message=result.error.message,
77
91
  )
78
92
  logger.error(error_message)
79
- raise OperationError(message=error_message, operation_result=result)
93
+ raise OperationError(message=error_message, operation_result=OperationResult(operation))
80
94
 
81
- log_message = "Done Yandex.Cloud operation. ID: {id}.".format(id=operation.id)
95
+ log_message = f"Done Yandex.Cloud operation. ID: {operation.id}."
82
96
  if response_type and response_type is not Empty:
83
97
  unpacked_response = response_type()
84
98
  result.response.Unpack(unpacked_response)
85
99
  operation_result.response = unpacked_response
86
- log_message += " Response: {unpacked_response}.".format(unpacked_response=unpacked_response)
100
+ log_message += f" Response: {unpacked_response}."
87
101
  logger.info(log_message)
88
102
  return operation_result
89
103
 
90
104
 
91
105
  class OperationWaiter:
92
- def __init__(self, operation_id, operation_service, timeout=None):
93
- self.__operation = None
106
+ def __init__(self, operation_id: str, operation_service: "OperationServiceStub", timeout: Optional[float] = None):
107
+ self.__operation: Optional["Operation"] = None
94
108
  self.__operation_id = operation_id
95
109
  self.__operation_service = operation_service
96
110
  self.__deadline = time.time() + timeout if timeout else None
97
111
 
98
112
  @property
99
- def operation(self):
113
+ def operation(self) -> Optional["Operation"]:
100
114
  return self.__operation
101
115
 
102
116
  @property
103
- def done(self):
117
+ def done(self) -> bool:
104
118
  self.__operation = self.__operation_service.Get(GetOperationRequest(operation_id=self.__operation_id))
105
119
  return self.__operation is not None and self.__operation.done
106
120
 
107
- def __iter__(self):
121
+ def __iter__(self) -> "OperationWaiter":
108
122
  return self
109
123
 
110
- def __next__(self):
124
+ def __next__(self) -> None:
111
125
  if self.done or self.__deadline is not None and time.time() >= self.__deadline:
112
126
  raise StopIteration()
113
127
 
@@ -1,6 +1,7 @@
1
1
  import collections
2
2
  import time
3
3
  import uuid
4
+ from typing import Callable, Iterable, Optional
4
5
 
5
6
  import grpc
6
7
 
@@ -41,11 +42,11 @@ class RetryInterceptor(grpc.UnaryUnaryClientInterceptor):
41
42
 
42
43
  def __init__(
43
44
  self,
44
- max_retry_count=0,
45
- retriable_codes=_DEFAULT_RETRIABLE_CODES,
46
- add_retry_count_to_header=False,
47
- back_off_func=None,
48
- per_call_timeout=None,
45
+ max_retry_count: int = 0,
46
+ retriable_codes: Iterable["grpc.StatusCode"] = _DEFAULT_RETRIABLE_CODES,
47
+ add_retry_count_to_header: bool = False,
48
+ back_off_func: Optional[Callable[[int], float]] = None,
49
+ per_call_timeout: Optional[float] = None,
49
50
  ):
50
51
  # pylint: disable=super-init-not-called
51
52
  self.__max_retry_count = max_retry_count
@@ -54,7 +55,12 @@ class RetryInterceptor(grpc.UnaryUnaryClientInterceptor):
54
55
  self.__back_off_func = back_off_func
55
56
  self.__per_call_timeout = per_call_timeout
56
57
 
57
- def intercept_unary_unary(self, continuation, client_call_details, request):
58
+ def intercept_unary_unary(
59
+ self,
60
+ continuation: Callable[["grpc.ClientCallDetails", "grpc.TRequest"], "grpc.CallFuture[grpc.TResponse]"],
61
+ client_call_details: "grpc.ClientCallDetails",
62
+ request: "grpc.TRequest",
63
+ ) -> "grpc.CallFuture[grpc.TResponse]":
58
64
  client_call_details = self.__add_idempotency_token(client_call_details)
59
65
 
60
66
  attempt = 0
@@ -66,7 +72,7 @@ class RetryInterceptor(grpc.UnaryUnaryClientInterceptor):
66
72
  except _RetryCall:
67
73
  attempt += 1
68
74
 
69
- def __wait_backoff(self, attempt, deadline):
75
+ def __wait_backoff(self, attempt: int, deadline: Optional[float]) -> None:
70
76
  if self.__back_off_func is None:
71
77
  return
72
78
 
@@ -82,10 +88,10 @@ class RetryInterceptor(grpc.UnaryUnaryClientInterceptor):
82
88
  time.sleep(backoff_timeout)
83
89
 
84
90
  @staticmethod
85
- def __deadline(timeout):
91
+ def __deadline(timeout: Optional[float]) -> Optional[float]:
86
92
  return time.time() + timeout if timeout is not None else None
87
93
 
88
- def __is_retriable(self, error):
94
+ def __is_retriable(self, error: "grpc.StatusCode") -> bool:
89
95
  if error in self._NON_RETRIABLE_CODES:
90
96
  return False
91
97
 
@@ -95,7 +101,9 @@ class RetryInterceptor(grpc.UnaryUnaryClientInterceptor):
95
101
  return False
96
102
 
97
103
  @staticmethod
98
- def __min_deadline(d1, d2):
104
+ def __min_deadline(d1: Optional[float], d2: Optional[float]) -> Optional[float]:
105
+ if d2 is None and d1 is None:
106
+ return None
99
107
  if d1 is None:
100
108
  return d2
101
109
 
@@ -104,7 +112,14 @@ class RetryInterceptor(grpc.UnaryUnaryClientInterceptor):
104
112
 
105
113
  return min(d1, d2)
106
114
 
107
- def __grpc_call(self, attempt, deadline, continuation, client_call_details, request):
115
+ def __grpc_call(
116
+ self,
117
+ attempt: int,
118
+ deadline: Optional[float],
119
+ continuation: Callable[["grpc.ClientCallDetails", "grpc.TRequest"], "grpc.CallFuture[grpc.TResponse]"],
120
+ client_call_details: "grpc.ClientCallDetails",
121
+ request: "grpc.TRequest",
122
+ ) -> "grpc.CallFuture[grpc.TResponse]":
108
123
  if attempt > 0:
109
124
  if self.__add_retry_count_to_header:
110
125
  client_call_details = self.__append_retry_attempt_header(client_call_details, attempt)
@@ -115,24 +130,21 @@ class RetryInterceptor(grpc.UnaryUnaryClientInterceptor):
115
130
  if call_deadline is not None:
116
131
  client_call_details = self.__adjust_timeout(client_call_details, call_deadline)
117
132
 
118
- def retry():
133
+ def retry() -> None:
119
134
  self.__wait_backoff(attempt, deadline)
120
135
  raise _RetryCall()
121
136
 
122
137
  try:
123
138
  result = continuation(client_call_details, request)
124
- if isinstance(result, grpc.RpcError):
139
+ if isinstance(result, grpc.RpcError): # type: ignore
125
140
  raise result
126
141
  return result
127
- except grpc.RpcError as e:
142
+ except grpc.RpcError as error:
128
143
  # no retries left
129
144
  if 0 <= self.__max_retry_count <= attempt:
130
145
  raise
131
146
 
132
- err_code = None
133
- if isinstance(e, grpc.Call):
134
- err_code = e.code()
135
-
147
+ err_code = error.code() # pylint: disable=no-member
136
148
  if err_code == grpc.StatusCode.DEADLINE_EXCEEDED:
137
149
  # if there is no per_call_timeout, or it is original deadline -> abort, otherwise, retry call.
138
150
  if self.__per_call_timeout is None or deadline is not None and deadline < time.time():
@@ -144,9 +156,10 @@ class RetryInterceptor(grpc.UnaryUnaryClientInterceptor):
144
156
  raise
145
157
 
146
158
  retry()
159
+ raise RuntimeError("Unexpected behavior")
147
160
 
148
161
  @staticmethod
149
- def __adjust_timeout(client_call_details, deadline):
162
+ def __adjust_timeout(client_call_details: "grpc.ClientCallDetails", deadline: float) -> "grpc.ClientCallDetails":
150
163
  timeout = max(deadline - time.time(), 0.0)
151
164
  return _ClientCallDetails(
152
165
  client_call_details.method,
@@ -157,14 +170,18 @@ class RetryInterceptor(grpc.UnaryUnaryClientInterceptor):
157
170
  getattr(client_call_details, "compression", None),
158
171
  )
159
172
 
160
- def __add_idempotency_token(self, client_call_details):
173
+ def __add_idempotency_token(self, client_call_details: "grpc.ClientCallDetails") -> "grpc.ClientCallDetails":
161
174
  return self.__append_metadata(client_call_details, self._IDEMPOTENCY_TOKEN_METADATA_KEY, str(uuid.uuid4()))
162
175
 
163
- def __append_retry_attempt_header(self, client_call_details, attempt):
176
+ def __append_retry_attempt_header(
177
+ self, client_call_details: "grpc.ClientCallDetails", attempt: int
178
+ ) -> "grpc.ClientCallDetails":
164
179
  return self.__append_metadata(client_call_details, self._ATTEMPT_METADATA_KEY, str(attempt), force=True)
165
180
 
166
181
  @staticmethod
167
- def __append_metadata(client_call_details, header, value, force=False):
182
+ def __append_metadata(
183
+ client_call_details: "grpc.ClientCallDetails", header: str, value: str, force: bool = False
184
+ ) -> "grpc.ClientCallDetails":
168
185
  metadata = []
169
186
  if client_call_details.metadata is not None:
170
187
  metadata = list(client_call_details.metadata)
yandexcloud/_sdk.py CHANGED
@@ -1,5 +1,5 @@
1
1
  import inspect
2
- from typing import Dict, Optional
2
+ from typing import TYPE_CHECKING, Any, Dict, Optional, Type, Union
3
3
 
4
4
  import grpc
5
5
 
@@ -8,25 +8,57 @@ from yandexcloud._backoff import backoff_exponential_with_jitter
8
8
  from yandexcloud._retry_interceptor import RetryInterceptor
9
9
  from yandexcloud._wrappers import Wrappers
10
10
 
11
+ if TYPE_CHECKING:
12
+ import logging
13
+
14
+ import google.protobuf.message
15
+
16
+ from yandex.cloud.operation.operation_pb2 import Operation
17
+ from yandexcloud._operation_waiter import OperationWaiter
18
+ from yandexcloud.operations import OperationError, OperationResult
19
+
11
20
 
12
21
  class SDK:
13
- def __init__(self, interceptor=None, user_agent=None, endpoints: Optional[Dict[str, str]] = None, **kwargs):
22
+ def __init__(
23
+ self,
24
+ interceptor: Union[
25
+ grpc.UnaryUnaryClientInterceptor,
26
+ grpc.UnaryStreamClientInterceptor,
27
+ grpc.StreamUnaryClientInterceptor,
28
+ grpc.StreamStreamClientInterceptor,
29
+ None,
30
+ ] = None,
31
+ user_agent: Optional[str] = None,
32
+ endpoints: Optional[Dict[str, str]] = None,
33
+ token: Optional[str] = None,
34
+ iam_token: Optional[str] = None,
35
+ endpoint: Optional[str] = None,
36
+ service_account_key: Optional[Dict[str, str]] = None,
37
+ root_certificates: Optional[bytes] = None,
38
+ private_key: Optional[bytes] = None,
39
+ certificate_chain: Optional[bytes] = None,
40
+ **kwargs: str,
41
+ ):
14
42
  """
15
43
  API entry-point object.
16
44
 
17
45
  :param interceptor: GRPC interceptor to be used instead of default RetryInterceptor
18
- :type interceptor: Union[
19
- UnaryUnaryClientInterceptor,
20
- UnaryStreamClientInterceptor,
21
- StreamUnaryClientInterceptor,
22
- StreamStreamClientInterceptor
23
- ]
24
46
  :param user_agent: String to prepend User-Agent metadata header for all GRPC requests made via SDK object
25
- :type user_agent: Optional[str]
26
47
  :param endpoints: Dict with services endpoints overrides. Example: {'vpc': 'new.vpc.endpoint:443'}
27
48
 
28
49
  """
29
- self._channels = _channels.Channels(client_user_agent=user_agent, endpoints=endpoints, **kwargs)
50
+ self._channels = _channels.Channels(
51
+ user_agent,
52
+ endpoints,
53
+ token,
54
+ iam_token,
55
+ endpoint,
56
+ service_account_key,
57
+ root_certificates,
58
+ private_key,
59
+ certificate_chain,
60
+ **kwargs,
61
+ )
30
62
  if interceptor is None:
31
63
  interceptor = RetryInterceptor(
32
64
  max_retry_count=5,
@@ -37,10 +69,19 @@ class SDK:
37
69
  self.helpers = _helpers.Helpers(self)
38
70
  self.wrappers = Wrappers(self)
39
71
 
40
- def set_interceptor(self, interceptor):
41
- self._default_interceptor = interceptor
42
-
43
- def client(self, stub_ctor, interceptor=None, endpoint: Optional[str] = None, insecure: bool = False):
72
+ def client(
73
+ self,
74
+ stub_ctor: Type,
75
+ interceptor: Union[
76
+ grpc.UnaryUnaryClientInterceptor,
77
+ grpc.UnaryStreamClientInterceptor,
78
+ grpc.StreamUnaryClientInterceptor,
79
+ grpc.StreamStreamClientInterceptor,
80
+ None,
81
+ ] = None,
82
+ endpoint: Optional[str] = None,
83
+ insecure: bool = False,
84
+ ) -> Any:
44
85
  service = _service_for_ctor(stub_ctor)
45
86
  channel = self._channels.channel(service, endpoint, insecure)
46
87
  if interceptor is not None:
@@ -49,22 +90,29 @@ class SDK:
49
90
  channel = grpc.intercept_channel(channel, self._default_interceptor)
50
91
  return stub_ctor(channel)
51
92
 
52
- def waiter(self, operation_id, timeout=None):
93
+ def waiter(self, operation_id: str, timeout: Optional[float] = None) -> "OperationWaiter":
53
94
  return _operation_waiter.operation_waiter(self, operation_id, timeout)
54
95
 
55
- def wait_operation_and_get_result(self, operation, response_type=None, meta_type=None, timeout=None, logger=None):
96
+ def wait_operation_and_get_result(
97
+ self,
98
+ operation: "Operation",
99
+ response_type: Optional[Type["google.protobuf.message.Message"]] = None,
100
+ meta_type: Optional[Type["google.protobuf.message.Message"]] = None,
101
+ timeout: Optional[float] = None,
102
+ logger: Optional["logging.Logger"] = None,
103
+ ) -> Union["OperationResult", "OperationError"]:
56
104
  return _operation_waiter.get_operation_result(self, operation, response_type, meta_type, timeout, logger)
57
105
 
58
106
  def create_operation_and_get_result(
59
107
  self,
60
- request,
61
- service,
62
- method_name,
63
- response_type=None,
64
- meta_type=None,
65
- timeout=None,
66
- logger=None,
67
- ):
108
+ request: Type["google.protobuf.message.Message"],
109
+ service: Any,
110
+ method_name: str,
111
+ response_type: Optional[Type["google.protobuf.message.Message"]] = None,
112
+ meta_type: Optional[Type["google.protobuf.message.Message"]] = None,
113
+ timeout: Optional[float] = None,
114
+ logger: Optional["logging.Logger"] = None,
115
+ ) -> Union["OperationResult", "OperationError"]:
68
116
  operation = getattr(self.client(service), method_name)(request)
69
117
  return self.wait_operation_and_get_result(
70
118
  operation,
@@ -75,17 +123,18 @@ class SDK:
75
123
  )
76
124
 
77
125
 
78
- def _service_for_ctor(stub_ctor):
126
+ def _service_for_ctor(stub_ctor: Any) -> str:
79
127
  m = inspect.getmodule(stub_ctor)
80
- name = m.__name__
81
- if not name.startswith("yandex.cloud"):
82
- raise RuntimeError("Not a yandex.cloud service {}".format(stub_ctor))
128
+ if m is not None:
129
+ name = m.__name__
130
+ if not name.startswith("yandex.cloud"):
131
+ raise RuntimeError(f"Not a yandex.cloud service {stub_ctor}")
83
132
 
84
- for k, v in _supported_modules:
85
- if name.startswith(k):
86
- return v
133
+ for k, v in _supported_modules:
134
+ if name.startswith(k):
135
+ return v
87
136
 
88
- raise RuntimeError("Unknown service {}".format(stub_ctor))
137
+ raise RuntimeError(f"Unknown service {stub_ctor}")
89
138
 
90
139
 
91
140
  _supported_modules = [
@@ -1,8 +1,15 @@
1
+ from typing import TYPE_CHECKING
2
+
1
3
  from yandexcloud._wrappers.dataproc import Dataproc, InitializationAction
2
4
 
5
+ if TYPE_CHECKING:
6
+ from yandexcloud._sdk import SDK
7
+
3
8
 
4
- class Wrappers(object):
5
- def __init__(self, sdk):
9
+ class Wrappers:
10
+ def __init__(self, sdk: "SDK"):
11
+ # pylint: disable-next=invalid-name
6
12
  self.Dataproc = Dataproc
7
13
  self.Dataproc.sdk = sdk
14
+ # pylint: disable-next=invalid-name
8
15
  self.InitializationAction = InitializationAction
@@ -1,5 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # pylint: disable=no-member
3
+ # mypy: ignore-errors
3
4
  import logging
4
5
  import random
5
6
  from typing import List, NamedTuple
@@ -32,7 +33,7 @@ class InitializationAction(NamedTuple):
32
33
  )
33
34
 
34
35
 
35
- class Dataproc(object):
36
+ class Dataproc:
36
37
  """
37
38
  A base hook for Yandex.Cloud Data Proc.
38
39
 
@@ -47,7 +48,7 @@ class Dataproc(object):
47
48
  """
48
49
 
49
50
  def __init__(self, default_folder_id=None, default_public_ssh_key=None, logger=None, sdk=None):
50
- self.sdk = sdk or self.sdk
51
+ self.sdk = sdk
51
52
  self.log = logger
52
53
  if not self.log:
53
54
  self.log = logging.getLogger()
@@ -200,7 +201,7 @@ class Dataproc(object):
200
201
 
201
202
  if not cluster_name:
202
203
  random_int = random.randint(0, 999)
203
- cluster_name = "dataproc-{random_int}".format(random_int=random_int)
204
+ cluster_name = f"dataproc-{random_int}"
204
205
 
205
206
  if not subnet_id:
206
207
  network_id = self.sdk.helpers.find_network_id(folder_id)
@@ -397,7 +398,7 @@ class Dataproc(object):
397
398
  disk_type_id=disk_type,
398
399
  )
399
400
 
400
- self.log.info("Adding subcluster to cluster {cluster_id}".format(cluster_id=cluster_id))
401
+ self.log.info("Adding subcluster to cluster %s", cluster_id)
401
402
  autoscaling_config = None
402
403
  if max_hosts_count:
403
404
  autoscaling_config = subcluster_pb.AutoscalingConfig(
@@ -439,7 +440,7 @@ class Dataproc(object):
439
440
  if not cluster_id:
440
441
  raise RuntimeError("Cluster id must be specified.")
441
442
 
442
- self.log.info("Updating cluster {cluster_id}".format(cluster_id=cluster_id))
443
+ self.log.info("Updating cluster %s", cluster_id)
443
444
  mask = FieldMask(paths=["description"])
444
445
  request = cluster_service_pb.UpdateClusterRequest(
445
446
  cluster_id=cluster_id,
@@ -464,7 +465,7 @@ class Dataproc(object):
464
465
  if not cluster_id:
465
466
  raise RuntimeError("Cluster id must be specified.")
466
467
 
467
- self.log.info("Deleting cluster {cluster_id}".format(cluster_id=cluster_id))
468
+ self.log.info("Deleting cluster %s", cluster_id)
468
469
  request = cluster_service_pb.DeleteClusterRequest(cluster_id=cluster_id)
469
470
  return self.sdk.create_operation_and_get_result(
470
471
  request,
@@ -507,7 +508,7 @@ class Dataproc(object):
507
508
  raise RuntimeError("Cluster id must be specified.")
508
509
  if (query and query_file_uri) or not (query or query_file_uri):
509
510
  raise RuntimeError("Either query or query_file_uri must be specified.")
510
- self.log.info("Running Hive job. Cluster ID: {cluster_id}".format(cluster_id=cluster_id))
511
+ self.log.info("Running Hive job. Cluster ID: %s", cluster_id)
511
512
 
512
513
  hive_job = job_pb.HiveJob(
513
514
  query_file_uri=query_file_uri,
@@ -574,7 +575,7 @@ class Dataproc(object):
574
575
  cluster_id = cluster_id or self.cluster_id
575
576
  if not cluster_id:
576
577
  raise RuntimeError("Cluster id must be specified.")
577
- self.log.info("Running Mapreduce job. Cluster ID: {cluster_id}".format(cluster_id=cluster_id))
578
+ self.log.info("Running Mapreduce job. Cluster ID: %s", cluster_id)
578
579
 
579
580
  request = job_service_pb.CreateJobRequest(
580
581
  cluster_id=cluster_id,
@@ -646,7 +647,7 @@ class Dataproc(object):
646
647
  cluster_id = cluster_id or self.cluster_id
647
648
  if not cluster_id:
648
649
  raise RuntimeError("Cluster id must be specified.")
649
- self.log.info("Running Spark job. Cluster ID: {cluster_id}".format(cluster_id=cluster_id))
650
+ self.log.info("Running Spark job. Cluster ID: %s", cluster_id)
650
651
 
651
652
  request = job_service_pb.CreateJobRequest(
652
653
  cluster_id=cluster_id,
@@ -721,7 +722,7 @@ class Dataproc(object):
721
722
  cluster_id = cluster_id or self.cluster_id
722
723
  if not cluster_id:
723
724
  raise RuntimeError("Cluster id must be specified.")
724
- self.log.info("Running Pyspark job. Cluster ID: {cluster_id}".format(cluster_id=cluster_id))
725
+ self.log.info("Running Pyspark job. Cluster ID: %s", cluster_id)
725
726
  request = job_service_pb.CreateJobRequest(
726
727
  cluster_id=cluster_id,
727
728
  name=name,
yandexcloud/auth.py CHANGED
@@ -1,14 +1,22 @@
1
+ from typing import Dict, Optional
2
+
1
3
  from yandex.cloud.iam.v1.iam_token_service_pb2_grpc import IamTokenServiceStub
2
- from yandexcloud import SDK
3
4
  from yandexcloud._auth_fabric import (
4
5
  YC_API_ENDPOINT,
5
6
  IamTokenAuth,
6
7
  MetadataAuth,
7
8
  get_auth_token_requester,
8
9
  )
10
+ from yandexcloud._sdk import SDK
9
11
 
10
12
 
11
- def get_auth_token(token=None, service_account_key=None, iam_token=None, metadata_addr=None, endpoint=None):
13
+ def get_auth_token(
14
+ token: Optional[str] = None,
15
+ service_account_key: Optional[Dict[str, str]] = None,
16
+ iam_token: Optional[str] = None,
17
+ metadata_addr: Optional[str] = None,
18
+ endpoint: Optional[str] = None,
19
+ ) -> str:
12
20
  if endpoint is None:
13
21
  endpoint = YC_API_ENDPOINT
14
22
  requester = get_auth_token_requester(