lightning-sdk 0.1.55__py3-none-any.whl → 0.1.57__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 (72) hide show
  1. lightning_sdk/__init__.py +3 -2
  2. lightning_sdk/ai_hub.py +22 -0
  3. lightning_sdk/api/ai_hub_api.py +21 -2
  4. lightning_sdk/api/deployment_api.py +4 -3
  5. lightning_sdk/api/job_api.py +5 -10
  6. lightning_sdk/api/mmt_api.py +1 -4
  7. lightning_sdk/api/studio_api.py +5 -7
  8. lightning_sdk/api/teamspace_api.py +7 -0
  9. lightning_sdk/api/utils.py +1 -27
  10. lightning_sdk/cli/ai_hub.py +61 -10
  11. lightning_sdk/cli/configure.py +137 -0
  12. lightning_sdk/cli/connect.py +47 -0
  13. lightning_sdk/cli/delete.py +83 -32
  14. lightning_sdk/cli/download.py +177 -90
  15. lightning_sdk/cli/entrypoint.py +50 -15
  16. lightning_sdk/cli/generate.py +51 -42
  17. lightning_sdk/cli/inspect.py +45 -3
  18. lightning_sdk/cli/jobs_menu.py +2 -1
  19. lightning_sdk/cli/list.py +139 -55
  20. lightning_sdk/cli/mmts_menu.py +2 -1
  21. lightning_sdk/cli/run.py +3 -9
  22. lightning_sdk/cli/serve.py +1 -2
  23. lightning_sdk/cli/start.py +2 -2
  24. lightning_sdk/cli/stop.py +5 -3
  25. lightning_sdk/cli/studios_menu.py +24 -1
  26. lightning_sdk/cli/switch.py +2 -2
  27. lightning_sdk/cli/teamspace_menu.py +2 -1
  28. lightning_sdk/cli/upload.py +6 -4
  29. lightning_sdk/helpers.py +20 -0
  30. lightning_sdk/job/job.py +1 -1
  31. lightning_sdk/lightning_cloud/openapi/__init__.py +9 -0
  32. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +105 -0
  33. lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +105 -0
  34. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +226 -0
  35. lightning_sdk/lightning_cloud/openapi/api/lit_logger_service_api.py +4 -4
  36. lightning_sdk/lightning_cloud/openapi/api/lit_registry_service_api.py +7 -3
  37. lightning_sdk/lightning_cloud/openapi/api/projects_service_api.py +1 -5
  38. lightning_sdk/lightning_cloud/openapi/models/__init__.py +9 -0
  39. lightning_sdk/lightning_cloud/openapi/models/agents_id_body.py +105 -1
  40. lightning_sdk/lightning_cloud/openapi/models/deployments_id_body.py +29 -3
  41. lightning_sdk/lightning_cloud/openapi/models/id_reportrestarttimings_body.py +123 -0
  42. lightning_sdk/lightning_cloud/openapi/models/id_visibility_body1.py +149 -0
  43. lightning_sdk/lightning_cloud/openapi/models/model_id_visibility_body.py +27 -1
  44. lightning_sdk/lightning_cloud/openapi/models/project_id_litregistry_body.py +2 -0
  45. lightning_sdk/lightning_cloud/openapi/models/setup.py +149 -0
  46. lightning_sdk/lightning_cloud/openapi/models/v1_assistant.py +105 -1
  47. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +27 -1
  48. lightning_sdk/lightning_cloud/openapi/models/v1_deployment.py +29 -3
  49. lightning_sdk/lightning_cloud/openapi/models/v1_gcp_data_connection_setup.py +123 -0
  50. lightning_sdk/lightning_cloud/openapi/models/v1_get_cluster_accelerator_demand_response.py +123 -0
  51. lightning_sdk/lightning_cloud/openapi/models/v1_job.py +27 -1
  52. lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +27 -1
  53. lightning_sdk/lightning_cloud/openapi/models/v1_lit_registry_artifact.py +27 -1
  54. lightning_sdk/lightning_cloud/openapi/models/v1_lit_registry_project.py +8 -0
  55. lightning_sdk/lightning_cloud/openapi/models/v1_lit_repository.py +27 -1
  56. lightning_sdk/lightning_cloud/openapi/models/v1_report_restart_timings_response.py +97 -0
  57. lightning_sdk/lightning_cloud/openapi/models/v1_restart_timing.py +175 -0
  58. lightning_sdk/lightning_cloud/openapi/models/v1_setup_data_connection_response.py +123 -0
  59. lightning_sdk/lightning_cloud/openapi/models/v1_update_deployment_visibility_response.py +97 -0
  60. lightning_sdk/lightning_cloud/openapi/models/v1_update_metrics_stream_visibility_response.py +27 -1
  61. lightning_sdk/lightning_cloud/openapi/models/v1_update_model_visibility_response.py +27 -1
  62. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +79 -1
  63. lightning_sdk/lightning_cloud/openapi/models/v1_validate_deployment_image_request.py +27 -1
  64. lightning_sdk/machine.py +59 -27
  65. lightning_sdk/studio.py +5 -1
  66. lightning_sdk/teamspace.py +25 -0
  67. {lightning_sdk-0.1.55.dist-info → lightning_sdk-0.1.57.dist-info}/METADATA +3 -1
  68. {lightning_sdk-0.1.55.dist-info → lightning_sdk-0.1.57.dist-info}/RECORD +72 -61
  69. {lightning_sdk-0.1.55.dist-info → lightning_sdk-0.1.57.dist-info}/LICENSE +0 -0
  70. {lightning_sdk-0.1.55.dist-info → lightning_sdk-0.1.57.dist-info}/WHEEL +0 -0
  71. {lightning_sdk-0.1.55.dist-info → lightning_sdk-0.1.57.dist-info}/entry_points.txt +0 -0
  72. {lightning_sdk-0.1.55.dist-info → lightning_sdk-0.1.57.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,123 @@
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 V1GetClusterAcceleratorDemandResponse(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
+ 'num_waiting': 'str'
45
+ }
46
+
47
+ attribute_map = {
48
+ 'num_waiting': 'numWaiting'
49
+ }
50
+
51
+ def __init__(self, num_waiting: 'str' =None): # noqa: E501
52
+ """V1GetClusterAcceleratorDemandResponse - a model defined in Swagger""" # noqa: E501
53
+ self._num_waiting = None
54
+ self.discriminator = None
55
+ if num_waiting is not None:
56
+ self.num_waiting = num_waiting
57
+
58
+ @property
59
+ def num_waiting(self) -> 'str':
60
+ """Gets the num_waiting of this V1GetClusterAcceleratorDemandResponse. # noqa: E501
61
+
62
+
63
+ :return: The num_waiting of this V1GetClusterAcceleratorDemandResponse. # noqa: E501
64
+ :rtype: str
65
+ """
66
+ return self._num_waiting
67
+
68
+ @num_waiting.setter
69
+ def num_waiting(self, num_waiting: 'str'):
70
+ """Sets the num_waiting of this V1GetClusterAcceleratorDemandResponse.
71
+
72
+
73
+ :param num_waiting: The num_waiting of this V1GetClusterAcceleratorDemandResponse. # noqa: E501
74
+ :type: str
75
+ """
76
+
77
+ self._num_waiting = num_waiting
78
+
79
+ def to_dict(self) -> dict:
80
+ """Returns the model properties as a dict"""
81
+ result = {}
82
+
83
+ for attr, _ in six.iteritems(self.swagger_types):
84
+ value = getattr(self, attr)
85
+ if isinstance(value, list):
86
+ result[attr] = list(map(
87
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
88
+ value
89
+ ))
90
+ elif hasattr(value, "to_dict"):
91
+ result[attr] = value.to_dict()
92
+ elif isinstance(value, dict):
93
+ result[attr] = dict(map(
94
+ lambda item: (item[0], item[1].to_dict())
95
+ if hasattr(item[1], "to_dict") else item,
96
+ value.items()
97
+ ))
98
+ else:
99
+ result[attr] = value
100
+ if issubclass(V1GetClusterAcceleratorDemandResponse, dict):
101
+ for key, value in self.items():
102
+ result[key] = value
103
+
104
+ return result
105
+
106
+ def to_str(self) -> str:
107
+ """Returns the string representation of the model"""
108
+ return pprint.pformat(self.to_dict())
109
+
110
+ def __repr__(self) -> str:
111
+ """For `print` and `pprint`"""
112
+ return self.to_str()
113
+
114
+ def __eq__(self, other: 'V1GetClusterAcceleratorDemandResponse') -> bool:
115
+ """Returns true if both objects are equal"""
116
+ if not isinstance(other, V1GetClusterAcceleratorDemandResponse):
117
+ return False
118
+
119
+ return self.__dict__ == other.__dict__
120
+
121
+ def __ne__(self, other: 'V1GetClusterAcceleratorDemandResponse') -> bool:
122
+ """Returns true if both objects are not equal"""
123
+ return not self == other
@@ -54,6 +54,7 @@ class V1Job(object):
54
54
  'ready_at': 'datetime',
55
55
  'release_id': 'str',
56
56
  'restart_count': 'int',
57
+ 'restart_timings': 'list[V1RestartTiming]',
57
58
  'server_error': 'str',
58
59
  'spec': 'V1JobSpec',
59
60
  'started_at': 'datetime',
@@ -82,6 +83,7 @@ class V1Job(object):
82
83
  'ready_at': 'readyAt',
83
84
  'release_id': 'releaseId',
84
85
  'restart_count': 'restartCount',
86
+ 'restart_timings': 'restartTimings',
85
87
  'server_error': 'serverError',
86
88
  'spec': 'spec',
87
89
  'started_at': 'startedAt',
@@ -96,7 +98,7 @@ class V1Job(object):
96
98
  'user_logs_started_at': 'userLogsStartedAt'
97
99
  }
