lightning-sdk 0.2.11__py3-none-any.whl → 0.2.12__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 (43) hide show
  1. lightning_sdk/__init__.py +1 -1
  2. lightning_sdk/api/deployment_api.py +35 -3
  3. lightning_sdk/api/lit_container_api.py +13 -7
  4. lightning_sdk/api/llm_api.py +34 -0
  5. lightning_sdk/cli/serve.py +72 -23
  6. lightning_sdk/deployment/deployment.py +51 -5
  7. lightning_sdk/lightning_cloud/openapi/__init__.py +5 -1
  8. lightning_sdk/lightning_cloud/openapi/api/cloud_space_environment_template_service_api.py +4 -4
  9. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +13 -1
  10. lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +4 -4
  11. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +115 -0
  12. lightning_sdk/lightning_cloud/openapi/models/__init__.py +5 -1
  13. lightning_sdk/lightning_cloud/openapi/models/assistant_id_conversations_body.py +27 -1
  14. lightning_sdk/lightning_cloud/openapi/models/create_deployment_request_defines_a_spec_for_the_job_that_allows_for_autoscaling_jobs.py +27 -1
  15. lightning_sdk/lightning_cloud/openapi/models/orgs_id_body.py +27 -1
  16. lightning_sdk/lightning_cloud/openapi/models/projects_id_body.py +27 -1
  17. lightning_sdk/lightning_cloud/openapi/models/update.py +65 -195
  18. lightning_sdk/lightning_cloud/openapi/models/update1.py +357 -0
  19. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +1 -0
  20. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_template.py +27 -1
  21. lightning_sdk/lightning_cloud/openapi/models/v1_create_deployment_request.py +27 -1
  22. lightning_sdk/lightning_cloud/openapi/models/v1_delete_cloud_space_environment_template_response.py +1 -53
  23. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +1 -27
  24. lightning_sdk/lightning_cloud/openapi/models/v1_job_resource.py +279 -0
  25. lightning_sdk/lightning_cloud/openapi/models/v1_job_type.py +108 -0
  26. lightning_sdk/lightning_cloud/openapi/models/v1_list_job_resources_response.py +123 -0
  27. lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +55 -1
  28. lightning_sdk/lightning_cloud/openapi/models/v1_project_settings.py +29 -1
  29. lightning_sdk/lightning_cloud/openapi/models/v1_reservation_billing_session.py +279 -0
  30. lightning_sdk/lightning_cloud/openapi/models/v1_resources.py +55 -3
  31. lightning_sdk/lightning_cloud/openapi/models/v1_update_user_request.py +1 -27
  32. lightning_sdk/lightning_cloud/openapi/models/v1_usage.py +27 -1
  33. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +105 -1
  34. lightning_sdk/llm/__init__.py +3 -0
  35. lightning_sdk/llm/llm.py +56 -0
  36. lightning_sdk/serve.py +4 -6
  37. {lightning_sdk-0.2.11.dist-info → lightning_sdk-0.2.12.dist-info}/METADATA +1 -1
  38. {lightning_sdk-0.2.11.dist-info → lightning_sdk-0.2.12.dist-info}/RECORD +42 -35
  39. lightning_sdk/lightning_cloud/openapi/models/environmenttemplates_id_body.py +0 -253
  40. {lightning_sdk-0.2.11.dist-info → lightning_sdk-0.2.12.dist-info}/LICENSE +0 -0
  41. {lightning_sdk-0.2.11.dist-info → lightning_sdk-0.2.12.dist-info}/WHEEL +0 -0
  42. {lightning_sdk-0.2.11.dist-info → lightning_sdk-0.2.12.dist-info}/entry_points.txt +0 -0
  43. {lightning_sdk-0.2.11.dist-info → lightning_sdk-0.2.12.dist-info}/top_level.txt +0 -0
@@ -2821,6 +2821,121 @@ class JobsServiceApi(object):
2821
2821
  _request_timeout=params.get('_request_timeout'),
2822
2822
  collection_formats=collection_formats)
2823
2823
 
