archil-openapi 0.0.2__tar.gz → 0.0.4__tar.gz

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 (140) hide show
  1. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/PKG-INFO +1 -1
  2. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/pyproject.toml +1 -1
  3. archil_openapi-0.0.4/src/archil_openapi/api/disks/create_share_url.py +208 -0
  4. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/sandboxes/delete_sandbox.py +8 -4
  5. archil_openapi-0.0.4/src/archil_openapi/api/sandboxes/fork_sandbox.py +255 -0
  6. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/sandboxes/stop_sandbox.py +20 -20
  7. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/__init__.py +8 -0
  8. archil_openapi-0.0.4/src/archil_openapi/models/api_response_share_url.py +73 -0
  9. archil_openapi-0.0.4/src/archil_openapi/models/api_response_share_url_data.py +67 -0
  10. archil_openapi-0.0.4/src/archil_openapi/models/create_share_url_request.py +70 -0
  11. archil_openapi-0.0.4/src/archil_openapi/models/fork_sandbox_request.py +59 -0
  12. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/LICENSE +0 -0
  13. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/README.md +0 -0
  14. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/__init__.py +0 -0
  15. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/__init__.py +0 -0
  16. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/activity/__init__.py +0 -0
  17. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/activity/list_activity.py +0 -0
  18. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/api_tokens/__init__.py +0 -0
  19. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/api_tokens/create_api_token.py +0 -0
  20. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/api_tokens/delete_api_token.py +0 -0
  21. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/api_tokens/list_api_tokens.py +0 -0
  22. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/disk_configuration/__init__.py +0 -0
  23. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/disk_configuration/get_allowed_i_ps.py +0 -0
  24. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/disk_configuration/list_delegations.py +0 -0
  25. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/disk_configuration/revoke_delegation.py +0 -0
  26. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/disk_configuration/set_allowed_i_ps.py +0 -0
  27. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/disk_users/__init__.py +0 -0
  28. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/disk_users/add_disk_user.py +0 -0
  29. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/disk_users/remove_disk_user.py +0 -0
  30. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/disks/__init__.py +0 -0
  31. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/disks/create_disk.py +0 -0
  32. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/disks/delete_disk.py +0 -0
  33. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/disks/exec_.py +0 -0
  34. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/disks/exec_disk.py +0 -0
  35. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/disks/get_disk.py +0 -0
  36. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/disks/grep_disk.py +0 -0
  37. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/disks/list_disks.py +0 -0
  38. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/sandboxes/__init__.py +0 -0
  39. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/sandboxes/cancel_sandbox_exec.py +0 -0
  40. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/sandboxes/create_sandbox.py +0 -0
  41. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/sandboxes/exec_in_sandbox.py +0 -0
  42. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/sandboxes/get_sandbox.py +0 -0
  43. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/sandboxes/get_sandbox_exec.py +0 -0
  44. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/sandboxes/list_sandbox_execs.py +0 -0
  45. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/sandboxes/list_sandboxes.py +0 -0
  46. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/sandboxes/pause_sandbox.py +0 -0
  47. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/sandboxes/resume_sandbox.py +0 -0
  48. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/api/sandboxes/start_sandbox.py +0 -0
  49. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/client.py +0 -0
  50. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/errors.py +0 -0
  51. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/activity_event.py +0 -0
  52. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/activity_event_details.py +0 -0
  53. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/activity_event_level.py +0 -0
  54. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_activity_list.py +0 -0
  55. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_allowed_i_ps.py +0 -0
  56. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_allowed_i_ps_data.py +0 -0
  57. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_authorized_user.py +0 -0
  58. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_create_disk.py +0 -0
  59. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_create_disk_data.py +0 -0
  60. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_delegations.py +0 -0
  61. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_delegations_data.py +0 -0
  62. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_disk.py +0 -0
  63. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_disk_list.py +0 -0
  64. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_empty.py +0 -0
  65. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_exec.py +0 -0
  66. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_exec_disk.py +0 -0
  67. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_grep_disk.py +0 -0
  68. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_message.py +0 -0
  69. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_message_data.py +0 -0
  70. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_sandbox.py +0 -0
  71. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_sandbox_exec.py +0 -0
  72. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_sandbox_exec_list.py +0 -0
  73. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_sandbox_exec_list_data.py +0 -0
  74. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_sandbox_list.py +0 -0
  75. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_sandbox_list_data.py +0 -0
  76. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_token_created.py +0 -0
  77. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_token_created_data.py +0 -0
  78. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_token_list.py +0 -0
  79. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_response_token_list_data.py +0 -0
  80. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/api_token_response.py +0 -0
  81. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/authorized_user.py +0 -0
  82. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/authorized_user_status.py +0 -0
  83. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/authorized_user_type.py +0 -0
  84. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/aws_sts_user.py +0 -0
  85. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/aws_sts_user_type.py +0 -0
  86. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/azure_blob_storage.py +0 -0
  87. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/azure_blob_storage_type.py +0 -0
  88. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/cloudflare_r2.py +0 -0
  89. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/cloudflare_r2_type.py +0 -0
  90. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/connected_client.py +0 -0
  91. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/create_api_token_request.py +0 -0
  92. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/create_disk_request.py +0 -0
  93. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/create_sandbox_request.py +0 -0
  94. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/create_sandbox_request_env.py +0 -0
  95. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/delegation_entry.py +0 -0
  96. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/disk_metrics.py +0 -0
  97. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/disk_response.py +0 -0
  98. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/disk_response_capabilities_item.py +0 -0
  99. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/disk_response_status.py +0 -0
  100. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/error_response.py +0 -0
  101. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/exec_disk_request.py +0 -0
  102. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/exec_disk_result.py +0 -0
  103. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/exec_mount.py +0 -0
  104. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/exec_request.py +0 -0
  105. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/exec_request_disks.py +0 -0
  106. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/exec_timing.py +0 -0
  107. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/google_cloud_storage.py +0 -0
  108. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/google_cloud_storage_type.py +0 -0
  109. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/grep_disk_request.py +0 -0
  110. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/grep_disk_result.py +0 -0
  111. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/grep_match.py +0 -0
  112. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/grep_stopped_reason.py +0 -0
  113. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/list_activity_level_item.py +0 -0
  114. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/mount_config_response.py +0 -0
  115. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/mount_response.py +0 -0
  116. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/mount_response_access_mode.py +0 -0
  117. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/mount_response_authorization_type.py +0 -0
  118. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/mount_response_connection_status.py +0 -0
  119. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/mount_response_type.py +0 -0
  120. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/remove_disk_user_user_type.py +0 -0
  121. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/revoke_delegation_request.py +0 -0
  122. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/s3.py +0 -0
  123. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/s3_compatible.py +0 -0
  124. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/s3_compatible_type.py +0 -0
  125. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/s3_type.py +0 -0
  126. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/sandbox.py +0 -0
  127. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/sandbox_endpoint.py +0 -0
  128. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/sandbox_exec.py +0 -0
  129. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/sandbox_exec_request.py +0 -0
  130. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/sandbox_exec_request_env.py +0 -0
  131. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/sandbox_exec_state.py +0 -0
  132. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/sandbox_platform.py +0 -0
  133. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/sandbox_port_mapping.py +0 -0
  134. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/sandbox_port_mapping_protocol.py +0 -0
  135. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/sandbox_state.py +0 -0
  136. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/set_allowed_i_ps_body.py +0 -0
  137. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/token_user.py +0 -0
  138. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/models/token_user_type.py +0 -0
  139. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/py.typed +0 -0
  140. {archil_openapi-0.0.2 → archil_openapi-0.0.4}/src/archil_openapi/types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: archil-openapi
