lightning-sdk 0.1.53__py3-none-any.whl → 0.1.55__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 (38) hide show
  1. lightning_sdk/__init__.py +1 -1
  2. lightning_sdk/api/deployment_api.py +9 -1
  3. lightning_sdk/api/job_api.py +1 -1
  4. lightning_sdk/api/lit_container_api.py +29 -8
  5. lightning_sdk/cli/delete.py +27 -0
  6. lightning_sdk/cli/entrypoint.py +6 -0
  7. lightning_sdk/cli/generate.py +58 -0
  8. lightning_sdk/cli/list.py +48 -0
  9. lightning_sdk/cli/start.py +43 -0
  10. lightning_sdk/cli/stop.py +26 -0
  11. lightning_sdk/cli/switch.py +43 -0
  12. lightning_sdk/deployment/deployment.py +12 -3
  13. lightning_sdk/job/base.py +7 -2
  14. lightning_sdk/job/job.py +1 -12
  15. lightning_sdk/job/v1.py +1 -32
  16. lightning_sdk/job/v2.py +6 -1
  17. lightning_sdk/lightning_cloud/openapi/__init__.py +2 -0
  18. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +10 -2
  19. lightning_sdk/lightning_cloud/openapi/api/lit_registry_service_api.py +210 -0
  20. lightning_sdk/lightning_cloud/openapi/models/__init__.py +2 -0
  21. lightning_sdk/lightning_cloud/openapi/models/cluster_id_usagerestrictions_body.py +27 -1
  22. lightning_sdk/lightning_cloud/openapi/models/usagerestrictions_id_body.py +27 -1
  23. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +3 -0
  24. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +27 -1
  25. lightning_sdk/lightning_cloud/openapi/models/v1_job.py +27 -1
  26. lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +27 -1
  27. lightning_sdk/lightning_cloud/openapi/models/v1_lambda_labs_direct_v1.py +55 -3
  28. lightning_sdk/lightning_cloud/openapi/models/v1_list_lit_registry_repository_image_artifact_versions_response.py +231 -0
  29. lightning_sdk/lightning_cloud/openapi/models/v1_lit_registry_artifact.py +253 -0
  30. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +27 -53
  31. lightning_sdk/mmt/mmt.py +7 -6
  32. lightning_sdk/plugin.py +5 -3
  33. {lightning_sdk-0.1.53.dist-info → lightning_sdk-0.1.55.dist-info}/METADATA +1 -1
  34. {lightning_sdk-0.1.53.dist-info → lightning_sdk-0.1.55.dist-info}/RECORD +38 -33
  35. {lightning_sdk-0.1.53.dist-info → lightning_sdk-0.1.55.dist-info}/LICENSE +0 -0
  36. {lightning_sdk-0.1.53.dist-info → lightning_sdk-0.1.55.dist-info}/WHEEL +0 -0
  37. {lightning_sdk-0.1.53.dist-info → lightning_sdk-0.1.55.dist-info}/entry_points.txt +0 -0
  38. {lightning_sdk-0.1.53.dist-info → lightning_sdk-0.1.55.dist-info}/top_level.txt +0 -0
@@ -1096,6 +1096,7 @@ class ClusterServiceApi(object):
1096
1096
  :param async_req bool
1097
1097
  :param str cluster_id: (required)
1098
1098
  :param str id: (required)
1099
+ :param str org_id:
1099
1100
  :return: V1DeleteClusterUsageRestrictionResponse
1100
1101
  If the method is called asynchronously,
1101
1102
  returns the request thread.
@@ -1118,12 +1119,13 @@ class ClusterServiceApi(object):
1118
1119
  :param async_req bool
1119
1120
  :param str cluster_id: (required)
1120
1121
  :param str id: (required)
1122
+ :param str org_id:
1121
1123
  :return: V1DeleteClusterUsageRestrictionResponse
1122
1124
  If the method is called asynchronously,
1123
1125
  returns the request thread.
1124
1126
  """
1125
1127
 
1126
- all_params = ['cluster_id', 'id'] # noqa: E501
1128
+ all_params = ['cluster_id', 'id', 'org_id'] # noqa: E501
1127
1129
  all_params.append('async_req')
1128
1130
  all_params.append('_return_http_data_only')
1129
1131
  all_params.append('_preload_content')
@@ -1156,6 +1158,8 @@ class ClusterServiceApi(object):
1156
1158
  path_params['id'] = params['id'] # noqa: E501
1157
1159
 
1158
1160
  query_params = []
1161
+ if 'org_id' in params:
1162
+ query_params.append(('orgId', params['org_id'])) # noqa: E501
1159
1163
 
1160
1164
  header_params = {}
1161
1165
 
@@ -2311,6 +2315,7 @@ class ClusterServiceApi(object):
2311
2315
 
2312
2316
  :param async_req bool
2313
2317
  :param str cluster_id: (required)
2318
+ :param str org_id:
2314
2319
  :return: V1ListClusterUsageRestrictionsResponse
2315
2320
  If the method is called asynchronously,
2316
2321
  returns the request thread.
@@ -2332,12 +2337,13 @@ class ClusterServiceApi(object):
2332
2337
 
2333
2338
  :param async_req bool
2334
2339
  :param str cluster_id: (required)
2340
+ :param str org_id:
2335
2341
  :return: V1ListClusterUsageRestrictionsResponse
2336
2342
  If the method is called asynchronously,
2337
2343
  returns the request thread.
2338
2344
  """
