lightning-sdk 0.2.8__py3-none-any.whl → 0.2.10__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 (60) hide show
  1. lightning_sdk/__init__.py +1 -1
  2. lightning_sdk/api/cluster_api.py +22 -0
  3. lightning_sdk/api/deployment_api.py +1 -0
  4. lightning_sdk/api/lit_container_api.py +24 -5
  5. lightning_sdk/api/teamspace_api.py +22 -17
  6. lightning_sdk/api/utils.py +1 -1
  7. lightning_sdk/cli/clusters_menu.py +46 -0
  8. lightning_sdk/cli/entrypoint.py +2 -2
  9. lightning_sdk/cli/list.py +25 -5
  10. lightning_sdk/cli/serve.py +232 -24
  11. lightning_sdk/cli/upload.py +4 -1
  12. lightning_sdk/deployment/deployment.py +5 -2
  13. lightning_sdk/lightning_cloud/openapi/__init__.py +10 -0
  14. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +303 -0
  15. lightning_sdk/lightning_cloud/openapi/models/__init__.py +10 -0
  16. lightning_sdk/lightning_cloud/openapi/models/cloudspace_id_systemmetrics_body.py +149 -0
  17. lightning_sdk/lightning_cloud/openapi/models/cluster_id_capacityreservations_body.py +55 -3
  18. lightning_sdk/lightning_cloud/openapi/models/create.py +53 -1
  19. lightning_sdk/lightning_cloud/openapi/models/orgs_id_body.py +55 -3
  20. lightning_sdk/lightning_cloud/openapi/models/update.py +27 -1
  21. lightning_sdk/lightning_cloud/openapi/models/v1_billing_tier.py +1 -0
  22. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space.py +53 -1
  23. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_cold_start_metrics.py +53 -1
  24. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_cold_start_metrics_stats.py +357 -0
  25. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_template_config.py +29 -3
  26. lightning_sdk/lightning_cloud/openapi/models/v1_cloudflare_v1.py +227 -0
  27. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +27 -1
  28. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +55 -3
  29. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_security_options.py +79 -1
  30. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +27 -1
  31. lightning_sdk/lightning_cloud/openapi/models/v1_create_cloud_space_environment_template_request.py +29 -3
  32. lightning_sdk/lightning_cloud/openapi/models/v1_create_cluster_capacity_reservation_response.py +27 -1
  33. lightning_sdk/lightning_cloud/openapi/models/v1_data_connection.py +53 -1
  34. lightning_sdk/lightning_cloud/openapi/models/v1_gcp_direct_vpc.py +149 -0
  35. lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_cold_start_metrics_stats_response.py +123 -0
  36. lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_instance_system_metrics_aggregate_response.py +123 -0
  37. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +53 -1
  38. lightning_sdk/lightning_cloud/openapi/models/v1_google_cloud_direct_v1.py +43 -17
  39. lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +55 -3
  40. lightning_sdk/lightning_cloud/openapi/models/v1_project_cluster_binding.py +27 -1
  41. lightning_sdk/lightning_cloud/openapi/models/v1_r2_data_connection.py +253 -0
  42. lightning_sdk/lightning_cloud/openapi/models/v1_report_cloud_space_instance_system_metrics_response.py +97 -0
  43. lightning_sdk/lightning_cloud/openapi/models/v1_server_alert_phase.py +1 -0
  44. lightning_sdk/lightning_cloud/openapi/models/v1_system_metrics_aggregated.py +227 -0
  45. lightning_sdk/lightning_cloud/openapi/models/v1_update_user_request.py +27 -1
  46. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +104 -208
  47. lightning_sdk/lightning_cloud/openapi/models/v1_validate_data_connection_response.py +27 -1
  48. lightning_sdk/lightning_cloud/openapi/models/v1_weka_data_connection.py +201 -0
  49. lightning_sdk/lightning_cloud/openapi/models/validate.py +27 -1
  50. lightning_sdk/lit_container.py +25 -7
  51. lightning_sdk/models.py +26 -8
  52. lightning_sdk/serve.py +3 -20
  53. lightning_sdk/teamspace.py +21 -4
  54. lightning_sdk/utils/resolve.py +11 -4
  55. {lightning_sdk-0.2.8.dist-info → lightning_sdk-0.2.10.dist-info}/METADATA +1 -1
  56. {lightning_sdk-0.2.8.dist-info → lightning_sdk-0.2.10.dist-info}/RECORD +60 -48
  57. {lightning_sdk-0.2.8.dist-info → lightning_sdk-0.2.10.dist-info}/LICENSE +0 -0
  58. {lightning_sdk-0.2.8.dist-info → lightning_sdk-0.2.10.dist-info}/WHEEL +0 -0
  59. {lightning_sdk-0.2.8.dist-info → lightning_sdk-0.2.10.dist-info}/entry_points.txt +0 -0
  60. {lightning_sdk-0.2.8.dist-info → lightning_sdk-0.2.10.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,149 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ external/v1/auth_service.proto
5
+
6
+ No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
7
+
8
+ OpenAPI spec version: version not set
9
+
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+
12
+ NOTE
13
+ ----
14
+ standard swagger-codegen-cli for this python client has been modified
15
+ by custom templates. The purpose of these templates is to include
16
+ typing information in the API and Model code. Please refer to the
17
+ main grid repository for more info
18
+ """
19
+
20
+ import pprint
21
+ import re # noqa: F401
22
+
23
+ from typing import TYPE_CHECKING
24
+
25
+ import six
26
+
27
+ if TYPE_CHECKING:
28
+ from datetime import datetime
29
+ from lightning_sdk.lightning_cloud.openapi.models import *
30
+
31
+ class CloudspaceIdSystemmetricsBody(object):
32
+ """NOTE: This class is auto generated by the swagger code generator program.
33
+
34
+ Do not edit the class manually.
35
+ """
36
+ """
37
+ Attributes:
38
+ swagger_types (dict): The key is attribute name
39
+ and the value is attribute type.
40
+ attribute_map (dict): The key is attribute name
41
+ and the value is json key in definition.
42
+ """
43
+ swagger_types = {
44
+ 'cloudspace_instance_id': 'str',
45
+ 'metrics': 'list[V1SystemMetrics]'
46
+ }
47
+
48
+ attribute_map = {
49
+ 'cloudspace_instance_id': 'cloudspaceInstanceId',
50
+ 'metrics': 'metrics'
51
+ }
52
+
53
+ def __init__(self, cloudspace_instance_id: 'str' =None, metrics: 'list[V1SystemMetrics]' =None): # noqa: E501
54
+ """CloudspaceIdSystemmetricsBody - a model defined in Swagger""" # noqa: E501
55
+ self._cloudspace_instance_id = None
56
+ self._metrics = None
57
+ self.discriminator = None
58
+ if cloudspace_instance_id is not None:
59
+ self.cloudspace_instance_id = cloudspace_instance_id
60
+ if metrics is not None:
61
+ self.metrics = metrics
62
+
63
+ @property
64
+ def cloudspace_instance_id(self) -> 'str':
65
+ """Gets the cloudspace_instance_id of this CloudspaceIdSystemmetricsBody. # noqa: E501
66
+
67
+
68
+ :return: The cloudspace_instance_id of this CloudspaceIdSystemmetricsBody. # noqa: E501
69
+ :rtype: str
70
+ """
71
+ return self._cloudspace_instance_id
72
+
73
+ @cloudspace_instance_id.setter
74
+ def cloudspace_instance_id(self, cloudspace_instance_id: 'str'):
75
+ """Sets the cloudspace_instance_id of this CloudspaceIdSystemmetricsBody.
76
+
77
+
78
+ :param cloudspace_instance_id: The cloudspace_instance_id of this CloudspaceIdSystemmetricsBody. # noqa: E501
79
+ :type: str
80
+ """
81
+
82
+ self._cloudspace_instance_id = cloudspace_instance_id
83
+
84
+ @property
85
+ def metrics(self) -> 'list[V1SystemMetrics]':
86
+ """Gets the metrics of this CloudspaceIdSystemmetricsBody. # noqa: E501
87
+
88
+
89
+ :return: The metrics of this CloudspaceIdSystemmetricsBody. # noqa: E501
90
+ :rtype: list[V1SystemMetrics]
91
+ """
92
+ return self._metrics
93
+
94
+ @metrics.setter
95
+ def metrics(self, metrics: 'list[V1SystemMetrics]'):
96
+ """Sets the metrics of this CloudspaceIdSystemmetricsBody.
97
+
98
+
99
+ :param metrics: The metrics of this CloudspaceIdSystemmetricsBody. # noqa: E501
100
+ :type: list[V1SystemMetrics]
101
+ """
102
+
103
+ self._metrics = metrics
104
+
105
+ def to_dict(self) -> dict:
106
+ """Returns the model properties as a dict"""
107
+ result = {}
108
+
109
+ for attr, _ in six.iteritems(self.swagger_types):
110
+ value = getattr(self, attr)
111
+ if isinstance(value, list):
112
+ result[attr] = list(map(
113
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
114
+ value
115
+ ))
116
+ elif hasattr(value, "to_dict"):
117
+ result[attr] = value.to_dict()
118
+ elif isinstance(value, dict):
119
+ result[attr] = dict(map(
120
+ lambda item: (item[0], item[1].to_dict())
121
+ if hasattr(item[1], "to_dict") else item,
122
+ value.items()
123
+ ))
124
+ else:
125
+ result[attr] = value
126
+ if issubclass(CloudspaceIdSystemmetricsBody, dict):
127
+ for key, value in self.items():
128
+ result[key] = value
129
+
130
+ return result
131
+
132
+ def to_str(self) -> str:
133
+ """Returns the string representation of the model"""
134
+ return pprint.pformat(self.to_dict())
135
+
136
+ def __repr__(self) -> str:
137
+ """For `print` and `pprint`"""
138
+ return self.to_str()
139
+
140
+ def __eq__(self, other: 'CloudspaceIdSystemmetricsBody') -> bool:
141
+ """Returns true if both objects are equal"""
142
+ if not isinstance(other, CloudspaceIdSystemmetricsBody):
143
+ return False
144
+
145
+ return self.__dict__ == other.__dict__
146
+
147
+ def __ne__(self, other: 'CloudspaceIdSystemmetricsBody') -> bool:
148
+ """Returns true if both objects are not equal"""
149
+ return not self == other
@@ -44,31 +44,37 @@ class ClusterIdCapacityreservationsBody(object):
44
44
  'capacity_reservation_type': 'str',
45
45
  'cloud_provider_capacity_reservation_id': 'str',
46
46
  'end_time': 'datetime',
47
+ 'full_cloud_provider_reservation_string': 'str',
47
48
  'instance_type': 'str',
48
49
  'match_pattern': 'str',
49
50
  'region': 'str',
50
- 'start_time': 'datetime'
51
+ 'start_time': 'datetime',
52
+ 'zone': 'str'
51
53
  }
52
54
 
53
55
  attribute_map = {
54
56
  'capacity_reservation_type': 'capacityReservationType',
55
57
  'cloud_provider_capacity_reservation_id': 'cloudProviderCapacityReservationId',
56
58
  'end_time': 'endTime',
59
+ 'full_cloud_provider_reservation_string': 'fullCloudProviderReservationString',
57
60
  'instance_type': 'instanceType',
58
61
  'match_pattern': 'matchPattern',
59
62
  'region': 'region',
60
- 'start_time': 'startTime'
63
+ 'start_time': 'startTime',
64
+ 'zone': 'zone'
61
65
  }
62
66
 
63
- def __init__(self, capacity_reservation_type: 'str' =None, cloud_provider_capacity_reservation_id: 'str' =None, end_time: 'datetime' =None, instance_type: 'str' =None, match_pattern: 'str' =None, region: 'str' =None, start_time: 'datetime' =None): # noqa: E501
67
+ def __init__(self, capacity_reservation_type: 'str' =None, cloud_provider_capacity_reservation_id: 'str' =None, end_time: 'datetime' =None, full_cloud_provider_reservation_string: 'str' =None, instance_type: 'str' =None, match_pattern: 'str' =None, region: 'str' =None, start_time: 'datetime' =None, zone: 'str' =None): # noqa: E501
64
68
  """ClusterIdCapacityreservationsBody - a model defined in Swagger""" # noqa: E501
65
69
  self._capacity_reservation_type = None
66
70
  self._cloud_provider_capacity_reservation_id = None
67
71
  self._end_time = None
72
+ self._full_cloud_provider_reservation_string = None
68
73
  self._instance_type = None
69
74
  self._match_pattern = None
70
75
  self._region = None
71
76
  self._start_time = None
77
+ self._zone = None
72
78
  self.discriminator = None
73
79
  if capacity_reservation_type is not None:
74
80
  self.capacity_reservation_type = capacity_reservation_type
@@ -76,6 +82,8 @@ class ClusterIdCapacityreservationsBody(object):
76
82
  self.cloud_provider_capacity_reservation_id = cloud_provider_capacity_reservation_id
77
83
  if end_time is not None:
78
84
  self.end_time = end_time
85
+ if full_cloud_provider_reservation_string is not None:
86
+ self.full_cloud_provider_reservation_string = full_cloud_provider_reservation_string
79
87
  if instance_type is not None:
80
88
  self.instance_type = instance_type
81
89
  if match_pattern is not None:
@@ -84,6 +92,8 @@ class ClusterIdCapacityreservationsBody(object):
84
92
  self.region = region
85
93
  if start_time is not None:
86
94
  self.start_time = start_time
95
+ if zone is not None:
96
+ self.zone = zone
87
97
 
88
98
  @property
89
99
  def capacity_reservation_type(self) -> 'str':
@@ -148,6 +158,27 @@ class ClusterIdCapacityreservationsBody(object):
148
158
 
149
159
  self._end_time = end_time
150
160
 
161
+ @property
162
+ def full_cloud_provider_reservation_string(self) -> 'str':
163
+ """Gets the full_cloud_provider_reservation_string of this ClusterIdCapacityreservationsBody. # noqa: E501
164
+
165
+
166
+ :return: The full_cloud_provider_reservation_string of this ClusterIdCapacityreservationsBody. # noqa: E501
167
+ :rtype: str
168
+ """
169
+ return self._full_cloud_provider_reservation_string
170
+
171
+ @full_cloud_provider_reservation_string.setter
172
+ def full_cloud_provider_reservation_string(self, full_cloud_provider_reservation_string: 'str'):
173
+ """Sets the full_cloud_provider_reservation_string of this ClusterIdCapacityreservationsBody.
174
+
175
+
176
+ :param full_cloud_provider_reservation_string: The full_cloud_provider_reservation_string of this ClusterIdCapacityreservationsBody. # noqa: E501
177
+ :type: str
178
+ """
179
+
180
+ self._full_cloud_provider_reservation_string = full_cloud_provider_reservation_string
181
+
151
182
  @property
152
183
  def instance_type(self) -> 'str':
153
184
  """Gets the instance_type of this ClusterIdCapacityreservationsBody. # noqa: E501
@@ -232,6 +263,27 @@ class ClusterIdCapacityreservationsBody(object):
232
263
 
233
264
  self._start_time = start_time
234
265
 
266
+ @property
267
+ def zone(self) -> 'str':
268
+ """Gets the zone of this ClusterIdCapacityreservationsBody. # noqa: E501
269
+
270
+
271
+ :return: The zone of this ClusterIdCapacityreservationsBody. # noqa: E501
272
+ :rtype: str
273
+ """
274
+ return self._zone
275
+
276
+ @zone.setter
277
+ def zone(self, zone: 'str'):
278
+ """Sets the zone of this ClusterIdCapacityreservationsBody.
279
+
280
+
281
+ :param zone: The zone of this ClusterIdCapacityreservationsBody. # noqa: E501
282
+ :type: str
283
+ """
284
+
285
+ self._zone = zone
286
+
235
287
  def to_dict(self) -> dict:
236
288
  """Returns the model properties as a dict"""
237
289
  result = {}
@@ -53,9 +53,11 @@ class Create(object):
53
53
  'gcs_folder': 'V1GCSFolderDataConnection',
54
54
  'id': 'str',
55
55
  'name': 'str',
56
+ 'r2': 'V1R2DataConnection',
56
57
  'run_cmds': 'list[str]',
57
58
  's3_folder': 'V1S3FolderDataConnection',
58
59
  'snowflake': 'V1SnowflakeDataConnection',
60
+ 'weka': 'V1WekaDataConnection',
59
61
  'writable': 'bool'
60
62
  }