98
100
 
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
101
+ 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, restart_timings: 'list[V1RestartTiming]' =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
100
102
  """V1Job - a model defined in Swagger""" # noqa: E501
101
103
  self._created_at = None
102
104
  self._deployment_id = None
@@ -111,6 +113,7 @@ class V1Job(object):
111
113
  self._ready_at = None
112
114
  self._release_id = None
113
115
  self._restart_count = None
116
+ self._restart_timings = None
114
117
  self._server_error = None
115
118
  self._spec = None
116
119
  self._started_at = None
@@ -150,6 +153,8 @@ class V1Job(object):
150
153
  self.release_id = release_id
151
154
  if restart_count is not None:
152
155
  self.restart_count = restart_count
156
+ if restart_timings is not None:
157
+ self.restart_timings = restart_timings
153
158
  if server_error is not None:
154
159
  self.server_error = server_error
155
160
  if spec is not None:
@@ -450,6 +455,27 @@ class V1Job(object):
450
455
 
451
456
  self._restart_count = restart_count
452
457
 
458
+ @property
459
+ def restart_timings(self) -> 'list[V1RestartTiming]':
460
+ """Gets the restart_timings of this V1Job. # noqa: E501
461
+
462
+
463
+ :return: The restart_timings of this V1Job. # noqa: E501
464
+ :rtype: list[V1RestartTiming]
465
+ """
466
+ return self._restart_timings
467
+
468
+ @restart_timings.setter
469
+ def restart_timings(self, restart_timings: 'list[V1RestartTiming]'):
470
+ """Sets the restart_timings of this V1Job.
471
+
472
+
473
+ :param restart_timings: The restart_timings of this V1Job. # noqa: E501
474
+ :type: list[V1RestartTiming]
475
+ """
476
+
477
+ self._restart_timings = restart_timings
478
+
453
479
  @property