2824
+ def jobs_service_list_job_resources(self, **kwargs) -> 'V1ListJobResourcesResponse': # noqa: E501
2825
+ """jobs_service_list_job_resources # noqa: E501
2826
+
2827
+ This method makes a synchronous HTTP request by default. To make an
2828
+ asynchronous HTTP request, please pass async_req=True
2829
+ >>> thread = api.jobs_service_list_job_resources(async_req=True)
2830
+ >>> result = thread.get()
2831
+
2832
+ :param async_req bool
2833
+ :param list[str] project_ids:
2834
+ :param str user_id:
2835
+ :param str org_id:
2836
+ :param str state:
2837
+ :param list[str] job_types:
2838
+ :param datetime end_time:
2839
+ :param int limit:
2840
+ :return: V1ListJobResourcesResponse
2841
+ If the method is called asynchronously,
2842
+ returns the request thread.
2843
+ """
2844
+ kwargs['_return_http_data_only'] = True
2845
+ if kwargs.get('async_req'):
2846
+ return self.jobs_service_list_job_resources_with_http_info(**kwargs) # noqa: E501
2847
+ else:
2848
+ (data) = self.jobs_service_list_job_resources_with_http_info(**kwargs) # noqa: E501
2849
+ return data
2850
+
2851
+ def jobs_service_list_job_resources_with_http_info(self, **kwargs) -> 'V1ListJobResourcesResponse': # noqa: E501
2852
+ """jobs_service_list_job_resources # noqa: E501
2853
+
2854
+ This method makes a synchronous HTTP request by default. To make an
2855
+ asynchronous HTTP request, please pass async_req=True
2856
+ >>> thread = api.jobs_service_list_job_resources_with_http_info(async_req=True)
2857
+ >>> result = thread.get()
2858
+
2859
+ :param async_req bool
2860
+ :param list[str] project_ids:
2861
+ :param str user_id:
2862
+ :param str org_id:
2863
+ :param str state:
2864
+ :param list[str] job_types:
2865
+ :param datetime end_time:
2866
+ :param int limit:
2867
+ :return: V1ListJobResourcesResponse
2868
+ If the method is called asynchronously,
2869
+ returns the request thread.
2870
+ """
2871
+
2872
+ all_params = ['project_ids', 'user_id', 'org_id', 'state', 'job_types', 'end_time', 'limit'] # noqa: E501
2873
+ all_params.append('async_req')
2874
+ all_params.append('_return_http_data_only')
2875
+ all_params.append('_preload_content')
2876
+ all_params.append('_request_timeout')
2877
+
2878
+ params = locals()
2879
+ for key, val in six.iteritems(params['kwargs']):
2880
+ if key not in all_params:
2881
+ raise TypeError(
2882
+ "Got an unexpected keyword argument '%s'"
2883
+ " to method jobs_service_list_job_resources" % key
2884
+ )
2885
+ params[key] = val
2886
+ del params['kwargs']
2887
+
2888
+ collection_formats = {}
2889
+
2890
+ path_params = {}
2891
+
2892
+ query_params = []
2893
+ if 'project_ids' in params:
2894
+ query_params.append(('projectIds', params['project_ids'])) # noqa: E501
2895
+ collection_formats['projectIds'] = 'multi' # noqa: E501
2896
+ if 'user_id' in params:
2897
+ query_params.append(('userId', params['user_id'])) # noqa: E501
2898
+ if 'org_id' in params:
2899
+ query_params.append(('orgId', params['org_id'])) # noqa: E501
2900
+ if 'state' in params:
2901
+ query_params.append(('state', params['state'])) # noqa: E501
2902
+ if 'job_types' in params:
2903
+ query_params.append(('jobTypes', params['job_types'])) # noqa: E501
2904
+ collection_formats['jobTypes'] = 'multi' # noqa: E501
2905
+ if 'end_time' in params:
2906
+ query_params.append(('endTime', params['end_time'])) # noqa: E501
2907
+ if 'limit' in params:
2908
+ query_params.append(('limit', params['limit'])) # noqa: E501
2909
+
2910
+ header_params = {}
2911
+
2912
+ form_params = []
2913
+ local_var_files = {}
2914
+
2915
+ body_params = None
2916
+ # HTTP header `Accept`
2917
+ header_params['Accept'] = self.api_client.select_header_accept(
2918
+ ['application/json']) # noqa: E501
2919
+
2920
+ # Authentication setting
2921
+ auth_settings = [] # noqa: E501
2922
+
2923
+ return self.api_client.call_api(
2924
+ '/v1/jobs', 'GET',
2925
+ path_params,
2926
+ query_params,
2927
+ header_params,
2928
+ body=body_params,
2929
+ post_params=form_params,
2930
+ files=local_var_files,
2931
+ response_type='V1ListJobResourcesResponse', # noqa: E501
2932
+ auth_settings=auth_settings,
2933
+ async_req=params.get('async_req'),
2934
+ _return_http_data_only=params.get('_return_http_data_only'),
2935
+ _preload_content=params.get('_preload_content', True),
2936
+ _request_timeout=params.get('_request_timeout'),
2937
+ collection_formats=collection_formats)
2938
+
2824
2939
  def jobs_service_list_jobs(self, project_id: 'str', **kwargs) -> 'V1ListJobsResponse': # noqa: E501