61
63
 
@@ -72,13 +74,15 @@ class Create(object):
72
74
  'gcs_folder': 'gcsFolder',
73
75
  'id': 'id',
74
76
  'name': 'name',
77
+ 'r2': 'r2',
75
78
  'run_cmds': 'runCmds',
76
79
  's3_folder': 's3Folder',
77
80
  'snowflake': 'snowflake',
81
+ 'weka': 'weka',
78
82
  'writable': 'writable'
79
83
  }
80
84
 
81
- def __init__(self, access_cluster_ids: 'list[str]' =None, aws: 'V1AwsDataConnection' =None, cluster_id: 'str' =None, create_index: 'bool' =None, create_resources: 'bool' =None, efs: 'V1EfsConfig' =None, filestore: 'V1FilestoreDataConnection' =None, force: 'bool' =None, gcp: 'V1GcpDataConnection' =None, gcs_folder: 'V1GCSFolderDataConnection' =None, id: 'str' =None, name: 'str' =None, run_cmds: 'list[str]' =None, s3_folder: 'V1S3FolderDataConnection' =None, snowflake: 'V1SnowflakeDataConnection' =None, writable: 'bool' =None): # noqa: E501
85
+ def __init__(self, access_cluster_ids: 'list[str]' =None, aws: 'V1AwsDataConnection' =None, cluster_id: 'str' =None, create_index: 'bool' =None, create_resources: 'bool' =None, efs: 'V1EfsConfig' =None, filestore: 'V1FilestoreDataConnection' =None, force: 'bool' =None, gcp: 'V1GcpDataConnection' =None, gcs_folder: 'V1GCSFolderDataConnection' =None, id: 'str' =None, name: 'str' =None, r2: 'V1R2DataConnection' =None, run_cmds: 'list[str]' =None, s3_folder: 'V1S3FolderDataConnection' =None, snowflake: 'V1SnowflakeDataConnection' =None, weka: 'V1WekaDataConnection' =None, writable: 'bool' =None): # noqa: E501
82
86
  """Create - a model defined in Swagger""" # noqa: E501