454
480
  def server_error(self) -> 'str':
455
481
  """Gets the server_error of this V1Job. # noqa: E501
@@ -57,6 +57,7 @@ class V1JobSpec(object):
57
57
  'instance_type': 'str',
58
58
  'modified_volume': 'bool',
59
59
  'path_mappings': 'list[V1PathMapping]',
60
+ 'quantity': 'int',
60
61
  'readiness_probe': 'V1JobHealthCheckConfig',
61
62
  'regions': 'list[str]',
62
63
  'requested_run_duration_seconds': 'str',
@@ -84,6 +85,7 @@ class V1JobSpec(object):
84
85
  'instance_type': 'instanceType',
85
86
  'modified_volume': 'modifiedVolume',
86
87
  'path_mappings': 'pathMappings',
88
+ 'quantity': 'quantity',
87
89
  'readiness_probe': 'readinessProbe',
88
90
  'regions': 'regions',
89
91
  'requested_run_duration_seconds': 'requestedRunDurationSeconds',
@@ -94,7 +96,7 @@ class V1JobSpec(object):
94
96
  'volumes': 'volumes'
95
97
  }
96
98
 
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
99
+ 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, quantity: 'int' =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
98
100
  """V1JobSpec - a model defined in Swagger""" # noqa: E501
99
101
  self._artifacts_destination = None
100
102
  self._artifacts_source = None
@@ -112,6 +114,7 @@ class V1JobSpec(object):
112
114
  self._instance_type = None
113
115
  self._modified_volume = None
114
116
  self._path_mappings = None
117
+ self._quantity = None
115
118
  self._readiness_probe = None
116
119
  self._regions = None
117
120
  self._requested_run_duration_seconds = None
@@ -153,6 +156,8 @@ class V1JobSpec(object):
153
156
  self.modified_volume = modified_volume
154
157
  if path_mappings is not None:
155
158
  self.path_mappings = path_mappings
159
+ if quantity is not None:
160
+ self.quantity = quantity
156
161
  if readiness_probe is not None:
157
162
  self.readiness_probe = readiness_probe
158
163
  if regions is not None:
@@ -506,6 +511,27 @@ class V1JobSpec(object):
506
511
 
507
512
  self._path_mappings = path_mappings
508
513
 
514
+ @property
515
+ def quantity(self) -> 'int':
516
+ """Gets the quantity of this V1JobSpec. # noqa: E501
517
+
518
+
519
+ :return: The quantity of this V1JobSpec. # noqa: E501
520
+ :rtype: int
521
+ """
522
+ return self._quantity
523
+
524
+ @quantity.setter
525
+ def quantity(self, quantity: 'int'):
526
+ """Sets the quantity of this V1JobSpec.
527
+
528
+
529
+ :param quantity: The quantity of this V1JobSpec. # noqa: E501
530
+ :type: int
531
+ """
532
+
533
+ self._quantity = quantity
534
+
509
535
  @property
510
536
  def readiness_probe(self) -> 'V1JobHealthCheckConfig':
511
537
  """Gets the readiness_probe of this V1JobSpec. # noqa: E501