3
- Version: 0.0.2
3
+ Version: 0.0.4
4
4
  Summary: Generated low-level Python client for the Archil control plane API
5
5
  Keywords: archil,openapi
6
6
  Author: Archil, Inc.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "archil-openapi"
3
- version = "0.0.2"
3
+ version = "0.0.4"
4
4
  description = "Generated low-level Python client for the Archil control plane API"
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
@@ -0,0 +1,208 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Optional, Union
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.api_response_share_url import ApiResponseShareUrl
9
+ from ...models.create_share_url_request import CreateShareUrlRequest
10
+ from ...models.error_response import ErrorResponse
11
+ from ...types import Response
12
+
13
+
14
+ def _get_kwargs(
15
+ id: str,
16
+ *,
17
+ body: CreateShareUrlRequest,
18
+ ) -> dict[str, Any]:
19
+ headers: dict[str, Any] = {}
20
+
21
+ _kwargs: dict[str, Any] = {
22
+ "method": "post",
23
+ "url": "/api/disks/{id}/share".format(
24
+ id=id,
25
+ ),
26
+ }
27
+
28
+ _kwargs["json"] = body.to_dict()
29
+
30
+ headers["Content-Type"] = "application/json"
31
+
32
+ _kwargs["headers"] = headers
33
+ return _kwargs
34
+
35
+
36
+ def _parse_response(
37
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
38
+ ) -> Optional[Union[ApiResponseShareUrl, ErrorResponse]]:
39
+ if response.status_code == 200:
40
+ response_200 = ApiResponseShareUrl.from_dict(response.json())
41
+
42
+ return response_200
43
+
44
+ if response.status_code == 400:
45
+ response_400 = ErrorResponse.from_dict(response.json())
46
+
47
+ return response_400
48
+
49
+ if response.status_code == 401:
50
+ response_401 = ErrorResponse.from_dict(response.json())
51
+
52
+ return response_401
53
+
54
+ if response.status_code == 404:
55
+ response_404 = ErrorResponse.from_dict(response.json())
56
+
57
+ return response_404
58
+
59
+ if response.status_code == 500:
60
+ response_500 = ErrorResponse.from_dict(response.json())
61
+
62
+ return response_500
63
+
64
+ if client.raise_on_unexpected_status:
65
+ raise errors.UnexpectedStatus(response.status_code, response.content)
66
+ else:
67
+ return None
68
+
69
+
70
+ def _build_response(
71
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
72
+ ) -> Response[Union[ApiResponseShareUrl, ErrorResponse]]:
73
+ return Response(
74
+ status_code=HTTPStatus(response.status_code),
75
+ content=response.content,
76
+ headers=response.headers,
77
+ parsed=_parse_response(client=client, response=response),
78
+ )
79
+
80
+
81
+ def sync_detailed(
82
+ id: str,
83
+ *,
84
+ client: Union[AuthenticatedClient, Client],
85
+ body: CreateShareUrlRequest,
86
+ ) -> Response[Union[ApiResponseShareUrl, ErrorResponse]]:
87
+ """Create a share URL for a file
88
+
89
+ Creates a signed, time-limited URL for downloading a file without
90
+ authentication. The URL expires after 24 hours by default.
91
+
92
+ Args:
93
+ id (str): Example: dsk-0123456789abcdef.
94
+ body (CreateShareUrlRequest):
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
+ Response[Union[ApiResponseShareUrl, ErrorResponse]]
102
+ """
103
+
104
+ kwargs = _get_kwargs(
105
+ id=id,
106
+ body=body,
107
+ )
108
+
109
+ response = client.get_httpx_client().request(
110
+ **kwargs,
111
+ )
112
+
113
+ return _build_response(client=client, response=response)
114
+
115
+
116
+ def sync(
117
+ id: str,
118
+ *,
119
+ client: Union[AuthenticatedClient, Client],
120
+ body: CreateShareUrlRequest,
121
+ ) -> Optional[Union[ApiResponseShareUrl, ErrorResponse]]:
122
+ """Create a share URL for a file
123
+
124
+ Creates a signed, time-limited URL for downloading a file without
125
+ authentication. The URL expires after 24 hours by default.
126
+
127
+ Args:
128
+ id (str): Example: dsk-0123456789abcdef.
129
+ body (CreateShareUrlRequest):
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
+ Union[ApiResponseShareUrl, ErrorResponse]
137
+ """
138
+
139
+ return sync_detailed(
140
+ id=id,
141
+ client=client,
142
+ body=body,
143
+ ).parsed
144
+
145
+
146
+ async def asyncio_detailed(
147
+ id: str,
148
+ *,
149
+ client: Union[AuthenticatedClient, Client],
150
+ body: CreateShareUrlRequest,
151
+ ) -> Response[Union[ApiResponseShareUrl, ErrorResponse]]:
152
+ """Create a share URL for a file
153
+
154
+ Creates a signed, time-limited URL for downloading a file without
155
+ authentication. The URL expires after 24 hours by default.
156
+
157
+ Args:
158
+ id (str): Example: dsk-0123456789abcdef.
159
+ body (CreateShareUrlRequest):
160
+
161
+ Raises:
162
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
163
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
164
+
165
+ Returns:
166
+ Response[Union[ApiResponseShareUrl, ErrorResponse]]
167
+ """
168
+
169
+ kwargs = _get_kwargs(
170
+ id=id,
171
+ body=body,
172
+ )
173
+
174
+ response = await client.get_async_httpx_client().request(**kwargs)
175
+
176
+ return _build_response(client=client, response=response)
177
+
178
+
179
+ async def asyncio(
180
+ id: str,
181
+ *,
182
+ client: Union[AuthenticatedClient, Client],
183
+ body: CreateShareUrlRequest,
184
+ ) -> Optional[Union[ApiResponseShareUrl, ErrorResponse]]:
185
+ """Create a share URL for a file
186
+
187
+ Creates a signed, time-limited URL for downloading a file without
188
+ authentication. The URL expires after 24 hours by default.
189
+
190
+ Args:
191
+ id (str): Example: dsk-0123456789abcdef.
192
+ body (CreateShareUrlRequest):
193
+
194
+ Raises:
195
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
196
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
197
+
198
+ Returns:
199
+ Union[ApiResponseShareUrl, ErrorResponse]
200
+ """
201
+
202
+ return (
203
+ await asyncio_detailed(
204
+ id=id,
205
+ client=client,
206
+ body=body,
207
+ )
208
+ ).parsed
@@ -74,7 +74,8 @@ def sync_detailed(
74
74
  ) -> Response[Union[Any, ErrorResponse]]:
75
75
  """Delete a sandbox
76
76
 
77
- Permanently deletes a stopped, exited, or failed sandbox.
77
+ Permanently deletes a stopped, exited, or failed sandbox and its backing disk. A sandbox with child
78
+ forks cannot be deleted until those children are deleted, starting with the deepest ones.
78
79
 
79
80
  Args:
80
81
  sid (UUID):
@@ -105,7 +106,8 @@ def sync(
105
106
  ) -> Optional[Union[Any, ErrorResponse]]:
106
107
  """Delete a sandbox
107
108
 
108
- Permanently deletes a stopped, exited, or failed sandbox.
109
+ Permanently deletes a stopped, exited, or failed sandbox and its backing disk. A sandbox with child
110
+ forks cannot be deleted until those children are deleted, starting with the deepest ones.
109
111
 
110
112
  Args:
111
113
  sid (UUID):
@@ -131,7 +133,8 @@ async def asyncio_detailed(
131
133
  ) -> Response[Union[Any, ErrorResponse]]:
132
134
  """Delete a sandbox
133
135
 
134
- Permanently deletes a stopped, exited, or failed sandbox.
136
+ Permanently deletes a stopped, exited, or failed sandbox and its backing disk. A sandbox with child
137
+ forks cannot be deleted until those children are deleted, starting with the deepest ones.
135
138
 
136
139
  Args:
137
140
  sid (UUID):
@@ -160,7 +163,8 @@ async def asyncio(
160
163
  ) -> Optional[Union[Any, ErrorResponse]]:
161
164
  """Delete a sandbox