83
87
  self._access_cluster_ids = None
84
88
  self._aws = None
@@ -92,9 +96,11 @@ class Create(object):
92
96
  self._gcs_folder = None
93
97
  self._id = None
94
98
  self._name = None
99
+ self._r2 = None
95
100
  self._run_cmds = None
96
101
  self._s3_folder = None
97
102
  self._snowflake = None
103
+ self._weka = None
98
104
  self._writable = None
99
105
  self.discriminator = None
100
106
  if access_cluster_ids is not None:
@@ -121,12 +127,16 @@ class Create(object):
121
127
  self.id = id
122
128
  if name is not None:
123
129
  self.name = name
130
+ if r2 is not None:
131
+ self.r2 = r2
124
132
  if run_cmds is not None:
125
133
  self.run_cmds = run_cmds
126
134
  if s3_folder is not None:
127
135
  self.s3_folder = s3_folder
128
136
  if snowflake is not None:
129
137
  self.snowflake = snowflake
138
+ if weka is not None:
139
+ self.weka = weka
130
140
  if writable is not None:
131
141
  self.writable = writable
132
142
 
@@ -382,6 +392,27 @@ class Create(object):
382
392
 
383
393
  self._name = name
384
394
 
395
+ @property
396
+ def r2(self) -> 'V1R2DataConnection':
397
+ """Gets the r2 of this Create. # noqa: E501
398
+
399
+
400
+ :return: The r2 of this Create. # noqa: E501
401
+ :rtype: V1R2DataConnection
402
+ """
403
+ return self._r2
404
+
405
+ @r2.setter
406
+ def r2(self, r2: 'V1R2DataConnection'):
407
+ """Sets the r2 of this Create.
408
+
409
+
410
+ :param r2: The r2 of this Create. # noqa: E501
411
+ :type: V1R2DataConnection
412
+ """
413
+
414
+ self._r2 = r2
415
+
385
416
  @property
