anyscale 0.24.86__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 (1131) hide show
  1. anyscale/__init__.py +181 -0
  2. anyscale/_private/anyscale_client/README.md +16 -0
  3. anyscale/_private/anyscale_client/__init__.py +8 -0
  4. anyscale/_private/anyscale_client/anyscale_client.py +1847 -0
  5. anyscale/_private/anyscale_client/common.py +593 -0
  6. anyscale/_private/anyscale_client/fake_anyscale_client.py +1080 -0
  7. anyscale/_private/docgen/README.md +15 -0
  8. anyscale/_private/docgen/__main__.py +700 -0
  9. anyscale/_private/docgen/api.md +1106 -0
  10. anyscale/_private/docgen/generator.py +559 -0
  11. anyscale/_private/docgen/generator_legacy.py +104 -0
  12. anyscale/_private/docgen/models.md +2261 -0
  13. anyscale/_private/models/__init__.py +2 -0
  14. anyscale/_private/models/image_uri.py +116 -0
  15. anyscale/_private/models/model_base.py +251 -0
  16. anyscale/_private/sdk/__init__.py +102 -0
  17. anyscale/_private/sdk/base_sdk.py +35 -0
  18. anyscale/_private/sdk/timer.py +46 -0
  19. anyscale/_private/utils/__init__.py +0 -0
  20. anyscale/_private/utils/progress_util.py +85 -0
  21. anyscale/_private/workload/__init__.py +2 -0
  22. anyscale/_private/workload/workload_config.py +195 -0
  23. anyscale/_private/workload/workload_sdk.py +324 -0
  24. anyscale/aggregated_instance_usage/__init__.py +36 -0
  25. anyscale/aggregated_instance_usage/_private/aggregated_instance_usage_sdk.py +30 -0
  26. anyscale/aggregated_instance_usage/commands.py +42 -0
  27. anyscale/aggregated_instance_usage/models.py +85 -0
  28. anyscale/anyscale-cloud-setup-gcp-oa.yaml +88 -0
  29. anyscale/anyscale-cloud-setup-gcp.yaml +113 -0
  30. anyscale/anyscale-cloud-setup-oa.yaml +121 -0
  31. anyscale/anyscale-cloud-setup.yaml +327 -0
  32. anyscale/anyscale_pydantic/HISTORY.md +1254 -0
  33. anyscale/anyscale_pydantic/LICENSE +21 -0
  34. anyscale/anyscale_pydantic/PKG-INFO +1351 -0
  35. anyscale/anyscale_pydantic/README.md +7 -0
  36. anyscale/anyscale_pydantic/__init__.py +131 -0
  37. anyscale/anyscale_pydantic/_hypothesis_plugin.py +391 -0
  38. anyscale/anyscale_pydantic/annotated_types.py +72 -0
  39. anyscale/anyscale_pydantic/class_validators.py +361 -0
  40. anyscale/anyscale_pydantic/color.py +494 -0
  41. anyscale/anyscale_pydantic/config.py +191 -0
  42. anyscale/anyscale_pydantic/dataclasses.py +478 -0
  43. anyscale/anyscale_pydantic/datetime_parse.py +248 -0
  44. anyscale/anyscale_pydantic/decorator.py +264 -0
  45. anyscale/anyscale_pydantic/env_settings.py +350 -0
  46. anyscale/anyscale_pydantic/error_wrappers.py +162 -0
  47. anyscale/anyscale_pydantic/errors.py +646 -0
  48. anyscale/anyscale_pydantic/fields.py +1256 -0
  49. anyscale/anyscale_pydantic/generics.py +400 -0
  50. anyscale/anyscale_pydantic/json.py +112 -0
  51. anyscale/anyscale_pydantic/main.py +1109 -0
  52. anyscale/anyscale_pydantic/mypy.py +943 -0
  53. anyscale/anyscale_pydantic/networks.py +739 -0
  54. anyscale/anyscale_pydantic/parse.py +66 -0
  55. anyscale/anyscale_pydantic/py.typed +0 -0
  56. anyscale/anyscale_pydantic/schema.py +1164 -0
  57. anyscale/anyscale_pydantic/tools.py +92 -0
  58. anyscale/anyscale_pydantic/types.py +1206 -0
  59. anyscale/anyscale_pydantic/typing.py +603 -0
  60. anyscale/anyscale_pydantic/utils.py +803 -0
  61. anyscale/anyscale_pydantic/validators.py +765 -0
  62. anyscale/anyscale_pydantic/version.py +38 -0
  63. anyscale/anyscale_schema.json +9 -0
  64. anyscale/api.py +215 -0
  65. anyscale/api_utils/README.md +2 -0
  66. anyscale/api_utils/__init__.py +0 -0
  67. anyscale/api_utils/common_utils.py +81 -0
  68. anyscale/api_utils/exceptions/__init__.py +0 -0
  69. anyscale/api_utils/exceptions/job_errors.py +2 -0
  70. anyscale/api_utils/job_logs_util.py +116 -0
  71. anyscale/api_utils/job_util.py +22 -0
  72. anyscale/api_utils/logs_util.py +61 -0
  73. anyscale/authenticate.py +298 -0
  74. anyscale/aws_iam_policies.py +465 -0
  75. anyscale/background/__init__.py +0 -0
  76. anyscale/background/job_runner.py +64 -0
  77. anyscale/cli_logger.py +378 -0
  78. anyscale/client/.gitignore +66 -0
  79. anyscale/client/.openapi-generator/VERSION +1 -0
  80. anyscale/client/.openapi-generator-ignore +23 -0
  81. anyscale/client/README.md +1070 -0
  82. anyscale/client/git_push.sh +58 -0
  83. anyscale/client/openapi_client/__init__.py +667 -0
  84. anyscale/client/openapi_client/api/__init__.py +6 -0
  85. anyscale/client/openapi_client/api/default_api.py +40922 -0
  86. anyscale/client/openapi_client/api_client.py +647 -0
  87. anyscale/client/openapi_client/configuration.py +373 -0
  88. anyscale/client/openapi_client/exceptions.py +120 -0
  89. anyscale/client/openapi_client/models/__init__.py +652 -0
  90. anyscale/client/openapi_client/models/access_config.py +122 -0
  91. anyscale/client/openapi_client/models/aggregated_instance_usage_with_cost_model.py +733 -0
  92. anyscale/client/openapi_client/models/aggregatedinstanceusagewithcostmodel_list_response.py +147 -0
  93. anyscale/client/openapi_client/models/aica_endpoint.py +527 -0
  94. anyscale/client/openapi_client/models/aica_endpoint_event.py +433 -0
  95. anyscale/client/openapi_client/models/aica_endpoint_event_level.py +103 -0
  96. anyscale/client/openapi_client/models/aica_endpoint_event_type.py +120 -0
  97. anyscale/client/openapi_client/models/aica_endpoint_scope.py +102 -0
  98. anyscale/client/openapi_client/models/aica_model.py +398 -0
  99. anyscale/client/openapi_client/models/aica_model_accelerator_map.py +123 -0
  100. anyscale/client/openapi_client/models/aica_model_configuration.py +209 -0
  101. anyscale/client/openapi_client/models/aica_observability_urls.py +178 -0
  102. anyscale/client/openapi_client/models/aicaendpoint_list_response.py +147 -0
  103. anyscale/client/openapi_client/models/aicaendpoint_response.py +121 -0
  104. anyscale/client/openapi_client/models/aicaendpointevent_list_response.py +147 -0
  105. anyscale/client/openapi_client/models/aicamodel_list_response.py +147 -0
  106. anyscale/client/openapi_client/models/aicamodel_response.py +121 -0
  107. anyscale/client/openapi_client/models/aioa_cloud_waitlist_record.py +254 -0
  108. anyscale/client/openapi_client/models/aioacloudwaitlistrecord_response.py +121 -0
  109. anyscale/client/openapi_client/models/alert_type.py +103 -0
  110. anyscale/client/openapi_client/models/anyscale_aws_account.py +121 -0
  111. anyscale/client/openapi_client/models/anyscale_service_account.py +256 -0
  112. anyscale/client/openapi_client/models/anyscale_version_response.py +121 -0
  113. anyscale/client/openapi_client/models/anyscaleawsaccount_response.py +121 -0
  114. anyscale/client/openapi_client/models/anyscaled_credential_response.py +121 -0
  115. anyscale/client/openapi_client/models/anyscaledcredentialresponse_response.py +121 -0
  116. anyscale/client/openapi_client/models/anyscaleserviceaccount_response.py +121 -0
  117. anyscale/client/openapi_client/models/anyscaleversionresponse_response.py +121 -0
  118. anyscale/client/openapi_client/models/api_key_parameters.py +147 -0
  119. anyscale/client/openapi_client/models/app_config.py +436 -0
  120. anyscale/client/openapi_client/models/app_config_config_schema.py +235 -0
  121. anyscale/client/openapi_client/models/appconfig_list_response.py +147 -0
  122. anyscale/client/openapi_client/models/appconfig_response.py +121 -0
  123. anyscale/client/openapi_client/models/application_type.py +99 -0
  124. anyscale/client/openapi_client/models/applied_snapshot.py +175 -0
  125. anyscale/client/openapi_client/models/apply_production_service_v2_model.py +490 -0
  126. anyscale/client/openapi_client/models/archive_status.py +101 -0
  127. anyscale/client/openapi_client/models/archived_logs_info.py +164 -0
  128. anyscale/client/openapi_client/models/archivedlogsinfo_response.py +121 -0
  129. anyscale/client/openapi_client/models/attach_machine_pool_to_cloud_request.py +152 -0
  130. anyscale/client/openapi_client/models/attachmachinepooltocloudresponse_response.py +121 -0
  131. anyscale/client/openapi_client/models/aviary_model_config_v2.py +358 -0
  132. anyscale/client/openapi_client/models/aws_credentials.py +181 -0
  133. anyscale/client/openapi_client/models/aws_memory_db_cluster_config.py +148 -0
  134. anyscale/client/openapi_client/models/aws_region_and_zones.py +123 -0
  135. anyscale/client/openapi_client/models/aws_region_info.py +152 -0
  136. anyscale/client/openapi_client/models/awsregionandzones_response.py +121 -0
  137. anyscale/client/openapi_client/models/bank_account_information.py +239 -0
  138. anyscale/client/openapi_client/models/base_job_status.py +105 -0
  139. anyscale/client/openapi_client/models/baseimagesenum.py +2130 -0
  140. anyscale/client/openapi_client/models/batch_response_batched_result_organization_invitation_base.py +121 -0
  141. anyscale/client/openapi_client/models/batched_result_organization_invitation_base.py +173 -0
  142. anyscale/client/openapi_client/models/billing_information.py +181 -0
  143. anyscale/client/openapi_client/models/billing_version_code.py +100 -0
  144. anyscale/client/openapi_client/models/body_aws_marketplace_registration_api_v2_organization_billing_aws_marketplace_registration_post.py +121 -0
  145. anyscale/client/openapi_client/models/buffer_registration.py +285 -0
  146. anyscale/client/openapi_client/models/build.py +607 -0
  147. anyscale/client/openapi_client/models/build_log_response.py +123 -0
  148. anyscale/client/openapi_client/models/build_registration.py +285 -0
  149. anyscale/client/openapi_client/models/build_response.py +121 -0
  150. anyscale/client/openapi_client/models/build_status.py +104 -0
  151. anyscale/client/openapi_client/models/buildlogresponse_response.py +121 -0
  152. anyscale/client/openapi_client/models/card.py +181 -0
  153. anyscale/client/openapi_client/models/card_id.py +108 -0
  154. anyscale/client/openapi_client/models/card_list_response.py +147 -0
  155. anyscale/client/openapi_client/models/change_password_params.py +148 -0
  156. anyscale/client/openapi_client/models/cleanup_leaked_grafana_dashboard_response.py +208 -0
  157. anyscale/client/openapi_client/models/cleanupleakedgrafanadashboardresponse_response.py +121 -0
  158. anyscale/client/openapi_client/models/clone_experimental_workspace.py +151 -0
  159. anyscale/client/openapi_client/models/cloud.py +802 -0
  160. anyscale/client/openapi_client/models/cloud_analytics_event.py +351 -0
  161. anyscale/client/openapi_client/models/cloud_analytics_event_cloud_provider_error.py +152 -0
  162. anyscale/client/openapi_client/models/cloud_analytics_event_cloud_resource.py +117 -0
  163. anyscale/client/openapi_client/models/cloud_analytics_event_command_name.py +103 -0
  164. anyscale/client/openapi_client/models/cloud_analytics_event_error.py +150 -0
  165. anyscale/client/openapi_client/models/cloud_analytics_event_name.py +109 -0
  166. anyscale/client/openapi_client/models/cloud_collaborator.py +175 -0
  167. anyscale/client/openapi_client/models/cloud_collaborator_value.py +177 -0
  168. anyscale/client/openapi_client/models/cloud_collaborators_query.py +122 -0
  169. anyscale/client/openapi_client/models/cloud_config.py +206 -0
  170. anyscale/client/openapi_client/models/cloud_data_bucket_access_mode.py +100 -0
  171. anyscale/client/openapi_client/models/cloud_data_bucket_file_type.py +102 -0
  172. anyscale/client/openapi_client/models/cloud_data_bucket_presigned_upload_info.py +268 -0
  173. anyscale/client/openapi_client/models/cloud_data_bucket_presigned_upload_request.py +152 -0
  174. anyscale/client/openapi_client/models/cloud_data_bucket_presigned_upload_scheme.py +100 -0
  175. anyscale/client/openapi_client/models/cloud_data_bucket_presigned_url_request.py +209 -0
  176. anyscale/client/openapi_client/models/cloud_data_bucket_presigned_url_response.py +296 -0
  177. anyscale/client/openapi_client/models/cloud_data_bucket_presigned_url_scheme.py +100 -0
  178. anyscale/client/openapi_client/models/cloud_data_bucket_request_scope.py +100 -0
  179. anyscale/client/openapi_client/models/cloud_hosting_type.py +100 -0
  180. anyscale/client/openapi_client/models/cloud_list_response.py +147 -0
  181. anyscale/client/openapi_client/models/cloud_name_options.py +121 -0
  182. anyscale/client/openapi_client/models/cloud_overview_dashboard.py +175 -0
  183. anyscale/client/openapi_client/models/cloud_project_collaborator.py +175 -0
  184. anyscale/client/openapi_client/models/cloud_project_collaborator_value.py +121 -0
  185. anyscale/client/openapi_client/models/cloud_provider.py +102 -0
  186. anyscale/client/openapi_client/models/cloud_providers.py +103 -0
  187. anyscale/client/openapi_client/models/cloud_region_and_zones.py +123 -0
  188. anyscale/client/openapi_client/models/cloud_region_info.py +152 -0
  189. anyscale/client/openapi_client/models/cloud_resource.py +740 -0
  190. anyscale/client/openapi_client/models/cloud_resource_gcp.py +691 -0
  191. anyscale/client/openapi_client/models/cloud_response.py +121 -0
  192. anyscale/client/openapi_client/models/cloud_state.py +104 -0
  193. anyscale/client/openapi_client/models/cloud_status.py +100 -0
  194. anyscale/client/openapi_client/models/cloud_type.py +100 -0
  195. anyscale/client/openapi_client/models/cloud_types.py +100 -0
  196. anyscale/client/openapi_client/models/cloud_version.py +100 -0
  197. anyscale/client/openapi_client/models/cloud_waitlist_status.py +102 -0
  198. anyscale/client/openapi_client/models/cloud_with_cloud_resource.py +830 -0
  199. anyscale/client/openapi_client/models/cloud_with_cloud_resource_gcp.py +830 -0
  200. anyscale/client/openapi_client/models/cloudcollaborator_list_response.py +147 -0
  201. anyscale/client/openapi_client/models/clouddatabucketpresigneduploadinfo_response.py +121 -0
  202. anyscale/client/openapi_client/models/clouddatabucketpresignedurlresponse_response.py +121 -0
  203. anyscale/client/openapi_client/models/cloudoverviewdashboard_response.py +121 -0
  204. anyscale/client/openapi_client/models/cloudregionandzones_response.py +121 -0
  205. anyscale/client/openapi_client/models/cloudresource_response.py +121 -0
  206. anyscale/client/openapi_client/models/cloudresourcegcp_response.py +121 -0
  207. anyscale/client/openapi_client/models/cloudwithcloudresource_response.py +121 -0
  208. anyscale/client/openapi_client/models/cloudwithcloudresourcegcp_response.py +121 -0
  209. anyscale/client/openapi_client/models/cluster_auth_response.py +148 -0
  210. anyscale/client/openapi_client/models/cluster_config.py +178 -0
  211. anyscale/client/openapi_client/models/cluster_config_with_session_idle_timeout.py +204 -0
  212. anyscale/client/openapi_client/models/cluster_environments_query.py +290 -0
  213. anyscale/client/openapi_client/models/cluster_event.py +174 -0
  214. anyscale/client/openapi_client/models/cluster_events_output.py +175 -0
  215. anyscale/client/openapi_client/models/cluster_features.py +152 -0
  216. anyscale/client/openapi_client/models/cluster_management_stack_versions.py +100 -0
  217. anyscale/client/openapi_client/models/cluster_startup.py +208 -0
  218. anyscale/client/openapi_client/models/cluster_status.py +104 -0
  219. anyscale/client/openapi_client/models/cluster_status_details.py +100 -0
  220. anyscale/client/openapi_client/models/clusterauthresponse_response.py +121 -0
  221. anyscale/client/openapi_client/models/clusterconfig_response.py +121 -0
  222. anyscale/client/openapi_client/models/clusterconfigwithsessionidletimeout_response.py +121 -0
  223. anyscale/client/openapi_client/models/clustereventsoutput_response.py +121 -0
  224. anyscale/client/openapi_client/models/clusterfeatures_response.py +121 -0
  225. anyscale/client/openapi_client/models/company_size.py +103 -0
  226. anyscale/client/openapi_client/models/compute_node_type.py +292 -0
  227. anyscale/client/openapi_client/models/compute_stack.py +100 -0
  228. anyscale/client/openapi_client/models/compute_template.py +415 -0
  229. anyscale/client/openapi_client/models/compute_template_config.py +461 -0
  230. anyscale/client/openapi_client/models/compute_template_query.py +316 -0
  231. anyscale/client/openapi_client/models/computetemplate_response.py +121 -0
  232. anyscale/client/openapi_client/models/computetemplateconfig_response.py +121 -0
  233. anyscale/client/openapi_client/models/create_aica_endpoint.py +210 -0
  234. anyscale/client/openapi_client/models/create_aioa_cloud_waitlist.py +173 -0
  235. anyscale/client/openapi_client/models/create_analytics_event.py +122 -0
  236. anyscale/client/openapi_client/models/create_app_config.py +235 -0
  237. anyscale/client/openapi_client/models/create_app_config_configuration_schema.py +235 -0
  238. anyscale/client/openapi_client/models/create_billing_version.py +181 -0
  239. anyscale/client/openapi_client/models/create_bug_report_response.py +152 -0
  240. anyscale/client/openapi_client/models/create_build.py +263 -0
  241. anyscale/client/openapi_client/models/create_byod_app_config.py +180 -0
  242. anyscale/client/openapi_client/models/create_byod_app_config_configuration_schema.py +206 -0
  243. anyscale/client/openapi_client/models/create_byod_build.py +152 -0
  244. anyscale/client/openapi_client/models/create_cloud_collaborator.py +148 -0
  245. anyscale/client/openapi_client/models/create_cloud_resource.py +682 -0
  246. anyscale/client/openapi_client/models/create_cloud_resource_gcp.py +633 -0
  247. anyscale/client/openapi_client/models/create_cloud_with_cloud_resource.py +546 -0
  248. anyscale/client/openapi_client/models/create_cluster_compute_config.py +463 -0
  249. anyscale/client/openapi_client/models/create_compute_template.py +229 -0
  250. anyscale/client/openapi_client/models/create_compute_template_config.py +464 -0
  251. anyscale/client/openapi_client/models/create_dataset.py +200 -0
  252. anyscale/client/openapi_client/models/create_experimental_workspace.py +435 -0
  253. anyscale/client/openapi_client/models/create_experimental_workspace_from_job.py +123 -0
  254. anyscale/client/openapi_client/models/create_fine_tuning_hyperparameters.py +156 -0
  255. anyscale/client/openapi_client/models/create_fine_tuning_job_product_request.py +353 -0
  256. anyscale/client/openapi_client/models/create_instance_usage_budget.py +253 -0
  257. anyscale/client/openapi_client/models/create_internal_production_job.py +262 -0
  258. anyscale/client/openapi_client/models/create_job_queue_config.py +206 -0
  259. anyscale/client/openapi_client/models/create_job_queue_requests.py +323 -0
  260. anyscale/client/openapi_client/models/create_machine_pool_request.py +151 -0
  261. anyscale/client/openapi_client/models/create_machine_pool_response.py +123 -0
  262. anyscale/client/openapi_client/models/create_machine_request.py +151 -0
  263. anyscale/client/openapi_client/models/create_machine_response.py +123 -0
  264. anyscale/client/openapi_client/models/create_metronome_webhook_notification.py +175 -0
  265. anyscale/client/openapi_client/models/create_notification_channel_record.py +146 -0
  266. anyscale/client/openapi_client/models/create_organization_configuration.py +199 -0
  267. anyscale/client/openapi_client/models/create_organization_invitation.py +121 -0
  268. anyscale/client/openapi_client/models/create_otp_return_api_model.py +148 -0
  269. anyscale/client/openapi_client/models/create_production_job_config.py +347 -0
  270. anyscale/client/openapi_client/models/create_resource_quota.py +293 -0
  271. anyscale/client/openapi_client/models/create_schedule.py +263 -0
  272. anyscale/client/openapi_client/models/create_session_from_snapshot_options.py +565 -0
  273. anyscale/client/openapi_client/models/create_session_in_db.py +434 -0
  274. anyscale/client/openapi_client/models/create_session_response.py +174 -0
  275. anyscale/client/openapi_client/models/create_user.py +439 -0
  276. anyscale/client/openapi_client/models/create_user_project_collaborator.py +148 -0
  277. anyscale/client/openapi_client/models/create_user_project_collaborator_value.py +121 -0
  278. anyscale/client/openapi_client/models/create_workspace_from_template.py +263 -0
  279. anyscale/client/openapi_client/models/createbugreportresponse_response.py +121 -0
  280. anyscale/client/openapi_client/models/createcomputetemplateconfig_response.py +121 -0
  281. anyscale/client/openapi_client/models/createmachinepoolresponse_response.py +121 -0
  282. anyscale/client/openapi_client/models/createmachineresponse_response.py +121 -0
  283. anyscale/client/openapi_client/models/createotpreturnapimodel_response.py +121 -0
  284. anyscale/client/openapi_client/models/createsessionresponse_response.py +121 -0
  285. anyscale/client/openapi_client/models/credit_card_information.py +268 -0
  286. anyscale/client/openapi_client/models/customer_alert_status.py +101 -0
  287. anyscale/client/openapi_client/models/customer_billing_type.py +101 -0
  288. anyscale/client/openapi_client/models/dataplane_services.py +102 -0
  289. anyscale/client/openapi_client/models/dataset.py +416 -0
  290. anyscale/client/openapi_client/models/dataset_list_response.py +150 -0
  291. anyscale/client/openapi_client/models/dataset_response.py +121 -0
  292. anyscale/client/openapi_client/models/dataset_upload.py +148 -0
  293. anyscale/client/openapi_client/models/datasetupload_response.py +121 -0
  294. anyscale/client/openapi_client/models/decorated_application_template.py +493 -0
  295. anyscale/client/openapi_client/models/decorated_build.py +664 -0
  296. anyscale/client/openapi_client/models/decorated_compute_template.py +446 -0
  297. anyscale/client/openapi_client/models/decorated_compute_template_config.py +490 -0
  298. anyscale/client/openapi_client/models/decorated_interactive_session.py +793 -0
  299. anyscale/client/openapi_client/models/decorated_job.py +793 -0
  300. anyscale/client/openapi_client/models/decorated_job_queue.py +639 -0
  301. anyscale/client/openapi_client/models/decorated_job_submission.py +575 -0
  302. anyscale/client/openapi_client/models/decorated_list_service_api_model.py +670 -0
  303. anyscale/client/openapi_client/models/decorated_production_job.py +805 -0
  304. anyscale/client/openapi_client/models/decorated_production_job_state_transition.py +319 -0
  305. anyscale/client/openapi_client/models/decorated_production_service_v2_api_model.py +641 -0
  306. anyscale/client/openapi_client/models/decorated_production_service_v2_version_api_model.py +437 -0
  307. anyscale/client/openapi_client/models/decorated_runtime_env.py +488 -0
  308. anyscale/client/openapi_client/models/decorated_schedule.py +552 -0
  309. anyscale/client/openapi_client/models/decorated_serve_deployment.py +711 -0
  310. anyscale/client/openapi_client/models/decorated_service_event_api_model.py +513 -0
  311. anyscale/client/openapi_client/models/decorated_session.py +1789 -0
  312. anyscale/client/openapi_client/models/decorated_support_request.py +283 -0
  313. anyscale/client/openapi_client/models/decorated_unified_job.py +466 -0
  314. anyscale/client/openapi_client/models/decoratedapplicationtemplate_list_response.py +147 -0
  315. anyscale/client/openapi_client/models/decoratedapplicationtemplate_response.py +121 -0
  316. anyscale/client/openapi_client/models/decoratedbuild_list_response.py +147 -0
  317. anyscale/client/openapi_client/models/decoratedbuild_response.py +121 -0
  318. anyscale/client/openapi_client/models/decoratedcomputetemplate_list_response.py +147 -0
  319. anyscale/client/openapi_client/models/decoratedcomputetemplate_response.py +121 -0
  320. anyscale/client/openapi_client/models/decoratedinteractivesession_list_response.py +147 -0
  321. anyscale/client/openapi_client/models/decoratedinteractivesession_response.py +121 -0
  322. anyscale/client/openapi_client/models/decoratedjob_list_response.py +147 -0
  323. anyscale/client/openapi_client/models/decoratedjob_response.py +121 -0
  324. anyscale/client/openapi_client/models/decoratedjobqueue_list_response.py +147 -0
  325. anyscale/client/openapi_client/models/decoratedjobqueue_response.py +121 -0
  326. anyscale/client/openapi_client/models/decoratedjobsubmission_list_response.py +147 -0
  327. anyscale/client/openapi_client/models/decoratedjobsubmission_response.py +121 -0
  328. anyscale/client/openapi_client/models/decoratedlistserviceapimodel_list_response.py +147 -0
  329. anyscale/client/openapi_client/models/decoratedproductionjob_list_response.py +147 -0
  330. anyscale/client/openapi_client/models/decoratedproductionjob_response.py +121 -0
  331. anyscale/client/openapi_client/models/decoratedproductionjobstatetransition_list_response.py +147 -0
  332. anyscale/client/openapi_client/models/decoratedproductionservicev2_apimodel_response.py +121 -0
  333. anyscale/client/openapi_client/models/decoratedproductionservicev2_versionapimodel_list_response.py +147 -0
  334. anyscale/client/openapi_client/models/decoratedruntimeenv_list_response.py +147 -0
  335. anyscale/client/openapi_client/models/decoratedruntimeenv_response.py +121 -0
  336. anyscale/client/openapi_client/models/decoratedschedule_list_response.py +147 -0
  337. anyscale/client/openapi_client/models/decoratedschedule_response.py +121 -0
  338. anyscale/client/openapi_client/models/decoratedservedeployment_list_response.py +147 -0
  339. anyscale/client/openapi_client/models/decoratedservedeployment_response.py +121 -0
  340. anyscale/client/openapi_client/models/decoratedserviceeventapimodel_list_response.py +147 -0
  341. anyscale/client/openapi_client/models/decoratedsession_list_response.py +147 -0
  342. anyscale/client/openapi_client/models/decoratedsession_response.py +121 -0
  343. anyscale/client/openapi_client/models/decoratedsupportrequest_list_response.py +147 -0
  344. anyscale/client/openapi_client/models/decoratedsupportrequest_response.py +121 -0
  345. anyscale/client/openapi_client/models/decoratedunifiedjob_list_response.py +147 -0
  346. anyscale/client/openapi_client/models/decoratedunifiedjob_response.py +121 -0
  347. anyscale/client/openapi_client/models/delete_machine_pool_request.py +123 -0
  348. anyscale/client/openapi_client/models/delete_machine_request.py +206 -0
  349. anyscale/client/openapi_client/models/deleted_platform_fine_tuned_model.py +148 -0
  350. anyscale/client/openapi_client/models/deletedplatformfinetunedmodel_response.py +121 -0
  351. anyscale/client/openapi_client/models/deletemachinepoolresponse_response.py +121 -0
  352. anyscale/client/openapi_client/models/detach_machine_pool_from_cloud_request.py +152 -0
  353. anyscale/client/openapi_client/models/detachmachinepoolfromcloudresponse_response.py +121 -0
  354. anyscale/client/openapi_client/models/dismissal_type.py +100 -0
  355. anyscale/client/openapi_client/models/editable_cloud_resource.py +206 -0
  356. anyscale/client/openapi_client/models/editable_cloud_resource_gcp.py +178 -0
  357. anyscale/client/openapi_client/models/error.py +174 -0
  358. anyscale/client/openapi_client/models/event_level.py +104 -0
  359. anyscale/client/openapi_client/models/execute_command_response.py +175 -0
  360. anyscale/client/openapi_client/models/execute_interactive_command_options.py +147 -0
  361. anyscale/client/openapi_client/models/execute_shell_command_options.py +121 -0
  362. anyscale/client/openapi_client/models/executecommandresponse_response.py +121 -0
  363. anyscale/client/openapi_client/models/experimental_workspace.py +748 -0
  364. anyscale/client/openapi_client/models/experimental_workspaces_sort_field.py +100 -0
  365. anyscale/client/openapi_client/models/experimentalworkspace_list_response.py +147 -0
  366. anyscale/client/openapi_client/models/experimentalworkspace_response.py +121 -0
  367. anyscale/client/openapi_client/models/external_service_status.py +147 -0
  368. anyscale/client/openapi_client/models/external_service_status_response.py +250 -0
  369. anyscale/client/openapi_client/models/external_terminal_command.py +280 -0
  370. anyscale/client/openapi_client/models/externalservicestatusresponse_response.py +121 -0
  371. anyscale/client/openapi_client/models/feature_compatibility.py +152 -0
  372. anyscale/client/openapi_client/models/feature_flag_response.py +121 -0
  373. anyscale/client/openapi_client/models/featureflagresponse_response.py +121 -0
  374. anyscale/client/openapi_client/models/fine_tune_type.py +100 -0
  375. anyscale/client/openapi_client/models/fine_tuned_model.py +412 -0
  376. anyscale/client/openapi_client/models/fine_tuning_job_status.py +103 -0
  377. anyscale/client/openapi_client/models/finetunedmodel_list_response.py +147 -0
  378. anyscale/client/openapi_client/models/finetunedmodel_response.py +121 -0
  379. anyscale/client/openapi_client/models/finish_ft_job_request.py +204 -0
  380. anyscale/client/openapi_client/models/finish_ft_job_request_v2.py +183 -0
  381. anyscale/client/openapi_client/models/gcp_file_store_config.py +175 -0
  382. anyscale/client/openapi_client/models/gcp_memorystore_instance_config.py +148 -0
  383. anyscale/client/openapi_client/models/grafana_dashboard.py +201 -0
  384. anyscale/client/openapi_client/models/grpc_protocol_config.py +178 -0
  385. anyscale/client/openapi_client/models/ha_job_error_types.py +103 -0
  386. anyscale/client/openapi_client/models/ha_job_event_level.py +101 -0
  387. anyscale/client/openapi_client/models/ha_job_event_origin.py +100 -0
  388. anyscale/client/openapi_client/models/ha_job_goal_states.py +102 -0
  389. anyscale/client/openapi_client/models/ha_job_states.py +109 -0
  390. anyscale/client/openapi_client/models/ha_job_type.py +100 -0
  391. anyscale/client/openapi_client/models/ha_jobs_sort_field.py +105 -0
  392. anyscale/client/openapi_client/models/head_ip.py +121 -0
  393. anyscale/client/openapi_client/models/headip_response.py +121 -0
  394. anyscale/client/openapi_client/models/http_protocol_config.py +150 -0
  395. anyscale/client/openapi_client/models/http_validation_error.py +120 -0
  396. anyscale/client/openapi_client/models/idle_termination_status.py +104 -0
  397. anyscale/client/openapi_client/models/import_aica_model.py +241 -0
  398. anyscale/client/openapi_client/models/instance_usage_budget.py +572 -0
  399. anyscale/client/openapi_client/models/instance_usage_budget_evaluation_period.py +100 -0
  400. anyscale/client/openapi_client/models/instanceusagebudget_list_response.py +147 -0
  401. anyscale/client/openapi_client/models/instanceusagebudget_response.py +121 -0
  402. anyscale/client/openapi_client/models/integration_details.py +120 -0
  403. anyscale/client/openapi_client/models/interactive_session_logs.py +152 -0
  404. anyscale/client/openapi_client/models/interactivesessionlogs_response.py +121 -0
  405. anyscale/client/openapi_client/models/internal_production_job.py +663 -0
  406. anyscale/client/openapi_client/models/internalproductionjob_response.py +121 -0
  407. anyscale/client/openapi_client/models/invoice.py +413 -0
  408. anyscale/client/openapi_client/models/invoice_list_response.py +147 -0
  409. anyscale/client/openapi_client/models/invoice_status.py +102 -0
  410. anyscale/client/openapi_client/models/invoices_query.py +150 -0
  411. anyscale/client/openapi_client/models/job_access.py +102 -0
  412. anyscale/client/openapi_client/models/job_queue.py +467 -0
  413. anyscale/client/openapi_client/models/job_queue_config.py +122 -0
  414. anyscale/client/openapi_client/models/job_queue_execution_mode.py +101 -0
  415. anyscale/client/openapi_client/models/job_queue_spec.py +263 -0
  416. anyscale/client/openapi_client/models/job_queue_state.py +100 -0
  417. anyscale/client/openapi_client/models/job_queues_query.py +262 -0
  418. anyscale/client/openapi_client/models/job_run_type.py +101 -0
  419. anyscale/client/openapi_client/models/job_state_log_level_types.py +100 -0
  420. anyscale/client/openapi_client/models/job_status.py +105 -0
  421. anyscale/client/openapi_client/models/job_submissions_sort_field.py +101 -0
  422. anyscale/client/openapi_client/models/jobqueue_response.py +121 -0
  423. anyscale/client/openapi_client/models/jobs_logs.py +152 -0
  424. anyscale/client/openapi_client/models/jobs_logs_query_info.py +181 -0
  425. anyscale/client/openapi_client/models/jobs_sort_field.py +104 -0
  426. anyscale/client/openapi_client/models/jobslogs_response.py +121 -0
  427. anyscale/client/openapi_client/models/jobslogsqueryinfo_response.py +121 -0
  428. anyscale/client/openapi_client/models/json_patch_operation.py +200 -0
  429. anyscale/client/openapi_client/models/kubernetes_manager_registration_request.py +123 -0
  430. anyscale/client/openapi_client/models/kubernetes_manager_registration_response.py +123 -0
  431. anyscale/client/openapi_client/models/kubernetesmanagerregistrationresponse_response.py +121 -0
  432. anyscale/client/openapi_client/models/lb_resource.py +123 -0
  433. anyscale/client/openapi_client/models/lbresource_response.py +121 -0
  434. anyscale/client/openapi_client/models/list_machine_pools_response.py +123 -0
  435. anyscale/client/openapi_client/models/list_machines_response.py +121 -0
  436. anyscale/client/openapi_client/models/list_resource_quotas_query.py +234 -0
  437. anyscale/client/openapi_client/models/list_response_metadata.py +146 -0
  438. anyscale/client/openapi_client/models/listmachinepoolsresponse_response.py +121 -0
  439. anyscale/client/openapi_client/models/listmachinesresponse_response.py +121 -0
  440. anyscale/client/openapi_client/models/log_detail.py +187 -0
  441. anyscale/client/openapi_client/models/log_details.py +151 -0
  442. anyscale/client/openapi_client/models/log_download_config.py +206 -0
  443. anyscale/client/openapi_client/models/log_download_request.py +150 -0
  444. anyscale/client/openapi_client/models/log_download_result.py +207 -0
  445. anyscale/client/openapi_client/models/log_file_chunk.py +439 -0
  446. anyscale/client/openapi_client/models/log_filter.py +430 -0
  447. anyscale/client/openapi_client/models/log_item.py +181 -0
  448. anyscale/client/openapi_client/models/log_item_batch.py +151 -0
  449. anyscale/client/openapi_client/models/log_level_types.py +100 -0
  450. anyscale/client/openapi_client/models/log_stream.py +151 -0
  451. anyscale/client/openapi_client/models/logdetails_response.py +121 -0
  452. anyscale/client/openapi_client/models/logdownloadresult_response.py +121 -0
  453. anyscale/client/openapi_client/models/login_user_params.py +205 -0
  454. anyscale/client/openapi_client/models/logitembatch_response.py +121 -0
  455. anyscale/client/openapi_client/models/logs_output.py +202 -0
  456. anyscale/client/openapi_client/models/logsoutput_response.py +121 -0
  457. anyscale/client/openapi_client/models/logstream_response.py +121 -0
  458. anyscale/client/openapi_client/models/long_running_workload.py +256 -0
  459. anyscale/client/openapi_client/models/longrunningworkload_list_response.py +147 -0
  460. anyscale/client/openapi_client/models/machine_allocation_state.py +100 -0
  461. anyscale/client/openapi_client/models/machine_connection_state.py +100 -0
  462. anyscale/client/openapi_client/models/machine_info.py +466 -0
  463. anyscale/client/openapi_client/models/machine_pool.py +266 -0
  464. anyscale/client/openapi_client/models/metronome_customer_info_model.py +148 -0
  465. anyscale/client/openapi_client/models/metronome_dashboard_type.py +101 -0
  466. anyscale/client/openapi_client/models/metronomecustomerinfomodel_list_response.py +147 -0
  467. anyscale/client/openapi_client/models/metronomecustomerinfomodel_response.py +121 -0
  468. anyscale/client/openapi_client/models/mini_build.py +267 -0
  469. anyscale/client/openapi_client/models/mini_cloud.py +321 -0
  470. anyscale/client/openapi_client/models/mini_cluster.py +148 -0
  471. anyscale/client/openapi_client/models/mini_compute_template.py +228 -0
  472. anyscale/client/openapi_client/models/mini_compute_template_config.py +121 -0
  473. anyscale/client/openapi_client/models/mini_job_run.py +599 -0
  474. anyscale/client/openapi_client/models/mini_namespace.py +148 -0
  475. anyscale/client/openapi_client/models/mini_organization.py +148 -0
  476. anyscale/client/openapi_client/models/mini_production_job.py +202 -0
  477. anyscale/client/openapi_client/models/mini_project.py +205 -0
  478. anyscale/client/openapi_client/models/mini_runtime_environment.py +147 -0
  479. anyscale/client/openapi_client/models/mini_schedule.py +180 -0
  480. anyscale/client/openapi_client/models/mini_user.py +266 -0
  481. anyscale/client/openapi_client/models/minibuild_list_response.py +147 -0
  482. anyscale/client/openapi_client/models/minicomputetemplate_list_response.py +147 -0
  483. anyscale/client/openapi_client/models/miniproject_list_response.py +147 -0
  484. anyscale/client/openapi_client/models/monitor_logs_extension.py +100 -0
  485. anyscale/client/openapi_client/models/named_entity.py +148 -0
  486. anyscale/client/openapi_client/models/nfs_mount_target.py +151 -0
  487. anyscale/client/openapi_client/models/node_registration_aws.py +152 -0
  488. anyscale/client/openapi_client/models/node_registration_gcp.py +123 -0
  489. anyscale/client/openapi_client/models/node_registration_k8_s.py +178 -0
  490. anyscale/client/openapi_client/models/node_registration_provisioned.py +150 -0
  491. anyscale/client/openapi_client/models/node_registration_v2.py +279 -0
  492. anyscale/client/openapi_client/models/node_type.py +100 -0
  493. anyscale/client/openapi_client/models/notification_channel_email_config.py +121 -0
  494. anyscale/client/openapi_client/models/notification_channel_webhook_config.py +121 -0
  495. anyscale/client/openapi_client/models/onboarding_user_cards_query.py +122 -0
  496. anyscale/client/openapi_client/models/organization.py +490 -0
  497. anyscale/client/openapi_client/models/organization_availability.py +148 -0
  498. anyscale/client/openapi_client/models/organization_collaborator.py +259 -0
  499. anyscale/client/openapi_client/models/organization_configuration.py +280 -0
  500. anyscale/client/openapi_client/models/organization_configuration_response.py +227 -0
  501. anyscale/client/openapi_client/models/organization_invitation.py +255 -0
  502. anyscale/client/openapi_client/models/organization_invitation_base.py +121 -0
  503. anyscale/client/openapi_client/models/organization_marketing_questions.py +198 -0
  504. anyscale/client/openapi_client/models/organization_permission_level.py +100 -0
  505. anyscale/client/openapi_client/models/organization_project_collaborator.py +175 -0
  506. anyscale/client/openapi_client/models/organization_project_collaborator_value.py +148 -0
  507. anyscale/client/openapi_client/models/organization_public_identifier.py +121 -0
  508. anyscale/client/openapi_client/models/organization_response.py +121 -0
  509. anyscale/client/openapi_client/models/organization_summary.py +229 -0
  510. anyscale/client/openapi_client/models/organization_usage_alert.py +210 -0
  511. anyscale/client/openapi_client/models/organization_usage_alert_severity.py +100 -0
  512. anyscale/client/openapi_client/models/organizationavailability_response.py +121 -0
  513. anyscale/client/openapi_client/models/organizationcollaborator_list_response.py +147 -0
  514. anyscale/client/openapi_client/models/organizationconfiguration_list_response.py +147 -0
  515. anyscale/client/openapi_client/models/organizationconfigurationresponse_response.py +121 -0
  516. anyscale/client/openapi_client/models/organizationinvitation_list_response.py +147 -0
  517. anyscale/client/openapi_client/models/organizationinvitation_response.py +121 -0
  518. anyscale/client/openapi_client/models/organizationinvitationbase_response.py +121 -0
  519. anyscale/client/openapi_client/models/organizationprojectcollaborator_list_response.py +147 -0
  520. anyscale/client/openapi_client/models/organizationpublicidentifier_response.py +121 -0
  521. anyscale/client/openapi_client/models/organizationusagealert_list_response.py +147 -0
  522. anyscale/client/openapi_client/models/page_query.py +153 -0
  523. anyscale/client/openapi_client/models/pause_schedule.py +123 -0
  524. anyscale/client/openapi_client/models/permission_level.py +101 -0
  525. anyscale/client/openapi_client/models/platform_fine_tuning_job.py +577 -0
  526. anyscale/client/openapi_client/models/platformfinetuningjob_list_response.py +147 -0
  527. anyscale/client/openapi_client/models/platformfinetuningjob_response.py +121 -0
  528. anyscale/client/openapi_client/models/product_autoscaler_flag.py +122 -0
  529. anyscale/client/openapi_client/models/product_type.py +100 -0
  530. anyscale/client/openapi_client/models/productautoscalerflag_response.py +121 -0
  531. anyscale/client/openapi_client/models/production_job.py +437 -0
  532. anyscale/client/openapi_client/models/production_job_config.py +348 -0
  533. anyscale/client/openapi_client/models/production_job_event.py +378 -0
  534. anyscale/client/openapi_client/models/production_job_event_scope_filter.py +101 -0
  535. anyscale/client/openapi_client/models/production_job_state_transition.py +293 -0
  536. anyscale/client/openapi_client/models/productionjob_response.py +121 -0
  537. anyscale/client/openapi_client/models/productionjobevent_list_response.py +147 -0
  538. anyscale/client/openapi_client/models/project.py +554 -0
  539. anyscale/client/openapi_client/models/project_base.py +121 -0
  540. anyscale/client/openapi_client/models/project_collaborator.py +175 -0
  541. anyscale/client/openapi_client/models/project_collaborator_value.py +175 -0
  542. anyscale/client/openapi_client/models/project_collaborators_put_message.py +121 -0
  543. anyscale/client/openapi_client/models/project_create_message.py +148 -0
  544. anyscale/client/openapi_client/models/project_default_session_name.py +121 -0
  545. anyscale/client/openapi_client/models/project_delete_message.py +121 -0
  546. anyscale/client/openapi_client/models/project_list_response.py +147 -0
  547. anyscale/client/openapi_client/models/project_patch_message.py +121 -0
  548. anyscale/client/openapi_client/models/project_response.py +121 -0
  549. anyscale/client/openapi_client/models/projectbase_response.py +121 -0
  550. anyscale/client/openapi_client/models/projectcollaborator_list_response.py +147 -0
  551. anyscale/client/openapi_client/models/projectdefaultsessionname_response.py +121 -0
  552. anyscale/client/openapi_client/models/projects_sort_field.py +101 -0
  553. anyscale/client/openapi_client/models/projects_violating_tree_hierarchy_response.py +121 -0
  554. anyscale/client/openapi_client/models/projectsviolatingtreehierarchyresponse_response.py +121 -0
  555. anyscale/client/openapi_client/models/protocols.py +150 -0
  556. anyscale/client/openapi_client/models/provider_metadata.py +205 -0
  557. anyscale/client/openapi_client/models/providermetadata_response.py +121 -0
  558. anyscale/client/openapi_client/models/python_modules.py +150 -0
  559. anyscale/client/openapi_client/models/quota.py +198 -0
  560. anyscale/client/openapi_client/models/ray_gcs_external_storage_config.py +178 -0
  561. anyscale/client/openapi_client/models/ray_runtime_env_config.py +262 -0
  562. anyscale/client/openapi_client/models/read_billing_version.py +210 -0
  563. anyscale/client/openapi_client/models/readbillingversion_list_response.py +147 -0
  564. anyscale/client/openapi_client/models/replica_details.py +152 -0
  565. anyscale/client/openapi_client/models/replica_state.py +104 -0
  566. anyscale/client/openapi_client/models/request_email_magic_link_response.py +147 -0
  567. anyscale/client/openapi_client/models/request_otp_return_api_model.py +148 -0
  568. anyscale/client/openapi_client/models/request_password_reset_params.py +147 -0
  569. anyscale/client/openapi_client/models/requestemailmagiclinkresponse_response.py +121 -0
  570. anyscale/client/openapi_client/models/requestotpreturnapimodel_response.py +121 -0
  571. anyscale/client/openapi_client/models/reset_password_params.py +148 -0
  572. anyscale/client/openapi_client/models/resource_quota.py +465 -0
  573. anyscale/client/openapi_client/models/resource_quota_status.py +123 -0
  574. anyscale/client/openapi_client/models/resourcequota_list_response.py +147 -0
  575. anyscale/client/openapi_client/models/resourcequota_response.py +121 -0
  576. anyscale/client/openapi_client/models/resources.py +234 -0
  577. anyscale/client/openapi_client/models/resubmit_ft_job_request.py +121 -0
  578. anyscale/client/openapi_client/models/rollback_service_model.py +122 -0
  579. anyscale/client/openapi_client/models/rollout_strategy.py +100 -0
  580. anyscale/client/openapi_client/models/s3_download_location.py +148 -0
  581. anyscale/client/openapi_client/models/schedule_config.py +151 -0
  582. anyscale/client/openapi_client/models/serve_deployment_grafana_dashboard_status.py +101 -0
  583. anyscale/client/openapi_client/models/serve_deployment_logs.py +152 -0
  584. anyscale/client/openapi_client/models/serve_deployment_state.py +104 -0
  585. anyscale/client/openapi_client/models/servedeploymentlogs_response.py +121 -0
  586. anyscale/client/openapi_client/models/server_session_token.py +121 -0
  587. anyscale/client/openapi_client/models/serversessiontoken_response.py +121 -0
  588. anyscale/client/openapi_client/models/service_config.py +178 -0
  589. anyscale/client/openapi_client/models/service_event_current_state.py +108 -0
  590. anyscale/client/openapi_client/models/service_event_level.py +102 -0
  591. anyscale/client/openapi_client/models/service_event_origin.py +103 -0
  592. anyscale/client/openapi_client/models/service_event_scope.py +103 -0
  593. anyscale/client/openapi_client/models/service_event_scope_filter.py +104 -0
  594. anyscale/client/openapi_client/models/service_event_type.py +125 -0
  595. anyscale/client/openapi_client/models/service_event_verbose_message_model.py +180 -0
  596. anyscale/client/openapi_client/models/service_goal_states.py +100 -0
  597. anyscale/client/openapi_client/models/service_observability_urls.py +206 -0
  598. anyscale/client/openapi_client/models/service_sort_field.py +101 -0
  599. anyscale/client/openapi_client/models/service_type.py +100 -0
  600. anyscale/client/openapi_client/models/service_usage.py +353 -0
  601. anyscale/client/openapi_client/models/service_version_state.py +106 -0
  602. anyscale/client/openapi_client/models/serviceeventverbosemessagemodel_list_response.py +147 -0
  603. anyscale/client/openapi_client/models/session.py +834 -0
  604. anyscale/client/openapi_client/models/session_access.py +102 -0
  605. anyscale/client/openapi_client/models/session_autosync_sessions_update_message.py +121 -0
  606. anyscale/client/openapi_client/models/session_command.py +413 -0
  607. anyscale/client/openapi_client/models/session_command_finish_options.py +226 -0
  608. anyscale/client/openapi_client/models/session_command_id.py +121 -0
  609. anyscale/client/openapi_client/models/session_command_types.py +100 -0
  610. anyscale/client/openapi_client/models/session_create_message.py +148 -0
  611. anyscale/client/openapi_client/models/session_delete_message.py +121 -0
  612. anyscale/client/openapi_client/models/session_describe.py +175 -0
  613. anyscale/client/openapi_client/models/session_details.py +148 -0
  614. anyscale/client/openapi_client/models/session_event.py +267 -0
  615. anyscale/client/openapi_client/models/session_event_cause.py +150 -0
  616. anyscale/client/openapi_client/models/session_event_types.py +111 -0
  617. anyscale/client/openapi_client/models/session_execute_message.py +121 -0
  618. anyscale/client/openapi_client/models/session_finish_command_message.py +175 -0
  619. anyscale/client/openapi_client/models/session_history_item.py +146 -0
  620. anyscale/client/openapi_client/models/session_kill_command_message.py +121 -0
  621. anyscale/client/openapi_client/models/session_list_response.py +147 -0
  622. anyscale/client/openapi_client/models/session_patch_message.py +121 -0
  623. anyscale/client/openapi_client/models/session_response.py +121 -0
  624. anyscale/client/openapi_client/models/session_ssh_key.py +148 -0
  625. anyscale/client/openapi_client/models/session_starting_up_data.py +146 -0
  626. anyscale/client/openapi_client/models/session_state.py +111 -0
  627. anyscale/client/openapi_client/models/session_state_change_message.py +121 -0
  628. anyscale/client/openapi_client/models/session_state_data.py +146 -0
  629. anyscale/client/openapi_client/models/session_stopping_data.py +146 -0
  630. anyscale/client/openapi_client/models/sessioncommand_list_response.py +147 -0
  631. anyscale/client/openapi_client/models/sessioncommandid_response.py +121 -0
  632. anyscale/client/openapi_client/models/sessiondescribe_response.py +121 -0
  633. anyscale/client/openapi_client/models/sessiondetails_response.py +121 -0
  634. anyscale/client/openapi_client/models/sessionevent_list_response.py +147 -0
  635. anyscale/client/openapi_client/models/sessionhistoryitem_list_response.py +147 -0
  636. anyscale/client/openapi_client/models/sessions_sort_field.py +104 -0
  637. anyscale/client/openapi_client/models/sessionsshkey_response.py +121 -0
  638. anyscale/client/openapi_client/models/setup_initialize_session_options.py +225 -0
  639. anyscale/client/openapi_client/models/show_otp_source_return_api_model.py +121 -0
  640. anyscale/client/openapi_client/models/showotpsourcereturnapimodel_response.py +121 -0
  641. anyscale/client/openapi_client/models/snapshot_create_message.py +148 -0
  642. anyscale/client/openapi_client/models/snapshot_delete_message.py +148 -0
  643. anyscale/client/openapi_client/models/snapshot_patch_message.py +148 -0
  644. anyscale/client/openapi_client/models/socket_message_schemas.py +499 -0
  645. anyscale/client/openapi_client/models/socket_message_types.py +113 -0
  646. anyscale/client/openapi_client/models/socketmessageschemas_response.py +121 -0
  647. anyscale/client/openapi_client/models/socketmessagetypes_response.py +121 -0
  648. anyscale/client/openapi_client/models/sort_order.py +100 -0
  649. anyscale/client/openapi_client/models/sso_login_info.py +151 -0
  650. anyscale/client/openapi_client/models/ssologininfo_response.py +121 -0
  651. anyscale/client/openapi_client/models/start_session_options.py +146 -0
  652. anyscale/client/openapi_client/models/stop_session_options.py +227 -0
  653. anyscale/client/openapi_client/models/stream_publish_request.py +239 -0
  654. anyscale/client/openapi_client/models/subnet_id_with_availability_zone_aws.py +148 -0
  655. anyscale/client/openapi_client/models/support_requests_query.py +178 -0
  656. anyscale/client/openapi_client/models/supportedbaseimagesenum.py +1570 -0
  657. anyscale/client/openapi_client/models/templatized_compute_configs.py +202 -0
  658. anyscale/client/openapi_client/models/templatized_decorated_application_templates.py +202 -0
  659. anyscale/client/openapi_client/models/templatizedcomputeconfigs_response.py +121 -0
  660. anyscale/client/openapi_client/models/templatizeddecoratedapplicationtemplates_response.py +121 -0
  661. anyscale/client/openapi_client/models/text_query.py +178 -0
  662. anyscale/client/openapi_client/models/timestamped_logs_output.py +148 -0
  663. anyscale/client/openapi_client/models/timestampedlogsoutput_response.py +121 -0
  664. anyscale/client/openapi_client/models/tool.py +100 -0
  665. anyscale/client/openapi_client/models/tracing_config.py +178 -0
  666. anyscale/client/openapi_client/models/try_login_email_response.py +208 -0
  667. anyscale/client/openapi_client/models/tryloginemailresponse_response.py +121 -0
  668. anyscale/client/openapi_client/models/unified_job_sort_field.py +103 -0
  669. anyscale/client/openapi_client/models/unified_job_status.py +114 -0
  670. anyscale/client/openapi_client/models/unified_job_type.py +100 -0
  671. anyscale/client/openapi_client/models/update_cloud_with_cloud_resource.py +178 -0
  672. anyscale/client/openapi_client/models/update_cloud_with_cloud_resource_gcp.py +178 -0
  673. anyscale/client/openapi_client/models/update_cluster_dns.py +152 -0
  674. anyscale/client/openapi_client/models/update_compute_template.py +146 -0
  675. anyscale/client/openapi_client/models/update_compute_template_config.py +464 -0
  676. anyscale/client/openapi_client/models/update_endpoint.py +152 -0
  677. anyscale/client/openapi_client/models/update_machine_pool_request.py +151 -0
  678. anyscale/client/openapi_client/models/update_model_deployment.py +152 -0
  679. anyscale/client/openapi_client/models/update_organization_collaborator.py +121 -0
  680. anyscale/client/openapi_client/models/update_project_collaborator.py +121 -0
  681. anyscale/client/openapi_client/models/update_resource_quota.py +122 -0
  682. anyscale/client/openapi_client/models/updatemachinepoolresponse_response.py +121 -0
  683. anyscale/client/openapi_client/models/upload_session_command_logs_locations.py +148 -0
  684. anyscale/client/openapi_client/models/uploadsessioncommandlogslocations_response.py +121 -0
  685. anyscale/client/openapi_client/models/user_info.py +569 -0
  686. anyscale/client/openapi_client/models/user_resend_email_options.py +147 -0
  687. anyscale/client/openapi_client/models/user_service_access_types.py +100 -0
  688. anyscale/client/openapi_client/models/userinfo_response.py +121 -0
  689. anyscale/client/openapi_client/models/utm_fields.py +224 -0
  690. anyscale/client/openapi_client/models/ux_instance.py +468 -0
  691. anyscale/client/openapi_client/models/validate_otp_params_api_model.py +121 -0
  692. anyscale/client/openapi_client/models/validation_error.py +175 -0
  693. anyscale/client/openapi_client/models/verify_response.py +147 -0
  694. anyscale/client/openapi_client/models/verifyresponse_response.py +121 -0
  695. anyscale/client/openapi_client/models/visibility.py +100 -0
  696. anyscale/client/openapi_client/models/waitlist_status_response.py +121 -0
  697. anyscale/client/openapi_client/models/waitlist_status_type.py +100 -0
  698. anyscale/client/openapi_client/models/waitliststatusresponse_response.py +121 -0
  699. anyscale/client/openapi_client/models/wand_b_run_details.py +147 -0
  700. anyscale/client/openapi_client/models/web_terminal.py +121 -0
  701. anyscale/client/openapi_client/models/webterminal_list_response.py +147 -0
  702. anyscale/client/openapi_client/models/webterminal_response.py +121 -0
  703. anyscale/client/openapi_client/models/worker_node_type.py +404 -0
  704. anyscale/client/openapi_client/models/workload_type.py +102 -0
  705. anyscale/client/openapi_client/models/workspace_dataplane_artifact.py +181 -0
  706. anyscale/client/openapi_client/models/workspace_dataplane_artifacts.py +123 -0
  707. anyscale/client/openapi_client/models/workspace_dataplane_proxied_artifacts.py +178 -0
  708. anyscale/client/openapi_client/models/workspace_event.py +325 -0
  709. anyscale/client/openapi_client/models/workspace_event_source.py +100 -0
  710. anyscale/client/openapi_client/models/workspace_event_source_filter.py +101 -0
  711. anyscale/client/openapi_client/models/workspace_readme.py +123 -0
  712. anyscale/client/openapi_client/models/workspace_snapshot_states.py +108 -0
  713. anyscale/client/openapi_client/models/workspace_template.py +353 -0
  714. anyscale/client/openapi_client/models/workspace_template_cluster_environment_metadata.py +178 -0
  715. anyscale/client/openapi_client/models/workspacedataplaneartifacts_response.py +121 -0
  716. anyscale/client/openapi_client/models/workspacedataplaneproxiedartifacts_response.py +121 -0
  717. anyscale/client/openapi_client/models/workspaceevent_list_response.py +147 -0
  718. anyscale/client/openapi_client/models/workspacereadme_response.py +121 -0
  719. anyscale/client/openapi_client/models/workspacetemplate_list_response.py +147 -0
  720. anyscale/client/openapi_client/models/workspacetemplateclusterenvironmentmetadata_response.py +121 -0
  721. anyscale/client/openapi_client/models/write_cloud.py +546 -0
  722. anyscale/client/openapi_client/models/write_cluster_config.py +123 -0
  723. anyscale/client/openapi_client/models/write_project.py +226 -0
  724. anyscale/client/openapi_client/models/write_session.py +147 -0
  725. anyscale/client/openapi_client/models/write_support_request.py +121 -0
  726. anyscale/client/openapi_client/rest.py +296 -0
  727. anyscale/client/requirements.txt +6 -0
  728. anyscale/client/setup.cfg +2 -0
  729. anyscale/client/setup.py +40 -0
  730. anyscale/client/test-requirements.txt +3 -0
  731. anyscale/client/tox.ini +9 -0
  732. anyscale/cloud.py +216 -0
  733. anyscale/cloud_resource.py +1032 -0
  734. anyscale/cluster.py +138 -0
  735. anyscale/cluster_compute.py +167 -0
  736. anyscale/cluster_env.py +173 -0
  737. anyscale/commands/__init__.py +0 -0
  738. anyscale/commands/aggregated_instance_usage_commands.py +86 -0
  739. anyscale/commands/anyscale_api/__init__.py +0 -0
  740. anyscale/commands/anyscale_api/api_commands.py +23 -0
  741. anyscale/commands/anyscale_api/session_commands_commands.py +80 -0
  742. anyscale/commands/anyscale_api/session_operations_commands.py +28 -0
  743. anyscale/commands/anyscale_api/sessions_commands.py +152 -0
  744. anyscale/commands/auth_commands.py +41 -0
  745. anyscale/commands/cloud_commands.py +1011 -0
  746. anyscale/commands/cloud_commands_util.py +10 -0
  747. anyscale/commands/cluster_commands.py +476 -0
  748. anyscale/commands/cluster_env_commands.py +139 -0
  749. anyscale/commands/command_examples.py +495 -0
  750. anyscale/commands/compute_config_commands.py +252 -0
  751. anyscale/commands/config_commands.py +213 -0
  752. anyscale/commands/exec_commands.py +14 -0
  753. anyscale/commands/experimental_integrations_commands.py +70 -0
  754. anyscale/commands/image_commands.py +125 -0
  755. anyscale/commands/job_commands.py +745 -0
  756. anyscale/commands/list_commands.py +85 -0
  757. anyscale/commands/llm/dataset_commands.py +269 -0
  758. anyscale/commands/llm/group.py +15 -0
  759. anyscale/commands/llm/models_commands.py +123 -0
  760. anyscale/commands/login_commands.py +79 -0
  761. anyscale/commands/logs_commands.py +312 -0
  762. anyscale/commands/machine_commands.py +116 -0
  763. anyscale/commands/machine_pool_commands.py +163 -0
  764. anyscale/commands/migrate_commands.py +84 -0
  765. anyscale/commands/project_commands.py +203 -0
  766. anyscale/commands/resource_quota_commands.py +214 -0
  767. anyscale/commands/schedule_commands.py +436 -0
  768. anyscale/commands/service_account_commands.py +72 -0
  769. anyscale/commands/service_commands.py +738 -0
  770. anyscale/commands/session_commands_hidden.py +179 -0
  771. anyscale/commands/util.py +152 -0
  772. anyscale/commands/workspace_commands.py +511 -0
  773. anyscale/commands/workspace_commands_v2.py +874 -0
  774. anyscale/component_activity_util.py +83 -0
  775. anyscale/compute_config/__init__.py +84 -0
  776. anyscale/compute_config/_private/compute_config_sdk.py +433 -0
  777. anyscale/compute_config/commands.py +122 -0
  778. anyscale/compute_config/models.py +630 -0
  779. anyscale/conf.py +23 -0
  780. anyscale/connect.py +1323 -0
  781. anyscale/connect_utils/__init__.py +0 -0
  782. anyscale/connect_utils/prepare_cluster.py +962 -0
  783. anyscale/connect_utils/project.py +298 -0
  784. anyscale/connect_utils/start_interactive_session.py +437 -0
  785. anyscale/controllers/__init__.py +0 -0
  786. anyscale/controllers/auth_controller.py +134 -0
  787. anyscale/controllers/base_controller.py +52 -0
  788. anyscale/controllers/cloud_controller.py +3609 -0
  789. anyscale/controllers/cloud_functional_verification_controller.py +858 -0
  790. anyscale/controllers/cluster_controller.py +720 -0
  791. anyscale/controllers/cluster_env_controller.py +219 -0
  792. anyscale/controllers/compute_config_controller.py +351 -0
  793. anyscale/controllers/config_controller.py +422 -0
  794. anyscale/controllers/experimental_integrations_controller.py +80 -0
  795. anyscale/controllers/job_controller.py +647 -0
  796. anyscale/controllers/jobs_bg_controller.py +0 -0
  797. anyscale/controllers/list_controller.py +290 -0
  798. anyscale/controllers/llm/__init__.py +0 -0
  799. anyscale/controllers/llm/models_controller.py +144 -0
  800. anyscale/controllers/logs_controller.py +449 -0
  801. anyscale/controllers/machine_controller.py +37 -0
  802. anyscale/controllers/machine_pool_controller.py +86 -0
  803. anyscale/controllers/project_controller.py +281 -0
  804. anyscale/controllers/resource_quota_controller.py +183 -0
  805. anyscale/controllers/schedule_controller.py +333 -0
  806. anyscale/controllers/service_account_controller.py +168 -0
  807. anyscale/controllers/service_controller.py +453 -0
  808. anyscale/controllers/workspace_controller.py +253 -0
  809. anyscale/feature_flags.py +4 -0
  810. anyscale/fingerprint.py +62 -0
  811. anyscale/formatters/__init__.py +0 -0
  812. anyscale/formatters/clouds_formatter.py +65 -0
  813. anyscale/formatters/common_formatter.py +22 -0
  814. anyscale/gcp_verification.py +792 -0
  815. anyscale/image/__init__.py +73 -0
  816. anyscale/image/_private/image_sdk.py +202 -0
  817. anyscale/image/commands.py +117 -0
  818. anyscale/image/models.py +57 -0
  819. anyscale/integrations.py +329 -0
  820. anyscale/job/__init__.py +166 -0
  821. anyscale/job/_private/job_sdk.py +497 -0
  822. anyscale/job/commands.py +267 -0
  823. anyscale/job/models.py +500 -0
  824. anyscale/links.py +4 -0
  825. anyscale/llm/__init__.py +2 -0
  826. anyscale/llm/dataset/__init__.py +2 -0
  827. anyscale/llm/dataset/_private/__init__.py +0 -0
  828. anyscale/llm/dataset/_private/docs.py +63 -0
  829. anyscale/llm/dataset/_private/models.py +71 -0
  830. anyscale/llm/dataset/_private/sdk.py +147 -0
  831. anyscale/llm/model/__init__.py +2 -0
  832. anyscale/llm/model/_private/models_sdk.py +62 -0
  833. anyscale/llm/model/commands.py +93 -0
  834. anyscale/llm/model/models.py +171 -0
  835. anyscale/llm/model/sdk.py +62 -0
  836. anyscale/llm/sdk.py +27 -0
  837. anyscale/memorydb_supported_zones.json +22 -0
  838. anyscale/models/job_model.py +457 -0
  839. anyscale/models/service_model.py +125 -0
  840. anyscale/project.py +501 -0
  841. anyscale/schedule/__init__.py +91 -0
  842. anyscale/schedule/_private/schedule_sdk.py +165 -0
  843. anyscale/schedule/commands.py +149 -0
  844. anyscale/schedule/models.py +145 -0
  845. anyscale/scripts.py +164 -0
  846. anyscale/sdk/anyscale_client/__init__.py +235 -0
  847. anyscale/sdk/anyscale_client/api/__init__.py +6 -0
  848. anyscale/sdk/anyscale_client/api/default_api.py +11625 -0
  849. anyscale/sdk/anyscale_client/api_client.py +647 -0
  850. anyscale/sdk/anyscale_client/configuration.py +373 -0
  851. anyscale/sdk/anyscale_client/exceptions.py +120 -0
  852. anyscale/sdk/anyscale_client/models/__init__.py +220 -0
  853. anyscale/sdk/anyscale_client/models/access_config.py +122 -0
  854. anyscale/sdk/anyscale_client/models/app_config.py +436 -0
  855. anyscale/sdk/anyscale_client/models/app_config_config_schema.py +235 -0
  856. anyscale/sdk/anyscale_client/models/appconfig_list_response.py +147 -0
  857. anyscale/sdk/anyscale_client/models/appconfig_response.py +121 -0
  858. anyscale/sdk/anyscale_client/models/apply_production_service_v2_model.py +490 -0
  859. anyscale/sdk/anyscale_client/models/apply_service_model.py +490 -0
  860. anyscale/sdk/anyscale_client/models/archive_status.py +101 -0
  861. anyscale/sdk/anyscale_client/models/base_job_status.py +105 -0
  862. anyscale/sdk/anyscale_client/models/baseimagesenum.py +2130 -0
  863. anyscale/sdk/anyscale_client/models/build.py +607 -0
  864. anyscale/sdk/anyscale_client/models/build_list_response.py +147 -0
  865. anyscale/sdk/anyscale_client/models/build_log_response.py +123 -0
  866. anyscale/sdk/anyscale_client/models/build_response.py +121 -0
  867. anyscale/sdk/anyscale_client/models/build_status.py +104 -0
  868. anyscale/sdk/anyscale_client/models/buildlogresponse_response.py +121 -0
  869. anyscale/sdk/anyscale_client/models/cloud.py +802 -0
  870. anyscale/sdk/anyscale_client/models/cloud_config.py +206 -0
  871. anyscale/sdk/anyscale_client/models/cloud_list_response.py +147 -0
  872. anyscale/sdk/anyscale_client/models/cloud_providers.py +103 -0
  873. anyscale/sdk/anyscale_client/models/cloud_response.py +121 -0
  874. anyscale/sdk/anyscale_client/models/cloud_state.py +104 -0
  875. anyscale/sdk/anyscale_client/models/cloud_status.py +100 -0
  876. anyscale/sdk/anyscale_client/models/cloud_type.py +100 -0
  877. anyscale/sdk/anyscale_client/models/cloud_types.py +100 -0
  878. anyscale/sdk/anyscale_client/models/cloud_version.py +100 -0
  879. anyscale/sdk/anyscale_client/models/clouds_query.py +150 -0
  880. anyscale/sdk/anyscale_client/models/cluster.py +721 -0
  881. anyscale/sdk/anyscale_client/models/cluster_compute.py +415 -0
  882. anyscale/sdk/anyscale_client/models/cluster_compute_config.py +461 -0
  883. anyscale/sdk/anyscale_client/models/cluster_computes_query.py +293 -0
  884. anyscale/sdk/anyscale_client/models/cluster_environment.py +380 -0
  885. anyscale/sdk/anyscale_client/models/cluster_environment_build.py +578 -0
  886. anyscale/sdk/anyscale_client/models/cluster_environment_build_log_response.py +123 -0
  887. anyscale/sdk/anyscale_client/models/cluster_environment_build_operation.py +237 -0
  888. anyscale/sdk/anyscale_client/models/cluster_environment_build_status.py +104 -0
  889. anyscale/sdk/anyscale_client/models/cluster_environments_query.py +290 -0
  890. anyscale/sdk/anyscale_client/models/cluster_head_node_info.py +152 -0
  891. anyscale/sdk/anyscale_client/models/cluster_list_response.py +147 -0
  892. anyscale/sdk/anyscale_client/models/cluster_management_stack_versions.py +100 -0
  893. anyscale/sdk/anyscale_client/models/cluster_operation.py +266 -0
  894. anyscale/sdk/anyscale_client/models/cluster_operation_type.py +101 -0
  895. anyscale/sdk/anyscale_client/models/cluster_response.py +121 -0
  896. anyscale/sdk/anyscale_client/models/cluster_services_urls.py +430 -0
  897. anyscale/sdk/anyscale_client/models/cluster_state.py +108 -0
  898. anyscale/sdk/anyscale_client/models/cluster_status.py +104 -0
  899. anyscale/sdk/anyscale_client/models/cluster_status_details.py +100 -0
  900. anyscale/sdk/anyscale_client/models/clustercompute_list_response.py +147 -0
  901. anyscale/sdk/anyscale_client/models/clustercompute_response.py +121 -0
  902. anyscale/sdk/anyscale_client/models/clusterenvironment_list_response.py +147 -0
  903. anyscale/sdk/anyscale_client/models/clusterenvironment_response.py +121 -0
  904. anyscale/sdk/anyscale_client/models/clusterenvironmentbuild_list_response.py +147 -0
  905. anyscale/sdk/anyscale_client/models/clusterenvironmentbuild_response.py +121 -0
  906. anyscale/sdk/anyscale_client/models/clusterenvironmentbuildlogresponse_response.py +121 -0
  907. anyscale/sdk/anyscale_client/models/clusterenvironmentbuildoperation_response.py +121 -0
  908. anyscale/sdk/anyscale_client/models/clusteroperation_response.py +121 -0
  909. anyscale/sdk/anyscale_client/models/clusters_query.py +234 -0
  910. anyscale/sdk/anyscale_client/models/compute_node_type.py +292 -0
  911. anyscale/sdk/anyscale_client/models/compute_stack.py +100 -0
  912. anyscale/sdk/anyscale_client/models/compute_template.py +415 -0
  913. anyscale/sdk/anyscale_client/models/compute_template_config.py +461 -0
  914. anyscale/sdk/anyscale_client/models/compute_template_query.py +316 -0
  915. anyscale/sdk/anyscale_client/models/computetemplate_list_response.py +147 -0
  916. anyscale/sdk/anyscale_client/models/computetemplate_response.py +121 -0
  917. anyscale/sdk/anyscale_client/models/computetemplateconfig_response.py +121 -0
  918. anyscale/sdk/anyscale_client/models/create_app_config.py +235 -0
  919. anyscale/sdk/anyscale_client/models/create_app_config_configuration_schema.py +235 -0
  920. anyscale/sdk/anyscale_client/models/create_build.py +263 -0
  921. anyscale/sdk/anyscale_client/models/create_byod_app_config_configuration_schema.py +206 -0
  922. anyscale/sdk/anyscale_client/models/create_byod_cluster_environment.py +180 -0
  923. anyscale/sdk/anyscale_client/models/create_byod_cluster_environment_build.py +152 -0
  924. anyscale/sdk/anyscale_client/models/create_byod_cluster_environment_configuration_schema.py +208 -0
  925. anyscale/sdk/anyscale_client/models/create_cloud.py +518 -0
  926. anyscale/sdk/anyscale_client/models/create_cluster.py +376 -0
  927. anyscale/sdk/anyscale_client/models/create_cluster_compute.py +229 -0
  928. anyscale/sdk/anyscale_client/models/create_cluster_compute_config.py +463 -0
  929. anyscale/sdk/anyscale_client/models/create_cluster_environment.py +235 -0
  930. anyscale/sdk/anyscale_client/models/create_cluster_environment_build.py +263 -0
  931. anyscale/sdk/anyscale_client/models/create_cluster_environment_configuration_schema.py +235 -0
  932. anyscale/sdk/anyscale_client/models/create_compute_template.py +229 -0
  933. anyscale/sdk/anyscale_client/models/create_compute_template_config.py +464 -0
  934. anyscale/sdk/anyscale_client/models/create_job_queue_config.py +206 -0
  935. anyscale/sdk/anyscale_client/models/create_production_job.py +234 -0
  936. anyscale/sdk/anyscale_client/models/create_production_job_config.py +347 -0
  937. anyscale/sdk/anyscale_client/models/create_project.py +207 -0
  938. anyscale/sdk/anyscale_client/models/create_schedule.py +263 -0
  939. anyscale/sdk/anyscale_client/models/create_session.py +432 -0
  940. anyscale/sdk/anyscale_client/models/create_session_command.py +152 -0
  941. anyscale/sdk/anyscale_client/models/create_sso_config.py +150 -0
  942. anyscale/sdk/anyscale_client/models/grpc_protocol_config.py +178 -0
  943. anyscale/sdk/anyscale_client/models/ha_job_goal_states.py +102 -0
  944. anyscale/sdk/anyscale_client/models/ha_job_states.py +109 -0
  945. anyscale/sdk/anyscale_client/models/http_protocol_config.py +150 -0
  946. anyscale/sdk/anyscale_client/models/http_validation_error.py +120 -0
  947. anyscale/sdk/anyscale_client/models/idle_termination_status.py +104 -0
  948. anyscale/sdk/anyscale_client/models/job.py +466 -0
  949. anyscale/sdk/anyscale_client/models/job_list_response.py +147 -0
  950. anyscale/sdk/anyscale_client/models/job_queue_config.py +122 -0
  951. anyscale/sdk/anyscale_client/models/job_queue_execution_mode.py +101 -0
  952. anyscale/sdk/anyscale_client/models/job_queue_spec.py +263 -0
  953. anyscale/sdk/anyscale_client/models/job_run_type.py +101 -0
  954. anyscale/sdk/anyscale_client/models/job_status.py +105 -0
  955. anyscale/sdk/anyscale_client/models/jobs_query.py +458 -0
  956. anyscale/sdk/anyscale_client/models/jobs_sort_field.py +104 -0
  957. anyscale/sdk/anyscale_client/models/list_response_metadata.py +146 -0
  958. anyscale/sdk/anyscale_client/models/list_service_model.py +347 -0
  959. anyscale/sdk/anyscale_client/models/listservicemodel_list_response.py +147 -0
  960. anyscale/sdk/anyscale_client/models/log_download_result.py +207 -0
  961. anyscale/sdk/anyscale_client/models/log_file_chunk.py +439 -0
  962. anyscale/sdk/anyscale_client/models/log_level_types.py +100 -0
  963. anyscale/sdk/anyscale_client/models/log_stream.py +151 -0
  964. anyscale/sdk/anyscale_client/models/logdownloadresult_response.py +121 -0
  965. anyscale/sdk/anyscale_client/models/logstream_response.py +121 -0
  966. anyscale/sdk/anyscale_client/models/node_type.py +100 -0
  967. anyscale/sdk/anyscale_client/models/object_storage_config.py +122 -0
  968. anyscale/sdk/anyscale_client/models/object_storage_config_s3.py +256 -0
  969. anyscale/sdk/anyscale_client/models/objectstorageconfig_response.py +121 -0
  970. anyscale/sdk/anyscale_client/models/operation_error.py +123 -0
  971. anyscale/sdk/anyscale_client/models/operation_progress.py +123 -0
  972. anyscale/sdk/anyscale_client/models/operation_result.py +150 -0
  973. anyscale/sdk/anyscale_client/models/organization.py +209 -0
  974. anyscale/sdk/anyscale_client/models/organization_response.py +121 -0
  975. anyscale/sdk/anyscale_client/models/page_query.py +153 -0
  976. anyscale/sdk/anyscale_client/models/pause_schedule.py +123 -0
  977. anyscale/sdk/anyscale_client/models/production_job.py +437 -0
  978. anyscale/sdk/anyscale_client/models/production_job_config.py +348 -0
  979. anyscale/sdk/anyscale_client/models/production_job_state_transition.py +293 -0
  980. anyscale/sdk/anyscale_client/models/production_service_v2_model.py +612 -0
  981. anyscale/sdk/anyscale_client/models/production_service_v2_version_model.py +437 -0
  982. anyscale/sdk/anyscale_client/models/productionjob_list_response.py +147 -0
  983. anyscale/sdk/anyscale_client/models/productionjob_response.py +121 -0
  984. anyscale/sdk/anyscale_client/models/productionservicev2_model_response.py +121 -0
  985. anyscale/sdk/anyscale_client/models/project.py +467 -0
  986. anyscale/sdk/anyscale_client/models/project_list_response.py +147 -0
  987. anyscale/sdk/anyscale_client/models/project_response.py +121 -0
  988. anyscale/sdk/anyscale_client/models/projects_query.py +234 -0
  989. anyscale/sdk/anyscale_client/models/protocols.py +150 -0
  990. anyscale/sdk/anyscale_client/models/python_modules.py +150 -0
  991. anyscale/sdk/anyscale_client/models/python_version.py +105 -0
  992. anyscale/sdk/anyscale_client/models/ray_gcs_external_storage_config.py +178 -0
  993. anyscale/sdk/anyscale_client/models/ray_runtime_env_config.py +262 -0
  994. anyscale/sdk/anyscale_client/models/resources.py +234 -0
  995. anyscale/sdk/anyscale_client/models/rollback_service_model.py +122 -0
  996. anyscale/sdk/anyscale_client/models/rollout_strategy.py +100 -0
  997. anyscale/sdk/anyscale_client/models/runtime_environment.py +406 -0
  998. anyscale/sdk/anyscale_client/models/runtimeenvironment_response.py +121 -0
  999. anyscale/sdk/anyscale_client/models/schedule_api_model.py +467 -0
  1000. anyscale/sdk/anyscale_client/models/schedule_config.py +151 -0
  1001. anyscale/sdk/anyscale_client/models/scheduleapimodel_list_response.py +147 -0
  1002. anyscale/sdk/anyscale_client/models/scheduleapimodel_response.py +121 -0
  1003. anyscale/sdk/anyscale_client/models/service_config.py +178 -0
  1004. anyscale/sdk/anyscale_client/models/service_event_current_state.py +108 -0
  1005. anyscale/sdk/anyscale_client/models/service_goal_states.py +100 -0
  1006. anyscale/sdk/anyscale_client/models/service_model.py +612 -0
  1007. anyscale/sdk/anyscale_client/models/service_observability_urls.py +206 -0
  1008. anyscale/sdk/anyscale_client/models/service_sort_field.py +101 -0
  1009. anyscale/sdk/anyscale_client/models/service_type.py +100 -0
  1010. anyscale/sdk/anyscale_client/models/service_version_state.py +106 -0
  1011. anyscale/sdk/anyscale_client/models/servicemodel_list_response.py +147 -0
  1012. anyscale/sdk/anyscale_client/models/servicemodel_response.py +121 -0
  1013. anyscale/sdk/anyscale_client/models/session.py +1535 -0
  1014. anyscale/sdk/anyscale_client/models/session_command.py +350 -0
  1015. anyscale/sdk/anyscale_client/models/session_command_types.py +100 -0
  1016. anyscale/sdk/anyscale_client/models/session_event.py +267 -0
  1017. anyscale/sdk/anyscale_client/models/session_event_cause.py +150 -0
  1018. anyscale/sdk/anyscale_client/models/session_event_types.py +111 -0
  1019. anyscale/sdk/anyscale_client/models/session_list_response.py +147 -0
  1020. anyscale/sdk/anyscale_client/models/session_operation.py +266 -0
  1021. anyscale/sdk/anyscale_client/models/session_operation_type.py +101 -0
  1022. anyscale/sdk/anyscale_client/models/session_response.py +121 -0
  1023. anyscale/sdk/anyscale_client/models/session_starting_up_data.py +146 -0
  1024. anyscale/sdk/anyscale_client/models/session_state.py +111 -0
  1025. anyscale/sdk/anyscale_client/models/session_state_data.py +146 -0
  1026. anyscale/sdk/anyscale_client/models/session_stopping_data.py +146 -0
  1027. anyscale/sdk/anyscale_client/models/sessioncommand_list_response.py +147 -0
  1028. anyscale/sdk/anyscale_client/models/sessioncommand_response.py +121 -0
  1029. anyscale/sdk/anyscale_client/models/sessionevent_list_response.py +147 -0
  1030. anyscale/sdk/anyscale_client/models/sessionoperation_response.py +121 -0
  1031. anyscale/sdk/anyscale_client/models/sessions_query.py +206 -0
  1032. anyscale/sdk/anyscale_client/models/sort_by_clause_jobs_sort_field.py +148 -0
  1033. anyscale/sdk/anyscale_client/models/sort_order.py +100 -0
  1034. anyscale/sdk/anyscale_client/models/sso_config.py +237 -0
  1035. anyscale/sdk/anyscale_client/models/sso_mode.py +101 -0
  1036. anyscale/sdk/anyscale_client/models/ssoconfig_response.py +121 -0
  1037. anyscale/sdk/anyscale_client/models/start_cluster_options.py +178 -0
  1038. anyscale/sdk/anyscale_client/models/start_session_options.py +206 -0
  1039. anyscale/sdk/anyscale_client/models/static_sso_config.py +210 -0
  1040. anyscale/sdk/anyscale_client/models/supportedbaseimagesenum.py +1570 -0
  1041. anyscale/sdk/anyscale_client/models/terminate_cluster_options.py +122 -0
  1042. anyscale/sdk/anyscale_client/models/terminate_session_options.py +206 -0
  1043. anyscale/sdk/anyscale_client/models/text_query.py +178 -0
  1044. anyscale/sdk/anyscale_client/models/tracing_config.py +178 -0
  1045. anyscale/sdk/anyscale_client/models/update_app_config.py +122 -0
  1046. anyscale/sdk/anyscale_client/models/update_cloud.py +150 -0
  1047. anyscale/sdk/anyscale_client/models/update_cluster.py +206 -0
  1048. anyscale/sdk/anyscale_client/models/update_compute_template.py +146 -0
  1049. anyscale/sdk/anyscale_client/models/update_compute_template_config.py +464 -0
  1050. anyscale/sdk/anyscale_client/models/update_organization.py +123 -0
  1051. anyscale/sdk/anyscale_client/models/update_project.py +150 -0
  1052. anyscale/sdk/anyscale_client/models/update_session.py +150 -0
  1053. anyscale/sdk/anyscale_client/models/user_service_access_types.py +100 -0
  1054. anyscale/sdk/anyscale_client/models/ux_instance.py +468 -0
  1055. anyscale/sdk/anyscale_client/models/validation_error.py +175 -0
  1056. anyscale/sdk/anyscale_client/models/worker_node_type.py +404 -0
  1057. anyscale/sdk/anyscale_client/rest.py +296 -0
  1058. anyscale/sdk/anyscale_client/sdk.py +634 -0
  1059. anyscale/service/__init__.py +168 -0
  1060. anyscale/service/_private/service_sdk.py +702 -0
  1061. anyscale/service/commands.py +261 -0
  1062. anyscale/service/models.py +671 -0
  1063. anyscale/shared_anyscale_utils/__init__.py +1 -0
  1064. anyscale/shared_anyscale_utils/aws.py +153 -0
  1065. anyscale/shared_anyscale_utils/bytes_util.py +10 -0
  1066. anyscale/shared_anyscale_utils/conf.py +47 -0
  1067. anyscale/shared_anyscale_utils/default_anyscale_aws.yaml +74 -0
  1068. anyscale/shared_anyscale_utils/default_anyscale_gcp.yaml +80 -0
  1069. anyscale/shared_anyscale_utils/headers.py +38 -0
  1070. anyscale/shared_anyscale_utils/latest_ray_version.py +2 -0
  1071. anyscale/shared_anyscale_utils/project.py +15 -0
  1072. anyscale/shared_anyscale_utils/test_util.py +22 -0
  1073. anyscale/shared_anyscale_utils/tests/__init__.py +1 -0
  1074. anyscale/shared_anyscale_utils/tests/test_asyncio.py +41 -0
  1075. anyscale/shared_anyscale_utils/tests/test_ray_semver.py +63 -0
  1076. anyscale/shared_anyscale_utils/util.py +50 -0
  1077. anyscale/shared_anyscale_utils/utils/__init__.py +2 -0
  1078. anyscale/shared_anyscale_utils/utils/asyncio.py +120 -0
  1079. anyscale/shared_anyscale_utils/utils/byod.py +40 -0
  1080. anyscale/shared_anyscale_utils/utils/collections.py +33 -0
  1081. anyscale/shared_anyscale_utils/utils/id_gen.py +147 -0
  1082. anyscale/shared_anyscale_utils/utils/protected_string.py +89 -0
  1083. anyscale/shared_anyscale_utils/utils/ray_semver.py +81 -0
  1084. anyscale/snapshot.py +46 -0
  1085. anyscale/tables.py +82 -0
  1086. anyscale/util.py +1155 -0
  1087. anyscale/utils/__init__.py +0 -0
  1088. anyscale/utils/cli_version_check_util.py +63 -0
  1089. anyscale/utils/cloud_update_utils.py +862 -0
  1090. anyscale/utils/cloud_utils.py +317 -0
  1091. anyscale/utils/cluster_debug.py +191 -0
  1092. anyscale/utils/connect_helpers.py +155 -0
  1093. anyscale/utils/deprecation_util.py +32 -0
  1094. anyscale/utils/entity_arg_utils.py +43 -0
  1095. anyscale/utils/env_utils.py +17 -0
  1096. anyscale/utils/gcp_managed_setup_utils.py +888 -0
  1097. anyscale/utils/gcp_utils.py +312 -0
  1098. anyscale/utils/imports/__init__.py +0 -0
  1099. anyscale/utils/imports/all.py +13 -0
  1100. anyscale/utils/imports/azure.py +14 -0
  1101. anyscale/utils/imports/gcp.py +59 -0
  1102. anyscale/utils/logs_utils.py +141 -0
  1103. anyscale/utils/name_utils.py +33 -0
  1104. anyscale/utils/network_verification.py +153 -0
  1105. anyscale/utils/ray_utils.py +128 -0
  1106. anyscale/utils/ray_version_checker.py +48 -0
  1107. anyscale/utils/ray_version_utils.py +53 -0
  1108. anyscale/utils/runtime_env.py +487 -0
  1109. anyscale/utils/s3.py +92 -0
  1110. anyscale/utils/user_utils.py +17 -0
  1111. anyscale/utils/workload_types.py +7 -0
  1112. anyscale/utils/workspace_notification.py +39 -0
  1113. anyscale/utils/workspace_utils.py +65 -0
  1114. anyscale/version.py +1 -0
  1115. anyscale/webterminal/__init__.py +0 -0
  1116. anyscale/webterminal/bash-preexec.sh +370 -0
  1117. anyscale/webterminal/command_persister.py +164 -0
  1118. anyscale/webterminal/utils.py +176 -0
  1119. anyscale/webterminal/webterminal.py +311 -0
  1120. anyscale/workspace/__init__.py +270 -0
  1121. anyscale/workspace/_private/workspace_sdk.py +737 -0
  1122. anyscale/workspace/commands.py +472 -0
  1123. anyscale/workspace/models.py +296 -0
  1124. anyscale/workspace_utils.py +35 -0
  1125. anyscale-0.24.86.dist-info/LICENSE +68 -0
  1126. anyscale-0.24.86.dist-info/METADATA +82 -0
  1127. anyscale-0.24.86.dist-info/NOTICE +6 -0
  1128. anyscale-0.24.86.dist-info/RECORD +1131 -0
  1129. anyscale-0.24.86.dist-info/WHEEL +5 -0
  1130. anyscale-0.24.86.dist-info/entry_points.txt +2 -0
  1131. anyscale-0.24.86.dist-info/top_level.txt +1 -0