162
165
 
163
- Permanently deletes a stopped, exited, or failed sandbox.
166
+ Permanently deletes a stopped, exited, or failed sandbox and its backing disk. A sandbox with child
167
+ forks cannot be deleted until those children are deleted, starting with the deepest ones.
164
168
 
165
169
  Args:
166
170
  sid (UUID):
@@ -0,0 +1,255 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Optional, Union
3
+ from uuid import UUID
4
+
5
+ import httpx
6
+
7
+ from ... import errors
8
+ from ...client import AuthenticatedClient, Client
9
+ from ...models.api_response_sandbox import ApiResponseSandbox
10
+ from ...models.error_response import ErrorResponse
11
+ from ...models.fork_sandbox_request import ForkSandboxRequest
12
+ from ...types import UNSET, Response, Unset
13
+
14
+
15
+ def _get_kwargs(
16
+ sid: UUID,
17
+ *,
18
+ body: ForkSandboxRequest,
19
+ wait: Union[Unset, bool] = False,
20
+ ) -> dict[str, Any]:
21
+ headers: dict[str, Any] = {}
22
+
23
+ params: dict[str, Any] = {}
24
+
25
+ params["wait"] = wait
26
+
27
+ params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
28
+
29
+ _kwargs: dict[str, Any] = {
30
+ "method": "post",
31
+ "url": "/api/sandboxes/{sid}/fork".format(
32
+ sid=sid,
33
+ ),
34
+ "params": params,
35
+ }
36
+
37
+ _kwargs["json"] = body.to_dict()
38
+
39
+ headers["Content-Type"] = "application/json"
40
+
41
+ _kwargs["headers"] = headers
42
+ return _kwargs
43
+
44
+
45
+ def _parse_response(
46
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
47
+ ) -> Optional[Union[ApiResponseSandbox, ErrorResponse]]:
48
+ if response.status_code == 202:
49
+ response_202 = ApiResponseSandbox.from_dict(response.json())
50
+
51
+ return response_202
52
+
53
+ if response.status_code == 400:
54
+ response_400 = ErrorResponse.from_dict(response.json())
55
+
56
+ return response_400
57
+
58
+ if response.status_code == 401:
59
+ response_401 = ErrorResponse.from_dict(response.json())
60
+
61
+ return response_401
62
+
63
+ if response.status_code == 404:
64
+ response_404 = ErrorResponse.from_dict(response.json())
65
+
66
+ return response_404
67
+
68
+ if response.status_code == 409:
69
+ response_409 = ErrorResponse.from_dict(response.json())
70
+
71
+ return response_409
72
+
73
+ if response.status_code == 500:
74
+ response_500 = ErrorResponse.from_dict(response.json())
75
+
76
+ return response_500
77
+
78
+ if response.status_code == 503:
79
+ response_503 = ErrorResponse.from_dict(response.json())
80
+
81
+ return response_503
82
+
83
+ if client.raise_on_unexpected_status:
84
+ raise errors.UnexpectedStatus(response.status_code, response.content)
85
+ else:
86
+ return None
87
+
88
+
89
+ def _build_response(
90
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
91
+ ) -> Response[Union[ApiResponseSandbox, ErrorResponse]]:
92
+ return Response(
93
+ status_code=HTTPStatus(response.status_code),
94
+ content=response.content,
95
+ headers=response.headers,
96
+ parsed=_parse_response(client=client, response=response),
97
+ )
98
+
99
+
100
+ def sync_detailed(
101
+ sid: UUID,
102
+ *,
103
+ client: Union[AuthenticatedClient, Client],
104
+ body: ForkSandboxRequest,
105
+ wait: Union[Unset, bool] = False,
106
+ ) -> Response[Union[ApiResponseSandbox, ErrorResponse]]:
107
+ """Fork a sandbox
108
+
109
+ Checkpoints a running source sandbox and creates an isolated writable
110
+ disk branch. Forks from running or paused sources resume from the
111
+ source's CPU, memory, and disk state. Forks from stopped sources
112
+ cold-boot from the saved disk checkpoint. A running source is
113
+ resumed after its checkpoint; paused and stopped sources remain
114
+ inactive. Forked sandboxes may themselves be forked.
115
+
116
+ Args:
117
+ sid (UUID):
118
+ wait (Union[Unset, bool]): Default: False.
119
+ body (ForkSandboxRequest):
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[Union[ApiResponseSandbox, ErrorResponse]]
127
+ """
128
+
129
+ kwargs = _get_kwargs(
130
+ sid=sid,
131
+ body=body,
132
+ wait=wait,
133
+ )
134
+
135
+ response = client.get_httpx_client().request(
136
+ **kwargs,
137
+ )
138
+
139
+ return _build_response(client=client, response=response)
140
+
141
+
142
+ def sync(
143
+ sid: UUID,
144
+ *,
145
+ client: Union[AuthenticatedClient, Client],
146
+ body: ForkSandboxRequest,
147
+ wait: Union[Unset, bool] = False,
148
+ ) -> Optional[Union[ApiResponseSandbox, ErrorResponse]]:
149
+ """Fork a sandbox
150
+
151
+ Checkpoints a running source sandbox and creates an isolated writable
152
+ disk branch. Forks from running or paused sources resume from the
153
+ source's CPU, memory, and disk state. Forks from stopped sources
154
+ cold-boot from the saved disk checkpoint. A running source is
155
+ resumed after its checkpoint; paused and stopped sources remain
156
+ inactive. Forked sandboxes may themselves be forked.
157
+
158
+ Args:
159
+ sid (UUID):
160
+ wait (Union[Unset, bool]): Default: False.
161
+ body (ForkSandboxRequest):
162
+
163
+ Raises:
164
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
165
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
166
+
167
+ Returns:
168
+ Union[ApiResponseSandbox, ErrorResponse]
169
+ """
170
+
171
+ return sync_detailed(
172
+ sid=sid,
173
+ client=client,
174
+ body=body,
175
+ wait=wait,
176
+ ).parsed
177
+
178
+
179
+ async def asyncio_detailed(
180
+ sid: UUID,
181
+ *,
182
+ client: Union[AuthenticatedClient, Client],
183
+ body: ForkSandboxRequest,
184
+ wait: Union[Unset, bool] = False,
185
+ ) -> Response[Union[ApiResponseSandbox, ErrorResponse]]:
186
+ """Fork a sandbox
187
+
188
+ Checkpoints a running source sandbox and creates an isolated writable
189
+ disk branch. Forks from running or paused sources resume from the
190
+ source's CPU, memory, and disk state. Forks from stopped sources
191
+ cold-boot from the saved disk checkpoint. A running source is
192
+ resumed after its checkpoint; paused and stopped sources remain
193
+ inactive. Forked sandboxes may themselves be forked.
194
+
195
+ Args:
196
+ sid (UUID):
197
+ wait (Union[Unset, bool]): Default: False.
198
+ body (ForkSandboxRequest):
199
+
200
+ Raises:
201
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
202
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
203
+
204
+ Returns:
205
+ Response[Union[ApiResponseSandbox, ErrorResponse]]
206
+ """
207
+
208
+ kwargs = _get_kwargs(
209
+ sid=sid,
210
+ body=body,
211
+ wait=wait,
212
+ )
213
+
214
+ response = await client.get_async_httpx_client().request(**kwargs)
215
+
216
+ return _build_response(client=client, response=response)
217
+
218
+
219
+ async def asyncio(
220
+ sid: UUID,
221
+ *,
222
+ client: Union[AuthenticatedClient, Client],
223
+ body: ForkSandboxRequest,
224
+ wait: Union[Unset, bool] = False,
225
+ ) -> Optional[Union[ApiResponseSandbox, ErrorResponse]]:
226
+ """Fork a sandbox
227
+
228
+ Checkpoints a running source sandbox and creates an isolated writable
229
+ disk branch. Forks from running or paused sources resume from the
230
+ source's CPU, memory, and disk state. Forks from stopped sources
231
+ cold-boot from the saved disk checkpoint. A running source is
232
+ resumed after its checkpoint; paused and stopped sources remain
233
+ inactive. Forked sandboxes may themselves be forked.
234
+
235
+ Args:
236
+ sid (UUID):
237
+ wait (Union[Unset, bool]): Default: False.
238
+ body (ForkSandboxRequest):
239
+
240
+ Raises:
241
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
242
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
243
+
244
+ Returns:
245
+ Union[ApiResponseSandbox, ErrorResponse]
246
+ """
247
+
248
+ return (
249
+ await asyncio_detailed(
250
+ sid=sid,
251
+ client=client,
252
+ body=body,
253
+ wait=wait,
254
+ )
255
+ ).parsed
@@ -89,12 +89,12 @@ def sync_detailed(
89
89
  *,
90
90
  client: Union[AuthenticatedClient, Client],
91
91
  ) -> Response[Union[ApiResponseSandbox, ErrorResponse]]:
92
- """Stop a sandbox without saving memory
92
+ """Stop a sandbox
93
93
 
94
- Shuts down the VM without creating a memory snapshot. When the sandbox
95
- is paused, this invalidates its committed snapshot and changes it to
96
- `stopped`. The sandbox's identity, configuration, and disk state remain
97
- available for a later cold start.
94
+ Gracefully shuts down the guest, then checkpoints its disk before
95
+ entering `stopped`. The sandbox and any forks from it cold-boot from
96
+ disk state. Stopping a paused sandbox reuses its existing disk
97
+ checkpoint. In-flight execs receive the guest shutdown signal.
98
98
 
99
99
  Args:
100
100
  sid (UUID):
@@ -123,12 +123,12 @@ def sync(
123
123
  *,
124
124
  client: Union[AuthenticatedClient, Client],
125
125
  ) -> Optional[Union[ApiResponseSandbox, ErrorResponse]]:
126
- """Stop a sandbox without saving memory
126
+ """Stop a sandbox
127
127
 
128
- Shuts down the VM without creating a memory snapshot. When the sandbox
129
- is paused, this invalidates its committed snapshot and changes it to
130
- `stopped`. The sandbox's identity, configuration, and disk state remain
131
- available for a later cold start.
128
+ Gracefully shuts down the guest, then checkpoints its disk before
129
+ entering `stopped`. The sandbox and any forks from it cold-boot from
130
+ disk state. Stopping a paused sandbox reuses its existing disk
131
+ checkpoint. In-flight execs receive the guest shutdown signal.
132
132
 