386
417
  def run_cmds(self) -> 'list[str]':
387
418
  """Gets the run_cmds of this Create. # noqa: E501
@@ -445,6 +476,27 @@ class Create(object):
445
476
 
446
477
  self._snowflake = snowflake
447
478
 
479
+ @property
480
+ def weka(self) -> 'V1WekaDataConnection':
481
+ """Gets the weka of this Create. # noqa: E501
482
+
483
+
484
+ :return: The weka of this Create. # noqa: E501
485
+ :rtype: V1WekaDataConnection
486
+ """
487
+ return self._weka
488
+
489
+ @weka.setter
490
+ def weka(self, weka: 'V1WekaDataConnection'):
491
+ """Sets the weka of this Create.
492
+
493
+
494
+ :param weka: The weka of this Create. # noqa: E501
495
+ :type: V1WekaDataConnection
496
+ """
497
+
498
+ self._weka = weka
499
+
448
500
  @property
449
501
  def writable(self) -> 'bool':
450
502
  """Gets the writable of this Create. # noqa: E501
@@ -43,6 +43,7 @@ class OrgsIdBody(object):
43
43
  swagger_types = {
44
44
  'alerts_config': 'V1AlertsConfig',
45
45
  'allow_aws_saas': 'bool',
46
+ 'allow_budgeting': 'bool',
46
47
  'allow_gcp_saas': 'bool',
47
48
  'allow_guest': 'bool',
48
49
  'allow_lambda_saas': 'bool',
@@ -64,12 +65,14 @@ class OrgsIdBody(object):
64
65
  'preferred_studio_provider': 'str',
65
66
  'start_studios_on_spot_instance': 'bool',
66
67
  'teamspace_default_credits': 'float',
67
- 'twitter_username': 'str'
68
+ 'twitter_username': 'str',
69
+ 'workload_max_run_duration': 'str'
68
70
  }