@@ -42,6 +42,7 @@ class V1LitRegistryArtifact(object):
42
42
  """
43
43
  swagger_types = {
44
44
  'full_hash_digest': 'str',
45
+ 'location': 'str',
45
46
  'pull_time': 'datetime',
46
47
  'push_time': 'datetime',
47
48
  'short_hash_digest': 'str',
@@ -51,6 +52,7 @@ class V1LitRegistryArtifact(object):
51
52
 
52
53
  attribute_map = {
53
54
  'full_hash_digest': 'fullHashDigest',
55
+ 'location': 'location',
54
56
  'pull_time': 'pullTime',
55
57
  'push_time': 'pushTime',
56
58
  'short_hash_digest': 'shortHashDigest',
@@ -58,9 +60,10 @@ class V1LitRegistryArtifact(object):
58
60
  'tag_name': 'tagName'
59
61
  }
60
62
 
61
- def __init__(self, full_hash_digest: 'str' =None, pull_time: 'datetime' =None, push_time: 'datetime' =None, short_hash_digest: 'str' =None, size: 'str' =None, tag_name: 'str' =None): # noqa: E501
63
+ def __init__(self, full_hash_digest: 'str' =None, location: 'str' =None, pull_time: 'datetime' =None, push_time: 'datetime' =None, short_hash_digest: 'str' =None, size: 'str' =None, tag_name: 'str' =None): # noqa: E501
62
64
  """V1LitRegistryArtifact - a model defined in Swagger""" # noqa: E501
63
65
  self._full_hash_digest = None
66
+ self._location = None
64
67
  self._pull_time = None
65
68
  self._push_time = None
66
69
  self._short_hash_digest = None
@@ -69,6 +72,8 @@ class V1LitRegistryArtifact(object):
69
72
  self.discriminator = None
70
73
  if full_hash_digest is not None:
71
74
  self.full_hash_digest = full_hash_digest
75
+ if location is not None:
76
+ self.location = location
72
77
  if pull_time is not None:
73
78
  self.pull_time = pull_time
74
79
  if push_time is not None:
@@ -101,6 +106,27 @@ class V1LitRegistryArtifact(object):
101
106
 
102
107
  self._full_hash_digest = full_hash_digest
103
108
 
109
+ @property
110
+ def location(self) -> 'str':
111
+ """Gets the location of this V1LitRegistryArtifact. # noqa: E501
112
+
113
+
114
+ :return: The location of this V1LitRegistryArtifact. # noqa: E501
115
+ :rtype: str
116
+ """
117
+ return self._location
118
+
119
+ @location.setter
120
+ def location(self, location: 'str'):
121
+ """Sets the location of this V1LitRegistryArtifact.
122
+
123
+
124
+ :param location: The location of this V1LitRegistryArtifact. # noqa: E501
125
+ :type: str
126
+ """
127
+
128
+ self._location = location
129
+
104
130
  @property
105
131
  def pull_time(self) -> 'datetime':
106
132
  """Gets the pull_time of this V1LitRegistryArtifact. # noqa: E501