2339
2345
 
2340
- all_params = ['cluster_id'] # noqa: E501
2346
+ all_params = ['cluster_id', 'org_id'] # noqa: E501
2341
2347
  all_params.append('async_req')
2342
2348
  all_params.append('_return_http_data_only')
2343
2349
  all_params.append('_preload_content')
@@ -2364,6 +2370,8 @@ class ClusterServiceApi(object):
2364
2370
  path_params['clusterId'] = params['cluster_id'] # noqa: E501
2365
2371
 
2366
2372
  query_params = []
2373
+ if 'org_id' in params:
2374
+ query_params.append(('orgId', params['org_id'])) # noqa: E501
2367
2375
 
2368
2376
  header_params = {}
2369
2377
 
@@ -342,6 +342,115 @@ class LitRegistryServiceApi(object):
342
342
  _request_timeout=params.get('_request_timeout'),
343
343
  collection_formats=collection_formats)
344
344
 
345
+ def lit_registry_service_get_lit_registry_repository_image_artifact_version_by_digest(self, project_id: 'str', lit_repo_name: 'str', full_hash_digest: 'str', **kwargs) -> 'V1LitRegistryArtifact': # noqa: E501
346
+ """lit_registry_service_get_lit_registry_repository_image_artifact_version_by_digest # noqa: E501
347
+
348
+ This method makes a synchronous HTTP request by default. To make an
349
+ asynchronous HTTP request, please pass async_req=True
350
+ >>> thread = api.lit_registry_service_get_lit_registry_repository_image_artifact_version_by_digest(project_id, lit_repo_name, full_hash_digest, async_req=True)
351
+ >>> result = thread.get()
352
+
353
+ :param async_req bool
354
+ :param str project_id: (required)
355
+ :param str lit_repo_name: (required)
356
+ :param str full_hash_digest: (required)
357
+ :return: V1LitRegistryArtifact
358
+ If the method is called asynchronously,
359
+ returns the request thread.
360
+ """
361
+ kwargs['_return_http_data_only'] = True
362
+ if kwargs.get('async_req'):
363
+ return self.lit_registry_service_get_lit_registry_repository_image_artifact_version_by_digest_with_http_info(project_id, lit_repo_name, full_hash_digest, **kwargs) # noqa: E501
364
+ else:
365
+ (data) = self.lit_registry_service_get_lit_registry_repository_image_artifact_version_by_digest_with_http_info(project_id, lit_repo_name, full_hash_digest, **kwargs) # noqa: E501
366
+ return data
367
+
368
+ def lit_registry_service_get_lit_registry_repository_image_artifact_version_by_digest_with_http_info(self, project_id: 'str', lit_repo_name: 'str', full_hash_digest: 'str', **kwargs) -> 'V1LitRegistryArtifact': # noqa: E501
369
+ """lit_registry_service_get_lit_registry_repository_image_artifact_version_by_digest # noqa: E501
370
+
371
+ This method makes a synchronous HTTP request by default. To make an
372
+ asynchronous HTTP request, please pass async_req=True
373
+ >>> thread = api.lit_registry_service_get_lit_registry_repository_image_artifact_version_by_digest_with_http_info(project_id, lit_repo_name, full_hash_digest, async_req=True)
374
+ >>> result = thread.get()
375
+
376
+ :param async_req bool
377
+ :param str project_id: (required)
378
+ :param str lit_repo_name: (required)
379
+ :param str full_hash_digest: (required)
380
+ :return: V1LitRegistryArtifact
381
+ If the method is called asynchronously,
382
+ returns the request thread.
383
+ """
384
+
385
+ all_params = ['project_id', 'lit_repo_name', 'full_hash_digest'] # noqa: E501
386
+ all_params.append('async_req')
387
+ all_params.append('_return_http_data_only')
388
+ all_params.append('_preload_content')
389
+ all_params.append('_request_timeout')
390
+
391
+ params = locals()
392
+ for key, val in six.iteritems(params['kwargs']):
393
+ if key not in all_params:
394
+ raise TypeError(
395
+ "Got an unexpected keyword argument '%s'"
396
+ " to method lit_registry_service_get_lit_registry_repository_image_artifact_version_by_digest" % key
397
+ )
398
+ params[key] = val
399
+ del params['kwargs']
400
+ # verify the required parameter 'project_id' is set
401
+ if ('project_id' not in params or
402
+ params['project_id'] is None):
403
+ raise ValueError("Missing the required parameter `project_id` when calling `lit_registry_service_get_lit_registry_repository_image_artifact_version_by_digest`") # noqa: E501
404
+ # verify the required parameter 'lit_repo_name' is set
405
+ if ('lit_repo_name' not in params or
406
+ params['lit_repo_name'] is None):
407
+ raise ValueError("Missing the required parameter `lit_repo_name` when calling `lit_registry_service_get_lit_registry_repository_image_artifact_version_by_digest`") # noqa: E501
408
+ # verify the required parameter 'full_hash_digest' is set
409
+ if ('full_hash_digest' not in params or
410
+ params['full_hash_digest'] is None):
411
+ raise ValueError("Missing the required parameter `full_hash_digest` when calling `lit_registry_service_get_lit_registry_repository_image_artifact_version_by_digest`") # noqa: E501
412
+
413
+ collection_formats = {}
414
+
415
+ path_params = {}
416
+ if 'project_id' in params:
417
+ path_params['projectId'] = params['project_id'] # noqa: E501
418
+ if 'lit_repo_name' in params:
419
+ path_params['litRepoName'] = params['lit_repo_name'] # noqa: E501
420
+ if 'full_hash_digest' in params:
421
+ path_params['fullHashDigest'] = params['full_hash_digest'] # noqa: E501
422
+
423
+ query_params = []
424
+
425
+ header_params = {}
426
+
427
+ form_params = []
428
+ local_var_files = {}
429
+
430
+ body_params = None
431
+ # HTTP header `Accept`
432
+ header_params['Accept'] = self.api_client.select_header_accept(
433
+ ['application/json']) # noqa: E501
434
+
435
+ # Authentication setting
436
+ auth_settings = [] # noqa: E501
437
+
438
+ return self.api_client.call_api(
439
+ '/v1/projects/{projectId}/lit-registry/{litRepoName}/artifacts/{fullHashDigest}', 'GET',
440
+ path_params,
441
+ query_params,
442
+ header_params,
443
+ body=body_params,
444
+ post_params=form_params,
445
+ files=local_var_files,
446
+ response_type='V1LitRegistryArtifact', # noqa: E501
447
+ auth_settings=auth_settings,
448
+ async_req=params.get('async_req'),
449
+ _return_http_data_only=params.get('_return_http_data_only'),
450
+ _preload_content=params.get('_preload_content', True),
451
+ _request_timeout=params.get('_request_timeout'),
452
+ collection_formats=collection_formats)
453
+
345
454
  def lit_registry_service_get_lit_repository(self, project_id: 'str', lit_repo_name: 'str', **kwargs) -> 'V1LitRepository': # noqa: E501