2825
2940
  """jobs_service_list_jobs # noqa: E501
2826
2941
 
@@ -62,7 +62,6 @@ from lightning_sdk.lightning_cloud.openapi.models.datasets_id_body import Datase
62
62
  from lightning_sdk.lightning_cloud.openapi.models.deployments_id_body import DeploymentsIdBody
63
63
  from lightning_sdk.lightning_cloud.openapi.models.deploymenttemplates_id_body import DeploymenttemplatesIdBody
64
64
  from lightning_sdk.lightning_cloud.openapi.models.endpoints_id_body import EndpointsIdBody
65
- from lightning_sdk.lightning_cloud.openapi.models.environmenttemplates_id_body import EnvironmenttemplatesIdBody
66
65
  from lightning_sdk.lightning_cloud.openapi.models.experiment_name_variant_name_body import ExperimentNameVariantNameBody
67
66
  from lightning_sdk.lightning_cloud.openapi.models.externalv1_cloud_space_instance_status import Externalv1CloudSpaceInstanceStatus
68
67
  from lightning_sdk.lightning_cloud.openapi.models.externalv1_cluster import Externalv1Cluster
@@ -172,6 +171,7 @@ from lightning_sdk.lightning_cloud.openapi.models.stream_result_of_v1_conversati
172
171
  from lightning_sdk.lightning_cloud.openapi.models.stream_result_of_v1_get_long_running_command_in_cloud_space_response import StreamResultOfV1GetLongRunningCommandInCloudSpaceResponse
173
172
  from lightning_sdk.lightning_cloud.openapi.models.studioapp_jobs_body import StudioappJobsBody
174
173
  from lightning_sdk.lightning_cloud.openapi.models.update import Update
174
+ from lightning_sdk.lightning_cloud.openapi.models.update1 import Update1
175
175
  from lightning_sdk.lightning_cloud.openapi.models.upload_id_complete_body import UploadIdCompleteBody
176
176
  from lightning_sdk.lightning_cloud.openapi.models.upload_id_complete_body1 import UploadIdCompleteBody1
177
177
  from lightning_sdk.lightning_cloud.openapi.models.upload_id_parts_body import UploadIdPartsBody
@@ -514,8 +514,10 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_job_health_check_config imp
514
514
  from lightning_sdk.lightning_cloud.openapi.models.v1_job_log_entry import V1JobLogEntry
515
515
  from lightning_sdk.lightning_cloud.openapi.models.v1_job_logs_page import V1JobLogsPage
516
516
  from lightning_sdk.lightning_cloud.openapi.models.v1_job_logs_response import V1JobLogsResponse
517
+ from lightning_sdk.lightning_cloud.openapi.models.v1_job_resource import V1JobResource
517
518
  from lightning_sdk.lightning_cloud.openapi.models.v1_job_spec import V1JobSpec
518
519
  from lightning_sdk.lightning_cloud.openapi.models.v1_job_timing import V1JobTiming
520
+ from lightning_sdk.lightning_cloud.openapi.models.v1_job_type import V1JobType
519
521
  from lightning_sdk.lightning_cloud.openapi.models.v1_joinable_organization import V1JoinableOrganization
520
522
  from lightning_sdk.lightning_cloud.openapi.models.v1_keep_alive_cloud_space_instance_response import V1KeepAliveCloudSpaceInstanceResponse
521
523
  from lightning_sdk.lightning_cloud.openapi.models.v1_knowledge_configuration import V1KnowledgeConfiguration
@@ -582,6 +584,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_list_filesystem_snowflake_r
582
584
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_gallery_components_response import V1ListGalleryComponentsResponse
583
585
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_gallery_lightningapps_response import V1ListGalleryLightningappsResponse
584
586
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_job_files_response import V1ListJobFilesResponse
587
+ from lightning_sdk.lightning_cloud.openapi.models.v1_list_job_resources_response import V1ListJobResourcesResponse
585
588
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_jobs_response import V1ListJobsResponse
586
589
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_joinable_organizations_response import V1ListJoinableOrganizationsResponse
587
590
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_lightning_run_response import V1ListLightningRunResponse
@@ -746,6 +749,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_report_restart_timings_resp
746
749
  from lightning_sdk.lightning_cloud.openapi.models.v1_request_cluster_access_request import V1RequestClusterAccessRequest
747
750
  from lightning_sdk.lightning_cloud.openapi.models.v1_request_cluster_access_response import V1RequestClusterAccessResponse
748
751
  from lightning_sdk.lightning_cloud.openapi.models.v1_request_verification_code_response import V1RequestVerificationCodeResponse
752
+ from lightning_sdk.lightning_cloud.openapi.models.v1_reservation_billing_session import V1ReservationBillingSession
749
753
  from lightning_sdk.lightning_cloud.openapi.models.v1_reservation_details import V1ReservationDetails
750
754
  from lightning_sdk.lightning_cloud.openapi.models.v1_resource_tag import V1ResourceTag
751
755
  from lightning_sdk.lightning_cloud.openapi.models.v1_resource_visibility import V1ResourceVisibility
@@ -45,6 +45,7 @@ class AssistantIdConversationsBody(object):
45
45
  'conversation_id': 'str',
46
46
  'max_tokens': 'str',
47
47
  'message': 'V1Message',
48
+ 'metadata': 'dict(str, str)',
48
49
  'parent_message_id': 'str',
49
50
  'stream': 'bool'
50
51
  }
@@ -54,16 +55,18 @@ class AssistantIdConversationsBody(object):
54
55
  'conversation_id': 'conversationId',
55
56
  'max_tokens': 'maxTokens',
56
57
  'message': 'message',
58
+ 'metadata': 'metadata',
57
59
  'parent_message_id': 'parentMessageId',
58
60
  'stream': 'stream'
59
61
  }
60
62
 
61
- def __init__(self, auto_name: 'bool' =None, conversation_id: 'str' =None, max_tokens: 'str' =None, message: 'V1Message' =None, parent_message_id: 'str' =None, stream: 'bool' =None): # noqa: E501
63
+ def __init__(self, auto_name: 'bool' =None, conversation_id: 'str' =None, max_tokens: 'str' =None, message: 'V1Message' =None, metadata: 'dict(str, str)' =None, parent_message_id: 'str' =None, stream: 'bool' =None): # noqa: E501
62
64
  """AssistantIdConversationsBody - a model defined in Swagger""" # noqa: E501
63
65
  self._auto_name = None
64
66
  self._conversation_id = None
65
67
  self._max_tokens = None
66
68
  self._message = None
69
+ self._metadata = None
67
70
  self._parent_message_id = None
68
71
  self._stream = None
69
72
  self.discriminator = None
@@ -75,6 +78,8 @@ class AssistantIdConversationsBody(object):
75
78
  self.max_tokens = max_tokens
76
79
  if message is not None:
77
80
  self.message = message
81
+ if metadata is not None:
82
+ self.metadata = metadata
78
83
  if parent_message_id is not None:
79
84
  self.parent_message_id = parent_message_id
80
85
  if stream is not None:
@@ -164,6 +169,27 @@ class AssistantIdConversationsBody(object):
164
169
 
165
170
  self._message = message
166
171
 
172
+ @property
173
+ def metadata(self) -> 'dict(str, str)':
174
+ """Gets the metadata of this AssistantIdConversationsBody. # noqa: E501
175
+
176
+
177
+ :return: The metadata of this AssistantIdConversationsBody. # noqa: E501
178
+ :rtype: dict(str, str)
179
+ """
180
+ return self._metadata
181
+
182
+ @metadata.setter
183
+ def metadata(self, metadata: 'dict(str, str)'):
184
+ """Sets the metadata of this AssistantIdConversationsBody.
185
+
186
+
187
+ :param metadata: The metadata of this AssistantIdConversationsBody. # noqa: E501
188
+ :type: dict(str, str)
189
+ """
190
+
191
+ self._metadata = metadata
192
+
167
193
  @property
168
194
  def parent_message_id(self) -> 'str':
169
195
  """Gets the parent_message_id of this AssistantIdConversationsBody. # noqa: E501
