anyscale 0.26.33__py3-none-any.whl → 0.26.35__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 (32) hide show
  1. anyscale/_private/anyscale_client/anyscale_client.py +7 -0
  2. anyscale/_private/anyscale_client/common.py +5 -1
  3. anyscale/_private/anyscale_client/fake_anyscale_client.py +7 -2
  4. anyscale/_private/docgen/models.md +2 -2
  5. anyscale/_private/workload/workload_sdk.py +4 -3
  6. anyscale/client/README.md +5 -1
  7. anyscale/client/openapi_client/__init__.py +4 -1
  8. anyscale/client/openapi_client/api/default_api.py +128 -10
  9. anyscale/client/openapi_client/models/__init__.py +4 -1
  10. anyscale/client/openapi_client/models/baseimagesenum.py +2 -1
  11. anyscale/client/openapi_client/models/cloud_deployment.py +31 -30
  12. anyscale/client/openapi_client/models/partition_info.py +152 -0
  13. anyscale/client/openapi_client/models/{pcp_config.py → summarize_machine_pool_request.py} +13 -12
  14. anyscale/client/openapi_client/models/summarize_machine_pool_response.py +181 -0
  15. anyscale/client/openapi_client/models/summarizemachinepoolresponse_response.py +121 -0
  16. anyscale/client/openapi_client/models/supportedbaseimagesenum.py +2 -1
  17. anyscale/client/openapi_client/models/workspace_template_readme.py +32 -3
  18. anyscale/commands/cloud_commands.py +12 -9
  19. anyscale/commands/command_examples.py +23 -6
  20. anyscale/compute_config/_private/compute_config_sdk.py +11 -5
  21. anyscale/job/_private/job_sdk.py +31 -27
  22. anyscale/schedule/_private/schedule_sdk.py +7 -0
  23. anyscale/sdk/anyscale_client/models/baseimagesenum.py +2 -1
  24. anyscale/sdk/anyscale_client/models/supportedbaseimagesenum.py +2 -1
  25. anyscale/version.py +1 -1
  26. {anyscale-0.26.33.dist-info → anyscale-0.26.35.dist-info}/METADATA +1 -1
  27. {anyscale-0.26.33.dist-info → anyscale-0.26.35.dist-info}/RECORD +32 -29
  28. {anyscale-0.26.33.dist-info → anyscale-0.26.35.dist-info}/LICENSE +0 -0
  29. {anyscale-0.26.33.dist-info → anyscale-0.26.35.dist-info}/NOTICE +0 -0
  30. {anyscale-0.26.33.dist-info → anyscale-0.26.35.dist-info}/WHEEL +0 -0
  31. {anyscale-0.26.33.dist-info → anyscale-0.26.35.dist-info}/entry_points.txt +0 -0
  32. {anyscale-0.26.33.dist-info → anyscale-0.26.35.dist-info}/top_level.txt +0 -0
@@ -183,7 +183,7 @@ class WorkloadSDK(BaseSDK):
183
183
  return new_runtime_envs
184
184
 
185
185
  def _resolve_compute_config_id(
186
- self, compute_config: Union[str, ComputeConfig]
186
+ self, compute_config: Union[str, ComputeConfig], cloud: Optional[str] = None,
187
187
  ) -> str:
188
188
  """Resolve the passed compute config to its ID.
189
189
 
@@ -195,7 +195,7 @@ class WorkloadSDK(BaseSDK):
195
195
  """
196
196
  if isinstance(compute_config, str):
197
197
  compute_config_id = self._client.get_compute_config_id(
198
- compute_config_name=compute_config,
198
+ compute_config_name=compute_config, cloud=cloud,
199
199
  )
200
200
  if compute_config_id is None:
201
201
  raise ValueError(
@@ -252,7 +252,8 @@ class WorkloadSDK(BaseSDK):
252
252
  compute_config = replace(compute_config, cloud=cloud)
253
253
 
254
254
  compute_config_id = self._resolve_compute_config_id(
255
- compute_config=compute_config # type: ignore
255
+ compute_config=compute_config, # type: ignore
256
+ cloud=cloud,
256
257
  )
257
258
  cloud_id_from_cc = self.client.get_cloud_id(
258
259
  compute_config_id=compute_config_id
anyscale/client/README.md CHANGED
@@ -331,6 +331,7 @@ Class | Method | HTTP request | Description
331
331
  *DefaultApi* | [**sso_login_test_api_v2_users_sso_login_test_get**](docs/DefaultApi.md#sso_login_test_api_v2_users_sso_login_test_get) | **GET** /api/v2/users/sso_login_test | Sso Login Test
332
332
  *DefaultApi* | [**start_session_api_v2_sessions_session_id_start_post**](docs/DefaultApi.md#start_session_api_v2_sessions_session_id_start_post) | **POST** /api/v2/sessions/{session_id}/start | Start Session
333
333
  *DefaultApi* | [**stop_session_api_v2_sessions_session_id_stop_post**](docs/DefaultApi.md#stop_session_api_v2_sessions_session_id_stop_post) | **POST** /api/v2/sessions/{session_id}/stop | Stop Session
334
+ *DefaultApi* | [**summarize_machine_pool_api_v2_machine_pools_summary_post**](docs/DefaultApi.md#summarize_machine_pool_api_v2_machine_pools_summary_post) | **POST** /api/v2/machine_pools/summary | Summarize Machine Pool
334
335
  *DefaultApi* | [**sync_organization_with_metronome_api_v2_organization_billing_organization_id_sync_with_metronome_post**](docs/DefaultApi.md#sync_organization_with_metronome_api_v2_organization_billing_organization_id_sync_with_metronome_post) | **POST** /api/v2/organization_billing/{organization_id}/sync_with_metronome | Sync Organization With Metronome
335
336
  *DefaultApi* | [**terminate_job_api_v2_decorated_ha_jobs_production_job_id_terminate_post**](docs/DefaultApi.md#terminate_job_api_v2_decorated_ha_jobs_production_job_id_terminate_post) | **POST** /api/v2/decorated_ha_jobs/{production_job_id}/terminate | Terminate Job
336
337
  *DefaultApi* | [**terminate_service_api_v2_services_v2_service_id_terminate_post**](docs/DefaultApi.md#terminate_service_api_v2_services_v2_service_id_terminate_post) | **POST** /api/v2/services-v2/{service_id}/terminate | Terminate Service
@@ -777,8 +778,8 @@ Class | Method | HTTP request | Description
777
778
  - [OrganizationinvitationResponse](docs/OrganizationinvitationResponse.md)
778
779
  - [OrganizationinvitationbaseResponse](docs/OrganizationinvitationbaseResponse.md)
779
780
  - [OrganizationusagealertListResponse](docs/OrganizationusagealertListResponse.md)
780
- - [PCPConfig](docs/PCPConfig.md)
781
781
  - [PageQuery](docs/PageQuery.md)
782
+ - [PartitionInfo](docs/PartitionInfo.md)
782
783
  - [PauseSchedule](docs/PauseSchedule.md)
783
784
  - [PermissionLevel](docs/PermissionLevel.md)
784
785
  - [ProductionJob](docs/ProductionJob.md)
@@ -878,6 +879,9 @@ Class | Method | HTTP request | Description
878
879
  - [StopSessionOptions](docs/StopSessionOptions.md)
879
880
  - [StreamPublishRequest](docs/StreamPublishRequest.md)
880
881
  - [SubnetIdWithAvailabilityZoneAWS](docs/SubnetIdWithAvailabilityZoneAWS.md)
882
+ - [SummarizeMachinePoolRequest](docs/SummarizeMachinePoolRequest.md)
883
+ - [SummarizeMachinePoolResponse](docs/SummarizeMachinePoolResponse.md)
884
+ - [SummarizemachinepoolresponseResponse](docs/SummarizemachinepoolresponseResponse.md)
881
885
  - [SupportRequestsQuery](docs/SupportRequestsQuery.md)
882
886
  - [SystemWorkloadName](docs/SystemWorkloadName.md)
883
887
  - [TaskExceptionGroupAggregate](docs/TaskExceptionGroupAggregate.md)
@@ -437,8 +437,8 @@ from openapi_client.models.organizationinvitation_list_response import Organizat
437
437
  from openapi_client.models.organizationinvitation_response import OrganizationinvitationResponse
438
438
  from openapi_client.models.organizationinvitationbase_response import OrganizationinvitationbaseResponse
439
439
  from openapi_client.models.organizationusagealert_list_response import OrganizationusagealertListResponse
440
- from openapi_client.models.pcp_config import PCPConfig
441
440
  from openapi_client.models.page_query import PageQuery
441
+ from openapi_client.models.partition_info import PartitionInfo
442
442
  from openapi_client.models.pause_schedule import PauseSchedule
443
443
  from openapi_client.models.permission_level import PermissionLevel
444
444
  from openapi_client.models.production_job import ProductionJob
@@ -538,6 +538,9 @@ from openapi_client.models.start_session_options import StartSessionOptions
538
538
  from openapi_client.models.stop_session_options import StopSessionOptions
539
539
  from openapi_client.models.stream_publish_request import StreamPublishRequest
540
540
  from openapi_client.models.subnet_id_with_availability_zone_aws import SubnetIdWithAvailabilityZoneAWS
541
+ from openapi_client.models.summarize_machine_pool_request import SummarizeMachinePoolRequest
542
+ from openapi_client.models.summarize_machine_pool_response import SummarizeMachinePoolResponse
543
+ from openapi_client.models.summarizemachinepoolresponse_response import SummarizemachinepoolresponseResponse
541
544
  from openapi_client.models.support_requests_query import SupportRequestsQuery
542
545
  from openapi_client.models.system_workload_name import SystemWorkloadName
543
546
  from openapi_client.models.task_exception_group_aggregate import TaskExceptionGroupAggregate
@@ -9114,8 +9114,8 @@ class DefaultApi(object):
9114
9114
  local_var_params['aggregated_usage_query'] is None): # noqa: E501
9115
9115
  raise ApiValueError("Missing the required parameter `aggregated_usage_query` when calling `fetch_usage_group_by_cloud_api_v2_aggregated_instance_usage_cloud_post`") # noqa: E501
9116
9116
 
9117
- if self.api_client.client_side_validation and 'count' in local_var_params and local_var_params['count'] > 50: # noqa: E501
9118
- raise ApiValueError("Invalid value for parameter `count` when calling `fetch_usage_group_by_cloud_api_v2_aggregated_instance_usage_cloud_post`, must be a value less than or equal to `50`") # noqa: E501
9117
+ if self.api_client.client_side_validation and 'count' in local_var_params and local_var_params['count'] > 1000: # noqa: E501
9118
+ raise ApiValueError("Invalid value for parameter `count` when calling `fetch_usage_group_by_cloud_api_v2_aggregated_instance_usage_cloud_post`, must be a value less than or equal to `1000`") # noqa: E501
9119
9119
  if self.api_client.client_side_validation and 'count' in local_var_params and local_var_params['count'] < 0: # noqa: E501
9120
9120
  raise ApiValueError("Invalid value for parameter `count` when calling `fetch_usage_group_by_cloud_api_v2_aggregated_instance_usage_cloud_post`, must be a value greater than or equal to `0`") # noqa: E501
9121
9121
  collection_formats = {}
@@ -9244,8 +9244,8 @@ class DefaultApi(object):
9244
9244
  local_var_params['aggregated_usage_query'] is None): # noqa: E501
9245
9245
  raise ApiValueError("Missing the required parameter `aggregated_usage_query` when calling `fetch_usage_group_by_cluster_api_v2_aggregated_instance_usage_cluster_post`") # noqa: E501
9246
9246
 
9247
- if self.api_client.client_side_validation and 'count' in local_var_params and local_var_params['count'] > 50: # noqa: E501
9248
- raise ApiValueError("Invalid value for parameter `count` when calling `fetch_usage_group_by_cluster_api_v2_aggregated_instance_usage_cluster_post`, must be a value less than or equal to `50`") # noqa: E501
9247
+ if self.api_client.client_side_validation and 'count' in local_var_params and local_var_params['count'] > 1000: # noqa: E501
9248
+ raise ApiValueError("Invalid value for parameter `count` when calling `fetch_usage_group_by_cluster_api_v2_aggregated_instance_usage_cluster_post`, must be a value less than or equal to `1000`") # noqa: E501
9249
9249
  if self.api_client.client_side_validation and 'count' in local_var_params and local_var_params['count'] < 0: # noqa: E501
9250
9250
  raise ApiValueError("Invalid value for parameter `count` when calling `fetch_usage_group_by_cluster_api_v2_aggregated_instance_usage_cluster_post`, must be a value greater than or equal to `0`") # noqa: E501
9251
9251
  collection_formats = {}
@@ -9374,8 +9374,8 @@ class DefaultApi(object):
9374
9374
  local_var_params['aggregated_usage_query'] is None): # noqa: E501
9375
9375
  raise ApiValueError("Missing the required parameter `aggregated_usage_query` when calling `fetch_usage_group_by_instance_type_api_v2_aggregated_instance_usage_instance_type_post`") # noqa: E501
9376
9376
 
9377
- if self.api_client.client_side_validation and 'count' in local_var_params and local_var_params['count'] > 50: # noqa: E501
9378
- raise ApiValueError("Invalid value for parameter `count` when calling `fetch_usage_group_by_instance_type_api_v2_aggregated_instance_usage_instance_type_post`, must be a value less than or equal to `50`") # noqa: E501
9377
+ if self.api_client.client_side_validation and 'count' in local_var_params and local_var_params['count'] > 1000: # noqa: E501
9378
+ raise ApiValueError("Invalid value for parameter `count` when calling `fetch_usage_group_by_instance_type_api_v2_aggregated_instance_usage_instance_type_post`, must be a value less than or equal to `1000`") # noqa: E501
9379
9379
  if self.api_client.client_side_validation and 'count' in local_var_params and local_var_params['count'] < 0: # noqa: E501
9380
9380
  raise ApiValueError("Invalid value for parameter `count` when calling `fetch_usage_group_by_instance_type_api_v2_aggregated_instance_usage_instance_type_post`, must be a value greater than or equal to `0`") # noqa: E501
9381
9381
  collection_formats = {}
@@ -9504,8 +9504,8 @@ class DefaultApi(object):
9504
9504
  local_var_params['aggregated_usage_query'] is None): # noqa: E501
9505
9505
  raise ApiValueError("Missing the required parameter `aggregated_usage_query` when calling `fetch_usage_group_by_project_api_v2_aggregated_instance_usage_project_post`") # noqa: E501
9506
9506
 
9507
- if self.api_client.client_side_validation and 'count' in local_var_params and local_var_params['count'] > 50: # noqa: E501
9508
- raise ApiValueError("Invalid value for parameter `count` when calling `fetch_usage_group_by_project_api_v2_aggregated_instance_usage_project_post`, must be a value less than or equal to `50`") # noqa: E501
9507
+ if self.api_client.client_side_validation and 'count' in local_var_params and local_var_params['count'] > 1000: # noqa: E501
9508
+ raise ApiValueError("Invalid value for parameter `count` when calling `fetch_usage_group_by_project_api_v2_aggregated_instance_usage_project_post`, must be a value less than or equal to `1000`") # noqa: E501
9509
9509
  if self.api_client.client_side_validation and 'count' in local_var_params and local_var_params['count'] < 0: # noqa: E501
9510
9510
  raise ApiValueError("Invalid value for parameter `count` when calling `fetch_usage_group_by_project_api_v2_aggregated_instance_usage_project_post`, must be a value greater than or equal to `0`") # noqa: E501
9511
9511
  collection_formats = {}
@@ -9634,8 +9634,8 @@ class DefaultApi(object):
9634
9634
  local_var_params['aggregated_usage_query'] is None): # noqa: E501
9635
9635
  raise ApiValueError("Missing the required parameter `aggregated_usage_query` when calling `fetch_usage_group_by_user_api_v2_aggregated_instance_usage_user_post`") # noqa: E501
9636
9636
 
9637
- if self.api_client.client_side_validation and 'count' in local_var_params and local_var_params['count'] > 50: # noqa: E501
9638
- raise ApiValueError("Invalid value for parameter `count` when calling `fetch_usage_group_by_user_api_v2_aggregated_instance_usage_user_post`, must be a value less than or equal to `50`") # noqa: E501
9637
+ if self.api_client.client_side_validation and 'count' in local_var_params and local_var_params['count'] > 1000: # noqa: E501
9638
+ raise ApiValueError("Invalid value for parameter `count` when calling `fetch_usage_group_by_user_api_v2_aggregated_instance_usage_user_post`, must be a value less than or equal to `1000`") # noqa: E501
9639
9639
  if self.api_client.client_side_validation and 'count' in local_var_params and local_var_params['count'] < 0: # noqa: E501
9640
9640
  raise ApiValueError("Invalid value for parameter `count` when calling `fetch_usage_group_by_user_api_v2_aggregated_instance_usage_user_post`, must be a value greater than or equal to `0`") # noqa: E501
9641
9641
  collection_formats = {}
@@ -31055,6 +31055,124 @@ class DefaultApi(object):
31055
31055
  _request_timeout=local_var_params.get('_request_timeout'),
31056
31056
  collection_formats=collection_formats)
31057
31057
 
31058
+ def summarize_machine_pool_api_v2_machine_pools_summary_post(self, summarize_machine_pool_request, **kwargs): # noqa: E501
31059
+ """Summarize Machine Pool # noqa: E501
31060
+
31061
+ Summarize the current state of a machine pool. # noqa: E501
31062
+ This method makes a synchronous HTTP request by default. To make an
31063
+ asynchronous HTTP request, please pass async_req=True
31064
+ >>> thread = api.summarize_machine_pool_api_v2_machine_pools_summary_post(summarize_machine_pool_request, async_req=True)
31065
+ >>> result = thread.get()
31066
+
31067
+ :param async_req bool: execute request asynchronously
31068
+ :param SummarizeMachinePoolRequest summarize_machine_pool_request: (required)
31069
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
31070
+ be returned without reading/decoding response
31071
+ data. Default is True.
31072
+ :param _request_timeout: timeout setting for this request. If one
31073
+ number provided, it will be total request
31074
+ timeout. It can also be a pair (tuple) of
31075
+ (connection, read) timeouts.
31076
+ :return: SummarizemachinepoolresponseResponse
31077
+ If the method is called asynchronously,
31078
+ returns the request thread.
31079
+ """
31080
+ kwargs['_return_http_data_only'] = True
31081
+ return self.summarize_machine_pool_api_v2_machine_pools_summary_post_with_http_info(summarize_machine_pool_request, **kwargs) # noqa: E501
31082
+
31083
+ def summarize_machine_pool_api_v2_machine_pools_summary_post_with_http_info(self, summarize_machine_pool_request, **kwargs): # noqa: E501
31084
+ """Summarize Machine Pool # noqa: E501
31085
+
31086
+ Summarize the current state of a machine pool. # noqa: E501
31087
+ This method makes a synchronous HTTP request by default. To make an
31088
+ asynchronous HTTP request, please pass async_req=True
31089
+ >>> thread = api.summarize_machine_pool_api_v2_machine_pools_summary_post_with_http_info(summarize_machine_pool_request, async_req=True)
31090
+ >>> result = thread.get()
31091
+
31092
+ :param async_req bool: execute request asynchronously
31093
+ :param SummarizeMachinePoolRequest summarize_machine_pool_request: (required)
31094
+ :param _return_http_data_only: response data without head status code
31095
+ and headers
31096
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
31097
+ be returned without reading/decoding response
31098
+ data. Default is True.
31099
+ :param _request_timeout: timeout setting for this request. If one
31100
+ number provided, it will be total request
31101
+ timeout. It can also be a pair (tuple) of
31102
+ (connection, read) timeouts.
31103
+ :return: tuple(SummarizemachinepoolresponseResponse, status_code(int), headers(HTTPHeaderDict))
31104
+ If the method is called asynchronously,
31105
+ returns the request thread.
31106
+ """
31107
+
31108
+ local_var_params = locals()
31109
+
31110
+ all_params = [
31111
+ 'summarize_machine_pool_request'
31112
+ ]
31113
+ all_params.extend(
31114
+ [
31115
+ 'async_req',
31116
+ '_return_http_data_only',
31117
+ '_preload_content',
31118
+ '_request_timeout'
31119
+ ]
31120
+ )
31121
+
31122
+ for key, val in six.iteritems(local_var_params['kwargs']):
31123
+ if key not in all_params:
31124
+ raise ApiTypeError(
31125
+ "Got an unexpected keyword argument '%s'"
31126
+ " to method summarize_machine_pool_api_v2_machine_pools_summary_post" % key
31127
+ )
31128
+ local_var_params[key] = val
31129
+ del local_var_params['kwargs']
31130
+ # verify the required parameter 'summarize_machine_pool_request' is set
31131
+ if self.api_client.client_side_validation and ('summarize_machine_pool_request' not in local_var_params or # noqa: E501
31132
+ local_var_params['summarize_machine_pool_request'] is None): # noqa: E501
31133
+ raise ApiValueError("Missing the required parameter `summarize_machine_pool_request` when calling `summarize_machine_pool_api_v2_machine_pools_summary_post`") # noqa: E501
31134
+
31135
+ collection_formats = {}
31136
+
31137
+ path_params = {}
31138
+
31139
+ query_params = []
31140
+
31141
+ header_params = {}
31142
+
31143
+ form_params = []
31144
+ local_var_files = {}
31145
+
31146
+ body_params = None
31147
+ if 'summarize_machine_pool_request' in local_var_params:
31148
+ body_params = local_var_params['summarize_machine_pool_request']
31149
+ # HTTP header `Accept`
31150
+ header_params['Accept'] = self.api_client.select_header_accept(
31151
+ ['application/json']) # noqa: E501
31152
+
31153
+ # HTTP header `Content-Type`
31154
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
31155
+ ['application/json']) # noqa: E501
31156
+
31157
+ # Authentication setting
31158
+ auth_settings = [] # noqa: E501
31159
+
31160
+ return self.api_client.call_api(
31161
+ '/api/v2/machine_pools/summary', 'POST',
31162
+ path_params,
31163
+ query_params,
31164
+ header_params,
31165
+ body=body_params,
31166
+ post_params=form_params,
31167
+ files=local_var_files,
31168
+ response_type='SummarizemachinepoolresponseResponse', # noqa: E501
31169
+ auth_settings=auth_settings,
31170
+ async_req=local_var_params.get('async_req'),
31171
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
31172
+ _preload_content=local_var_params.get('_preload_content', True),
31173
+ _request_timeout=local_var_params.get('_request_timeout'),
31174
+ collection_formats=collection_formats)
31175
+
31058
31176
  def sync_organization_with_metronome_api_v2_organization_billing_organization_id_sync_with_metronome_post(self, organization_id, **kwargs): # noqa: E501
31059
31177
  """Sync Organization With Metronome # noqa: E501
31060
31178
 
@@ -423,8 +423,8 @@ from openapi_client.models.organizationinvitation_list_response import Organizat
423
423
  from openapi_client.models.organizationinvitation_response import OrganizationinvitationResponse
424
424
  from openapi_client.models.organizationinvitationbase_response import OrganizationinvitationbaseResponse
425
425
  from openapi_client.models.organizationusagealert_list_response import OrganizationusagealertListResponse
426
- from openapi_client.models.pcp_config import PCPConfig
427
426
  from openapi_client.models.page_query import PageQuery
427
+ from openapi_client.models.partition_info import PartitionInfo
428
428
  from openapi_client.models.pause_schedule import PauseSchedule
429
429
  from openapi_client.models.permission_level import PermissionLevel
430
430
  from openapi_client.models.production_job import ProductionJob
@@ -524,6 +524,9 @@ from openapi_client.models.start_session_options import StartSessionOptions
524
524
  from openapi_client.models.stop_session_options import StopSessionOptions
525
525
  from openapi_client.models.stream_publish_request import StreamPublishRequest
526
526
  from openapi_client.models.subnet_id_with_availability_zone_aws import SubnetIdWithAvailabilityZoneAWS
527
+ from openapi_client.models.summarize_machine_pool_request import SummarizeMachinePoolRequest
528
+ from openapi_client.models.summarize_machine_pool_response import SummarizeMachinePoolResponse
529
+ from openapi_client.models.summarizemachinepoolresponse_response import SummarizemachinepoolresponseResponse
527
530
  from openapi_client.models.support_requests_query import SupportRequestsQuery
528
531
  from openapi_client.models.system_workload_name import SystemWorkloadName
529
532
  from openapi_client.models.task_exception_group_aggregate import TaskExceptionGroupAggregate