@@ -79,6 +79,7 @@ class V1LitRegistryProject(object):
79
79
  def id(self) -> 'int':
80
80
  """Gets the id of this V1LitRegistryProject. # noqa: E501
81
81
 
82
+ This is the litcr project ID. # noqa: E501
82
83
 
83
84
  :return: The id of this V1LitRegistryProject. # noqa: E501
84
85
  :rtype: int
@@ -89,6 +90,7 @@ class V1LitRegistryProject(object):
89
90
  def id(self, id: 'int'):
90
91
  """Sets the id of this V1LitRegistryProject.
91
92
 
93
+ This is the litcr project ID. # noqa: E501
92
94
 
93
95
  :param id: The id of this V1LitRegistryProject. # noqa: E501
94
96
  :type: int
@@ -121,6 +123,7 @@ class V1LitRegistryProject(object):
121
123
  def project_id(self) -> 'str':
122
124
  """Gets the project_id of this V1LitRegistryProject. # noqa: E501
123
125
 
126
+ This is the lightning AI teamspace project ID. # noqa: E501
124
127
 
125
128
  :return: The project_id of this V1LitRegistryProject. # noqa: E501
126
129
  :rtype: str
@@ -131,6 +134,7 @@ class V1LitRegistryProject(object):
131
134
  def project_id(self, project_id: 'str'):
132
135
  """Sets the project_id of this V1LitRegistryProject.
133
136
 
137
+ This is the lightning AI teamspace project ID. # noqa: E501
134
138
 
135
139
  :param project_id: The project_id of this V1LitRegistryProject. # noqa: E501
136
140
  :type: str
@@ -142,6 +146,7 @@ class V1LitRegistryProject(object):
142
146
  def repo_count(self) -> 'str':
143
147
  """Gets the repo_count of this V1LitRegistryProject. # noqa: E501
144
148
 
149
+ This is how many repositories exist in a project. This will be the same as the number of repository objects we return. # noqa: E501
145
150
 
146
151
  :return: The repo_count of this V1LitRegistryProject. # noqa: E501
147
152
  :rtype: str
@@ -152,6 +157,7 @@ class V1LitRegistryProject(object):
152
157
  def repo_count(self, repo_count: 'str'):
153
158
  """Sets the repo_count of this V1LitRegistryProject.
154
159
 
160
+ This is how many repositories exist in a project. This will be the same as the number of repository objects we return. # noqa: E501
155
161
 
156
162
  :param repo_count: The repo_count of this V1LitRegistryProject. # noqa: E501
157
163
  :type: str
@@ -163,6 +169,7 @@ class V1LitRegistryProject(object):
163
169
  def repositories(self) -> 'list[V1LitRepository]':
164
170
  """Gets the repositories of this V1LitRegistryProject. # noqa: E501
165
171
 
172
+ This is the list of repositories that belong to a project in our registry. # noqa: E501
166
173
 
167
174
  :return: The repositories of this V1LitRegistryProject. # noqa: E501
168
175
  :rtype: list[V1LitRepository]
@@ -173,6 +180,7 @@ class V1LitRegistryProject(object):
173
180
  def repositories(self, repositories: 'list[V1LitRepository]'):
174
181
  """Sets the repositories of this V1LitRegistryProject.
175
182
 
183
+ This is the list of repositories that belong to a project in our registry. # noqa: E501
176
184
 
177
185
  :param repositories: The repositories of this V1LitRegistryProject. # noqa: E501
178
186
  :type: list[V1LitRepository]
@@ -45,6 +45,7 @@ class V1LitRepository(object):
45
45
  'creation_time': 'datetime',
46
46
  'description': 'str',
47
47
  'id': 'str',
48
+ 'latest_artifact': 'V1LitRegistryArtifact',
48
49
  'name': 'str',
49
50
  'pull_count': 'str',
50
51
  'update_time': 'datetime'
@@ -55,17 +56,19 @@ class V1LitRepository(object):
55
56
  'creation_time': 'creationTime',
56
57
  'description': 'description',
57
58
  'id': 'id',
59
+ 'latest_artifact': 'latestArtifact',
58
60
  'name': 'name',
59
61
  'pull_count': 'pullCount',
60
62
  'update_time': 'updateTime'
