lightning-sdk 2025.7.17__py3-none-any.whl → 2025.7.30rc0__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 (99) hide show
  1. lightning_sdk/__init__.py +3 -2
  2. lightning_sdk/api/cloud_account_api.py +204 -0
  3. lightning_sdk/api/deployment_api.py +11 -0
  4. lightning_sdk/api/job_api.py +82 -10
  5. lightning_sdk/api/llm_api.py +1 -1
  6. lightning_sdk/api/mmt_api.py +44 -5
  7. lightning_sdk/api/pipeline_api.py +4 -3
  8. lightning_sdk/api/studio_api.py +51 -8
  9. lightning_sdk/api/utils.py +6 -2
  10. lightning_sdk/cli/clusters_menu.py +3 -3
  11. lightning_sdk/cli/create.py +25 -11
  12. lightning_sdk/cli/deploy/_auth.py +19 -3
  13. lightning_sdk/cli/deploy/serve.py +21 -5
  14. lightning_sdk/cli/download.py +25 -1
  15. lightning_sdk/cli/entrypoint.py +4 -2
  16. lightning_sdk/cli/list.py +5 -1
  17. lightning_sdk/cli/run.py +3 -1
  18. lightning_sdk/cli/start.py +40 -8
  19. lightning_sdk/cli/switch.py +3 -1
  20. lightning_sdk/deployment/deployment.py +8 -0
  21. lightning_sdk/job/base.py +27 -3
  22. lightning_sdk/job/job.py +28 -4
  23. lightning_sdk/job/v1.py +10 -1
  24. lightning_sdk/job/v2.py +22 -2
  25. lightning_sdk/job/work.py +5 -1
  26. lightning_sdk/lightning_cloud/openapi/__init__.py +14 -1
  27. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +428 -0
  28. lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +153 -48
  29. lightning_sdk/lightning_cloud/openapi/api/cloudy_service_api.py +295 -0
  30. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +93 -0
  31. lightning_sdk/lightning_cloud/openapi/models/__init__.py +14 -1
  32. lightning_sdk/lightning_cloud/openapi/models/agentmanagedendpoints_id_body.py +27 -1
  33. lightning_sdk/lightning_cloud/openapi/models/blogposts_id_body.py +53 -1
  34. lightning_sdk/lightning_cloud/openapi/models/conversations_id_body1.py +123 -0
  35. lightning_sdk/lightning_cloud/openapi/models/messages_id_body.py +123 -0
  36. lightning_sdk/lightning_cloud/openapi/models/metricsstream_id_body.py +27 -1
  37. lightning_sdk/lightning_cloud/openapi/models/project_id_schedules_body.py +81 -3
  38. lightning_sdk/lightning_cloud/openapi/models/schedules_id_body.py +79 -1
  39. lightning_sdk/lightning_cloud/openapi/models/user_id_upgradetrigger_body.py +201 -0
  40. lightning_sdk/lightning_cloud/openapi/models/user_user_id_body.py +201 -0
  41. lightning_sdk/lightning_cloud/openapi/models/v1_billing_subscription.py +27 -1
  42. lightning_sdk/lightning_cloud/openapi/models/v1_blog_post.py +53 -1
  43. lightning_sdk/lightning_cloud/openapi/models/v1_cloudy_settings.py +227 -0
  44. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +27 -1
  45. lightning_sdk/lightning_cloud/openapi/models/v1_conversation.py +27 -1
  46. lightning_sdk/lightning_cloud/openapi/models/v1_conversation_response_chunk.py +27 -1
  47. lightning_sdk/lightning_cloud/openapi/models/v1_create_billing_upgrade_trigger_record_response.py +97 -0
  48. lightning_sdk/lightning_cloud/openapi/models/v1_create_blog_post_request.py +53 -1
  49. lightning_sdk/lightning_cloud/openapi/models/v1_create_checkout_session_request.py +27 -1
  50. lightning_sdk/lightning_cloud/openapi/models/v1_create_subscription_checkout_session_request.py +55 -3
  51. lightning_sdk/lightning_cloud/openapi/models/v1_function_call.py +149 -0
  52. lightning_sdk/lightning_cloud/openapi/models/{v1_get_clickhouse_assistant_session_daily_aggregated_response.py → v1_get_assistant_session_daily_aggregated_response.py} +22 -22
  53. lightning_sdk/lightning_cloud/openapi/models/v1_get_cluster_health_response.py +149 -0
  54. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +27 -1
  55. lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +27 -1
  56. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +105 -1
  57. lightning_sdk/lightning_cloud/openapi/models/v1_like_status.py +104 -0
  58. lightning_sdk/lightning_cloud/openapi/models/v1_list_published_managed_endpoints_response.py +123 -0
  59. lightning_sdk/lightning_cloud/openapi/models/v1_managed_endpoint.py +27 -1
  60. lightning_sdk/lightning_cloud/openapi/models/v1_managed_model.py +95 -17
  61. lightning_sdk/lightning_cloud/openapi/models/v1_message.py +27 -1
  62. lightning_sdk/lightning_cloud/openapi/models/v1_quote_subscription_response.py +27 -1
  63. lightning_sdk/lightning_cloud/openapi/models/v1_resource_visibility.py +27 -1
  64. lightning_sdk/lightning_cloud/openapi/models/v1_response_choice.py +29 -3
  65. lightning_sdk/lightning_cloud/openapi/models/v1_schedule.py +79 -1
  66. lightning_sdk/lightning_cloud/openapi/models/v1_service_health.py +27 -1
  67. lightning_sdk/lightning_cloud/openapi/models/v1_slurm_v1.py +79 -1
  68. lightning_sdk/lightning_cloud/openapi/models/v1_slurm_v1_status.py +79 -1
  69. lightning_sdk/lightning_cloud/openapi/models/v1_tool_call.py +175 -0
  70. lightning_sdk/lightning_cloud/openapi/models/v1_update_conversation_like_response.py +149 -0
  71. lightning_sdk/lightning_cloud/openapi/models/v1_update_conversation_message_like_response.py +149 -0
  72. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +79 -313
  73. lightning_sdk/lightning_cloud/openapi/models/v1_volume_state.py +1 -0
  74. lightning_sdk/llm/llm.py +69 -11
  75. lightning_sdk/llm/public_assistants.json +32 -8
  76. lightning_sdk/machine.py +151 -43
  77. lightning_sdk/mmt/base.py +20 -2
  78. lightning_sdk/mmt/mmt.py +25 -3
  79. lightning_sdk/mmt/v1.py +7 -1
  80. lightning_sdk/mmt/v2.py +27 -3
  81. lightning_sdk/models.py +1 -1
  82. lightning_sdk/organization.py +4 -0
  83. lightning_sdk/pipeline/pipeline.py +16 -5
  84. lightning_sdk/pipeline/printer.py +5 -3
  85. lightning_sdk/pipeline/schedule.py +844 -1
  86. lightning_sdk/pipeline/steps.py +19 -4
  87. lightning_sdk/sandbox.py +4 -1
  88. lightning_sdk/serve.py +2 -0
  89. lightning_sdk/studio.py +91 -44
  90. lightning_sdk/teamspace.py +19 -10
  91. lightning_sdk/utils/resolve.py +37 -2
  92. {lightning_sdk-2025.7.17.dist-info → lightning_sdk-2025.7.30rc0.dist-info}/METADATA +7 -5
  93. {lightning_sdk-2025.7.17.dist-info → lightning_sdk-2025.7.30rc0.dist-info}/RECORD +98 -85
  94. lightning_sdk/api/cluster_api.py +0 -119
  95. /lightning_sdk/cli/{inspect.py → inspection.py} +0 -0
  96. {lightning_sdk-2025.7.17.dist-info → lightning_sdk-2025.7.30rc0.dist-info}/LICENSE +0 -0
  97. {lightning_sdk-2025.7.17.dist-info → lightning_sdk-2025.7.30rc0.dist-info}/WHEEL +0 -0
  98. {lightning_sdk-2025.7.17.dist-info → lightning_sdk-2025.7.30rc0.dist-info}/entry_points.txt +0 -0
  99. {lightning_sdk-2025.7.17.dist-info → lightning_sdk-2025.7.30rc0.dist-info}/top_level.txt +0 -0