133
133
  Args:
134
134
  sid (UUID):
@@ -152,12 +152,12 @@ async def asyncio_detailed(
152
152
  *,
153
153
  client: Union[AuthenticatedClient, Client],
154
154
  ) -> Response[Union[ApiResponseSandbox, ErrorResponse]]:
155
- """Stop a sandbox without saving memory
155
+ """Stop a sandbox
156
156
 
157
- Shuts down the VM without creating a memory snapshot. When the sandbox
158
- is paused, this invalidates its committed snapshot and changes it to
159
- `stopped`. The sandbox's identity, configuration, and disk state remain
160
- available for a later cold start.
157
+ Gracefully shuts down the guest, then checkpoints its disk before
158
+ entering `stopped`. The sandbox and any forks from it cold-boot from
159
+ disk state. Stopping a paused sandbox reuses its existing disk
160
+ checkpoint. In-flight execs receive the guest shutdown signal.
161
161
 
162
162
  Args:
163
163
  sid (UUID):
@@ -184,12 +184,12 @@ async def asyncio(
184
184
  *,
185
185
  client: Union[AuthenticatedClient, Client],
186
186
  ) -> Optional[Union[ApiResponseSandbox, ErrorResponse]]:
187
- """Stop a sandbox without saving memory
187
+ """Stop a sandbox
188
188
 
