mithril-client 0.1.0a1__cp314-cp314-macosx_11_0_arm64.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 (163) hide show
  1. mithril/__init__.py +7 -0
  2. mithril/_mcli.cpython-314-darwin.so +0 -0
  3. mithril/_mcli.pyi +7 -0
  4. mithril/_mcli_entry.py +75 -0
  5. mithril/api/__init__.py +7 -0
  6. mithril/api/bindings/.gitattributes +2 -0
  7. mithril/api/bindings/__init__.py +10 -0
  8. mithril/api/bindings/api/__init__.py +1 -0
  9. mithril/api/bindings/api/api_keys/__init__.py +1 -0
  10. mithril/api/bindings/api/api_keys/create_api_key_v2_api_keys_post.py +179 -0
  11. mithril/api/bindings/api/api_keys/get_api_keys_v2_api_keys_get.py +141 -0
  12. mithril/api/bindings/api/api_keys/revoke_api_key_v2_api_keys_key_fid_delete.py +173 -0
  13. mithril/api/bindings/api/image_versions/__init__.py +1 -0
  14. mithril/api/bindings/api/image_versions/get_image_versions_v2_image_versions_get.py +141 -0
  15. mithril/api/bindings/api/image_versions/get_mcc_image_versions_v2_mcc_image_versions_get.py +179 -0
  16. mithril/api/bindings/api/instance_types/__init__.py +1 -0
  17. mithril/api/bindings/api/instance_types/get_instance_types_v2_instance_types_get.py +137 -0
  18. mithril/api/bindings/api/instances/__init__.py +1 -0
  19. mithril/api/bindings/api/instances/get_instance_status_v2_instances_instance_id_status_get.py +165 -0
  20. mithril/api/bindings/api/instances/get_instances_v2_instances_get.py +409 -0
  21. mithril/api/bindings/api/kubernetes_clusters/__init__.py +1 -0
  22. mithril/api/bindings/api/kubernetes_clusters/create_kubernetes_cluster_v2_kubernetes_clusters_post.py +171 -0
  23. mithril/api/bindings/api/kubernetes_clusters/delete_kubernetes_cluster_v2_kubernetes_clusters_cluster_fid_delete.py +163 -0
  24. mithril/api/bindings/api/kubernetes_clusters/get_kubernetes_cluster_v2_kubernetes_clusters_cluster_fid_get.py +165 -0
  25. mithril/api/bindings/api/kubernetes_clusters/get_kubernetes_clusters_v2_kubernetes_clusters_get.py +175 -0
  26. mithril/api/bindings/api/lifecycle_scripts/__init__.py +1 -0
  27. mithril/api/bindings/api/lifecycle_scripts/create_lifecycle_script_v2_lifecycle_scripts_post.py +171 -0
  28. mithril/api/bindings/api/lifecycle_scripts/delete_lifecycle_script_v2_lifecycle_scripts_ls_fid_delete.py +155 -0
  29. mithril/api/bindings/api/lifecycle_scripts/get_lifecycle_script_content_v2_lifecycle_scripts_ls_fid_content_get.py +155 -0
  30. mithril/api/bindings/api/lifecycle_scripts/list_lifecycle_scripts_v2_lifecycle_scripts_get.py +247 -0
  31. mithril/api/bindings/api/lifecycle_scripts/update_lifecycle_script_v2_lifecycle_scripts_ls_fid_patch.py +179 -0
  32. mithril/api/bindings/api/pricing/__init__.py +1 -0
  33. mithril/api/bindings/api/pricing/get_current_prices_v2_v2_pricing_current_get.py +217 -0
  34. mithril/api/bindings/api/pricing/get_historical_prices_v2_v2_pricing_history_get.py +222 -0
  35. mithril/api/bindings/api/profile/__init__.py +1 -0
  36. mithril/api/bindings/api/profile/get_me_v2_me_get.py +132 -0
  37. mithril/api/bindings/api/profile/get_my_teammates_v2_me_teammates_get.py +153 -0
  38. mithril/api/bindings/api/projects/__init__.py +1 -0
  39. mithril/api/bindings/api/projects/get_projects_v2_projects_get.py +137 -0
  40. mithril/api/bindings/api/quotas/__init__.py +1 -0
  41. mithril/api/bindings/api/quotas/get_quotas_v2_quotas_get.py +175 -0
  42. mithril/api/bindings/api/reservations/__init__.py +1 -0
  43. mithril/api/bindings/api/reservations/create_reservation_v2_reservation_post.py +171 -0
  44. mithril/api/bindings/api/reservations/extend_reservation_v2_reservation_reservation_fid_extend_post.py +187 -0
  45. mithril/api/bindings/api/reservations/get_availability_v2_reservation_availability_get.py +664 -0
  46. mithril/api/bindings/api/reservations/get_extension_availability_v2_reservation_reservation_fid_extension_availability_get.py +165 -0
  47. mithril/api/bindings/api/reservations/get_reservations_v2_reservation_get.py +309 -0
  48. mithril/api/bindings/api/reservations/update_reservation_v2_reservation_reservation_fid_patch.py +187 -0
  49. mithril/api/bindings/api/spot/__init__.py +1 -0
  50. mithril/api/bindings/api/spot/cancel_bid_v2_spot_bids_bid_fid_delete.py +161 -0
  51. mithril/api/bindings/api/spot/create_bid_v2_spot_bids_post.py +171 -0
  52. mithril/api/bindings/api/spot/get_auctions_v2_spot_availability_get.py +137 -0
  53. mithril/api/bindings/api/spot/get_bid_history_v2_spot_bids_bid_fid_history_get.py +193 -0
  54. mithril/api/bindings/api/spot/get_bid_status_v2_spot_bids_bid_fid_status_get.py +189 -0
  55. mithril/api/bindings/api/spot/get_bid_v2_spot_bids_bid_fid_get.py +163 -0
  56. mithril/api/bindings/api/spot/get_bids_v2_spot_bids_get.py +330 -0
  57. mithril/api/bindings/api/spot/update_bid_v2_spot_bids_bid_fid_patch.py +185 -0
  58. mithril/api/bindings/api/ssh_keys/__init__.py +1 -0
  59. mithril/api/bindings/api/ssh_keys/create_ssh_key_v2_ssh_keys_post.py +175 -0
  60. mithril/api/bindings/api/ssh_keys/delete_ssh_key_v2_ssh_keys_ssh_key_fid_delete.py +167 -0
  61. mithril/api/bindings/api/ssh_keys/get_ssh_keys_v2_ssh_keys_get.py +175 -0
  62. mithril/api/bindings/api/ssh_keys/update_ssh_key_v2_ssh_keys_ssh_key_fid_patch.py +187 -0
  63. mithril/api/bindings/api/volumes/__init__.py +1 -0
  64. mithril/api/bindings/api/volumes/create_volume_v2_volumes_post.py +211 -0
  65. mithril/api/bindings/api/volumes/delete_volume_v2_volumes_volume_fid_delete.py +199 -0
  66. mithril/api/bindings/api/volumes/get_volumes_v2_volumes_get.py +239 -0
  67. mithril/api/bindings/api/volumes/update_volume_v2_volumes_volume_fid_patch.py +243 -0
  68. mithril/api/bindings/client.py +284 -0
  69. mithril/api/bindings/errors.py +18 -0
  70. mithril/api/bindings/models/__init__.py +169 -0
  71. mithril/api/bindings/models/api_key_model.py +114 -0
  72. mithril/api/bindings/models/auction_model.py +146 -0
  73. mithril/api/bindings/models/availability_slot_model.py +76 -0
  74. mithril/api/bindings/models/bid_history_event_model.py +157 -0
  75. mithril/api/bindings/models/bid_history_event_model_event_type.py +19 -0
  76. mithril/api/bindings/models/bid_history_response.py +84 -0
  77. mithril/api/bindings/models/bid_model.py +191 -0
  78. mithril/api/bindings/models/bid_model_status.py +14 -0
  79. mithril/api/bindings/models/bid_status_response.py +72 -0
  80. mithril/api/bindings/models/bid_status_response_status.py +15 -0
  81. mithril/api/bindings/models/check_availability_response.py +60 -0
  82. mithril/api/bindings/models/create_api_key_request.py +68 -0
  83. mithril/api/bindings/models/create_api_key_response.py +122 -0
  84. mithril/api/bindings/models/create_bid_request.py +116 -0
  85. mithril/api/bindings/models/create_kubernetes_cluster_request.py +136 -0
  86. mithril/api/bindings/models/create_kubernetes_cluster_request_k8s_version.py +11 -0
  87. mithril/api/bindings/models/create_lifecycle_script_request.py +115 -0
  88. mithril/api/bindings/models/create_reservation_request.py +124 -0
  89. mithril/api/bindings/models/create_ssh_key_request.py +99 -0
  90. mithril/api/bindings/models/create_volume_request.py +98 -0
  91. mithril/api/bindings/models/create_volume_request_disk_interface.py +11 -0
  92. mithril/api/bindings/models/created_ssh_key_model.py +122 -0
  93. mithril/api/bindings/models/current_prices_response.py +202 -0
  94. mithril/api/bindings/models/extend_reservation_request.py +60 -0
  95. mithril/api/bindings/models/extension_availability_response.py +68 -0
  96. mithril/api/bindings/models/get_availability_v2_reservation_availability_get_mode.py +12 -0
  97. mithril/api/bindings/models/get_bids_response.py +96 -0
  98. mithril/api/bindings/models/get_bids_v2_spot_bids_get_sort_by.py +11 -0
  99. mithril/api/bindings/models/get_bids_v2_spot_bids_get_status.py +14 -0
  100. mithril/api/bindings/models/get_instances_response.py +96 -0
  101. mithril/api/bindings/models/get_instances_v2_instances_get_order_type_in_type_0_item.py +11 -0
  102. mithril/api/bindings/models/get_instances_v2_instances_get_sort_by.py +12 -0
  103. mithril/api/bindings/models/get_instances_v2_instances_get_status_in_type_0_item.py +24 -0
  104. mithril/api/bindings/models/get_latest_end_time_response.py +68 -0
  105. mithril/api/bindings/models/get_reservations_response.py +96 -0
  106. mithril/api/bindings/models/get_reservations_v2_reservation_get_sort_by.py +11 -0
  107. mithril/api/bindings/models/get_reservations_v2_reservation_get_status.py +14 -0
  108. mithril/api/bindings/models/historical_price_point_model.py +94 -0
  109. mithril/api/bindings/models/historical_prices_response_model.py +76 -0
  110. mithril/api/bindings/models/http_validation_error.py +78 -0
  111. mithril/api/bindings/models/image_version_model.py +224 -0
  112. mithril/api/bindings/models/instance_model.py +211 -0
  113. mithril/api/bindings/models/instance_model_status.py +24 -0
  114. mithril/api/bindings/models/instance_status_response.py +141 -0
  115. mithril/api/bindings/models/instance_status_response_status.py +24 -0
  116. mithril/api/bindings/models/instance_type_model.py +170 -0
  117. mithril/api/bindings/models/kubernetes_cluster_model.py +207 -0
  118. mithril/api/bindings/models/kubernetes_cluster_model_status.py +12 -0
  119. mithril/api/bindings/models/launch_specification_model.py +152 -0
  120. mithril/api/bindings/models/lifecycle_script_model.py +134 -0
  121. mithril/api/bindings/models/lifecycle_script_scope.py +12 -0
  122. mithril/api/bindings/models/list_lifecycle_scripts_response.py +96 -0
  123. mithril/api/bindings/models/list_lifecycle_scripts_v2_lifecycle_scripts_get_sort_by.py +11 -0
  124. mithril/api/bindings/models/me_response.py +126 -0
  125. mithril/api/bindings/models/new_ssh_key_model.py +100 -0
  126. mithril/api/bindings/models/persistent_disk_change.py +92 -0
  127. mithril/api/bindings/models/project_model.py +76 -0
  128. mithril/api/bindings/models/public_lifecycle_script_scope.py +11 -0
  129. mithril/api/bindings/models/quota_model.py +132 -0
  130. mithril/api/bindings/models/reservation_model.py +215 -0
  131. mithril/api/bindings/models/reservation_model_status.py +14 -0
  132. mithril/api/bindings/models/size.py +70 -0
  133. mithril/api/bindings/models/size_unit.py +18 -0
  134. mithril/api/bindings/models/sort_direction.py +11 -0
  135. mithril/api/bindings/models/teammate_response.py +158 -0
  136. mithril/api/bindings/models/update_bid_request.py +143 -0
  137. mithril/api/bindings/models/update_lifecycle_script_request.py +109 -0
  138. mithril/api/bindings/models/update_reservation_request.py +103 -0
  139. mithril/api/bindings/models/update_ssh_key_request.py +60 -0
  140. mithril/api/bindings/models/update_volume_request.py +65 -0
  141. mithril/api/bindings/models/validation_error.py +89 -0
  142. mithril/api/bindings/models/volume_model.py +140 -0
  143. mithril/api/bindings/models/volume_model_attachments.py +46 -0
  144. mithril/api/bindings/models/volume_model_interface.py +11 -0
  145. mithril/api/bindings/types.py +56 -0
  146. mithril/api/client.py +138 -0
  147. mithril/cli/__init__.py +7 -0
  148. mithril/cli/commands/__init__.py +15 -0
  149. mithril/cli/commands/help.py +88 -0
  150. mithril/cli/commands/launch.py +353 -0
  151. mithril/cli/main.py +68 -0
  152. mithril/cli/utils/__init__.py +1 -0
  153. mithril/cli/utils/skypilot_passthrough.py +38 -0
  154. mithril/cli/utils/streaming.py +235 -0
  155. mithril/cli/utils/volumes.py +110 -0
  156. mithril/config.py +47 -0
  157. mithril/py.typed +0 -0
  158. mithril/sky/__init__.py +141 -0
  159. mithril/sky/client.py +176 -0
  160. mithril_client-0.1.0a1.dist-info/METADATA +56 -0
  161. mithril_client-0.1.0a1.dist-info/RECORD +163 -0
  162. mithril_client-0.1.0a1.dist-info/WHEEL +4 -0
  163. mithril_client-0.1.0a1.dist-info/entry_points.txt +3 -0