@@ -42,43 +42,58 @@ class ProjectIdSchedulesBody(object):
42
42
  """
43
43
  swagger_types = {
44
44
  'action_type': 'V1ScheduleActionType',
45
+ 'command': 'str',
45
46
  'cron_expression': 'str',
46
47
  'display_name': 'str',
48
+ 'parallel_runs': 'bool',
47
49
  'parent_resource_id': 'str',
48
50
  'resource_id': 'str',
49
- 'resource_type': 'V1ScheduleResourceType'
51
+ 'resource_type': 'V1ScheduleResourceType',
52
+ 'timezone': 'str'
50
53
  }
51
54
 
52
55
  attribute_map = {
53
56
  'action_type': 'actionType',
57
+ 'command': 'command',
54
58
  'cron_expression': 'cronExpression',
55
59
  'display_name': 'displayName',
60
+ 'parallel_runs': 'parallelRuns',
56
61
  'parent_resource_id': 'parentResourceId',
57
62
  'resource_id': 'resourceId',
58
- 'resource_type': 'resourceType'
63
+ 'resource_type': 'resourceType',
64
+ 'timezone': 'timezone'
59
65
  }
60
66
 
61
- def __init__(self, action_type: 'V1ScheduleActionType' =None, cron_expression: 'str' =None, display_name: 'str' =None, parent_resource_id: 'str' =None, resource_id: 'str' =None, resource_type: 'V1ScheduleResourceType' =None): # noqa: E501
67
+ def __init__(self, action_type: 'V1ScheduleActionType' =None, command: 'str' =None, cron_expression: 'str' =None, display_name: 'str' =None, parallel_runs: 'bool' =None, parent_resource_id: 'str' =None, resource_id: 'str' =None, resource_type: 'V1ScheduleResourceType' =None, timezone: 'str' =None): # noqa: E501
62
68
  """ProjectIdSchedulesBody - a model defined in Swagger""" # noqa: E501
63
69
  self._action_type = None
70
+ self._command = None
64
71
  self._cron_expression = None
65
72
  self._display_name = None
73
+ self._parallel_runs = None
66
74
  self._parent_resource_id = None
67
75
  self._resource_id = None
68
76
  self._resource_type = None
77
+ self._timezone = None
69
78
  self.discriminator = None
70
79
  if action_type is not None:
71
80
  self.action_type = action_type
81
+ if command is not None:
82
+ self.command = command
72
83
  if cron_expression is not None:
73
84
  self.cron_expression = cron_expression
74
85
  if display_name is not None:
75
86
  self.display_name = display_name
87
+ if parallel_runs is not None:
88
+ self.parallel_runs = parallel_runs
76
89
  if parent_resource_id is not None:
77
90
  self.parent_resource_id = parent_resource_id
78
91
  if resource_id is not None:
79
92
  self.resource_id = resource_id
80
93
  if resource_type is not None:
81
94
  self.resource_type = resource_type
95
+ if timezone is not None:
96
+ self.timezone = timezone
82
97
 
83
98
  @property
84
99
  def action_type(self) -> 'V1ScheduleActionType':
@@ -101,6 +116,27 @@ class ProjectIdSchedulesBody(object):
101
116
 
102
117
  self._action_type = action_type
103
118
 
119
+ @property
120
+ def command(self) -> 'str':
121
+ """Gets the command of this ProjectIdSchedulesBody. # noqa: E501
122
+
123
+
124
+ :return: The command of this ProjectIdSchedulesBody. # noqa: E501
125
+ :rtype: str
126
+ """
127
+ return self._command
128
+
129
+ @command.setter
130
+ def command(self, command: 'str'):
131
+ """Sets the command of this ProjectIdSchedulesBody.
132
+
133
+
134
+ :param command: The command of this ProjectIdSchedulesBody. # noqa: E501
135
+ :type: str
136
+ """
137
+
138
+ self._command = command
139
+
104
140
  @property
105
141
  def cron_expression(self) -> 'str':
106
142
  """Gets the cron_expression of this ProjectIdSchedulesBody. # noqa: E501