346
455
  """lit_registry_service_get_lit_repository # noqa: E501
347
456
 
@@ -443,6 +552,107 @@ class LitRegistryServiceApi(object):
443
552
  _request_timeout=params.get('_request_timeout'),
444
553
  collection_formats=collection_formats)
445
554
 
555
+ def lit_registry_service_list_lit_registry_repository_image_artifact_versions(self, project_id: 'str', lit_repo_name: 'str', **kwargs) -> 'V1ListLitRegistryRepositoryImageArtifactVersionsResponse': # noqa: E501
556
+ """lit_registry_service_list_lit_registry_repository_image_artifact_versions # noqa: E501
557
+
558
+ This method makes a synchronous HTTP request by default. To make an
559
+ asynchronous HTTP request, please pass async_req=True
560
+ >>> thread = api.lit_registry_service_list_lit_registry_repository_image_artifact_versions(project_id, lit_repo_name, async_req=True)
561
+ >>> result = thread.get()
562
+
563
+ :param async_req bool
564
+ :param str project_id: (required)
565
+ :param str lit_repo_name: (required)
566
+ :return: V1ListLitRegistryRepositoryImageArtifactVersionsResponse
567
+ If the method is called asynchronously,
568
+ returns the request thread.
569
+ """
570
+ kwargs['_return_http_data_only'] = True
571
+ if kwargs.get('async_req'):
572
+ return self.lit_registry_service_list_lit_registry_repository_image_artifact_versions_with_http_info(project_id, lit_repo_name, **kwargs) # noqa: E501
573
+ else:
574
+ (data) = self.lit_registry_service_list_lit_registry_repository_image_artifact_versions_with_http_info(project_id, lit_repo_name, **kwargs) # noqa: E501
575
+ return data
576
+
577
+ def lit_registry_service_list_lit_registry_repository_image_artifact_versions_with_http_info(self, project_id: 'str', lit_repo_name: 'str', **kwargs) -> 'V1ListLitRegistryRepositoryImageArtifactVersionsResponse': # noqa: E501
578
+ """lit_registry_service_list_lit_registry_repository_image_artifact_versions # noqa: E501
579
+
580
+ This method makes a synchronous HTTP request by default. To make an
581
+ asynchronous HTTP request, please pass async_req=True
582
+ >>> thread = api.lit_registry_service_list_lit_registry_repository_image_artifact_versions_with_http_info(project_id, lit_repo_name, async_req=True)
583
+ >>> result = thread.get()
584
+
585
+ :param async_req bool
586
+ :param str project_id: (required)
587
+ :param str lit_repo_name: (required)
588
+ :return: V1ListLitRegistryRepositoryImageArtifactVersionsResponse
589
+ If the method is called asynchronously,
590
+ returns the request thread.
591
+ """
592
+
593
+ all_params = ['project_id', 'lit_repo_name'] # noqa: E501
594
+ all_params.append('async_req')
595
+ all_params.append('_return_http_data_only')
596
+ all_params.append('_preload_content')
597
+ all_params.append('_request_timeout')
598
+
599
+ params = locals()
600
+ for key, val in six.iteritems(params['kwargs']):
601
+ if key not in all_params:
602
+ raise TypeError(
603
+ "Got an unexpected keyword argument '%s'"
604
+ " to method lit_registry_service_list_lit_registry_repository_image_artifact_versions" % key
605
+ )
606
+ params[key] = val
607
+ del params['kwargs']
608
+ # verify the required parameter 'project_id' is set
609
+ if ('project_id' not in params or
610
+ params['project_id'] is None):
611
+ raise ValueError("Missing the required parameter `project_id` when calling `lit_registry_service_list_lit_registry_repository_image_artifact_versions`") # noqa: E501
612
+ # verify the required parameter 'lit_repo_name' is set
613
+ if ('lit_repo_name' not in params or
614
+ params['lit_repo_name'] is None):
615
+ raise ValueError("Missing the required parameter `lit_repo_name` when calling `lit_registry_service_list_lit_registry_repository_image_artifact_versions`") # noqa: E501
616
+
617
+ collection_formats = {}
618
+
619
+ path_params = {}
620
+ if 'project_id' in params:
621
+ path_params['projectId'] = params['project_id'] # noqa: E501
622
+ if 'lit_repo_name' in params:
623
+ path_params['litRepoName'] = params['lit_repo_name'] # noqa: E501
624
+
625
+ query_params = []
626
+
627
+ header_params = {}
628
+
629
+ form_params = []
630
+ local_var_files = {}
631
+
632
+ body_params = None
633
+ # HTTP header `Accept`
634
+ header_params['Accept'] = self.api_client.select_header_accept(
635
+ ['application/json']) # noqa: E501
636
+
637
+ # Authentication setting
638
+ auth_settings = [] # noqa: E501
639
+
640
+ return self.api_client.call_api(
641
+ '/v1/projects/{projectId}/lit-registry/{litRepoName}/artifacts', 'GET',
642
+ path_params,
643
+ query_params,
644
+ header_params,
645
+ body=body_params,
646
+ post_params=form_params,
647
+ files=local_var_files,
648
+ response_type='V1ListLitRegistryRepositoryImageArtifactVersionsResponse', # noqa: E501
649
+ auth_settings=auth_settings,
650
+ async_req=params.get('async_req'),
651
+ _return_http_data_only=params.get('_return_http_data_only'),
652
+ _preload_content=params.get('_preload_content', True),
653
+ _request_timeout=params.get('_request_timeout'),
654
+ collection_formats=collection_formats)
655
+
446
656
  def lit_registry_service_update_lit_repository_metadata(self, body: 'LitregistryLitRepoNameBody', project_id: 'str', lit_repo_name: 'str', **kwargs) -> 'V1UpdateLitRepositoryResponse': # noqa: E501
447
657
  """lit_registry_service_update_lit_repository_metadata # noqa: E501