189
- Shuts down the VM without creating a memory snapshot. When the sandbox
190
- is paused, this invalidates its committed snapshot and changes it to
191
- `stopped`. The sandbox's identity, configuration, and disk state remain
192
- available for a later cold start.
189
+ Gracefully shuts down the guest, then checkpoints its disk before
190
+ entering `stopped`. The sandbox and any forks from it cold-boot from
191
+ disk state. Stopping a paused sandbox reuses its existing disk
192
+ checkpoint. In-flight execs receive the guest shutdown signal.
193
193
 
194
194
  Args:
195
195
  sid (UUID):
@@ -25,6 +25,8 @@ from .api_response_sandbox_exec_list import ApiResponseSandboxExecList
25
25
  from .api_response_sandbox_exec_list_data import ApiResponseSandboxExecListData
26
26
  from .api_response_sandbox_list import ApiResponseSandboxList
27
27
  from .api_response_sandbox_list_data import ApiResponseSandboxListData
28
+ from .api_response_share_url import ApiResponseShareUrl
29
+ from .api_response_share_url_data import ApiResponseShareUrlData
28
30
  from .api_response_token_created import ApiResponseTokenCreated
29
31
  from .api_response_token_created_data import ApiResponseTokenCreatedData
30
32
  from .api_response_token_list import ApiResponseTokenList