@@ -143,6 +179,27 @@ class ProjectIdSchedulesBody(object):
143
179
 
144
180
  self._display_name = display_name
145
181
 
182
+ @property
183
+ def parallel_runs(self) -> 'bool':
184
+ """Gets the parallel_runs of this ProjectIdSchedulesBody. # noqa: E501
185
+
186
+
187
+ :return: The parallel_runs of this ProjectIdSchedulesBody. # noqa: E501
188
+ :rtype: bool
189
+ """
190
+ return self._parallel_runs
191
+
192
+ @parallel_runs.setter
193
+ def parallel_runs(self, parallel_runs: 'bool'):
194
+ """Sets the parallel_runs of this ProjectIdSchedulesBody.
195
+
196
+
197
+ :param parallel_runs: The parallel_runs of this ProjectIdSchedulesBody. # noqa: E501
198
+ :type: bool
199
+ """
200
+
201
+ self._parallel_runs = parallel_runs
202
+
146
203
  @property
147
204
  def parent_resource_id(self) -> 'str':
148
205
  """Gets the parent_resource_id of this ProjectIdSchedulesBody. # noqa: E501
@@ -206,6 +263,27 @@ class ProjectIdSchedulesBody(object):
206
263
 
207
264
  self._resource_type = resource_type
208
265
 
266
+ @property
267
+ def timezone(self) -> 'str':
268
+ """Gets the timezone of this ProjectIdSchedulesBody. # noqa: E501
269
+
270
+
271
+ :return: The timezone of this ProjectIdSchedulesBody. # noqa: E501
272
+ :rtype: str
273
+ """
274
+ return self._timezone
275
+
276
+ @timezone.setter
277
+ def timezone(self, timezone: 'str'):
278
+ """Sets the timezone of this ProjectIdSchedulesBody.
279
+
280
+
281
+ :param timezone: The timezone of this ProjectIdSchedulesBody. # noqa: E501
282
+ :type: str
283
+ """
284
+
285
+ self._timezone = timezone
286
+
209
287
  def to_dict(self) -> dict:
210
288
  """Returns the model properties as a dict"""
211
289
  result = {}
@@ -42,15 +42,18 @@ class SchedulesIdBody(object):
42
42
  """