448
658
 
@@ -534,6 +534,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_list_lightningapp_instances
534
534
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_lightningwork_events_response import V1ListLightningworkEventsResponse
535
535
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_lightningwork_response import V1ListLightningworkResponse
536
536
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_lit_pages_response import V1ListLitPagesResponse
537
+ from lightning_sdk.lightning_cloud.openapi.models.v1_list_lit_registry_repository_image_artifact_versions_response import V1ListLitRegistryRepositoryImageArtifactVersionsResponse
537
538
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_logger_artifact_response import V1ListLoggerArtifactResponse
538
539
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_managed_endpoints_response import V1ListManagedEndpointsResponse
539
540
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_memberships_response import V1ListMembershipsResponse
@@ -569,6 +570,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_list_studio_jobs_response i
569
570
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_user_slurm_jobs_response import V1ListUserSLURMJobsResponse
570
571
  from lightning_sdk.lightning_cloud.openapi.models.v1_lit_page import V1LitPage
571
572
  from lightning_sdk.lightning_cloud.openapi.models.v1_lit_page_type import V1LitPageType
573
+ from lightning_sdk.lightning_cloud.openapi.models.v1_lit_registry_artifact import V1LitRegistryArtifact
572
574
  from lightning_sdk.lightning_cloud.openapi.models.v1_lit_registry_project import V1LitRegistryProject
573
575
  from lightning_sdk.lightning_cloud.openapi.models.v1_lit_repository import V1LitRepository
574
576
  from lightning_sdk.lightning_cloud.openapi.models.v1_locked_resource import V1LockedResource
@@ -43,25 +43,30 @@ class ClusterIdUsagerestrictionsBody(object):
43
43
  swagger_types = {
44
44
  'instance_type': 'str',
45
45
  'max_instances': 'int',
46
+ 'org_id': 'str',
46
47
  'restriction_type': 'str'
47
48
  }
48
49
 
49
50
  attribute_map = {
50
51
  'instance_type': 'instanceType',
51
52
  'max_instances': 'maxInstances',
53
+ 'org_id': 'orgId',
52
54
  'restriction_type': 'restrictionType'
53
55
  }