69
71
 
70
72
  attribute_map = {
71
73
  'alerts_config': 'alertsConfig',
72
74
  'allow_aws_saas': 'allowAwsSaas',
75
+ 'allow_budgeting': 'allowBudgeting',
73
76
  'allow_gcp_saas': 'allowGcpSaas',
74
77
  'allow_guest': 'allowGuest',
75
78
  'allow_lambda_saas': 'allowLambdaSaas',
@@ -91,13 +94,15 @@ class OrgsIdBody(object):
91
94
  'preferred_studio_provider': 'preferredStudioProvider',
92
95
  'start_studios_on_spot_instance': 'startStudiosOnSpotInstance',
93
96
  'teamspace_default_credits': 'teamspaceDefaultCredits',
94
- 'twitter_username': 'twitterUsername'
97
+ 'twitter_username': 'twitterUsername',
98
+ 'workload_max_run_duration': 'workloadMaxRunDuration'
95
99
  }
96
100
 
97
- def __init__(self, alerts_config: 'V1AlertsConfig' =None, allow_aws_saas: 'bool' =None, allow_gcp_saas: 'bool' =None, allow_guest: 'bool' =None, allow_lambda_saas: 'bool' =None, allow_marketplace: 'bool' =None, allow_member_invitations: 'bool' =None, allow_member_teamspace_creation: 'bool' =None, allow_vultr_saas: 'bool' =None, auto_invite_by_domain: 'bool' =None, auto_join_domains: 'list[str]' =None, default_machine_type: 'str' =None, description: 'str' =None, display_name: 'str' =None, domain: 'str' =None, email: 'str' =None, featured_gallery: 'bool' =None, location: 'str' =None, preferred_cluster: 'str' =None, preferred_deployment_provider: 'str' =None, preferred_studio_provider: 'str' =None, start_studios_on_spot_instance: 'bool' =None, teamspace_default_credits: 'float' =None, twitter_username: 'str' =None): # noqa: E501
101
+ def __init__(self, alerts_config: 'V1AlertsConfig' =None, allow_aws_saas: 'bool' =None, allow_budgeting: 'bool' =None, allow_gcp_saas: 'bool' =None, allow_guest: 'bool' =None, allow_lambda_saas: 'bool' =None, allow_marketplace: 'bool' =None, allow_member_invitations: 'bool' =None, allow_member_teamspace_creation: 'bool' =None, allow_vultr_saas: 'bool' =None, auto_invite_by_domain: 'bool' =None, auto_join_domains: 'list[str]' =None, default_machine_type: 'str' =None, description: 'str' =None, display_name: 'str' =None, domain: 'str' =None, email: 'str' =None, featured_gallery: 'bool' =None, location: 'str' =None, preferred_cluster: 'str' =None, preferred_deployment_provider: 'str' =None, preferred_studio_provider: 'str' =None, start_studios_on_spot_instance: 'bool' =None, teamspace_default_credits: 'float' =None, twitter_username: 'str' =None, workload_max_run_duration: 'str' =None): # noqa: E501
98
102
  """OrgsIdBody - a model defined in Swagger""" # noqa: E501