43
43
  swagger_types = {
44
44
  'action_type': 'V1ScheduleActionType',
45
+ 'command': 'str',
45
46
  'created_at': 'datetime',
46
47
  'cron_expression': 'str',
47
48
  'display_name': 'str',
48
49
  'name': 'str',
49
50
  'next': 'datetime',
51
+ 'parallel_runs': 'bool',
50
52
  'parent_resource_id': 'str',
51
53
  'resource_id': 'str',
52
54
  'resource_type': 'V1ScheduleResourceType',
53
55
  'state': 'str',
56
+ 'timezone': 'str',
54
57
  'total': 'int',
55
58
  'updated_at': 'datetime',
56
59
  'user_id': 'str'
@@ -58,38 +61,46 @@ class SchedulesIdBody(object):
58
61
 
59
62
  attribute_map = {
60
63
  'action_type': 'actionType',
64
+ 'command': 'command',
61
65
  'created_at': 'createdAt',
62
66
  'cron_expression': 'cronExpression',
63
67
  'display_name': 'displayName',
64
68
  'name': 'name',
65
69
  'next': 'next',
70
+ 'parallel_runs': 'parallelRuns',
66
71
  'parent_resource_id': 'parentResourceId',
67
72
  'resource_id': 'resourceId',
68
73
  'resource_type': 'resourceType',
69
74
  'state': 'state',
75
+ 'timezone': 'timezone',
70
76
  'total': 'total',
71
77
  'updated_at': 'updatedAt',
72
78
  'user_id': 'userId'
73
79
  }
74
80
 
75
- def __init__(self, action_type: 'V1ScheduleActionType' =None, created_at: 'datetime' =None, cron_expression: 'str' =None, display_name: 'str' =None, name: 'str' =None, next: 'datetime' =None, parent_resource_id: 'str' =None, resource_id: 'str' =None, resource_type: 'V1ScheduleResourceType' =None, state: 'str' =None, total: 'int' =None, updated_at: 'datetime' =None, user_id: 'str' =None): # noqa: E501
81
+ def __init__(self, action_type: 'V1ScheduleActionType' =None, command: 'str' =None, created_at: 'datetime' =None, cron_expression: 'str' =None, display_name: 'str' =None, name: 'str' =None, next: 'datetime' =None, parallel_runs: 'bool' =None, parent_resource_id: 'str' =None, resource_id: 'str' =None, resource_type: 'V1ScheduleResourceType' =None, state: 'str' =None, timezone: 'str' =None, total: 'int' =None, updated_at: 'datetime' =None, user_id: 'str' =None): # noqa: E501
76
82
  """SchedulesIdBody - a model defined in Swagger""" # noqa: E501
77
83
  self._action_type = None
84
+ self._command = None
78
85
  self._created_at = None
79
86
  self._cron_expression = None
80
87
  self._display_name = None
81
88
  self._name = None
82
89
  self._next = None
90
+ self._parallel_runs = None
83
91
  self._parent_resource_id = None
84
92
  self._resource_id = None
85
93
  self._resource_type = None
86
94
  self._state = None
95
+ self._timezone = None
87
96
  self._total = None
88
97
  self._updated_at = None
89
98
  self._user_id = None
90
99
  self.discriminator = None
91
100
  if action_type is not None:
92
101
  self.action_type = action_type
102
+ if command is not None:
103
+ self.command = command
93
104
  if created_at is not None:
94
105
  self.created_at = created_at
95
106
  if cron_expression is not None:
@@ -100,6 +111,8 @@ class SchedulesIdBody(object):
100
111
  self.name = name
101
112
  if next is not None:
102
113
  self.next = next
114
+ if parallel_runs is not None:
115
+ self.parallel_runs = parallel_runs
103
116
  if parent_resource_id is not None:
104
117
  self.parent_resource_id = parent_resource_id
105
118
  if resource_id is not None:
@@ -108,6 +121,8 @@ class SchedulesIdBody(object):
108
121
  self.resource_type = resource_type
109
122
  if state is not None:
110
123
  self.state = state
124
+ if timezone is not None:
125
+ self.timezone = timezone
111
126
  if total is not None:
112
127
  self.total = total
113
128
  if updated_at is not None:
@@ -136,6 +151,27 @@ class SchedulesIdBody(object):
136
151
 
137
152
  self._action_type = action_type
138
153
 
154
+ @property
155
+ def command(self) -> 'str':
156
+ """Gets the command of this SchedulesIdBody. # noqa: E501
157
+
158
+
159
+ :return: The command of this SchedulesIdBody. # noqa: E501
160
+ :rtype: str
161
+ """
162
+ return self._command
163
+
164
+ @command.setter
165
+ def command(self, command: 'str'):
166
+ """Sets the command of this SchedulesIdBody.
167
+
168
+
169
+ :param command: The command of this SchedulesIdBody. # noqa: E501
170
+ :type: str
171
+ """
172
+
173
+ self._command = command
174
+
139
175
  @property
140
176
  def created_at(self) -> 'datetime':
141
177
  """Gets the created_at of this SchedulesIdBody. # noqa: E501
@@ -241,6 +277,27 @@ class SchedulesIdBody(object):
241
277
 
242
278
  self._next = next
243
279
 
280
+ @property
281
+ def parallel_runs(self) -> 'bool':
282
+ """Gets the parallel_runs of this SchedulesIdBody. # noqa: E501
283
+
284
+
285
+ :return: The parallel_runs of this SchedulesIdBody. # noqa: E501
286
+ :rtype: bool
287
+ """
288
+ return self._parallel_runs
289
+
290
+ @parallel_runs.setter
291
+ def parallel_runs(self, parallel_runs: 'bool'):
292
+ """Sets the parallel_runs of this SchedulesIdBody.
293
+
294
+
295
+ :param parallel_runs: The parallel_runs of this SchedulesIdBody. # noqa: E501
296
+ :type: bool
297
+ """
298
+
299
+ self._parallel_runs = parallel_runs
300
+
244
301
  @property
245
302
  def parent_resource_id(self) -> 'str':
246
303
  """Gets the parent_resource_id of this SchedulesIdBody. # noqa: E501
@@ -325,6 +382,27 @@ class SchedulesIdBody(object):
325
382
 
326
383
  self._state = state
327
384
 
385
+ @property
386
+ def timezone(self) -> 'str':
387
+ """Gets the timezone of this SchedulesIdBody. # noqa: E501
388
+
389
+
390
+ :return: The timezone of this SchedulesIdBody. # noqa: E501
391
+ :rtype: str
392
+ """
393
+ return self._timezone
394
+
395
+ @timezone.setter
396
+ def timezone(self, timezone: 'str'):
397
+ """Sets the timezone of this SchedulesIdBody.
398
+
399
+
400
+ :param timezone: The timezone of this SchedulesIdBody. # noqa: E501
401
+ :type: str
402
+ """
403
+
404
+ self._timezone = timezone
405
+
328
406
  @property
329
407
  def total(self) -> 'int':
330
408
  """Gets the total of this SchedulesIdBody. # noqa: E501
@@ -0,0 +1,201 @@
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 UserIdUpgradetriggerBody(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
+ 'feature_key': 'str',
45
+ 'metadata': 'str',
46
+ 'org_id': 'str',
47
+ 'project_id': 'str'
48
+ }
49
+
50
+ attribute_map = {
51
+ 'feature_key': 'featureKey',
52
+ 'metadata': 'metadata',
53
+ 'org_id': 'orgId',
54
+ 'project_id': 'projectId'
55
+ }
56
+
57
+ def __init__(self, feature_key: 'str' =None, metadata: 'str' =None, org_id: 'str' =None, project_id: 'str' =None): # noqa: E501
58
+ """UserIdUpgradetriggerBody - a model defined in Swagger""" # noqa: E501
59
+ self._feature_key = None
60
+ self._metadata = None
61
+ self._org_id = None
62
+ self._project_id = None
63
+ self.discriminator = None
64
+ if feature_key is not None:
65
+ self.feature_key = feature_key
66
+ if metadata is not None:
67
+ self.metadata = metadata
68
+ if org_id is not None:
69
+ self.org_id = org_id
70
+ if project_id is not None:
71
+ self.project_id = project_id
72
+
73
+ @property
74
+ def feature_key(self) -> 'str':
75
+ """Gets the feature_key of this UserIdUpgradetriggerBody. # noqa: E501
76
+
77
+
78
+ :return: The feature_key of this UserIdUpgradetriggerBody. # noqa: E501
79
+ :rtype: str
80
+ """
81
+ return self._feature_key
82
+
83
+ @feature_key.setter
84
+ def feature_key(self, feature_key: 'str'):
85
+ """Sets the feature_key of this UserIdUpgradetriggerBody.
86
+
87
+
88
+ :param feature_key: The feature_key of this UserIdUpgradetriggerBody. # noqa: E501
89
+ :type: str
90
+ """
91
+
92
+ self._feature_key = feature_key
93
+
94
+ @property
95
+ def metadata(self) -> 'str':
96
+ """Gets the metadata of this UserIdUpgradetriggerBody. # noqa: E501
97
+
98
+
99
+ :return: The metadata of this UserIdUpgradetriggerBody. # noqa: E501
100
+ :rtype: str
101
+ """
102
+ return self._metadata
103
+
104
+ @metadata.setter
105
+ def metadata(self, metadata: 'str'):
106
+ """Sets the metadata of this UserIdUpgradetriggerBody.
107
+
108
+
109
+ :param metadata: The metadata of this UserIdUpgradetriggerBody. # noqa: E501
110
+ :type: str
111
+ """
112
+
113
+ self._metadata = metadata
114
+
115
+ @property
116
+ def org_id(self) -> 'str':
117
+ """Gets the org_id of this UserIdUpgradetriggerBody. # noqa: E501
118
+
119
+
120
+ :return: The org_id of this UserIdUpgradetriggerBody. # 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 UserIdUpgradetriggerBody.
128
+
129
+
130
+ :param org_id: The org_id of this UserIdUpgradetriggerBody. # noqa: E501
131
+ :type: str
132
+ """
133
+
134
+ self._org_id = org_id
135
+
136
+ @property
137
+ def project_id(self) -> 'str':
138
+ """Gets the project_id of this UserIdUpgradetriggerBody. # noqa: E501
139
+
140
+
141
+ :return: The project_id of this UserIdUpgradetriggerBody. # noqa: E501
142
+ :rtype: str
143
+ """
144
+ return self._project_id
145
+
146
+ @project_id.setter
147
+ def project_id(self, project_id: 'str'):
148
+ """Sets the project_id of this UserIdUpgradetriggerBody.
149
+
150
+
151
+ :param project_id: The project_id of this UserIdUpgradetriggerBody. # noqa: E501
152
+ :type: str
153
+ """
154
+
155
+ self._project_id = project_id
156
+
157
+ def to_dict(self) -> dict:
158
+ """Returns the model properties as a dict"""
159
+ result = {}
160
+
161
+ for attr, _ in six.iteritems(self.swagger_types):
162
+ value = getattr(self, attr)
163
+ if isinstance(value, list):
164
+ result[attr] = list(map(
165
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
166
+ value
167
+ ))
168
+ elif hasattr(value, "to_dict"):
169
+ result[attr] = value.to_dict()
170
+ elif isinstance(value, dict):
171
+ result[attr] = dict(map(
172
+ lambda item: (item[0], item[1].to_dict())
173
+ if hasattr(item[1], "to_dict") else item,
174
+ value.items()
175
+ ))
176
+ else:
177
+ result[attr] = value
178
+ if issubclass(UserIdUpgradetriggerBody, dict):
179
+ for key, value in self.items():
180
+ result[key] = value
181
+
182
+ return result
183
+
184
+ def to_str(self) -> str:
185
+ """Returns the string representation of the model"""
186
+ return pprint.pformat(self.to_dict())
187
+
188
+ def __repr__(self) -> str:
189
+ """For `print` and `pprint`"""
190
+ return self.to_str()
191
+
192
+ def __eq__(self, other: 'UserIdUpgradetriggerBody') -> bool:
193
+ """Returns true if both objects are equal"""
194
+ if not isinstance(other, UserIdUpgradetriggerBody):
195
+ return False
196
+
197
+ return self.__dict__ == other.__dict__
198
+
199
+ def __ne__(self, other: 'UserIdUpgradetriggerBody') -> bool:
200
+ """Returns true if both objects are not equal"""
201
+ return not self == other