54
56
 
55
- def __init__(self, instance_type: 'str' =None, max_instances: 'int' =None, restriction_type: 'str' =None): # noqa: E501
57
+ def __init__(self, instance_type: 'str' =None, max_instances: 'int' =None, org_id: 'str' =None, restriction_type: 'str' =None): # noqa: E501
56
58
  """ClusterIdUsagerestrictionsBody - a model defined in Swagger""" # noqa: E501
57
59
  self._instance_type = None
58
60
  self._max_instances = None
61
+ self._org_id = None
59
62
  self._restriction_type = None
60
63
  self.discriminator = None
61
64
  if instance_type is not None:
62
65
  self.instance_type = instance_type
63
66
  if max_instances is not None:
64
67
  self.max_instances = max_instances
68
+ if org_id is not None:
69
+ self.org_id = org_id
65
70
  if restriction_type is not None:
66
71
  self.restriction_type = restriction_type
67
72
 
@@ -107,6 +112,27 @@ class ClusterIdUsagerestrictionsBody(object):
107
112
 
108
113
  self._max_instances = max_instances
109
114
 
115
+ @property
116
+ def org_id(self) -> 'str':
117
+ """Gets the org_id of this ClusterIdUsagerestrictionsBody. # noqa: E501
118
+
119
+
120
+ :return: The org_id of this ClusterIdUsagerestrictionsBody. # noqa: E501
121
+ :rtype: str
122
+ """
123
+ return self._org_id
124
+
125
+ @org_id.setter
126
+ def org_id(self, org_id: 'str'):
127
+ """Sets the org_id of this ClusterIdUsagerestrictionsBody.
128
+
129
+
130
+ :param org_id: The org_id of this ClusterIdUsagerestrictionsBody. # noqa: E501
131
+ :type: str
132
+ """
133
+
134
+ self._org_id = org_id
135
+
110
136
  @property
111
137
  def restriction_type(self) -> 'str':
112
138
  """Gets the restriction_type of this ClusterIdUsagerestrictionsBody. # noqa: E501
@@ -43,25 +43,30 @@ class UsagerestrictionsIdBody(object):
43
43
  swagger_types = {
44
44
  'instance_type': 'str',
45
45
  'max_instances': 'int',
46
+ 'org_id': 'str',
46
47
  'restriction_type': 'str'
47
48
  }
48
49
 
49
50
  attribute_map = {
50
51
  'instance_type': 'instanceType',
51
52
  'max_instances': 'maxInstances',
53
+ 'org_id': 'orgId',
52
54
  'restriction_type': 'restrictionType'
53
55
  }
54
56
 
55
- def __init__(self, instance_type: 'str' =None, max_instances: 'int' =None, restriction_type: 'str' =None): # noqa: E501
57
+ def __init__(self, instance_type: 'str' =None, max_instances: 'int' =None, org_id: 'str' =None, restriction_type: 'str' =None): # noqa: E501
56
58
  """UsagerestrictionsIdBody - a model defined in Swagger""" # noqa: E501
57
59
  self._instance_type = None
58
60
  self._max_instances = None
61
+ self._org_id = None
59
62
  self._restriction_type = None
60
63
  self.discriminator = None
61
64
  if instance_type is not None:
62
65
  self.instance_type = instance_type
63
66
  if max_instances is not None:
64
67
  self.max_instances = max_instances
68
+ if org_id is not None:
69
+ self.org_id = org_id
65
70
  if restriction_type is not None:
66
71
  self.restriction_type = restriction_type
67
72
 
@@ -107,6 +112,27 @@ class UsagerestrictionsIdBody(object):
107
112
 
108
113
  self._max_instances = max_instances
109
114
 
115
+ @property
116
+ def org_id(self) -> 'str':
117
+ """Gets the org_id of this UsagerestrictionsIdBody. # noqa: E501
118
+
119
+
120
+ :return: The org_id of this UsagerestrictionsIdBody. # noqa: E501
121
+ :rtype: str
122
+ """
123
+ return self._org_id
124
+
125
+ @org_id.setter
126
+ def org_id(self, org_id: 'str'):
127
+ """Sets the org_id of this UsagerestrictionsIdBody.
128
+
129
+
130
+ :param org_id: The org_id of this UsagerestrictionsIdBody. # noqa: E501
131
+ :type: str
132
+ """
133
+
134
+ self._org_id = org_id
135
+
110
136
  @property
111
137
  def restriction_type(self) -> 'str':
112
138
  """Gets the restriction_type of this UsagerestrictionsIdBody. # noqa: E501
@@ -37,9 +37,12 @@ class V1CloudProvider(object):
37
37
  """
38
38
  allowed enum values
39
39
  """
40
+ CLOUD_PROVIDER_UNSPECIFIED = "CLOUD_PROVIDER_UNSPECIFIED"
40
41
  AWS = "AWS"
41
42
  GCP = "GCP"
42
43
  VULTR = "VULTR"