99
103
  self._alerts_config = None
100
104
  self._allow_aws_saas = None
105
+ self._allow_budgeting = None
101
106
  self._allow_gcp_saas = None
102
107
  self._allow_guest = None
103
108
  self._allow_lambda_saas = None
@@ -120,11 +125,14 @@ class OrgsIdBody(object):
120
125
  self._start_studios_on_spot_instance = None
121
126
  self._teamspace_default_credits = None
122
127
  self._twitter_username = None
128
+ self._workload_max_run_duration = None
123
129
  self.discriminator = None
124
130
  if alerts_config is not None:
125
131
  self.alerts_config = alerts_config
126
132
  if allow_aws_saas is not None:
127
133
  self.allow_aws_saas = allow_aws_saas
134
+ if allow_budgeting is not None:
135
+ self.allow_budgeting = allow_budgeting
128
136
  if allow_gcp_saas is not None:
129
137
  self.allow_gcp_saas = allow_gcp_saas
130
138
  if allow_guest is not None:
@@ -169,6 +177,8 @@ class OrgsIdBody(object):
169
177
  self.teamspace_default_credits = teamspace_default_credits
170
178
  if twitter_username is not None:
171
179
  self.twitter_username = twitter_username
180
+ if workload_max_run_duration is not None:
181
+ self.workload_max_run_duration = workload_max_run_duration
172
182
 