@@ -47,6 +47,7 @@ class CreateDeploymentRequestDefinesASpecForTheJobThatAllowsForAutoscalingJobs(o
47
47
  'cloudspace_id': 'str',
48
48
  'cluster_id': 'str',
49
49
  'endpoint': 'V1Endpoint',
50
+ 'from_litserve': 'bool',
50
51
  'from_onboarding': 'bool',
51
52
  'name': 'str',
52
53
  'parameter_spec': 'V1ParameterizationSpec',
@@ -63,6 +64,7 @@ class CreateDeploymentRequestDefinesASpecForTheJobThatAllowsForAutoscalingJobs(o
63
64
  'cloudspace_id': 'cloudspaceId',
64
65
  'cluster_id': 'clusterId',
65
66
  'endpoint': 'endpoint',
67
+ 'from_litserve': 'fromLitserve',
66
68
  'from_onboarding': 'fromOnboarding',
67
69
  'name': 'name',
68
70
  'parameter_spec': 'parameterSpec',
@@ -72,7 +74,7 @@ class CreateDeploymentRequestDefinesASpecForTheJobThatAllowsForAutoscalingJobs(o
72
74
  'strategy': 'strategy'
73
75
  }
74
76
 
75
- def __init__(self, api_standard: 'str' =None, apis: 'list[V1DeploymentAPI]' =None, autoscaling: 'V1AutoscalingSpec' =None, cloudspace_id: 'str' =None, cluster_id: 'str' =None, endpoint: 'V1Endpoint' =None, from_onboarding: 'bool' =None, name: 'str' =None, parameter_spec: 'V1ParameterizationSpec' =None, parent_template_id: 'str' =None, replicas: 'int' =None, spec: 'V1JobSpec' =None, strategy: 'V1DeploymentStrategy' =None): # noqa: E501
77
+ def __init__(self, api_standard: 'str' =None, apis: 'list[V1DeploymentAPI]' =None, autoscaling: 'V1AutoscalingSpec' =None, cloudspace_id: 'str' =None, cluster_id: 'str' =None, endpoint: 'V1Endpoint' =None, from_litserve: 'bool' =None, from_onboarding: 'bool' =None, name: 'str' =None, parameter_spec: 'V1ParameterizationSpec' =None, parent_template_id: 'str' =None, replicas: 'int' =None, spec: 'V1JobSpec' =None, strategy: 'V1DeploymentStrategy' =None): # noqa: E501
76
78
  """CreateDeploymentRequestDefinesASpecForTheJobThatAllowsForAutoscalingJobs - a model defined in Swagger""" # noqa: E501
77
79
  self._api_standard = None
78
80
  self._apis = None
@@ -80,6 +82,7 @@ class CreateDeploymentRequestDefinesASpecForTheJobThatAllowsForAutoscalingJobs(o
80
82
  self._cloudspace_id = None
81
83
  self._cluster_id = None
82
84
  self._endpoint = None
85
+ self._from_litserve = None
83
86
  self._from_onboarding = None
84
87
  self._name = None
85
88
  self._parameter_spec = None
@@ -100,6 +103,8 @@ class CreateDeploymentRequestDefinesASpecForTheJobThatAllowsForAutoscalingJobs(o
100
103
  self.cluster_id = cluster_id
101
104
  if endpoint is not None:
102
105
  self.endpoint = endpoint
106
+ if from_litserve is not None:
107
+ self.from_litserve = from_litserve
103
108
  if from_onboarding is not None:
104
109
  self.from_onboarding = from_onboarding
105
110
  if name is not None:
@@ -241,6 +246,27 @@ class CreateDeploymentRequestDefinesASpecForTheJobThatAllowsForAutoscalingJobs(o
241
246
 
242
247
  self._endpoint = endpoint
243
248
 
249
+ @property
250
+ def from_litserve(self) -> 'bool':
251
+ """Gets the from_litserve of this CreateDeploymentRequestDefinesASpecForTheJobThatAllowsForAutoscalingJobs. # noqa: E501
252
+
253
+
254
+ :return: The from_litserve of this CreateDeploymentRequestDefinesASpecForTheJobThatAllowsForAutoscalingJobs. # noqa: E501
255
+ :rtype: bool
256
+ """
257
+ return self._from_litserve
258
+
259
+ @from_litserve.setter
260
+ def from_litserve(self, from_litserve: 'bool'):
261
+ """Sets the from_litserve of this CreateDeploymentRequestDefinesASpecForTheJobThatAllowsForAutoscalingJobs.
262
+
263
+
264
+ :param from_litserve: The from_litserve of this CreateDeploymentRequestDefinesASpecForTheJobThatAllowsForAutoscalingJobs. # noqa: E501
265
+ :type: bool
266
+ """
267
+
268
+ self._from_litserve = from_litserve
269
+
244
270
  @property
245
271
  def from_onboarding(self) -> 'bool':
246
272
  """Gets the from_onboarding of this CreateDeploymentRequestDefinesASpecForTheJobThatAllowsForAutoscalingJobs. # noqa: E501
@@ -44,6 +44,7 @@ class OrgsIdBody(object):
44
44
  'alerts_config': 'V1AlertsConfig',
45
45
  'allow_aws_saas': 'bool',
46
46
  'allow_budgeting': 'bool',
47
+ 'allow_external_project_duplication': 'bool',
47
48
  'allow_gcp_saas': 'bool',
48
49
  'allow_guest': 'bool',
49
50
  'allow_lambda_saas': 'bool',
@@ -73,6 +74,7 @@ class OrgsIdBody(object):
73
74
  'alerts_config': 'alertsConfig',
74
75
  'allow_aws_saas': 'allowAwsSaas',
75
76
  'allow_budgeting': 'allowBudgeting',
77
+ 'allow_external_project_duplication': 'allowExternalProjectDuplication',
76
78
  'allow_gcp_saas': 'allowGcpSaas',
77
79
  'allow_guest': 'allowGuest',
78
80
  'allow_lambda_saas': 'allowLambdaSaas',
@@ -98,11 +100,12 @@ class OrgsIdBody(object):
98
100
  'workload_max_run_duration': 'workloadMaxRunDuration'
99
101
  }
100
102
 
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
103
+ def __init__(self, alerts_config: 'V1AlertsConfig' =None, allow_aws_saas: 'bool' =None, allow_budgeting: 'bool' =None, allow_external_project_duplication: '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
102
104
  """OrgsIdBody - a model defined in Swagger""" # noqa: E501
103
105
  self._alerts_config = None
104
106
  self._allow_aws_saas = None
105
107
  self._allow_budgeting = None
108
+ self._allow_external_project_duplication = None
106
109
  self._allow_gcp_saas = None
107
110
  self._allow_guest = None
108
111
  self._allow_lambda_saas = None
@@ -133,6 +136,8 @@ class OrgsIdBody(object):
133
136
  self.allow_aws_saas = allow_aws_saas
134
137
  if allow_budgeting is not None:
135
138
  self.allow_budgeting = allow_budgeting
139
+ if allow_external_project_duplication is not None:
140
+ self.allow_external_project_duplication = allow_external_project_duplication
136
141
  if allow_gcp_saas is not None:
137
142
  self.allow_gcp_saas = allow_gcp_saas
138
143
  if allow_guest is not None:
@@ -243,6 +248,27 @@ class OrgsIdBody(object):
243
248
 
244
249
  self._allow_budgeting = allow_budgeting
245
250
 
251
+ @property
252
+ def allow_external_project_duplication(self) -> 'bool':
253
+ """Gets the allow_external_project_duplication of this OrgsIdBody. # noqa: E501
254
+
255
+
256
+ :return: The allow_external_project_duplication of this OrgsIdBody. # noqa: E501
257
+ :rtype: bool
258
+ """
259
+ return self._allow_external_project_duplication
260
+
261
+ @allow_external_project_duplication.setter
262
+ def allow_external_project_duplication(self, allow_external_project_duplication: 'bool'):
263
+ """Sets the allow_external_project_duplication of this OrgsIdBody.
264
+
265
+
266
+ :param allow_external_project_duplication: The allow_external_project_duplication of this OrgsIdBody. # noqa: E501
267
+ :type: bool
268
+ """
269
+
270
+ self._allow_external_project_duplication = allow_external_project_duplication
271
+
246
272
  @property
247
273
  def allow_gcp_saas(self) -> 'bool':
248
274
  """Gets the allow_gcp_saas of this OrgsIdBody. # noqa: E501
@@ -42,6 +42,7 @@ class ProjectsIdBody(object):
42
42
  """
43
43
  swagger_types = {
44
44
  'allow_aws_saas': 'bool',
45
+ 'allow_external_project_duplication': 'bool',
45
46
  'allow_gcp_saas': 'bool',
46
47
  'allow_lambda_saas': 'bool',
47
48
  'allow_vultr_saas': 'bool',
@@ -59,6 +60,7 @@ class ProjectsIdBody(object):
59
60
 
60
61
  attribute_map = {
61
62
  'allow_aws_saas': 'allowAwsSaas',
63
+ 'allow_external_project_duplication': 'allowExternalProjectDuplication',
62
64
  'allow_gcp_saas': 'allowGcpSaas',
63
65
  'allow_lambda_saas': 'allowLambdaSaas',
64
66
  'allow_vultr_saas': 'allowVultrSaas',
@@ -74,9 +76,10 @@ class ProjectsIdBody(object):
74
76
  'start_studio_on_spot_instance': 'startStudioOnSpotInstance'
75
77
  }
76
78
 
77
- def __init__(self, allow_aws_saas: 'bool' =None, allow_gcp_saas: 'bool' =None, allow_lambda_saas: 'bool' =None, allow_vultr_saas: 'bool' =None, default_machine_type: 'str' =None, description: 'str' =None, display_name: 'str' =None, name: 'str' =None, preferred_cluster: 'str' =None, preferred_deployment_provider: 'str' =None, preferred_studio_provider: 'str' =None, quotas: 'V1Quotas' =None, same_compute_on_resume: 'bool' =None, start_studio_on_spot_instance: 'bool' =None): # noqa: E501
79
+ def __init__(self, allow_aws_saas: 'bool' =None, allow_external_project_duplication: 'bool' =None, allow_gcp_saas: 'bool' =None, allow_lambda_saas: 'bool' =None, allow_vultr_saas: 'bool' =None, default_machine_type: 'str' =None, description: 'str' =None, display_name: 'str' =None, name: 'str' =None, preferred_cluster: 'str' =None, preferred_deployment_provider: 'str' =None, preferred_studio_provider: 'str' =None, quotas: 'V1Quotas' =None, same_compute_on_resume: 'bool' =None, start_studio_on_spot_instance: 'bool' =None): # noqa: E501
78
80
  """ProjectsIdBody - a model defined in Swagger""" # noqa: E501
79
81
  self._allow_aws_saas = None
82
+ self._allow_external_project_duplication = None
80
83
  self._allow_gcp_saas = None
81
84
  self._allow_lambda_saas = None
82
85
  self._allow_vultr_saas = None
@@ -93,6 +96,8 @@ class ProjectsIdBody(object):
93
96
  self.discriminator = None
94
97
  if allow_aws_saas is not None:
95
98
  self.allow_aws_saas = allow_aws_saas
99
+ if allow_external_project_duplication is not None:
100
+ self.allow_external_project_duplication = allow_external_project_duplication
96
101
  if allow_gcp_saas is not None:
97
102
  self.allow_gcp_saas = allow_gcp_saas
98
103
  if allow_lambda_saas is not None:
@@ -141,6 +146,27 @@ class ProjectsIdBody(object):
141
146
 
142
147
  self._allow_aws_saas = allow_aws_saas
143
148
 
149
+ @property
150
+ def allow_external_project_duplication(self) -> 'bool':
151
+ """Gets the allow_external_project_duplication of this ProjectsIdBody. # noqa: E501
152
+
153
+
154
+ :return: The allow_external_project_duplication of this ProjectsIdBody. # noqa: E501
155
+ :rtype: bool
156
+ """
157
+ return self._allow_external_project_duplication
158
+
159
+ @allow_external_project_duplication.setter
160
+ def allow_external_project_duplication(self, allow_external_project_duplication: 'bool'):
161
+ """Sets the allow_external_project_duplication of this ProjectsIdBody.
162
+
163
+
164
+ :param allow_external_project_duplication: The allow_external_project_duplication of this ProjectsIdBody. # noqa: E501
165
+ :type: bool
166
+ """
167
+
168
+ self._allow_external_project_duplication = allow_external_project_duplication
169
+
144
170
  @property
145
171
  def allow_gcp_saas(self) -> 'bool':
146
172
  """Gets the allow_gcp_saas of this ProjectsIdBody. # noqa: E501