44
+ LAMBDA_LABS = "LAMBDA_LABS"
45
+ SLURM = "SLURM"
43
46
  """
44
47
  Attributes:
45
48
  swagger_types (dict): The key is attribute name
@@ -66,6 +66,7 @@ class V1ClusterAccelerator(object):
66
66
  'local_disk_supported': 'bool',
67
67
  'max_available_quota': 'str',
68
68
  'non_spot': 'bool',
69
+ 'provider': 'V1CloudProvider',
69
70
  'quota_checked_at': 'datetime',
70
71
  'quota_code': 'str',
71
72
  'quota_name': 'str',
@@ -109,6 +110,7 @@ class V1ClusterAccelerator(object):
109
110
  'local_disk_supported': 'localDiskSupported',
110
111
  'max_available_quota': 'maxAvailableQuota',
111
112
  'non_spot': 'nonSpot',
113
+ 'provider': 'provider',
112
114
  'quota_checked_at': 'quotaCheckedAt',
113
115
  'quota_code': 'quotaCode',
114
116
  'quota_name': 'quotaName',
@@ -126,7 +128,7 @@ class V1ClusterAccelerator(object):
126
128
  'spot_quota_page_url': 'spotQuotaPageUrl'
127
129
  }
128
130
 
129
- def __init__(self, accelerator_type: 'str' =None, allowed_resources: 'list[str]' =None, available_in_seconds: 'str' =None, available_in_seconds_spot: 'str' =None, available_zones: 'list[str]' =None, byoc_only: 'bool' =None, capacity_block_only: 'bool' =None, capacity_block_price: 'float' =None, capacity_blocks_available: 'list[V1ClusterCapacityReservation]' =None, cluster_id: 'str' =None, cost: 'float' =None, detailed_quotas_info: 'list[V1AcceleratorQuotaInfo]' =None, device_card: 'str' =None, device_info: 'str' =None, display_name: 'str' =None, dws_only: 'bool' =None, enabled: 'bool' =None, family: 'str' =None, instance_id: 'str' =None, is_custom: 'bool' =None, is_tier_restricted: 'bool' =None, local_disk_size: 'str' =None, local_disk_supported: 'bool' =None, max_available_quota: 'str' =None, non_spot: 'bool' =None, quota_checked_at: 'datetime' =None, quota_code: 'str' =None, quota_name: 'str' =None, quota_page_url: 'str' =None, quota_service_code: 'str' =None, quota_utilization: 'str' =None, quota_value: 'str' =None, reservable: 'bool' =None, reservation_available_zones: 'list[str]' =None, resources: 'V1Resources' =None, slug: 'str' =None, spot_price: 'float' =None, spot_quota_code: 'str' =None, spot_quota_name: 'str' =None, spot_quota_page_url: 'str' =None): # noqa: E501
131
+ def __init__(self, accelerator_type: 'str' =None, allowed_resources: 'list[str]' =None, available_in_seconds: 'str' =None, available_in_seconds_spot: 'str' =None, available_zones: 'list[str]' =None, byoc_only: 'bool' =None, capacity_block_only: 'bool' =None, capacity_block_price: 'float' =None, capacity_blocks_available: 'list[V1ClusterCapacityReservation]' =None, cluster_id: 'str' =None, cost: 'float' =None, detailed_quotas_info: 'list[V1AcceleratorQuotaInfo]' =None, device_card: 'str' =None, device_info: 'str' =None, display_name: 'str' =None, dws_only: 'bool' =None, enabled: 'bool' =None, family: 'str' =None, instance_id: 'str' =None, is_custom: 'bool' =None, is_tier_restricted: 'bool' =None, local_disk_size: 'str' =None, local_disk_supported: 'bool' =None, max_available_quota: 'str' =None, non_spot: 'bool' =None, provider: 'V1CloudProvider' =None, quota_checked_at: 'datetime' =None, quota_code: 'str' =None, quota_name: 'str' =None, quota_page_url: 'str' =None, quota_service_code: 'str' =None, quota_utilization: 'str' =None, quota_value: 'str' =None, reservable: 'bool' =None, reservation_available_zones: 'list[str]' =None, resources: 'V1Resources' =None, slug: 'str' =None, spot_price: 'float' =None, spot_quota_code: 'str' =None, spot_quota_name: 'str' =None, spot_quota_page_url: 'str' =None): # noqa: E501
130
132
  """V1ClusterAccelerator - a model defined in Swagger""" # noqa: E501
131
133
  self._accelerator_type = None
132
134
  self._allowed_resources = None
@@ -153,6 +155,7 @@ class V1ClusterAccelerator(object):
153
155
  self._local_disk_supported = None
154
156
  self._max_available_quota = None
155
157
  self._non_spot = None
158
+ self._provider = None
156
159
  self._quota_checked_at = None
157
160
  self._quota_code = None
158
161
  self._quota_name = None
@@ -219,6 +222,8 @@ class V1ClusterAccelerator(object):
219
222
  self.max_available_quota = max_available_quota
220
223
  if non_spot is not None:
221
224
  self.non_spot = non_spot
225
+ if provider is not None:
226
+ self.provider = provider
222
227
  if quota_checked_at is not None:
223
228
  self.quota_checked_at = quota_checked_at
224
229
  if quota_code is not None:
@@ -775,6 +780,27 @@ class V1ClusterAccelerator(object):
775
780
 
776
781
  self._non_spot = non_spot
777
782
 
783
+ @property
784
+ def provider(self) -> 'V1CloudProvider':
785
+ """Gets the provider of this V1ClusterAccelerator. # noqa: E501
786
+
787
+
788
+ :return: The provider of this V1ClusterAccelerator. # noqa: E501
789
+ :rtype: V1CloudProvider
790
+ """
791
+ return self._provider
792
+
793
+ @provider.setter
794
+ def provider(self, provider: 'V1CloudProvider'):
795
+ """Sets the provider of this V1ClusterAccelerator.
796
+
797
+
798
+ :param provider: The provider of this V1ClusterAccelerator. # noqa: E501
799
+ :type: V1CloudProvider
800
+ """
801
+
802
+ self._provider = provider
803
+
778
804
  @property
779
805
  def quota_checked_at(self) -> 'datetime':
780
806
  """Gets the quota_checked_at of this V1ClusterAccelerator. # noqa: E501