173
183
  @property
174
184
  def alerts_config(self) -> 'V1AlertsConfig':
@@ -212,6 +222,27 @@ class OrgsIdBody(object):
212
222
 
213
223
  self._allow_aws_saas = allow_aws_saas
214
224
 
225
+ @property
226
+ def allow_budgeting(self) -> 'bool':
227
+ """Gets the allow_budgeting of this OrgsIdBody. # noqa: E501
228
+
229
+
230
+ :return: The allow_budgeting of this OrgsIdBody. # noqa: E501
231
+ :rtype: bool
232
+ """
233
+ return self._allow_budgeting
234
+
235
+ @allow_budgeting.setter
236
+ def allow_budgeting(self, allow_budgeting: 'bool'):
237
+ """Sets the allow_budgeting of this OrgsIdBody.
238
+
239
+
240
+ :param allow_budgeting: The allow_budgeting of this OrgsIdBody. # noqa: E501
241
+ :type: bool
242
+ """
243
+
244
+ self._allow_budgeting = allow_budgeting
245
+
215
246
  @property
216
247
  def allow_gcp_saas(self) -> 'bool':
217
248
  """Gets the allow_gcp_saas of this OrgsIdBody. # noqa: E501
@@ -674,6 +705,27 @@ class OrgsIdBody(object):
674
705
 
675
706
  self._twitter_username = twitter_username
676
707
 
708
+ @property
709
+ def workload_max_run_duration(self) -> 'str':
710
+ """Gets the workload_max_run_duration of this OrgsIdBody. # noqa: E501
711
+
712
+
713
+ :return: The workload_max_run_duration of this OrgsIdBody. # noqa: E501
714
+ :rtype: str
715
+ """
716
+ return self._workload_max_run_duration
717
+
718
+ @workload_max_run_duration.setter
719
+ def workload_max_run_duration(self, workload_max_run_duration: 'str'):
720
+ """Sets the workload_max_run_duration of this OrgsIdBody.
721
+
722
+
723
+ :param workload_max_run_duration: The workload_max_run_duration of this OrgsIdBody. # noqa: E501
724
+ :type: str
725
+ """
726
+
727
+ self._workload_max_run_duration = workload_max_run_duration
728
+
677
729
  def to_dict(self) -> dict:
678
730
  """Returns the model properties as a dict"""
679
731
  result = {}
@@ -46,6 +46,7 @@ class Update(object):
46
46
  'gcp': 'V1GcpDataConnection',
47
47
  'gcs_folder': 'V1GCSFolderDataConnection',
48
48
  'name': 'str',
49
+ 'r2': 'V1R2DataConnection',
49
50
  'run_cmds': 'list[str]',
50
51
  's3_folder': 'V1S3FolderDataConnection',
51
52
  'snowflake': 'V1SnowflakeDataConnection',
@@ -58,19 +59,21 @@ class Update(object):
58
59
  'gcp': 'gcp',
59
60
  'gcs_folder': 'gcsFolder',
60
61
  'name': 'name',
62
+ 'r2': 'r2',
61
63
  'run_cmds': 'runCmds',
62
64
  's3_folder': 's3Folder',
63
65
  'snowflake': 'snowflake',
64
66
  'writable': 'writable'
65
67
  }
66
68
 
67
- def __init__(self, aws: 'V1AwsDataConnection' =None, efs: 'V1EfsConfig' =None, gcp: 'V1GcpDataConnection' =None, gcs_folder: 'V1GCSFolderDataConnection' =None, name: 'str' =None, run_cmds: 'list[str]' =None, s3_folder: 'V1S3FolderDataConnection' =None, snowflake: 'V1SnowflakeDataConnection' =None, writable: 'bool' =None): # noqa: E501
69
+ def __init__(self, aws: 'V1AwsDataConnection' =None, efs: 'V1EfsConfig' =None, gcp: 'V1GcpDataConnection' =None, gcs_folder: 'V1GCSFolderDataConnection' =None, name: 'str' =None, r2: 'V1R2DataConnection' =None, run_cmds: 'list[str]' =None, s3_folder: 'V1S3FolderDataConnection' =None, snowflake: 'V1SnowflakeDataConnection' =None, writable: 'bool' =None): # noqa: E501
68
70
  """Update - a model defined in Swagger""" # noqa: E501
69
71
  self._aws = None
70
72
  self._efs = None
71
73
  self._gcp = None
72
74
  self._gcs_folder = None
73
75
  self._name = None
76
+ self._r2 = None
74
77
  self._run_cmds = None
75
78
  self._s3_folder = None
76
79
  self._snowflake = None
@@ -86,6 +89,8 @@ class Update(object):
86
89
  self.gcs_folder = gcs_folder
87
90
  if name is not None:
88
91
  self.name = name
92
+ if r2 is not None:
93
+ self.r2 = r2
89
94
  if run_cmds is not None:
90
95
  self.run_cmds = run_cmds
91
96
  if s3_folder is not None:
@@ -200,6 +205,27 @@ class Update(object):
200
205
 
201
206
  self._name = name
202
207
 
208
+ @property
209
+ def r2(self) -> 'V1R2DataConnection':
210
+ """Gets the r2 of this Update. # noqa: E501
211
+
212
+
213
+ :return: The r2 of this Update. # noqa: E501
214
+ :rtype: V1R2DataConnection
215
+ """
216
+ return self._r2
217
+
218
+ @r2.setter
219
+ def r2(self, r2: 'V1R2DataConnection'):
220
+ """Sets the r2 of this Update.
221
+
222
+
223
+ :param r2: The r2 of this Update. # noqa: E501
224
+ :type: V1R2DataConnection
225
+ """
226
+
227
+ self._r2 = r2
228
+
203
229
  @property
204
230
  def run_cmds(self) -> 'list[str]':
205
231
  """Gets the run_cmds of this Update. # noqa: E501
@@ -41,6 +41,7 @@ class V1BillingTier(object):
41
41
  PRO = "Pro"
42
42
  TEAMS = "Teams"
43
43
  ENTERPRISE = "Enterprise"
44
+ DISCOUNTED_PRO = "Discounted_Pro"
44
45
  """
45
46
  Attributes:
46
47
  swagger_types (dict): The key is attribute name