@@ -0,0 +1,317 @@
1
+ import contextlib
2
+ from enum import Enum
3
+ import sys
4
+ import time
5
+ from typing import Any, Callable, Dict, List, Optional, Tuple, TypeVar
6
+ import uuid
7
+
8
+ import boto3
9
+ from botocore.exceptions import ClientError
10
+ from click.exceptions import ClickException
11
+
12
+ from anyscale.cli_logger import CloudSetupLogger
13
+ from anyscale.client.openapi_client.api.default_api import DefaultApi
14
+ from anyscale.client.openapi_client.models import (
15
+ CloudAnalyticsEvent,
16
+ CloudAnalyticsEventCloudResource,
17
+ CloudAnalyticsEventCommandName,
18
+ CloudAnalyticsEventError,
19
+ CloudAnalyticsEventName,
20
+ CloudProviders,
21
+ CreateAnalyticsEvent,
22
+ )
23
+ from anyscale.cloud import get_cloud_id_and_name
24
+ from anyscale.shared_anyscale_utils.utils.collections import flatten
25
+
26
+
27
+ V = TypeVar("V")
28
+
29
+
30
+ def get_organization_default_cloud(api_client: DefaultApi) -> Optional[str]:
31
+ """Return default cloud name for organization if it exists and
32
+ if user has correct permissions for it.
33
+
34
+ Returns:
35
+ Name of default cloud name for organization if it exists and
36
+ if user has correct permissions for it.
37
+ """
38
+ user = api_client.get_user_info_api_v2_userinfo_get().result
39
+ organization = user.organizations[0] # Each user only has one org
40
+ if organization.default_cloud_id:
41
+ try:
42
+ # Check permissions
43
+ _, cloud_name = get_cloud_id_and_name(
44
+ api_client, cloud_id=organization.default_cloud_id
45
+ )
46
+ return str(cloud_name)
47
+ except Exception: # noqa: BLE001
48
+ return None
49
+ return None
50
+
51
+
52
+ def get_default_cloud(
53
+ api_client: DefaultApi, cloud_name: Optional[str]
54
+ ) -> Tuple[str, str]:
55
+ """Returns the cloud id from cloud name.
56
+ If cloud name is not provided, returns the default cloud name if exists in organization.
57
+ If default cloud name does not exist returns last used cloud.
58
+ """
59
+
60
+ if cloud_name is None:
61
+ default_cloud_name = get_organization_default_cloud(api_client)
62
+ if default_cloud_name:
63
+ cloud_name = default_cloud_name
64
+ return get_cloud_id_and_name(api_client, cloud_name=cloud_name)
65
+
66
+
67
+ def verify_anyscale_access(
68
+ api_client: DefaultApi,
69
+ cloud_id: str,
70
+ cloud_provider: CloudProviders,
71
+ logger: CloudSetupLogger,
72
+ ) -> bool:
73
+ try:
74
+ api_client.verify_access_api_v2_cloudsverify_access_cloud_id_get(cloud_id)
75
+ return True
76
+ except ClickException as e:
77
+ if cloud_provider == CloudProviders.AWS:
78
+ logger.log_resource_error(
79
+ CloudAnalyticsEventCloudResource.AWS_IAM_ROLE,
80
+ CloudSetupError.ANYSCALE_ACCESS_DENIED,
81
+ )
82
+ elif cloud_provider == CloudProviders.GCP:
83
+ logger.log_resource_error(
84
+ CloudAnalyticsEventCloudResource.GCP_SERVICE_ACCOUNT,
85
+ CloudSetupError.ANYSCALE_ACCESS_DENIED,
86
+ )
87
+ logger.error(
88
+ f"Anyscale's control plane is unable to access resources on your cloud provider.\n{e}"
89
+ )
90
+ return False
91
+
92
+
93
+ def modify_memorydb_parameter_group(
94
+ parameter_group_name: str,
95
+ region: str,
96
+ boto3_session: Optional[boto3.Session] = None,
97
+ ) -> None:
98
+ """
99
+ Modify the memorydb parameter group to set the maxmemory-policy to allkeys-lru.
100
+
101
+ This is not done in the cloudformation template because we have to create the paramter group first and then modify it.
102
+ """
103
+ try:
104
+ if boto3_session is None:
105
+ boto3_session = boto3.Session()
106
+ memorydb_client = boto3_session.client("memorydb", region_name=region)
107
+ memorydb_client.update_parameter_group(
108
+ ParameterGroupName=parameter_group_name,
109
+ ParameterNameValues=[
110
+ {"ParameterName": "maxmemory-policy", "ParameterValue": "allkeys-lru",}
111
+ ],
112
+ )
113
+ except ClientError as e:
114
+ # TODO (allenyin): add memorydb to the cloud provider error list.
115
+ raise ClickException(
116
+ f"Failed to modify memorydb parameter group {parameter_group_name}. Please make sure you have permission to perform UpdateParameterGroup on memorydb clusters and try again. \n{e}"
117
+ )
118
+
119
+
120
+ def wait_for_gcp_lb_resource_termination(
121
+ api_client: DefaultApi,
122
+ cloud_id: str,
123
+ timeout_s: int = 900, # 15 minute timeout
124
+ poll_interval_s: int = 10, # Poll every 10 seconds
125
+ ):
126
+ start = time.time()
127
+ while time.time() - start < timeout_s:
128
+ response = api_client.get_lb_resource_api_v2_clouds_with_cloud_resource_gcp_router_cloud_id_get_lb_resource_post(
129
+ cloud_id=cloud_id
130
+ ).result
131
+ if response.is_terminated:
132
+ break
133
+ time.sleep(poll_interval_s)
134
+ else:
135
+ raise ClickException(
136
+ f"LB resources and namespace termination timed out after {timeout_s} seconds."
137
+ )
138
+
139
+
140
+ class CloudSetupError(str, Enum):
141
+ ANYSCALE_ACCESS_DENIED = "ANYSCALE_ACCESS_DENIED"
142
+ RESOURCE_NOT_FOUND = "RESOURCE_NOT_FOUND"
143
+ CIDR_BLOCK_TOO_SMALL = "CIDR_BLOCK_TOO_SMALL"
144
+ MISSING_CLOUD_RESOURCE_ID = "MISSING_CLOUD_RESOURCE_ID"
145
+ ONLY_ONE_SUBNET = "ONLY_ONE_SUBNET"
146
+ SUBNET_NOT_IN_VPC = "SUBNET_NOT_IN_VPC"
147
+ ONLY_ONE_AZ = "ONLY_ONE_AZ"
148
+ IAM_ROLE_ACCOUNT_MISMATCH = "IAM_ROLE_ACCOUNT_MISMATCH"
149
+ INSTANCE_PROFILE_NOT_FOUND = "INSTANCE_PROFILE_NOT_FOUND"
150
+ INTERNAL_COMMUNICATION_NOT_ALLOWED = "INTERNAL_COMMUNICATION_NOT_ALLOWED"
151
+ MALFORMED_CORS_RULE = "MALFORMED_CORS_RULE"
152
+ INCORRECT_CORS_RULE = "INCORRECT_CORS_RULE"
153
+ MOUNT_TARGET_NOT_FOUND = "MOUNT_TARGET_NOT_FOUND"
154
+ INVALID_MOUNT_TARGET = "INVALID_MOUNT_TARGET"
155
+ PROJECT_NOT_ACTIVE = "PROJECT_NOT_ACTIVE"
156
+ API_NOT_ENABLED = "API_NOT_ENABLED"
157
+ FIREWALL_NOT_ASSOCIATED_WITH_VPC = "FIREWALL_NOT_ASSOCIATED_WITH_VPC"
158
+ FILESTORE_NAME_MALFORMED = "FILESTORE_NAME_MALFORMED"
159
+ FILESTORE_NOT_CONNECTED_TO_VPC = "FILESTORE_NOT_CONNECTED_TO_VPC"
160
+ MEMORYSTORE_NOT_CONNECTED_TO_VPC = "MEMORYSTORE_NOT_CONNECTED_TO_VPC"
161
+ MEMORYSTORE_READ_REPLICAS_DISABLED = "MEMORYSTORE_READ_REPLICAS_DISABLED"
162
+ MEMORYDB_CLUSTER_UNAVAILABLE = "MEMORYDB_CLUSTER_UNAVAILABLE"
163
+
164
+
165
+ class CloudEventProducer:
166
+ """
167
+ Produce events during cloud setup/register/verify
168
+ """
169
+
170
+ def __init__(self, cli_version: str, api_client: DefaultApi):
171
+ self.api_client = api_client
172
+ self.cloud_id: Optional[str] = None
173
+ self.cloud_provider: Optional[CloudProviders] = None
174
+ self.cli_version = cli_version
175
+
176
+ def init_trace_context(
177
+ self,
178
+ command_name: CloudAnalyticsEventCommandName,
179
+ cloud_provider: CloudProviders,
180
+ cloud_id: Optional[str] = None,
181
+ ):
182
+ self.trace_id = str(uuid.uuid4().hex)
183
+ self.command_name = command_name
184
+ self.raw_command_input = str(" ".join(sys.argv[1:]))
185
+ self.cloud_id = cloud_id
186
+ self.cloud_provider = cloud_provider
187
+
188
+ def set_cloud_id(self, cloud_id: str):
189
+ self.cloud_id = cloud_id
190
+
191
+ def produce(
192
+ self,
193
+ event_name: CloudAnalyticsEventName,
194
+ succeeded: bool,
195
+ logger: Optional[CloudSetupLogger] = None,
196
+ internal_error: Optional[str] = None,
197
+ ):
198
+ with contextlib.suppress(Exception):
199
+ # shouldn't block cloud setup even if cloud event generation fails
200
+ error = None
201
+ if not succeeded:
202
+ cloud_provider_error = None
203
+ if logger:
204
+ cloud_provider_error_list = logger.get_cloud_provider_errors()
205
+ logger.clear_cloud_provider_errors()
206
+ if len(cloud_provider_error_list) > 0:
207
+ cloud_provider_error = cloud_provider_error_list
208
+ error = CloudAnalyticsEventError(
209
+ internal_error=internal_error,
210
+ cloud_provider_error=cloud_provider_error,
211
+ )
212
+
213
+ self.api_client.produce_analytics_event_api_v2_analytics_post(
214
+ CreateAnalyticsEvent(
215
+ cloud_analytics_event=CloudAnalyticsEvent(
216
+ cli_version=self.cli_version,
217
+ trace_id=self.trace_id,
218
+ cloud_id=self.cloud_id,
219
+ succeeded=succeeded,
220
+ command_name=self.command_name,
221
+ raw_command_input=self.raw_command_input,
222
+ cloud_provider=self.cloud_provider,
223
+ event_name=event_name,
224
+ error=error,
225
+ )
226
+ )
227
+ )
228
+
229
+
230
+ def validate_aws_credentials(
231
+ logger: CloudSetupLogger, boto3_session: Optional[Any] = None
232
+ ) -> bool:
233
+ try:
234
+ if boto3_session is None:
235
+ boto3_session = boto3.Session()
236
+ boto3.client("sts").get_caller_identity()
237
+ return True
238
+ except Exception as e: # noqa: BLE001
239
+ logger.error(f"Failed to validate AWS credentials: {e}")
240
+ return False
241
+
242
+
243
+ def get_errored_resources_and_reasons(
244
+ cfn_client: Any, stack_name: str
245
+ ) -> Dict[str, str]:
246
+ """
247
+ Describes the CloudFormation stack events and extracts the failure reasons.
248
+ """
249
+ error_details: Dict[str, str] = {}
250
+ response = cfn_client.describe_stack_events(StackName=stack_name)
251
+ error_details.update(
252
+ extract_cloudformation_failure_reasons(response["StackEvents"])
253
+ )
254
+ while response.get("NextToken") is not None:
255
+ response = cfn_client.describe_stack_events(
256
+ StackName=stack_name, NextToken=response["NextToken"]
257
+ )
258
+ error_details.update(
259
+ extract_cloudformation_failure_reasons(response["StackEvents"])
260
+ )
261
+ return error_details
262
+
263
+
264
+ def extract_cloudformation_failure_reasons(
265
+ events: List[Dict[str, Any]]
266
+ ) -> Dict[str, str]:
267
+ """
268
+ Extracts the failure reasons from the CloudFormation events.
269
+ """
270
+ failure_reasons: Dict[str, str] = {}
271
+ for event in events:
272
+ if event.get("ResourceStatus") == "CREATE_FAILED":
273
+ error_resource = event.get("LogicalResourceId", "UnknownResource")
274
+ error_reason = event.get("ResourceStatusReason", "Unknown reason")
275
+ if "Resource creation cancelled" in error_reason:
276
+ # Resource creation cancelled due to other resource failures.
277
+ # Skip this error.
278
+ continue
279
+ failure_reasons[error_resource] = error_reason
280
+ return failure_reasons
281
+
282
+
283
+ def _unroll_resources_for_aws_list_call(aws_list_function: Callable, list_key: str):
284
+ def token_extractor(response) -> Optional[str]:
285
+ return response.get("NextToken")
286
+
287
+ # NOTE: `NextToken` is expected to have `str` type and therefore we have
288
+ # we have to workaround its optionality by completely omitting it
289
+ # from the call
290
+ responses = unroll_pagination(
291
+ lambda next_token: aws_list_function(
292
+ **({"NextToken": next_token} if next_token else {}), # type: ignore
293
+ ),
294
+ token_extractor,
295
+ )
296
+
297
+ return flatten(*[r[list_key] for r in responses if list_key in r])
298
+
299
+
300
+ def unroll_pagination(
301
+ paginated_method: Callable, next_token_extractor: Callable,
302
+ ):
303
+ """Handles paginated method's invocation by
304
+ - Repeatedly invoking the method (injecting the token from its previous response)
305
+ - Collecting all of the responses in a list
306
+ """
307
+
308
+ next_token: Optional[str] = None
309
+ results = []
310
+ while True:
311
+ r = paginated_method(next_token)
312
+ results.append(r)
313
+ next_token = next_token_extractor(r)
314
+ if not next_token:
315
+ break
316
+
317
+ return results
@@ -0,0 +1,191 @@
1
+ from dataclasses import dataclass
2
+ import socket
3
+ import ssl
4
+ from typing import Callable, Dict, Iterator, Optional
5
+
6
+ import requests
7
+
8
+ from anyscale.cli_logger import BlockLogger
9
+
10
+
11
+ @dataclass
12
+ class DebugTestResult:
13
+ name: str
14
+ success: bool
15
+ error: Optional[Exception] = None
16
+ warnings: Optional[str] = None
17
+
18
+
19
+ def debug_cluster(
20
+ logger: BlockLogger, cluster_domain_name: str, anyscale_ip: str
21
+ ) -> Iterator[DebugTestResult]:
22
+ has_experienced_a_failure: bool = False
23
+
24
+ tests = list(_tests_for(cluster_domain_name, anyscale_ip).items())
25
+
26
+ for name, test in tests:
27
+ try:
28
+ warning = test()
29
+
30
+ yield DebugTestResult(name, True, warnings=warning)
31
+ except Exception as e: # noqa: BLE001
32
+ yield DebugTestResult(name, False, e)
33
+
34
+ if not has_experienced_a_failure:
35
+ has_experienced_a_failure = True
36
+
37
+ try:
38
+ cluster_ip_addr = socket.gethostbyname(cluster_domain_name)
39
+ except Exception as e: # noqa: BLE001
40
+ resp = requests.get(
41
+ "https://dns.google/resolve",
42
+ params={"name": cluster_domain_name},
43
+ )
44
+ resp.raise_for_status()
45
+
46
+ resp_json = resp.json()
47
+ cluster_ip_addr = resp_json["Answer"][0]["data"]
48
+ logger.warning(
49
+ "Failure detected, retrying tests by directly communicating with the IP address."
50
+ )
51
+ tests.extend(
52
+ _tests_for(
53
+ cluster_ip_addr, anyscale_ip, tls_sni=cluster_domain_name
54
+ ).items()
55
+ )
56
+
57
+
58
+ def _tests_for(
59
+ endpoint: str, anyscale_ip: str, tls_sni: Optional[str] = None
60
+ ) -> Dict[str, Callable[[], Optional[str]]]:
61
+ """Attempt to debug networking for an Anyscale Cluster.
62
+
63
+ Arguments:
64
+ endpoint: Hostname or IP address of the cluster
65
+ tls_sni: Hostname to use for TLS SNI (used if used to directly dial the IP address)
66
+
67
+ Also ask for the IP from the control Plane
68
+
69
+ Fallbacks:
70
+ 1. Try directly using different IPs + hostname
71
+
72
+ """
73
+ return {
74
+ **(
75
+ {
76
+ "dns-lookup": lambda: _dns_test(endpoint, anyscale_ip),
77
+ "dns-over-https": lambda: _dns_over_https_test(endpoint, anyscale_ip),
78
+ }
79
+ if tls_sni is None
80
+ else {}
81
+ ),
82
+ "tcp-connect": lambda: _tcp_test(endpoint),
83
+ "tls-no-sni": lambda: _tls_no_sni(endpoint),
84
+ "tls-connect": lambda: _tls_test(endpoint, tls_sni),
85
+ "https-get": lambda: _https_test(endpoint, tls_sni),
86
+ }
87
+
88
+
89
+ def _dns_test(endpoint: str, anyscale_ip: str) -> Optional[str]:
90
+ resolved_ip = socket.gethostbyname(endpoint)
91
+ if resolved_ip != anyscale_ip:
92
+ return (
93
+ f"Unexpected local DNS resolution:\nLocal DNS resolves this to {resolved_ip}\n"
94
+ f"Anyscale expects this host to resolve to {anyscale_ip}\n"
95
+ "This is safe to ignore if you are using a VPN to connect to your cluster.\n"
96
+ )
97
+ return None
98
+
99
+
100
+ def _dns_over_https_test(endpoint: str, anyscale_ip: str) -> Optional[str]:
101
+ resp = requests.get("https://dns.google/resolve", params={"name": endpoint})
102
+ resp.raise_for_status()
103
+
104
+ resp_json = resp.json()
105
+ answers = resp_json.get("Answer", [])
106
+ assert len(answers) > 0, "Got no answers for a successful query"
107
+
108
+ resolved_ips = {answer["data"] for answer in answers}
109
+ if anyscale_ip not in resolved_ips:
110
+ return (
111
+ f"Unexpected Public DNS resolution. This should never happen\n"
112
+ f"`8.8.8.8` resolves this host to {resolved_ips}\n"
113
+ f"Anyscale expects this host to resolve to {anyscale_ip}\n"
114
+ )
115
+ return None
116
+
117
+
118
+ def _tcp_test(endpoint: str) -> None:
119
+ with socket.create_connection((endpoint, 443)):
120
+ pass
121
+
122
+
123
+ def _tls_test(endpoint: str, hostname: Optional[str] = None) -> None:
124
+ """Create a TLS connection to the destination.
125
+
126
+ The optional hostname is used if the TLS connection is made directly to an IP address
127
+ and we want to set the SNI separately.
128
+ """
129
+ if hostname is None:
130
+ hostname = endpoint
131
+
132
+ with socket.create_connection(
133
+ (endpoint, 443)
134
+ ) as sock, ssl.create_default_context().wrap_socket(sock, server_hostname=hostname):
135
+ pass
136
+
137
+
138
+ def _tls_no_sni(endpoint: str) -> None:
139
+ """Create a TLS connection to the destination without specifying an SNI.
140
+
141
+ This is used to test if middleboxes/firewalls are rejecting connections based on SNI.
142
+ """
143
+ ctx = ssl.create_default_context()
144
+ ctx.check_hostname = False
145
+ ctx.verify_mode = ssl.CERT_NONE
146
+
147
+ with socket.create_connection((endpoint, 443)) as sock, ctx.wrap_socket(
148
+ sock, server_hostname=None
149
+ ):
150
+ pass
151
+
152
+
153
+ def _https_test(endpoint: str, hostname: Optional[str] = None) -> None:
154
+ if hostname is None:
155
+ hostname = endpoint
156
+
157
+ session = requests.Session()
158
+ session.mount(f"https://{endpoint}", HostnameSpecificAdapter(hostname))
159
+ resp = session.get(f"https://{endpoint}")
160
+
161
+ if resp.status_code != requests.codes["unauthorized"]:
162
+ raise RuntimeError(
163
+ f"Unexpected status code from https://{endpoint}: {resp.status_code}"
164
+ )
165
+
166
+ assert (
167
+ "x-anyscale-authentication-status" in resp.headers
168
+ and resp.headers["x-anyscale-authentication-status"] == "Unauthorized"
169
+ ), "Failed to get an expected anyscale-unique header from the response."
170
+
171
+
172
+ class HostnameSpecificAdapter(requests.adapters.HTTPAdapter):
173
+ """Adapter to handle directly connecting to an IP address with a specific TLS Hostname.
174
+
175
+ This allows requests to be made to https://<ip address>, and still have TLS work for the server name.
176
+ """
177
+
178
+ def __init__(self, hostname: str, *args, **kwargs):
179
+ super().__init__(*args, **kwargs)
180
+
181
+ class SingleHostSSLContext(ssl.SSLContext):
182
+ def wrap_socket(self, *args, **kwargs):
183
+ kwargs["server_hostname"] = hostname
184
+ return super().wrap_socket(*args, **kwargs)
185
+
186
+ self.init_poolmanager(
187
+ self._pool_connections, # type:ignore
188
+ self._pool_maxsize, # type:ignore
189
+ ssl_context=SingleHostSSLContext(),
190
+ assert_hostname=hostname,
191
+ )
@@ -0,0 +1,155 @@
1
+ from dataclasses import dataclass
2
+ import inspect
3
+ from typing import Any, Callable, Dict, Generic, List, Optional, TYPE_CHECKING, TypeVar
4
+
5
+ from anyscale.anyscale_pydantic import BaseModel
6
+ from anyscale.client.openapi_client.models.session import Session
7
+ from anyscale.sdk.anyscale_client.models.cluster import Cluster
8
+
9
+
10
+ if TYPE_CHECKING:
11
+ from anyscale.sdk.anyscale_client.sdk import AnyscaleSDK
12
+
13
+
14
+ try:
15
+ from ray.client_builder import ClientContext
16
+ except ImportError:
17
+ # Import error will be raised in `ClientBuilder.__init__`.
18
+ # Not raising error here to allow `anyscale.connect required_ray_version`
19
+ # to work.
20
+ @dataclass
21
+ class ClientContext: # type: ignore
22
+ pass
23
+
24
+
25
+ @dataclass
26
+ class AnyscaleClientConnectResponse:
27
+ """
28
+ Additional information returned about clusters that were connected from Anyscale.
29
+ """
30
+
31
+ cluster_id: str
32
+
33
+
34
+ class AnyscaleClientContext(ClientContext): # type: ignore
35
+ def __init__(
36
+ self, anyscale_cluster_info: AnyscaleClientConnectResponse, **kwargs: Any,
37
+ ) -> None:
38
+ if _multiclient_supported() and "_context_to_restore" not in kwargs:
39
+ # Set to None for now until multiclient is supported on connect
40
+ kwargs["_context_to_restore"] = None
41
+ super().__init__(**kwargs)
42
+ self.anyscale_cluster_info = anyscale_cluster_info
43
+
44
+
45
+ def _multiclient_supported() -> bool:
46
+ """True if ray version supports multiple clients, False otherwise"""
47
+ _context_params = inspect.signature(ClientContext.__init__).parameters
48
+ return "_context_to_restore" in _context_params
49
+
50
+
51
+ def find_project_id(sdk: "AnyscaleSDK", project_name: str) -> Optional[str]:
52
+ """Return id if a project of a given name exists."""
53
+ resp = sdk.search_projects({"name": {"equals": project_name}})
54
+ if len(resp.results) > 0:
55
+ return resp.results[0].id # type: ignore
56
+ else:
57
+ return None
58
+
59
+
60
+ def get_cluster(
61
+ sdk: "AnyscaleSDK", project_id: str, session_name: str
62
+ ) -> Optional[Session]:
63
+ """Query Anyscale for the given cluster's metadata."""
64
+ clusters = sdk.search_clusters(
65
+ {
66
+ "project_id": project_id,
67
+ "name": {"equals": session_name},
68
+ "archive_status": "ALL",
69
+ }
70
+ ).results
71
+ cluster_found: Optional[Cluster] = None
72
+ for cluster in clusters:
73
+ if cluster.name == session_name:
74
+ cluster_found = cluster
75
+ break
76
+
77
+ # A separate call is needed because downstream clients expect "Session" type
78
+ if cluster_found:
79
+ return sdk.get_session(cluster_found.id).result
80
+ return None
81
+
82
+
83
+ def list_entities(
84
+ list_function: Callable[..., Any],
85
+ container_id: Optional[str] = None,
86
+ filters: Optional[Dict[str, Any]] = None,
87
+ max: Optional[int] = None, # noqa: A002
88
+ ) -> List[Any]:
89
+ """Convenience function to automatically handle paging tokens.
90
+
91
+ This function repeatedly calls `list_function`, which is a GET endpoint
92
+ with `container_id` until all (potentially paged) results are received.
93
+ """
94
+ entities: List[Any] = []
95
+ has_more = True
96
+ paging_token = None
97
+ filters = filters or {}
98
+ while has_more and (not max or len(entities) < max):
99
+ if container_id:
100
+ resp = list_function(
101
+ container_id, count=50, paging_token=paging_token, **filters
102
+ )
103
+ else:
104
+ resp = list_function(count=50, paging_token=paging_token, **filters)
105
+ entities.extend(resp.results)
106
+ paging_token = resp.metadata.next_paging_token
107
+ has_more = paging_token is not None
108
+ return entities
109
+
110
+
111
+ T = TypeVar("T")
112
+
113
+
114
+ class ListResponseMetadata(BaseModel):
115
+ total: Optional[int] = None
116
+ next_paging_token: Optional[str] = None
117
+
118
+
119
+ class ListResponse(BaseModel, Generic[T]):
120
+ results: List[T]
121
+ metadata: ListResponseMetadata
122
+
123
+
124
+ # Must be the `<Entity>Query` Anyscale model. It cannot be a dict.
125
+ QueryObj = TypeVar("QueryObj", bound=object)
126
+
127
+
128
+ def search_entities(
129
+ search_function: Callable[[QueryObj], ListResponse[T]],
130
+ query_obj: QueryObj,
131
+ max_to_return: int = 1000,
132
+ ) -> List[T]:
133
+ """Automatically paginate to retrieve all search results up to `max_to_return`
134
+ (default = 1000).
135
+
136
+ Works for POST endpoints where a single query object is passed
137
+ (in the request body) to the endpoint.
138
+ """
139
+ entities: List[T] = []
140
+ has_more = True
141
+ count = 0
142
+
143
+ while has_more and count < max_to_return:
144
+ resp = search_function(query_obj)
145
+ count += len(resp.results)
146
+ entities += resp.results
147
+
148
+ next_paging_token = resp.metadata.next_paging_token
149
+ query_obj.paging.paging_token = next_paging_token # type: ignore
150
+ has_more = next_paging_token is not None
151
+ if count > max_to_return:
152
+ count = max_to_return
153
+ entities = entities[:max_to_return]
154
+
155
+ return entities
@@ -0,0 +1,32 @@
1
+ from functools import wraps
2
+ from typing import Any, Callable, Optional
3
+ import warnings
4
+
5
+
6
+ def deprecated(message: Optional[str] = None) -> Callable[..., Any]:
7
+ """This is a decorator which can be used to mark functions
8
+ as deprecated. It will result in a warning being emitted
9
+ when the function is used.
10
+
11
+ From https://stackoverflow.com/a/30253848
12
+ """
13
+
14
+ def decorator(func: Callable[..., Any]) -> Callable[..., Any]:
15
+ @wraps(func)
16
+ def decorated_func(*args, **kwargs) -> Any:
17
+ warnings.simplefilter("always", DeprecationWarning) # turn on filter
18
+ deprecated_message = (
19
+ message
20
+ if message
21
+ else f"Call to deprecated function `{func.__name__}`."
22
+ )
23
+ # stacklevel=2 logs at the caller level of func
24
+ # eg. DeprecationWarning: Call to deprecated function `foo()`
25
+ # foo()
26
+ warnings.warn(deprecated_message, DeprecationWarning, stacklevel=2)
27
+ warnings.filters = warnings.filters[1:] # reset filter
28
+ return func(*args, **kwargs)
29
+
30
+ return decorated_func
31
+
32
+ return decorator