@@ -44,6 +46,7 @@ from .create_api_token_request import CreateApiTokenRequest
44
46
  from .create_disk_request import CreateDiskRequest
45
47
  from .create_sandbox_request import CreateSandboxRequest
46
48
  from .create_sandbox_request_env import CreateSandboxRequestEnv
49
+ from .create_share_url_request import CreateShareUrlRequest
47
50
  from .delegation_entry import DelegationEntry
48
51
  from .disk_metrics import DiskMetrics
49
52
  from .disk_response import DiskResponse
@@ -56,6 +59,7 @@ from .exec_mount import ExecMount
56
59
  from .exec_request import ExecRequest
57
60
  from .exec_request_disks import ExecRequestDisks
58
61
  from .exec_timing import ExecTiming
62
+ from .fork_sandbox_request import ForkSandboxRequest
59
63
  from .google_cloud_storage import GoogleCloudStorage
60
64
  from .google_cloud_storage_type import GoogleCloudStorageType
61
65
  from .grep_disk_request import GrepDiskRequest
@@ -115,6 +119,8 @@ __all__ = (
115
119
  "ApiResponseSandboxExecListData",
116
120
  "ApiResponseSandboxList",
117
121
  "ApiResponseSandboxListData",
122
+ "ApiResponseShareUrl",
123
+ "ApiResponseShareUrlData",
118
124
  "ApiResponseTokenCreated",
119
125
  "ApiResponseTokenCreatedData",
120
126
  "ApiResponseTokenList",
@@ -134,6 +140,7 @@ __all__ = (
134
140
  "CreateDiskRequest",
135
141
  "CreateSandboxRequest",
136
142
  "CreateSandboxRequestEnv",
143
+ "CreateShareUrlRequest",
137
144
  "DelegationEntry",
138
145
  "DiskMetrics",
139
146
  "DiskResponse",
@@ -146,6 +153,7 @@ __all__ = (
146
153
  "ExecRequest",
147
154
  "ExecRequestDisks",
148
155
  "ExecTiming",
156
+ "ForkSandboxRequest",
149
157
  "GoogleCloudStorage",
150
158
  "GoogleCloudStorageType",
151
159
  "GrepDiskRequest",