61
63
  }
62
64
 
63
- def __init__(self, artifact_count: 'str' =None, creation_time: 'datetime' =None, description: 'str' =None, id: 'str' =None, name: 'str' =None, pull_count: 'str' =None, update_time: 'datetime' =None): # noqa: E501
65
+ def __init__(self, artifact_count: 'str' =None, creation_time: 'datetime' =None, description: 'str' =None, id: 'str' =None, latest_artifact: 'V1LitRegistryArtifact' =None, name: 'str' =None, pull_count: 'str' =None, update_time: 'datetime' =None): # noqa: E501
64
66
  """V1LitRepository - a model defined in Swagger""" # noqa: E501
65
67
  self._artifact_count = None
66
68
  self._creation_time = None
67
69
  self._description = None
68
70
  self._id = None
71
+ self._latest_artifact = None
69
72
  self._name = None
70
73
  self._pull_count = None
71
74
  self._update_time = None
@@ -78,6 +81,8 @@ class V1LitRepository(object):
78
81
  self.description = description
79
82
  if id is not None:
80
83
  self.id = id
84
+ if latest_artifact is not None:
85
+ self.latest_artifact = latest_artifact
81
86
  if name is not None:
82
87
  self.name = name
83
88
  if pull_count is not None:
@@ -169,6 +174,27 @@ class V1LitRepository(object):
169
174
 
170
175
  self._id = id
171
176
 
177
+ @property
178
+ def latest_artifact(self) -> 'V1LitRegistryArtifact':
179
+ """Gets the latest_artifact of this V1LitRepository. # noqa: E501
180
+
181
+
182
+ :return: The latest_artifact of this V1LitRepository. # noqa: E501
183
+ :rtype: V1LitRegistryArtifact
184
+ """
185
+ return self._latest_artifact
186
+
187
+ @latest_artifact.setter
188
+ def latest_artifact(self, latest_artifact: 'V1LitRegistryArtifact'):
189
+ """Sets the latest_artifact of this V1LitRepository.
190
+
191
+
192
+ :param latest_artifact: The latest_artifact of this V1LitRepository. # noqa: E501
193
+ :type: V1LitRegistryArtifact
194
+ """
195
+
196
+ self._latest_artifact = latest_artifact
197
+
172
198
  @property
173
199
  def name(self) -> 'str':
174
200
  """Gets the name of this V1LitRepository. # noqa: E501
@@ -0,0 +1,97 @@
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 V1ReportRestartTimingsResponse(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
+ }
45
+
46
+ attribute_map = {
47
+ }
48
+
49
+ def __init__(self): # noqa: E501
50
+ """V1ReportRestartTimingsResponse - a model defined in Swagger""" # noqa: E501
51
+ self.discriminator = None
52
+
53
+ def to_dict(self) -> dict:
54
+ """Returns the model properties as a dict"""
55
+ result = {}
56
+
57
+ for attr, _ in six.iteritems(self.swagger_types):
58
+ value = getattr(self, attr)
59
+ if isinstance(value, list):
60
+ result[attr] = list(map(
61
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
62
+ value
63
+ ))
64
+ elif hasattr(value, "to_dict"):
65
+ result[attr] = value.to_dict()
66
+ elif isinstance(value, dict):
67
+ result[attr] = dict(map(
68
+ lambda item: (item[0], item[1].to_dict())
69
+ if hasattr(item[1], "to_dict") else item,
70
+ value.items()
71
+ ))
72
+ else:
73
+ result[attr] = value
74
+ if issubclass(V1ReportRestartTimingsResponse, dict):
75
+ for key, value in self.items():
76
+ result[key] = value
77
+
78
+ return result
79
+
80
+ def to_str(self) -> str:
81
+ """Returns the string representation of the model"""
82
+ return pprint.pformat(self.to_dict())
83
+
84
+ def __repr__(self) -> str:
85
+ """For `print` and `pprint`"""
86
+ return self.to_str()
87
+
88
+ def __eq__(self, other: 'V1ReportRestartTimingsResponse') -> bool:
89
+ """Returns true if both objects are equal"""
90
+ if not isinstance(other, V1ReportRestartTimingsResponse):
91
+ return False
92
+
93
+ return self.__dict__ == other.__dict__
94
+
95
+ def __ne__(self, other: 'V1ReportRestartTimingsResponse') -> bool:
96
+ """Returns true if both objects are not equal"""
97
+ return not self == other