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,161 @@
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
+ bid_fid: str,
17
+ ) -> dict[str, Any]:
18
+ _kwargs: dict[str, Any] = {
19
+ "method": "delete",
20
+ "url": "/v2/spot/bids/{bid_fid}".format(bid_fid=quote(str(bid_fid), safe="")),
21
+ }
22
+
23
+ return _kwargs
24
+
25
+
26
+ def _parse_response(
27
+ *, client: AuthenticatedClient | Client, response: httpx.Response
28
+ ) -> Any | HTTPValidationError | None:
29
+ if response.status_code == 204:
30
+ response_204 = cast(Any, None)
31
+ return response_204
32
+
33
+ if response.status_code == 422:
34
+ response_422 = HTTPValidationError.from_dict(response.json())
35
+
36
+ return response_422
37
+
38
+ if client.raise_on_unexpected_status:
39
+ raise errors.UnexpectedStatus(response.status_code, response.content)
40
+ return None
41
+
42
+
43
+ def _build_response(
44
+ *, client: AuthenticatedClient | Client, response: httpx.Response
45
+ ) -> Response[Any | HTTPValidationError]:
46
+ return Response(
47
+ status_code=HTTPStatus(response.status_code),
48
+ content=response.content,
49
+ headers=response.headers,
50
+ parsed=_parse_response(client=client, response=response),
51
+ )
52
+
53
+
54
+ def sync_detailed(
55
+ bid_fid: str,
56
+ *,
57
+ client: AuthenticatedClient,
58
+ ) -> Response[Any | HTTPValidationError]:
59
+ """Cancel Bid
60
+
61
+ Cancel a Spot bid
62
+
63
+ Args:
64
+ bid_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
+ bid_fid=bid_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
+ bid_fid: str,
86
+ *,
87
+ client: AuthenticatedClient,
88
+ ) -> Any | HTTPValidationError | None:
89
+ """Cancel Bid
90
+
91
+ Cancel a Spot bid
92
+
93
+ Args:
94
+ bid_fid (str):
95
+
96
+ Raises:
97
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
98
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
99
+
100
+ Returns:
101
+ Any | HTTPValidationError
102
+ """
103
+ return sync_detailed(
104
+ bid_fid=bid_fid,
105
+ client=client,
106
+ ).parsed
107
+
108
+
109
+ async def asyncio_detailed(
110
+ bid_fid: str,
111
+ *,
112
+ client: AuthenticatedClient,
113
+ ) -> Response[Any | HTTPValidationError]:
114
+ """Cancel Bid
115
+
116
+ Cancel a Spot bid
117
+
118
+ Args:
119
+ bid_fid (str):
120
+
121
+ Raises:
122
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
123
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
124
+
125
+ Returns:
126
+ Response[Any | HTTPValidationError]
127
+ """
128
+ kwargs = _get_kwargs(
129
+ bid_fid=bid_fid,
130
+ )
131
+
132
+ response = await client.get_async_httpx_client().request(**kwargs)
133
+
134
+ return _build_response(client=client, response=response)
135
+
136
+
137
+ async def asyncio(
138
+ bid_fid: str,
139
+ *,
140
+ client: AuthenticatedClient,
141
+ ) -> Any | HTTPValidationError | None:
142
+ """Cancel Bid
143
+
144
+ Cancel a Spot bid
145
+
146
+ Args:
147
+ bid_fid (str):
148
+
149
+ Raises:
150
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
151
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
152
+
153
+ Returns:
154
+ Any | HTTPValidationError
155
+ """
156
+ return (
157
+ await asyncio_detailed(
158
+ bid_fid=bid_fid,
159
+ client=client,
160
+ )
161
+ ).parsed
@@ -0,0 +1,171 @@
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.bid_model import BidModel
11
+ from ...models.create_bid_request import CreateBidRequest
12
+ from ...models.http_validation_error import HTTPValidationError
13
+ from ...types import Response
14
+
15
+
16
+ def _get_kwargs(
17
+ *,
18
+ body: CreateBidRequest,
19
+ ) -> dict[str, Any]:
20
+ headers: dict[str, Any] = {}
21
+
22
+ _kwargs: dict[str, Any] = {
23
+ "method": "post",
24
+ "url": "/v2/spot/bids",
25
+ }
26
+
27
+ _kwargs["json"] = body.to_dict()
28
+
29
+ headers["Content-Type"] = "application/json"
30
+
31
+ _kwargs["headers"] = headers
32
+ return _kwargs
33
+
34
+
35
+ def _parse_response(
36
+ *, client: AuthenticatedClient | Client, response: httpx.Response
37
+ ) -> BidModel | HTTPValidationError | None:
38
+ if response.status_code == 201:
39
+ response_201 = BidModel.from_dict(response.json())
40
+
41
+ return response_201
42
+
43
+ if response.status_code == 422:
44
+ response_422 = HTTPValidationError.from_dict(response.json())
45
+
46
+ return response_422
47
+
48
+ if client.raise_on_unexpected_status:
49
+ raise errors.UnexpectedStatus(response.status_code, response.content)
50
+ return None
51
+
52
+
53
+ def _build_response(
54
+ *, client: AuthenticatedClient | Client, response: httpx.Response
55
+ ) -> Response[BidModel | HTTPValidationError]:
56
+ return Response(
57
+ status_code=HTTPStatus(response.status_code),
58
+ content=response.content,
59
+ headers=response.headers,
60
+ parsed=_parse_response(client=client, response=response),
61
+ )
62
+
63
+
64
+ def sync_detailed(
65
+ *,
66
+ client: AuthenticatedClient,
67
+ body: CreateBidRequest,
68
+ ) -> Response[BidModel | HTTPValidationError]:
69
+ """Create Bid
70
+
71
+ Place a new Spot bid
72
+
73
+ Args:
74
+ body (CreateBidRequest):
75
+
76
+ Raises:
77
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
78
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
79
+
80
+ Returns:
81
+ Response[BidModel | HTTPValidationError]
82
+ """
83
+ kwargs = _get_kwargs(
84
+ body=body,
85
+ )
86
+
87
+ response = client.get_httpx_client().request(
88
+ **kwargs,
89
+ )
90
+
91
+ return _build_response(client=client, response=response)
92
+
93
+
94
+ def sync(
95
+ *,
96
+ client: AuthenticatedClient,
97
+ body: CreateBidRequest,
98
+ ) -> BidModel | HTTPValidationError | None:
99
+ """Create Bid
100
+
101
+ Place a new Spot bid
102
+
103
+ Args:
104
+ body (CreateBidRequest):
105
+
106
+ Raises:
107
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
108
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
109
+
110
+ Returns:
111
+ BidModel | HTTPValidationError
112
+ """
113
+ return sync_detailed(
114
+ client=client,
115
+ body=body,
116
+ ).parsed
117
+
118
+
119
+ async def asyncio_detailed(
120
+ *,
121
+ client: AuthenticatedClient,
122
+ body: CreateBidRequest,
123
+ ) -> Response[BidModel | HTTPValidationError]:
124
+ """Create Bid
125
+
126
+ Place a new Spot bid
127
+
128
+ Args:
129
+ body (CreateBidRequest):
130
+
131
+ Raises:
132
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
133
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
134
+
135
+ Returns:
136
+ Response[BidModel | HTTPValidationError]
137
+ """
138
+ kwargs = _get_kwargs(
139
+ body=body,
140
+ )
141
+
142
+ response = await client.get_async_httpx_client().request(**kwargs)
143
+
144
+ return _build_response(client=client, response=response)
145
+
146
+
147
+ async def asyncio(
148
+ *,
149
+ client: AuthenticatedClient,
150
+ body: CreateBidRequest,
151
+ ) -> BidModel | HTTPValidationError | None:
152
+ """Create Bid
153
+
154
+ Place a new Spot bid
155
+
156
+ Args:
157
+ body (CreateBidRequest):
158
+
159
+ Raises:
160
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
161
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
162
+
163
+ Returns:
164
+ BidModel | HTTPValidationError
165
+ """
166
+ return (
167
+ await asyncio_detailed(
168
+ client=client,
169
+ body=body,
170
+ )
171
+ ).parsed
@@ -0,0 +1,137 @@
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.auction_model import AuctionModel
11
+ from ...types import Response
12
+
13
+
14
+ def _get_kwargs() -> dict[str, Any]:
15
+ _kwargs: dict[str, Any] = {
16
+ "method": "get",
17
+ "url": "/v2/spot/availability",
18
+ }
19
+
20
+ return _kwargs
21
+
22
+
23
+ def _parse_response(
24
+ *, client: AuthenticatedClient | Client, response: httpx.Response
25
+ ) -> list[AuctionModel] | None:
26
+ if response.status_code == 200:
27
+ response_200 = []
28
+ _response_200 = response.json()
29
+ for response_200_item_data in _response_200:
30
+ response_200_item = AuctionModel.from_dict(response_200_item_data)
31
+
32
+ response_200.append(response_200_item)
33
+
34
+ return response_200
35
+
36
+ if client.raise_on_unexpected_status:
37
+ raise errors.UnexpectedStatus(response.status_code, response.content)
38
+ return None
39
+
40
+
41
+ def _build_response(
42
+ *, client: AuthenticatedClient | Client, response: httpx.Response
43
+ ) -> Response[list[AuctionModel]]:
44
+ return Response(
45
+ status_code=HTTPStatus(response.status_code),
46
+ content=response.content,
47
+ headers=response.headers,
48
+ parsed=_parse_response(client=client, response=response),
49
+ )
50
+
51
+
52
+ def sync_detailed(
53
+ *,
54
+ client: AuthenticatedClient,
55
+ ) -> Response[list[AuctionModel]]:
56
+ """Get Auctions
57
+
58
+ Get the Spot availability across all regions.
59
+
60
+ Raises:
61
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
62
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
63
+
64
+ Returns:
65
+ Response[list[AuctionModel]]
66
+ """
67
+ kwargs = _get_kwargs()
68
+
69
+ response = client.get_httpx_client().request(
70
+ **kwargs,
71
+ )
72
+
73
+ return _build_response(client=client, response=response)
74
+
75
+
76
+ def sync(
77
+ *,
78
+ client: AuthenticatedClient,
79
+ ) -> list[AuctionModel] | None:
80
+ """Get Auctions
81
+
82
+ Get the Spot availability across all regions.
83
+
84
+ Raises:
85
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
86
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
87
+
88
+ Returns:
89
+ list[AuctionModel]
90
+ """
91
+ return sync_detailed(
92
+ client=client,
93
+ ).parsed
94
+
95
+
96
+ async def asyncio_detailed(
97
+ *,
98
+ client: AuthenticatedClient,
99
+ ) -> Response[list[AuctionModel]]:
100
+ """Get Auctions
101
+
102
+ Get the Spot availability across all regions.
103
+
104
+ Raises:
105
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
106
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
107
+
108
+ Returns:
109
+ Response[list[AuctionModel]]
110
+ """
111
+ kwargs = _get_kwargs()
112
+
113
+ response = await client.get_async_httpx_client().request(**kwargs)
114
+
115
+ return _build_response(client=client, response=response)
116
+
117
+
118
+ async def asyncio(
119
+ *,
120
+ client: AuthenticatedClient,
121
+ ) -> list[AuctionModel] | None:
122
+ """Get Auctions
123
+
124
+ Get the Spot availability across all regions.
125
+
126
+ Raises:
127
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
128
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
129
+
130
+ Returns:
131
+ list[AuctionModel]
132
+ """
133
+ return (
134
+ await asyncio_detailed(
135
+ client=client,
136
+ )
137
+ ).parsed
@@ -0,0 +1,193 @@
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.bid_history_response import BidHistoryResponse
12
+ from ...models.http_validation_error import HTTPValidationError
13
+ from ...types import Response
14
+
15
+
16
+ def _get_kwargs(
17
+ bid_fid: str,
18
+ ) -> dict[str, Any]:
19
+ _kwargs: dict[str, Any] = {
20
+ "method": "get",
21
+ "url": "/v2/spot/bids/{bid_fid}/history".format(
22
+ bid_fid=quote(str(bid_fid), safe="")
23
+ ),
24
+ }
25
+
26
+ return _kwargs
27
+
28
+
29
+ def _parse_response(
30
+ *, client: AuthenticatedClient | Client, response: httpx.Response
31
+ ) -> BidHistoryResponse | HTTPValidationError | None:
32
+ if response.status_code == 200:
33
+ response_200 = BidHistoryResponse.from_dict(response.json())
34
+
35
+ return response_200
36
+
37
+ if response.status_code == 422:
38
+ response_422 = HTTPValidationError.from_dict(response.json())
39
+
40
+ return response_422
41
+
42
+ if client.raise_on_unexpected_status:
43
+ raise errors.UnexpectedStatus(response.status_code, response.content)
44
+ return None
45
+
46
+
47
+ def _build_response(
48
+ *, client: AuthenticatedClient | Client, response: httpx.Response
49
+ ) -> Response[BidHistoryResponse | HTTPValidationError]:
50
+ return Response(
51
+ status_code=HTTPStatus(response.status_code),
52
+ content=response.content,
53
+ headers=response.headers,
54
+ parsed=_parse_response(client=client, response=response),
55
+ )
56
+
57
+
58
+ def sync_detailed(
59
+ bid_fid: str,
60
+ *,
61
+ client: AuthenticatedClient,
62
+ ) -> Response[BidHistoryResponse | HTTPValidationError]:
63
+ """Get Bid History
64
+
65
+ Get the history of events for a Spot bid.
66
+
67
+ Returns a list of historical events including:
68
+ - placing the bid
69
+ - pausing the bid
70
+ - resuming the bid
71
+ - terminating the bid
72
+ - changes to the limit price
73
+
74
+ Args:
75
+ bid_fid (str):
76
+
77
+ Raises:
78
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
79
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
80
+
81
+ Returns:
82
+ Response[BidHistoryResponse | HTTPValidationError]
83
+ """
84
+ kwargs = _get_kwargs(
85
+ bid_fid=bid_fid,
86
+ )
87
+
88
+ response = client.get_httpx_client().request(
89
+ **kwargs,
90
+ )
91
+
92
+ return _build_response(client=client, response=response)
93
+
94
+
95
+ def sync(
96
+ bid_fid: str,
97
+ *,
98
+ client: AuthenticatedClient,
99
+ ) -> BidHistoryResponse | HTTPValidationError | None:
100
+ """Get Bid History
101
+
102
+ Get the history of events for a Spot bid.
103
+
104
+ Returns a list of historical events including:
105
+ - placing the bid
106
+ - pausing the bid
107
+ - resuming the bid
108
+ - terminating the bid
109
+ - changes to the limit price
110
+
111
+ Args:
112
+ bid_fid (str):
113
+
114
+ Raises:
115
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
116
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
117
+
118
+ Returns:
119
+ BidHistoryResponse | HTTPValidationError
120
+ """
121
+ return sync_detailed(
122
+ bid_fid=bid_fid,
123
+ client=client,
124
+ ).parsed
125
+
126
+
127
+ async def asyncio_detailed(
128
+ bid_fid: str,
129
+ *,
130
+ client: AuthenticatedClient,
131
+ ) -> Response[BidHistoryResponse | HTTPValidationError]:
132
+ """Get Bid History
133
+
134
+ Get the history of events for a Spot bid.
135
+
136
+ Returns a list of historical events including:
137
+ - placing the bid
138
+ - pausing the bid
139
+ - resuming the bid
140
+ - terminating the bid
141
+ - changes to the limit price
142
+
143
+ Args:
144
+ bid_fid (str):
145
+
146
+ Raises:
147
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
148
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
149
+
150
+ Returns:
151
+ Response[BidHistoryResponse | HTTPValidationError]
152
+ """
153
+ kwargs = _get_kwargs(
154
+ bid_fid=bid_fid,
155
+ )
156
+
157
+ response = await client.get_async_httpx_client().request(**kwargs)
158
+
159
+ return _build_response(client=client, response=response)
160
+
161
+
162
+ async def asyncio(
163
+ bid_fid: str,
164
+ *,
165
+ client: AuthenticatedClient,
166
+ ) -> BidHistoryResponse | HTTPValidationError | None:
167
+ """Get Bid History
168
+
169
+ Get the history of events for a Spot bid.
170
+
171
+ Returns a list of historical events including:
172
+ - placing the bid
173
+ - pausing the bid
174
+ - resuming the bid
175
+ - terminating the bid
176
+ - changes to the limit price
177
+
178
+ Args:
179
+ bid_fid (str):
180
+
181
+ Raises:
182
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
183
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
184
+
185
+ Returns:
186
+ BidHistoryResponse | HTTPValidationError
187
+ """
188
+ return (
189
+ await asyncio_detailed(
190
+ bid_fid=bid_fid,
191
+ client=client,
192
+ )
193
+ ).parsed