@@ -53,6 +53,7 @@ class V1Job(object):
53
53
  'project_id': 'str',
54
54
  'ready_at': 'datetime',
55
55
  'release_id': 'str',
56
+ 'restart_count': 'int',
56
57
  'server_error': 'str',
57
58
  'spec': 'V1JobSpec',
58
59
  'started_at': 'datetime',
@@ -80,6 +81,7 @@ class V1Job(object):
80
81
  'project_id': 'projectId',
81
82
  'ready_at': 'readyAt',
82
83
  'release_id': 'releaseId',
84
+ 'restart_count': 'restartCount',
83
85
  'server_error': 'serverError',
84
86
  'spec': 'spec',
85
87
  'started_at': 'startedAt',
@@ -94,7 +96,7 @@ class V1Job(object):
94
96
  'user_logs_started_at': 'userLogsStartedAt'
95
97
  }
96
98
 
97
- def __init__(self, created_at: 'datetime' =None, deployment_id: 'str' =None, endpoint: 'V1Endpoint' =None, id: 'str' =None, is_healthy: 'bool' =None, message: 'str' =None, multi_machine_job_id: 'str' =None, name: 'str' =None, overprovisioned: 'bool' =None, project_id: 'str' =None, ready_at: 'datetime' =None, release_id: 'str' =None, server_error: 'str' =None, spec: 'V1JobSpec' =None, started_at: 'datetime' =None, state: 'str' =None, stopped_at: 'datetime' =None, timings: 'dict(str, V1JobTiming)' =None, total_cost: 'float' =None, total_size_bytes: 'str' =None, updated_at: 'datetime' =None, urls: 'list[str]' =None, user_id: 'str' =None, user_logs_started_at: 'datetime' =None): # noqa: E501
99
+ def __init__(self, created_at: 'datetime' =None, deployment_id: 'str' =None, endpoint: 'V1Endpoint' =None, id: 'str' =None, is_healthy: 'bool' =None, message: 'str' =None, multi_machine_job_id: 'str' =None, name: 'str' =None, overprovisioned: 'bool' =None, project_id: 'str' =None, ready_at: 'datetime' =None, release_id: 'str' =None, restart_count: 'int' =None, server_error: 'str' =None, spec: 'V1JobSpec' =None, started_at: 'datetime' =None, state: 'str' =None, stopped_at: 'datetime' =None, timings: 'dict(str, V1JobTiming)' =None, total_cost: 'float' =None, total_size_bytes: 'str' =None, updated_at: 'datetime' =None, urls: 'list[str]' =None, user_id: 'str' =None, user_logs_started_at: 'datetime' =None): # noqa: E501
98
100
  """V1Job - a model defined in Swagger""" # noqa: E501
99
101
  self._created_at = None
100
102
  self._deployment_id = None
@@ -108,6 +110,7 @@ class V1Job(object):
108
110
  self._project_id = None
109
111
  self._ready_at = None
110
112
  self._release_id = None
113
+ self._restart_count = None
111
114
  self._server_error = None
112
115
  self._spec = None
113
116
  self._started_at = None
@@ -145,6 +148,8 @@ class V1Job(object):
145
148
  self.ready_at = ready_at
146
149
  if release_id is not None:
147
150
  self.release_id = release_id
151
+ if restart_count is not None:
152
+ self.restart_count = restart_count
148
153
  if server_error is not None:
149
154
  self.server_error = server_error
150
155
  if spec is not None:
@@ -424,6 +429,27 @@ class V1Job(object):
424
429
 
425
430
  self._release_id = release_id
426
431
 
432
+ @property
433
+ def restart_count(self) -> 'int':
434
+ """Gets the restart_count of this V1Job. # noqa: E501
435
+
436
+
437
+ :return: The restart_count of this V1Job. # noqa: E501
438
+ :rtype: int
439
+ """
440
+ return self._restart_count
441
+
442
+ @restart_count.setter
443
+ def restart_count(self, restart_count: 'int'):
444
+ """Sets the restart_count of this V1Job.
445
+
446
+
447
+ :param restart_count: The restart_count of this V1Job. # noqa: E501
448
+ :type: int
449
+ """
450
+
451
+ self._restart_count = restart_count
452
+
427
453
  @property