@@ -0,0 +1,155 @@
1
+ from __future__ import annotations
2
+
3
+ from http import HTTPStatus
4
+ from typing import Any, cast
5
+ from urllib.parse import quote
6
+
7
+ import httpx
8
+
9
+ from ... import errors
10
+ from ...client import AuthenticatedClient, Client
11
+ from ...models.http_validation_error import HTTPValidationError
12
+ from ...types import Response
13
+
14
+
15
+ def _get_kwargs(
16
+ ls_fid: str,
17
+ ) -> dict[str, Any]:
18
+ _kwargs: dict[str, Any] = {
19
+ "method": "delete",
20
+ "url": "/v2/lifecycle-scripts/{ls_fid}".format(
21
+ ls_fid=quote(str(ls_fid), safe="")
22
+ ),
23
+ }
24
+
25
+ return _kwargs
26
+
27
+
28
+ def _parse_response(
29
+ *, client: AuthenticatedClient | Client, response: httpx.Response
30
+ ) -> Any | HTTPValidationError | None:
31
+ if response.status_code == 204:
32
+ response_204 = cast(Any, None)
33
+ return response_204
34
+
35
+ if response.status_code == 422:
36
+ response_422 = HTTPValidationError.from_dict(response.json())
37
+
38
+ return response_422
39
+
40
+ if client.raise_on_unexpected_status:
41
+ raise errors.UnexpectedStatus(response.status_code, response.content)
42
+ return None
43
+
44
+
45
+ def _build_response(
46
+ *, client: AuthenticatedClient | Client, response: httpx.Response
47
+ ) -> Response[Any | HTTPValidationError]:
48
+ return Response(
49
+ status_code=HTTPStatus(response.status_code),
50
+ content=response.content,
51
+ headers=response.headers,
52
+ parsed=_parse_response(client=client, response=response),
53
+ )
54
+
55
+
56
+ def sync_detailed(
57
+ ls_fid: str,
58
+ *,
59
+ client: AuthenticatedClient,
60
+ ) -> Response[Any | HTTPValidationError]:
61
+ """Delete Lifecycle Script
62
+
63
+ Args:
64
+ ls_fid (str):
65
+
66
+ Raises:
67
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
68
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
69
+
70
+ Returns:
71
+ Response[Any | HTTPValidationError]
72
+ """
73
+ kwargs = _get_kwargs(
74
+ ls_fid=ls_fid,
75
+ )
76
+
77
+ response = client.get_httpx_client().request(
78
+ **kwargs,
79
+ )
80
+
81
+ return _build_response(client=client, response=response)
82
+
83
+
84
+ def sync(
85
+ ls_fid: str,
86
+ *,
87
+ client: AuthenticatedClient,
88
+ ) -> Any | HTTPValidationError | None:
89
+ """Delete Lifecycle Script
90
+
91
+ Args:
92
+ ls_fid (str):
93
+
94
+ Raises:
95
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
96
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
97
+
98
+ Returns:
99
+ Any | HTTPValidationError
100
+ """
101
+ return sync_detailed(
102
+ ls_fid=ls_fid,
103
+ client=client,
104
+ ).parsed
105
+
106
+
107
+ async def asyncio_detailed(
108
+ ls_fid: str,
109
+ *,
110
+ client: AuthenticatedClient,
111
+ ) -> Response[Any | HTTPValidationError]:
112
+ """Delete Lifecycle Script
113
+
114
+ Args:
115
+ ls_fid (str):
116
+
117
+ Raises:
118
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
119
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
120
+
121
+ Returns:
122
+ Response[Any | HTTPValidationError]
123
+ """
124
+ kwargs = _get_kwargs(
125
+ ls_fid=ls_fid,
126
+ )
127
+
128
+ response = await client.get_async_httpx_client().request(**kwargs)
129
+
130
+ return _build_response(client=client, response=response)
131
+
132
+
133
+ async def asyncio(
134
+ ls_fid: str,
135
+ *,
136
+ client: AuthenticatedClient,
137
+ ) -> Any | HTTPValidationError | None:
138
+ """Delete Lifecycle Script
139
+
140
+ Args:
141
+ ls_fid (str):
142
+
143
+ Raises:
144
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
145
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
146
+
147
+ Returns:
148
+ Any | HTTPValidationError
149
+ """
150
+ return (
151
+ await asyncio_detailed(
152
+ ls_fid=ls_fid,
153
+ client=client,
154
+ )
155
+ ).parsed
@@ -0,0 +1,155 @@
1
+ from __future__ import annotations
2
+
3
+ from http import HTTPStatus
4
+ from typing import Any
5
+ from urllib.parse import quote
6
+
7
+ import httpx
8
+
9
+ from ... import errors
10
+ from ...client import AuthenticatedClient, Client
11
+ from ...models.http_validation_error import HTTPValidationError
12
+ from ...types import Response
13
+
14
+
15
+ def _get_kwargs(
16
+ ls_fid: str,
17
+ ) -> dict[str, Any]:
18
+ _kwargs: dict[str, Any] = {
19
+ "method": "get",
20
+ "url": "/v2/lifecycle-scripts/{ls_fid}/content".format(
21
+ ls_fid=quote(str(ls_fid), safe="")
22
+ ),
23
+ }
24
+
25
+ return _kwargs
26
+
27
+
28
+ def _parse_response(
29
+ *, client: AuthenticatedClient | Client, response: httpx.Response
30
+ ) -> Any | HTTPValidationError | None:
31
+ if response.status_code == 200:
32
+ response_200 = response.json()
33
+ return response_200
34
+
35
+ if response.status_code == 422:
36
+ response_422 = HTTPValidationError.from_dict(response.json())
37
+
38
+ return response_422
39
+
40
+ if client.raise_on_unexpected_status:
41
+ raise errors.UnexpectedStatus(response.status_code, response.content)
42
+ return None
43
+
44
+
45
+ def _build_response(
46
+ *, client: AuthenticatedClient | Client, response: httpx.Response
47
+ ) -> Response[Any | HTTPValidationError]:
48
+ return Response(
49
+ status_code=HTTPStatus(response.status_code),
50
+ content=response.content,
51
+ headers=response.headers,
52
+ parsed=_parse_response(client=client, response=response),
53
+ )
54
+
55
+
56
+ def sync_detailed(
57
+ ls_fid: str,
58
+ *,
59
+ client: AuthenticatedClient,
60
+ ) -> Response[Any | HTTPValidationError]:
61
+ """Get Lifecycle Script Content
62
+
63
+ Args:
64
+ ls_fid (str):
65
+
66
+ Raises:
67
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
68
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
69
+
70
+ Returns:
71
+ Response[Any | HTTPValidationError]
72
+ """
73
+ kwargs = _get_kwargs(
74
+ ls_fid=ls_fid,
75
+ )
76
+
77
+ response = client.get_httpx_client().request(
78
+ **kwargs,
79
+ )
80
+
81
+ return _build_response(client=client, response=response)
82
+
83
+
84
+ def sync(
85
+ ls_fid: str,
86
+ *,
87
+ client: AuthenticatedClient,
88
+ ) -> Any | HTTPValidationError | None:
89
+ """Get Lifecycle Script Content
90
+
91
+ Args:
92
+ ls_fid (str):
93
+
94
+ Raises:
95
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
96
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
97
+
98
+ Returns:
99
+ Any | HTTPValidationError
100
+ """
101
+ return sync_detailed(
102
+ ls_fid=ls_fid,
103
+ client=client,
104
+ ).parsed
105
+
106
+
107
+ async def asyncio_detailed(
108
+ ls_fid: str,
109
+ *,
110
+ client: AuthenticatedClient,
111
+ ) -> Response[Any | HTTPValidationError]:
112
+ """Get Lifecycle Script Content
113
+
114
+ Args:
115
+ ls_fid (str):
116
+
117
+ Raises:
118
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
119
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
120
+
121
+ Returns:
122
+ Response[Any | HTTPValidationError]
123
+ """
124
+ kwargs = _get_kwargs(
125
+ ls_fid=ls_fid,
126
+ )
127
+
128
+ response = await client.get_async_httpx_client().request(**kwargs)
129
+
130
+ return _build_response(client=client, response=response)
131
+
132
+
133
+ async def asyncio(
134
+ ls_fid: str,
135
+ *,
136
+ client: AuthenticatedClient,
137
+ ) -> Any | HTTPValidationError | None:
138
+ """Get Lifecycle Script Content
139
+
140
+ Args:
141
+ ls_fid (str):
142
+
143
+ Raises:
144
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
145
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
146
+
147
+ Returns:
148
+ Any | HTTPValidationError
149
+ """
150
+ return (
151
+ await asyncio_detailed(
152
+ ls_fid=ls_fid,
153
+ client=client,
154
+ )
155
+ ).parsed
@@ -0,0 +1,247 @@
1
+ from __future__ import annotations
2
+
3
+ from http import HTTPStatus
4
+ from typing import Any
5
+
6
+ import httpx
7
+
8
+ from ... import errors
9
+ from ...client import AuthenticatedClient, Client
10
+ from ...models.http_validation_error import HTTPValidationError
11
+ from ...models.list_lifecycle_scripts_response import ListLifecycleScriptsResponse
12
+ from ...models.list_lifecycle_scripts_v2_lifecycle_scripts_get_sort_by import (
13
+ ListLifecycleScriptsV2LifecycleScriptsGetSortBy,
14
+ )
15
+ from ...models.sort_direction import SortDirection
16
+ from ...types import UNSET, Response, Unset
17
+
18
+
19
+ def _get_kwargs(
20
+ *,
21
+ next_cursor: Any | Unset = UNSET,
22
+ sort_by: ListLifecycleScriptsV2LifecycleScriptsGetSortBy | Unset = UNSET,
23
+ sort_dir: SortDirection | Unset = UNSET,
24
+ project: str,
25
+ limit: int | None | Unset = UNSET,
26
+ ) -> dict[str, Any]:
27
+ params: dict[str, Any] = {}
28
+
29
+ params["next_cursor"] = next_cursor
30
+
31
+ json_sort_by: str | Unset = UNSET
32
+ if not isinstance(sort_by, Unset):
33
+ json_sort_by = sort_by.value
34
+
35
+ params["sort_by"] = json_sort_by
36
+
37
+ json_sort_dir: str | Unset = UNSET
38
+ if not isinstance(sort_dir, Unset):
39
+ json_sort_dir = sort_dir.value
40
+
41
+ params["sort_dir"] = json_sort_dir
42
+
43
+ params["project"] = project
44
+
45
+ json_limit: int | None | Unset
46
+ if isinstance(limit, Unset):
47
+ json_limit = UNSET
48
+ else:
49
+ json_limit = limit
50
+ params["limit"] = json_limit
51
+
52
+ params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
53
+
54
+ _kwargs: dict[str, Any] = {
55
+ "method": "get",
56
+ "url": "/v2/lifecycle-scripts",
57
+ "params": params,
58
+ }
59
+
60
+ return _kwargs
61
+
62
+
63
+ def _parse_response(
64
+ *, client: AuthenticatedClient | Client, response: httpx.Response
65
+ ) -> HTTPValidationError | ListLifecycleScriptsResponse | None:
66
+ if response.status_code == 200:
67
+ response_200 = ListLifecycleScriptsResponse.from_dict(response.json())
68
+
69
+ return response_200
70
+
71
+ if response.status_code == 422:
72
+ response_422 = HTTPValidationError.from_dict(response.json())
73
+
74
+ return response_422
75
+
76
+ if client.raise_on_unexpected_status:
77
+ raise errors.UnexpectedStatus(response.status_code, response.content)
78
+ return None
79
+
80
+
81
+ def _build_response(
82
+ *, client: AuthenticatedClient | Client, response: httpx.Response
83
+ ) -> Response[HTTPValidationError | ListLifecycleScriptsResponse]:
84
+ return Response(
85
+ status_code=HTTPStatus(response.status_code),
86
+ content=response.content,
87
+ headers=response.headers,
88
+ parsed=_parse_response(client=client, response=response),
89
+ )
90
+
91
+
92
+ def sync_detailed(
93
+ *,
94
+ client: AuthenticatedClient,
95
+ next_cursor: Any | Unset = UNSET,
96
+ sort_by: ListLifecycleScriptsV2LifecycleScriptsGetSortBy | Unset = UNSET,
97
+ sort_dir: SortDirection | Unset = UNSET,
98
+ project: str,
99
+ limit: int | None | Unset = UNSET,
100
+ ) -> Response[HTTPValidationError | ListLifecycleScriptsResponse]:
101
+ """List Lifecycle Scripts
102
+
103
+ Get all lifecycle scripts visible to user in a project
104
+
105
+ Args:
106
+ next_cursor (Any | Unset):
107
+ sort_by (ListLifecycleScriptsV2LifecycleScriptsGetSortBy | Unset):
108
+ sort_dir (SortDirection | Unset):
109
+ project (str):
110
+ limit (int | None | Unset):
111
+
112
+ Raises:
113
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
114
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
115
+
116
+ Returns:
117
+ Response[HTTPValidationError | ListLifecycleScriptsResponse]
118
+ """
119
+ kwargs = _get_kwargs(
120
+ next_cursor=next_cursor,
121
+ sort_by=sort_by,
122
+ sort_dir=sort_dir,
123
+ project=project,
124
+ limit=limit,
125
+ )
126
+
127
+ response = client.get_httpx_client().request(
128
+ **kwargs,
129
+ )
130
+
131
+ return _build_response(client=client, response=response)
132
+
133
+
134
+ def sync(
135
+ *,
136
+ client: AuthenticatedClient,
137
+ next_cursor: Any | Unset = UNSET,
138
+ sort_by: ListLifecycleScriptsV2LifecycleScriptsGetSortBy | Unset = UNSET,
139
+ sort_dir: SortDirection | Unset = UNSET,
140
+ project: str,
141
+ limit: int | None | Unset = UNSET,
142
+ ) -> HTTPValidationError | ListLifecycleScriptsResponse | None:
143
+ """List Lifecycle Scripts
144
+
145
+ Get all lifecycle scripts visible to user in a project
146
+
147
+ Args:
148
+ next_cursor (Any | Unset):
149
+ sort_by (ListLifecycleScriptsV2LifecycleScriptsGetSortBy | Unset):
150
+ sort_dir (SortDirection | Unset):
151
+ project (str):
152
+ limit (int | None | Unset):
153
+
154
+ Raises:
155
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
156
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
157
+
158
+ Returns:
159
+ HTTPValidationError | ListLifecycleScriptsResponse
160
+ """
161
+ return sync_detailed(
162
+ client=client,
163
+ next_cursor=next_cursor,
164
+ sort_by=sort_by,
165
+ sort_dir=sort_dir,
166
+ project=project,
167
+ limit=limit,
168
+ ).parsed
169
+
170
+
171
+ async def asyncio_detailed(
172
+ *,
173
+ client: AuthenticatedClient,
174
+ next_cursor: Any | Unset = UNSET,
175
+ sort_by: ListLifecycleScriptsV2LifecycleScriptsGetSortBy | Unset = UNSET,
176
+ sort_dir: SortDirection | Unset = UNSET,
177
+ project: str,
178
+ limit: int | None | Unset = UNSET,
179
+ ) -> Response[HTTPValidationError | ListLifecycleScriptsResponse]:
180
+ """List Lifecycle Scripts
181
+
182
+ Get all lifecycle scripts visible to user in a project
183
+
184
+ Args:
185
+ next_cursor (Any | Unset):
186
+ sort_by (ListLifecycleScriptsV2LifecycleScriptsGetSortBy | Unset):
187
+ sort_dir (SortDirection | Unset):
188
+ project (str):
189
+ limit (int | None | Unset):
190
+
191
+ Raises:
192
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
193
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
194
+
195
+ Returns:
196
+ Response[HTTPValidationError | ListLifecycleScriptsResponse]
197
+ """
198
+ kwargs = _get_kwargs(
199
+ next_cursor=next_cursor,
200
+ sort_by=sort_by,
201
+ sort_dir=sort_dir,
202
+ project=project,
203
+ limit=limit,
204
+ )
205
+
206
+ response = await client.get_async_httpx_client().request(**kwargs)
207
+
208
+ return _build_response(client=client, response=response)
209
+
210
+
211
+ async def asyncio(
212
+ *,
213
+ client: AuthenticatedClient,
214
+ next_cursor: Any | Unset = UNSET,
215
+ sort_by: ListLifecycleScriptsV2LifecycleScriptsGetSortBy | Unset = UNSET,
216
+ sort_dir: SortDirection | Unset = UNSET,
217
+ project: str,
218
+ limit: int | None | Unset = UNSET,
219
+ ) -> HTTPValidationError | ListLifecycleScriptsResponse | None:
220
+ """List Lifecycle Scripts
221
+
222
+ Get all lifecycle scripts visible to user in a project
223
+
224
+ Args:
225
+ next_cursor (Any | Unset):
226
+ sort_by (ListLifecycleScriptsV2LifecycleScriptsGetSortBy | Unset):
227
+ sort_dir (SortDirection | Unset):
228
+ project (str):
229
+ limit (int | None | Unset):
230
+
231
+ Raises:
232
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
233
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
234
+
235
+ Returns:
236
+ HTTPValidationError | ListLifecycleScriptsResponse
237
+ """
238
+ return (
239
+ await asyncio_detailed(
240
+ client=client,
241
+ next_cursor=next_cursor,
242
+ sort_by=sort_by,
243
+ sort_dir=sort_dir,
244
+ project=project,
245
+ limit=limit,
246
+ )
247
+ ).parsed