428
454
  def server_error(self) -> 'str':
429
455
  """Gets the server_error of this V1Job. # noqa: E501
@@ -59,6 +59,7 @@ class V1JobSpec(object):
59
59
  'path_mappings': 'list[V1PathMapping]',
60
60
  'readiness_probe': 'V1JobHealthCheckConfig',
61
61
  'regions': 'list[str]',
62
+ 'requested_run_duration_seconds': 'str',
62
63
  'resources': 'V1Resources',
63
64
  'restart_policy': 'str',
64
65
  'run_id': 'str',
@@ -85,6 +86,7 @@ class V1JobSpec(object):
85
86
  'path_mappings': 'pathMappings',
86
87
  'readiness_probe': 'readinessProbe',
87
88
  'regions': 'regions',
89
+ 'requested_run_duration_seconds': 'requestedRunDurationSeconds',
88
90
  'resources': 'resources',
89
91
  'restart_policy': 'restartPolicy',
90
92
  'run_id': 'runId',
@@ -92,7 +94,7 @@ class V1JobSpec(object):
92
94
  'volumes': 'volumes'
93
95
  }
94
96
 
95
- def __init__(self, artifacts_destination: 'str' =None, artifacts_source: 'str' =None, cloudspace_id: 'str' =None, cluster_id: 'str' =None, command: 'str' =None, data_paths: 'list[V1DataPath]' =None, entrypoint: 'str' =None, env: 'list[V1EnvVar]' =None, image: 'str' =None, image_cluster_credentials: 'bool' =None, image_secret_ref: 'str' =None, include_credentials: 'bool' =None, instance_name: 'str' =None, instance_type: 'str' =None, modified_volume: 'bool' =None, path_mappings: 'list[V1PathMapping]' =None, readiness_probe: 'V1JobHealthCheckConfig' =None, regions: 'list[str]' =None, resources: 'V1Resources' =None, restart_policy: 'str' =None, run_id: 'str' =None, spot: 'bool' =None, volumes: 'list[V1Volume]' =None): # noqa: E501
97
+ def __init__(self, artifacts_destination: 'str' =None, artifacts_source: 'str' =None, cloudspace_id: 'str' =None, cluster_id: 'str' =None, command: 'str' =None, data_paths: 'list[V1DataPath]' =None, entrypoint: 'str' =None, env: 'list[V1EnvVar]' =None, image: 'str' =None, image_cluster_credentials: 'bool' =None, image_secret_ref: 'str' =None, include_credentials: 'bool' =None, instance_name: 'str' =None, instance_type: 'str' =None, modified_volume: 'bool' =None, path_mappings: 'list[V1PathMapping]' =None, readiness_probe: 'V1JobHealthCheckConfig' =None, regions: 'list[str]' =None, requested_run_duration_seconds: 'str' =None, resources: 'V1Resources' =None, restart_policy: 'str' =None, run_id: 'str' =None, spot: 'bool' =None, volumes: 'list[V1Volume]' =None): # noqa: E501
96
98
  """V1JobSpec - a model defined in Swagger""" # noqa: E501
97
99
  self._artifacts_destination = None
98
100
  self._artifacts_source = None
@@ -112,6 +114,7 @@ class V1JobSpec(object):
112
114
  self._path_mappings = None
113
115
  self._readiness_probe = None
114
116
  self._regions = None
117
+ self._requested_run_duration_seconds = None
115
118
  self._resources = None
116
119
  self._restart_policy = None
117
120
  self._run_id = None
@@ -154,6 +157,8 @@ class V1JobSpec(object):
154
157
  self.readiness_probe = readiness_probe
155
158
  if regions is not None:
156
159
  self.regions = regions
160
+ if requested_run_duration_seconds is not None:
161
+ self.requested_run_duration_seconds = requested_run_duration_seconds
157
162
  if resources is not None:
158
163
  self.resources = resources
159
164
  if restart_policy is not None:
@@ -543,6 +548,27 @@ class V1JobSpec(object):
543
548
 
544
549
  self._regions = regions
545
550
 
551
+ @property
552
+ def requested_run_duration_seconds(self) -> 'str':
553
+ """Gets the requested_run_duration_seconds of this V1JobSpec. # noqa: E501
554
+
555
+
556
+ :return: The requested_run_duration_seconds of this V1JobSpec. # noqa: E501
557
+ :rtype: str
558
+ """
559
+ return self._requested_run_duration_seconds
560
+
561
+ @requested_run_duration_seconds.setter
562
+ def requested_run_duration_seconds(self, requested_run_duration_seconds: 'str'):
563
+ """Sets the requested_run_duration_seconds of this V1JobSpec.
564
+
565
+
566
+ :param requested_run_duration_seconds: The requested_run_duration_seconds of this V1JobSpec. # noqa: E501
567
+ :type: str
568
+ """
569
+
570
+ self._requested_run_duration_seconds = requested_run_duration_seconds
571
+
546
572
  @property
547
573
  def resources(self) -> 'V1Resources':
548
574
  """Gets the resources of this V1JobSpec. # noqa: E501