@boatdev/sdk 1.11.0 → 1.12.1

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 (175) hide show
  1. package/.openapi-generator/FILES +42 -0
  2. package/dist/apis/BoatApi.d.ts +191 -14
  3. package/dist/apis/BoatApi.js +466 -14
  4. package/dist/esm/apis/BoatApi.d.ts +191 -14
  5. package/dist/esm/apis/BoatApi.js +466 -14
  6. package/dist/esm/models/CreateSandboxRequest.d.ts +35 -1
  7. package/dist/esm/models/CreateSandboxRequest.js +17 -0
  8. package/dist/esm/models/CreateSandboxRequestFilesInner.d.ts +52 -0
  9. package/dist/esm/models/CreateSandboxRequestFilesInner.js +56 -0
  10. package/dist/esm/models/CreateSandboxResponse.d.ts +7 -0
  11. package/dist/esm/models/CreateSandboxResponse.js +3 -0
  12. package/dist/esm/models/CreateSandboxResponseAllOfHostedPortsInner.d.ts +77 -0
  13. package/dist/esm/models/CreateSandboxResponseAllOfHostedPortsInner.js +64 -0
  14. package/dist/esm/models/FileDeleteResponse.d.ts +57 -0
  15. package/dist/esm/models/FileDeleteResponse.js +59 -0
  16. package/dist/esm/models/FileEntry.d.ts +68 -0
  17. package/dist/esm/models/FileEntry.js +67 -0
  18. package/dist/esm/models/FileFindResponse.d.ts +70 -0
  19. package/dist/esm/models/FileFindResponse.js +66 -0
  20. package/dist/esm/models/FileFindResponseAllOfMatches.d.ts +44 -0
  21. package/dist/esm/models/FileFindResponseAllOfMatches.js +51 -0
  22. package/dist/esm/models/FileFolderRequest.d.ts +38 -0
  23. package/dist/esm/models/FileFolderRequest.js +45 -0
  24. package/dist/esm/models/FileInfoResponse.d.ts +95 -0
  25. package/dist/esm/models/FileInfoResponse.js +85 -0
  26. package/dist/esm/models/FileListResponse.d.ts +70 -0
  27. package/dist/esm/models/FileListResponse.js +68 -0
  28. package/dist/esm/models/FileMoveRequest.d.ts +44 -0
  29. package/dist/esm/models/FileMoveRequest.js +49 -0
  30. package/dist/esm/models/FileMoveResponse.d.ts +63 -0
  31. package/dist/esm/models/FileMoveResponse.js +63 -0
  32. package/dist/esm/models/FilePermissionsRequest.d.ts +38 -0
  33. package/dist/esm/models/FilePermissionsRequest.js +47 -0
  34. package/dist/esm/models/FileReplaceRequest.d.ts +44 -0
  35. package/dist/esm/models/FileReplaceRequest.js +51 -0
  36. package/dist/esm/models/FileReplaceResponse.d.ts +58 -0
  37. package/dist/esm/models/FileReplaceResponse.js +60 -0
  38. package/dist/esm/models/FileReplaceResponseAllOfResults.d.ts +50 -0
  39. package/dist/esm/models/FileReplaceResponseAllOfResults.js +51 -0
  40. package/dist/esm/models/FileSearchResponse.d.ts +69 -0
  41. package/dist/esm/models/FileSearchResponse.js +65 -0
  42. package/dist/esm/models/LimitsFields.d.ts +54 -16
  43. package/dist/esm/models/LimitsFields.js +16 -2
  44. package/dist/esm/models/LimitsFieldsOveragePrices.d.ts +51 -0
  45. package/dist/esm/models/LimitsFieldsOveragePrices.js +48 -0
  46. package/dist/esm/models/LimitsFieldsOveragePricesStartBracketsInner.d.ts +44 -0
  47. package/dist/esm/models/LimitsFieldsOveragePricesStartBracketsInner.js +45 -0
  48. package/dist/esm/models/LimitsFieldsPlanIncluded.d.ts +44 -0
  49. package/dist/esm/models/LimitsFieldsPlanIncluded.js +45 -0
  50. package/dist/esm/models/LimitsFieldsStartLimitsWithWallet.d.ts +44 -0
  51. package/dist/esm/models/LimitsFieldsStartLimitsWithWallet.js +45 -0
  52. package/dist/esm/models/LimitsFieldsWallet.d.ts +32 -0
  53. package/dist/esm/models/LimitsFieldsWallet.js +41 -0
  54. package/dist/esm/models/LimitsResponse.d.ts +54 -16
  55. package/dist/esm/models/LimitsResponse.js +16 -2
  56. package/dist/esm/models/NamedSnapshotAllowance.d.ts +9 -3
  57. package/dist/esm/models/NamedSnapshotAllowance.js +2 -0
  58. package/dist/esm/models/SavedSnapshotAllowance.d.ts +9 -3
  59. package/dist/esm/models/SavedSnapshotAllowance.js +2 -0
  60. package/dist/esm/models/index.d.ts +21 -0
  61. package/dist/esm/models/index.js +21 -0
  62. package/dist/models/CreateSandboxRequest.d.ts +35 -1
  63. package/dist/models/CreateSandboxRequest.js +18 -1
  64. package/dist/models/CreateSandboxRequestFilesInner.d.ts +52 -0
  65. package/dist/models/CreateSandboxRequestFilesInner.js +64 -0
  66. package/dist/models/CreateSandboxResponse.d.ts +7 -0
  67. package/dist/models/CreateSandboxResponse.js +3 -0
  68. package/dist/models/CreateSandboxResponseAllOfHostedPortsInner.d.ts +77 -0
  69. package/dist/models/CreateSandboxResponseAllOfHostedPortsInner.js +72 -0
  70. package/dist/models/FileDeleteResponse.d.ts +57 -0
  71. package/dist/models/FileDeleteResponse.js +67 -0
  72. package/dist/models/FileEntry.d.ts +68 -0
  73. package/dist/models/FileEntry.js +74 -0
  74. package/dist/models/FileFindResponse.d.ts +70 -0
  75. package/dist/models/FileFindResponse.js +74 -0
  76. package/dist/models/FileFindResponseAllOfMatches.d.ts +44 -0
  77. package/dist/models/FileFindResponseAllOfMatches.js +58 -0
  78. package/dist/models/FileFolderRequest.d.ts +38 -0
  79. package/dist/models/FileFolderRequest.js +52 -0
  80. package/dist/models/FileInfoResponse.d.ts +95 -0
  81. package/dist/models/FileInfoResponse.js +93 -0
  82. package/dist/models/FileListResponse.d.ts +70 -0
  83. package/dist/models/FileListResponse.js +76 -0
  84. package/dist/models/FileMoveRequest.d.ts +44 -0
  85. package/dist/models/FileMoveRequest.js +56 -0
  86. package/dist/models/FileMoveResponse.d.ts +63 -0
  87. package/dist/models/FileMoveResponse.js +71 -0
  88. package/dist/models/FilePermissionsRequest.d.ts +38 -0
  89. package/dist/models/FilePermissionsRequest.js +54 -0
  90. package/dist/models/FileReplaceRequest.d.ts +44 -0
  91. package/dist/models/FileReplaceRequest.js +58 -0
  92. package/dist/models/FileReplaceResponse.d.ts +58 -0
  93. package/dist/models/FileReplaceResponse.js +68 -0
  94. package/dist/models/FileReplaceResponseAllOfResults.d.ts +50 -0
  95. package/dist/models/FileReplaceResponseAllOfResults.js +58 -0
  96. package/dist/models/FileSearchResponse.d.ts +69 -0
  97. package/dist/models/FileSearchResponse.js +73 -0
  98. package/dist/models/LimitsFields.d.ts +54 -16
  99. package/dist/models/LimitsFields.js +16 -2
  100. package/dist/models/LimitsFieldsOveragePrices.d.ts +51 -0
  101. package/dist/models/LimitsFieldsOveragePrices.js +55 -0
  102. package/dist/models/LimitsFieldsOveragePricesStartBracketsInner.d.ts +44 -0
  103. package/dist/models/LimitsFieldsOveragePricesStartBracketsInner.js +52 -0
  104. package/dist/models/LimitsFieldsPlanIncluded.d.ts +44 -0
  105. package/dist/models/LimitsFieldsPlanIncluded.js +52 -0
  106. package/dist/models/LimitsFieldsStartLimitsWithWallet.d.ts +44 -0
  107. package/dist/models/LimitsFieldsStartLimitsWithWallet.js +52 -0
  108. package/dist/models/LimitsFieldsWallet.d.ts +32 -0
  109. package/dist/models/LimitsFieldsWallet.js +48 -0
  110. package/dist/models/LimitsResponse.d.ts +54 -16
  111. package/dist/models/LimitsResponse.js +16 -2
  112. package/dist/models/NamedSnapshotAllowance.d.ts +9 -3
  113. package/dist/models/NamedSnapshotAllowance.js +2 -0
  114. package/dist/models/SavedSnapshotAllowance.d.ts +9 -3
  115. package/dist/models/SavedSnapshotAllowance.js +2 -0
  116. package/dist/models/index.d.ts +21 -0
  117. package/dist/models/index.js +21 -0
  118. package/docs/BoatApi.md +744 -48
  119. package/docs/CreateSandboxRequest.md +8 -0
  120. package/docs/CreateSandboxRequestFilesInner.md +36 -0
  121. package/docs/CreateSandboxResponse.md +2 -0
  122. package/docs/CreateSandboxResponseAllOfHostedPortsInner.md +44 -0
  123. package/docs/FileDeleteResponse.md +38 -0
  124. package/docs/FileEntry.md +44 -0
  125. package/docs/FileFindResponse.md +42 -0
  126. package/docs/FileFindResponseAllOfMatches.md +36 -0
  127. package/docs/FileFolderRequest.md +34 -0
  128. package/docs/FileInfoResponse.md +50 -0
  129. package/docs/FileListResponse.md +42 -0
  130. package/docs/FileMoveRequest.md +36 -0
  131. package/docs/FileMoveResponse.md +40 -0
  132. package/docs/FilePermissionsRequest.md +34 -0
  133. package/docs/FileReplaceRequest.md +36 -0
  134. package/docs/FileReplaceResponse.md +38 -0
  135. package/docs/FileReplaceResponseAllOfResults.md +38 -0
  136. package/docs/FileSearchResponse.md +42 -0
  137. package/docs/LimitsFields.md +12 -2
  138. package/docs/LimitsFieldsOveragePrices.md +39 -0
  139. package/docs/LimitsFieldsOveragePricesStartBracketsInner.md +36 -0
  140. package/docs/LimitsFieldsPlanIncluded.md +37 -0
  141. package/docs/LimitsFieldsStartLimitsWithWallet.md +37 -0
  142. package/docs/LimitsFieldsWallet.md +33 -0
  143. package/docs/LimitsResponse.md +12 -2
  144. package/docs/NamedSnapshotAllowance.md +3 -1
  145. package/docs/SavedSnapshotAllowance.md +3 -1
  146. package/package.json +1 -1
  147. package/src/apis/BoatApi.ts +721 -14
  148. package/src/models/CreateSandboxRequest.ts +57 -1
  149. package/src/models/CreateSandboxRequestFilesInner.ts +94 -0
  150. package/src/models/CreateSandboxResponse.ts +15 -0
  151. package/src/models/CreateSandboxResponseAllOfHostedPortsInner.ts +128 -0
  152. package/src/models/FileDeleteResponse.ts +102 -0
  153. package/src/models/FileEntry.ts +120 -0
  154. package/src/models/FileFindResponse.ts +127 -0
  155. package/src/models/FileFindResponseAllOfMatches.ts +84 -0
  156. package/src/models/FileFolderRequest.ts +74 -0
  157. package/src/models/FileInfoResponse.ts +158 -0
  158. package/src/models/FileListResponse.ts +128 -0
  159. package/src/models/FileMoveRequest.ts +83 -0
  160. package/src/models/FileMoveResponse.ts +111 -0
  161. package/src/models/FilePermissionsRequest.ts +75 -0
  162. package/src/models/FileReplaceRequest.ts +84 -0
  163. package/src/models/FileReplaceResponse.ts +110 -0
  164. package/src/models/FileReplaceResponseAllOfResults.ts +91 -0
  165. package/src/models/FileSearchResponse.ts +119 -0
  166. package/src/models/LimitsFields.ts +90 -16
  167. package/src/models/LimitsFieldsOveragePrices.ts +97 -0
  168. package/src/models/LimitsFieldsOveragePricesStartBracketsInner.ts +81 -0
  169. package/src/models/LimitsFieldsPlanIncluded.ts +81 -0
  170. package/src/models/LimitsFieldsStartLimitsWithWallet.ts +81 -0
  171. package/src/models/LimitsFieldsWallet.ts +65 -0
  172. package/src/models/LimitsResponse.ts +90 -16
  173. package/src/models/NamedSnapshotAllowance.ts +11 -3
  174. package/src/models/SavedSnapshotAllowance.ts +11 -3
  175. package/src/models/index.ts +21 -0
@@ -9,6 +9,8 @@
9
9
  * https://openapi-generator.tech
10
10
  * Do not edit the class manually.
11
11
  */
12
+ import type { CreateSandboxRequestFilesInner } from './CreateSandboxRequestFilesInner';
13
+ import type { HostPortRequest } from './HostPortRequest';
12
14
  /**
13
15
  * Options for provisioning a new cloud computer.
14
16
  * @export
@@ -72,11 +74,35 @@ export interface CreateSandboxRequest {
72
74
  */
73
75
  count?: number;
74
76
  /**
75
- * Shell script that runs on the sandbox after it is ready. Ready means "ready to accept the user", not "setup done": the script starts in the background once provisioning completes and never blocks the sandbox becoming usable. It runs as the sandbox user (`user`, not root; `sudo` needs no password) via `bash`, with the sandbox's environment applied, and its output goes to a log file on the sandbox. Observe the outcome as `setupStatus` (pending/running/done/failed) and `setupError` on the sandbox. Rejected with a 400 `invalid_setup_script` error when it is not a string or exceeds 64KB.
77
+ * Shell script that runs on the sandbox after it is ready. Ready means "ready to accept the user", not "setup done": the script starts in the background once provisioning completes and never blocks the sandbox becoming usable. It runs as the sandbox user (`user`, not root; `sudo` needs no password) via `bash`, with the sandbox's environment applied, and its output goes to a log file on the sandbox. Observe the outcome as `setupStatus` (pending/running/done/failed) and `setupError` on the sandbox. Rejected with a 400 `invalid_setup_script` error when it is not a string or exceeds 64KB. When the request also has `files`, the script starts after every file is written.
76
78
  * @type {string}
77
79
  * @memberof CreateSandboxRequest
78
80
  */
79
81
  setupScript?: string;
82
+ /**
83
+ * Display name of the sandbox, the same value `PATCH /sandboxes/{id}` sets. A sandbox created `from` a saved snapshot is named after the snapshot when this is omitted.
84
+ * @type {string}
85
+ * @memberof CreateSandboxRequest
86
+ */
87
+ name?: string;
88
+ /**
89
+ * Who can use a sandbox billed to an organization, with the same rules as the sandbox's `visibility` field. `private`: only you can use it. `shared`: every member can, as long as it holds none of your personal logins (`noEnv`, or an environment that passes nothing). Omitted, the organization's default for new sandboxes applies (`PATCH /orgs/{org}` `newSandboxesPrivate`). It is set before the sandbox gets a machine, so a `private` sandbox is never shared, not even for a moment, and needs no `unshare` call. A personal sandbox is always private: `shared` is refused with 400 `not_org_sandbox`. Change it later with `POST /sandboxes/{id}/share` and `POST /sandboxes/{id}/unshare`.
90
+ * @type {CreateSandboxRequestVisibilityEnum}
91
+ * @memberof CreateSandboxRequest
92
+ */
93
+ visibility?: CreateSandboxRequestVisibilityEnum;
94
+ /**
95
+ * Ports to host on public HTTPS URLs, each exactly as `POST /sandboxes/{id}/host` does. The create waits for the sandbox's machine (up to 60 s, usually under a second), hosts every port at once and answers the URLs in `hostedPorts`. The ports are routed before the sandbox is ready, so a service that starts later is reachable as soon as it listens. Refused with 400 `invalid_hosted_ports` for a bad entry or a duplicate port, with 400 `count_with_hosted_ports` together with `count`, and with 400 `fail_fast_with_hosted_ports` together with `failFast`.
96
+ * @type {Array<HostPortRequest>}
97
+ * @memberof CreateSandboxRequest
98
+ */
99
+ hostedPorts?: Array<HostPortRequest>;
100
+ /**
101
+ * Files to write on the sandbox, each like `PUT /sandboxes/{id}/files` (a path under `/home/user` or `/tmp`, relative paths resolve against `/home/user`; missing folders are created). Boat writes them once the sandbox's disk is in place and before it reports `ready`, so a client that sees `ready`, and the `setupScript`, always find them. They are written once, at the first start: a resume does not write them again. At most 256KB in total; upload bigger files with `POST /sandboxes/{id}/files/upload-url`. `setupStatus` covers them: it stays `pending` until they are written, and a write that fails sets it `failed` with the path and the reason in `setupError` (the setup script then does not run). Refused with 400 `invalid_files` for a bad path, a duplicate path or a body over the limits.
102
+ * @type {Array<CreateSandboxRequestFilesInner>}
103
+ * @memberof CreateSandboxRequest
104
+ */
105
+ files?: Array<CreateSandboxRequestFilesInner>;
80
106
  /**
81
107
  * Bill this sandbox to an organization you belong to (its shared wallet), by id or by name as `GET /orgs` lists it; `personal` or your own account id means personal billing. Omitted, the `X-Boat-Org` / `?org=` request scope applies, then the account's active wallet (`PATCH /orgs/active`), then personal. Listing, snapshots, and environments stay yours: the org is a wallet, not a shared workspace. Takes precedence over `teamId`.
82
108
  * @type {string}
@@ -106,6 +132,14 @@ export declare const CreateSandboxRequestTypeEnum: {
106
132
  readonly Xlarge: 'xlarge';
107
133
  };
108
134
  export type CreateSandboxRequestTypeEnum = typeof CreateSandboxRequestTypeEnum[keyof typeof CreateSandboxRequestTypeEnum];
135
+ /**
136
+ * @export
137
+ */
138
+ export declare const CreateSandboxRequestVisibilityEnum: {
139
+ readonly Private: 'private';
140
+ readonly Shared: 'shared';
141
+ };
142
+ export type CreateSandboxRequestVisibilityEnum = typeof CreateSandboxRequestVisibilityEnum[keyof typeof CreateSandboxRequestVisibilityEnum];
109
143
  /**
110
144
  * Check if a given object implements the CreateSandboxRequest interface.
111
145
  */
@@ -11,6 +11,8 @@
11
11
  * https://openapi-generator.tech
12
12
  * Do not edit the class manually.
13
13
  */
14
+ import { CreateSandboxRequestFilesInnerFromJSON, CreateSandboxRequestFilesInnerToJSON, } from './CreateSandboxRequestFilesInner';
15
+ import { HostPortRequestFromJSON, HostPortRequestToJSON, } from './HostPortRequest';
14
16
  /**
15
17
  * @export
16
18
  */
@@ -20,6 +22,13 @@ export const CreateSandboxRequestTypeEnum = {
20
22
  Large: 'large',
21
23
  Xlarge: 'xlarge'
22
24
  };
25
+ /**
26
+ * @export
27
+ */
28
+ export const CreateSandboxRequestVisibilityEnum = {
29
+ Private: 'private',
30
+ Shared: 'shared'
31
+ };
23
32
  /**
24
33
  * Check if a given object implements the CreateSandboxRequest interface.
25
34
  */
@@ -44,6 +53,10 @@ export function CreateSandboxRequestFromJSONTyped(json, ignoreDiscriminator) {
44
53
  'failFast': json['failFast'] == null ? undefined : json['failFast'],
45
54
  'count': json['count'] == null ? undefined : json['count'],
46
55
  'setupScript': json['setupScript'] == null ? undefined : json['setupScript'],
56
+ 'name': json['name'] == null ? undefined : json['name'],
57
+ 'visibility': json['visibility'] == null ? undefined : json['visibility'],
58
+ 'hostedPorts': json['hostedPorts'] == null ? undefined : (json['hostedPorts'].map(HostPortRequestFromJSON)),
59
+ 'files': json['files'] == null ? undefined : (json['files'].map(CreateSandboxRequestFilesInnerFromJSON)),
47
60
  'org': json['org'] == null ? undefined : json['org'],
48
61
  'teamId': json['teamId'] == null ? undefined : json['teamId'],
49
62
  'from': json['from'] == null ? undefined : json['from'],
@@ -67,6 +80,10 @@ export function CreateSandboxRequestToJSONTyped(value, ignoreDiscriminator = fal
67
80
  'failFast': value['failFast'],
68
81
  'count': value['count'],
69
82
  'setupScript': value['setupScript'],
83
+ 'name': value['name'],
84
+ 'visibility': value['visibility'],
85
+ 'hostedPorts': value['hostedPorts'] == null ? undefined : (value['hostedPorts'].map(HostPortRequestToJSON)),
86
+ 'files': value['files'] == null ? undefined : (value['files'].map(CreateSandboxRequestFilesInnerToJSON)),
70
87
  'org': value['org'],
71
88
  'teamId': value['teamId'],
72
89
  'from': value['from'],
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Boat Public API v1
3
+ * Public JSON API for creating, operating, prompting, observing, and exposing sandboxes from backend services, CI jobs, hosted workers, and Boat automation products. The v1 reference intentionally documents the developer integration surface only. Dashboard billing actions are not part of v1.
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ *
14
+ * @export
15
+ * @interface CreateSandboxRequestFilesInner
16
+ */
17
+ export interface CreateSandboxRequestFilesInner {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof CreateSandboxRequestFilesInner
22
+ */
23
+ path: string;
24
+ /**
25
+ * File contents, as text or base64 (see `encoding`).
26
+ * @type {string}
27
+ * @memberof CreateSandboxRequestFilesInner
28
+ */
29
+ content: string;
30
+ /**
31
+ *
32
+ * @type {CreateSandboxRequestFilesInnerEncodingEnum}
33
+ * @memberof CreateSandboxRequestFilesInner
34
+ */
35
+ encoding?: CreateSandboxRequestFilesInnerEncodingEnum;
36
+ }
37
+ /**
38
+ * @export
39
+ */
40
+ export declare const CreateSandboxRequestFilesInnerEncodingEnum: {
41
+ readonly Utf8: 'utf8';
42
+ readonly Base64: 'base64';
43
+ };
44
+ export type CreateSandboxRequestFilesInnerEncodingEnum = typeof CreateSandboxRequestFilesInnerEncodingEnum[keyof typeof CreateSandboxRequestFilesInnerEncodingEnum];
45
+ /**
46
+ * Check if a given object implements the CreateSandboxRequestFilesInner interface.
47
+ */
48
+ export declare function instanceOfCreateSandboxRequestFilesInner(value: object): value is CreateSandboxRequestFilesInner;
49
+ export declare function CreateSandboxRequestFilesInnerFromJSON(json: any): CreateSandboxRequestFilesInner;
50
+ export declare function CreateSandboxRequestFilesInnerFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateSandboxRequestFilesInner;
51
+ export declare function CreateSandboxRequestFilesInnerToJSON(json: any): CreateSandboxRequestFilesInner;
52
+ export declare function CreateSandboxRequestFilesInnerToJSONTyped(value?: CreateSandboxRequestFilesInner | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,56 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Boat Public API v1
5
+ * Public JSON API for creating, operating, prompting, observing, and exposing sandboxes from backend services, CI jobs, hosted workers, and Boat automation products. The v1 reference intentionally documents the developer integration surface only. Dashboard billing actions are not part of v1.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * @export
16
+ */
17
+ export const CreateSandboxRequestFilesInnerEncodingEnum = {
18
+ Utf8: 'utf8',
19
+ Base64: 'base64'
20
+ };
21
+ /**
22
+ * Check if a given object implements the CreateSandboxRequestFilesInner interface.
23
+ */
24
+ export function instanceOfCreateSandboxRequestFilesInner(value) {
25
+ if (!('path' in value) || value['path'] === undefined)
26
+ return false;
27
+ if (!('content' in value) || value['content'] === undefined)
28
+ return false;
29
+ return true;
30
+ }
31
+ export function CreateSandboxRequestFilesInnerFromJSON(json) {
32
+ return CreateSandboxRequestFilesInnerFromJSONTyped(json, false);
33
+ }
34
+ export function CreateSandboxRequestFilesInnerFromJSONTyped(json, ignoreDiscriminator) {
35
+ if (json == null) {
36
+ return json;
37
+ }
38
+ return {
39
+ 'path': json['path'],
40
+ 'content': json['content'],
41
+ 'encoding': json['encoding'] == null ? undefined : json['encoding'],
42
+ };
43
+ }
44
+ export function CreateSandboxRequestFilesInnerToJSON(json) {
45
+ return CreateSandboxRequestFilesInnerToJSONTyped(json, false);
46
+ }
47
+ export function CreateSandboxRequestFilesInnerToJSONTyped(value, ignoreDiscriminator = false) {
48
+ if (value == null) {
49
+ return value;
50
+ }
51
+ return {
52
+ 'path': value['path'],
53
+ 'content': value['content'],
54
+ 'encoding': value['encoding'],
55
+ };
56
+ }
@@ -9,6 +9,7 @@
9
9
  * https://openapi-generator.tech
10
10
  * Do not edit the class manually.
11
11
  */
12
+ import type { CreateSandboxResponseAllOfHostedPortsInner } from './CreateSandboxResponseAllOfHostedPortsInner';
12
13
  import type { Sandbox } from './Sandbox';
13
14
  /**
14
15
  *
@@ -52,6 +53,12 @@ export interface CreateSandboxResponse {
52
53
  * @memberof CreateSandboxResponse
53
54
  */
54
55
  sandboxes?: Array<Sandbox>;
56
+ /**
57
+ * Present when the request set `hostedPorts`, in request order. Each entry is what `POST /sandboxes/{id}/host` answers for that port: `url`, `access`, `isProtected` and `localhost`, or `error` and `message` when that one port could not be hosted (the sandbox is created anyway; host the port again with `POST /sandboxes/{id}/host`).
58
+ * @type {Array<CreateSandboxResponseAllOfHostedPortsInner>}
59
+ * @memberof CreateSandboxResponse
60
+ */
61
+ hostedPorts?: Array<CreateSandboxResponseAllOfHostedPortsInner>;
55
62
  /**
56
63
  * Present when a fair-use cap on a gifted account shortened the requested auto-stop time.
57
64
  * @type {string}
@@ -11,6 +11,7 @@
11
11
  * https://openapi-generator.tech
12
12
  * Do not edit the class manually.
13
13
  */
14
+ import { CreateSandboxResponseAllOfHostedPortsInnerFromJSON, CreateSandboxResponseAllOfHostedPortsInnerToJSON, } from './CreateSandboxResponseAllOfHostedPortsInner';
14
15
  import { SandboxFromJSON, SandboxToJSON, } from './Sandbox';
15
16
  /**
16
17
  * @export
@@ -55,6 +56,7 @@ export function CreateSandboxResponseFromJSONTyped(json, ignoreDiscriminator) {
55
56
  'ttlSeconds': json['ttlSeconds'],
56
57
  'sandbox': SandboxFromJSON(json['sandbox']),
57
58
  'sandboxes': json['sandboxes'] == null ? undefined : (json['sandboxes'].map(SandboxFromJSON)),
59
+ 'hostedPorts': json['hostedPorts'] == null ? undefined : (json['hostedPorts'].map(CreateSandboxResponseAllOfHostedPortsInnerFromJSON)),
58
60
  'giftLimitNotice': json['giftLimitNotice'] == null ? undefined : json['giftLimitNotice'],
59
61
  };
60
62
  }
@@ -72,6 +74,7 @@ export function CreateSandboxResponseToJSONTyped(value, ignoreDiscriminator = fa
72
74
  'ttlSeconds': value['ttlSeconds'],
73
75
  'sandbox': SandboxToJSON(value['sandbox']),
74
76
  'sandboxes': value['sandboxes'] == null ? undefined : (value['sandboxes'].map(SandboxToJSON)),
77
+ 'hostedPorts': value['hostedPorts'] == null ? undefined : (value['hostedPorts'].map(CreateSandboxResponseAllOfHostedPortsInnerToJSON)),
75
78
  'giftLimitNotice': value['giftLimitNotice'],
76
79
  };
77
80
  }
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Boat Public API v1
3
+ * Public JSON API for creating, operating, prompting, observing, and exposing sandboxes from backend services, CI jobs, hosted workers, and Boat automation products. The v1 reference intentionally documents the developer integration surface only. Dashboard billing actions are not part of v1.
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ *
14
+ * @export
15
+ * @interface CreateSandboxResponseAllOfHostedPortsInner
16
+ */
17
+ export interface CreateSandboxResponseAllOfHostedPortsInner {
18
+ [key: string]: any | any;
19
+ /**
20
+ *
21
+ * @type {number}
22
+ * @memberof CreateSandboxResponseAllOfHostedPortsInner
23
+ */
24
+ port: number;
25
+ /**
26
+ * Public HTTPS URL. Carries the `_token` query parameter unless the port is public; redact from logs.
27
+ * @type {string}
28
+ * @memberof CreateSandboxResponseAllOfHostedPortsInner
29
+ */
30
+ url?: string;
31
+ /**
32
+ *
33
+ * @type {boolean}
34
+ * @memberof CreateSandboxResponseAllOfHostedPortsInner
35
+ */
36
+ isProtected?: boolean;
37
+ /**
38
+ *
39
+ * @type {CreateSandboxResponseAllOfHostedPortsInnerAccessEnum}
40
+ * @memberof CreateSandboxResponseAllOfHostedPortsInner
41
+ */
42
+ access?: CreateSandboxResponseAllOfHostedPortsInnerAccessEnum;
43
+ /**
44
+ *
45
+ * @type {boolean}
46
+ * @memberof CreateSandboxResponseAllOfHostedPortsInner
47
+ */
48
+ localhost?: boolean;
49
+ /**
50
+ *
51
+ * @type {string}
52
+ * @memberof CreateSandboxResponseAllOfHostedPortsInner
53
+ */
54
+ error?: string;
55
+ /**
56
+ *
57
+ * @type {string}
58
+ * @memberof CreateSandboxResponseAllOfHostedPortsInner
59
+ */
60
+ message?: string;
61
+ }
62
+ /**
63
+ * @export
64
+ */
65
+ export declare const CreateSandboxResponseAllOfHostedPortsInnerAccessEnum: {
66
+ readonly Private: 'private';
67
+ readonly Public: 'public';
68
+ };
69
+ export type CreateSandboxResponseAllOfHostedPortsInnerAccessEnum = typeof CreateSandboxResponseAllOfHostedPortsInnerAccessEnum[keyof typeof CreateSandboxResponseAllOfHostedPortsInnerAccessEnum];
70
+ /**
71
+ * Check if a given object implements the CreateSandboxResponseAllOfHostedPortsInner interface.
72
+ */
73
+ export declare function instanceOfCreateSandboxResponseAllOfHostedPortsInner(value: object): value is CreateSandboxResponseAllOfHostedPortsInner;
74
+ export declare function CreateSandboxResponseAllOfHostedPortsInnerFromJSON(json: any): CreateSandboxResponseAllOfHostedPortsInner;
75
+ export declare function CreateSandboxResponseAllOfHostedPortsInnerFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateSandboxResponseAllOfHostedPortsInner;
76
+ export declare function CreateSandboxResponseAllOfHostedPortsInnerToJSON(json: any): CreateSandboxResponseAllOfHostedPortsInner;
77
+ export declare function CreateSandboxResponseAllOfHostedPortsInnerToJSONTyped(value?: CreateSandboxResponseAllOfHostedPortsInner | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,64 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Boat Public API v1
5
+ * Public JSON API for creating, operating, prompting, observing, and exposing sandboxes from backend services, CI jobs, hosted workers, and Boat automation products. The v1 reference intentionally documents the developer integration surface only. Dashboard billing actions are not part of v1.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * @export
16
+ */
17
+ export const CreateSandboxResponseAllOfHostedPortsInnerAccessEnum = {
18
+ Private: 'private',
19
+ Public: 'public'
20
+ };
21
+ /**
22
+ * Check if a given object implements the CreateSandboxResponseAllOfHostedPortsInner interface.
23
+ */
24
+ export function instanceOfCreateSandboxResponseAllOfHostedPortsInner(value) {
25
+ if (!('port' in value) || value['port'] === undefined)
26
+ return false;
27
+ return true;
28
+ }
29
+ export function CreateSandboxResponseAllOfHostedPortsInnerFromJSON(json) {
30
+ return CreateSandboxResponseAllOfHostedPortsInnerFromJSONTyped(json, false);
31
+ }
32
+ export function CreateSandboxResponseAllOfHostedPortsInnerFromJSONTyped(json, ignoreDiscriminator) {
33
+ if (json == null) {
34
+ return json;
35
+ }
36
+ return {
37
+ ...json,
38
+ 'port': json['port'],
39
+ 'url': json['url'] == null ? undefined : json['url'],
40
+ 'isProtected': json['isProtected'] == null ? undefined : json['isProtected'],
41
+ 'access': json['access'] == null ? undefined : json['access'],
42
+ 'localhost': json['localhost'] == null ? undefined : json['localhost'],
43
+ 'error': json['error'] == null ? undefined : json['error'],
44
+ 'message': json['message'] == null ? undefined : json['message'],
45
+ };
46
+ }
47
+ export function CreateSandboxResponseAllOfHostedPortsInnerToJSON(json) {
48
+ return CreateSandboxResponseAllOfHostedPortsInnerToJSONTyped(json, false);
49
+ }
50
+ export function CreateSandboxResponseAllOfHostedPortsInnerToJSONTyped(value, ignoreDiscriminator = false) {
51
+ if (value == null) {
52
+ return value;
53
+ }
54
+ return {
55
+ ...value,
56
+ 'port': value['port'],
57
+ 'url': value['url'],
58
+ 'isProtected': value['isProtected'],
59
+ 'access': value['access'],
60
+ 'localhost': value['localhost'],
61
+ 'error': value['error'],
62
+ 'message': value['message'],
63
+ };
64
+ }
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Boat Public API v1
3
+ * Public JSON API for creating, operating, prompting, observing, and exposing sandboxes from backend services, CI jobs, hosted workers, and Boat automation products. The v1 reference intentionally documents the developer integration surface only. Dashboard billing actions are not part of v1.
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ *
14
+ * @export
15
+ * @interface FileDeleteResponse
16
+ */
17
+ export interface FileDeleteResponse {
18
+ /**
19
+ *
20
+ * @type {boolean}
21
+ * @memberof FileDeleteResponse
22
+ */
23
+ ok: boolean;
24
+ /**
25
+ *
26
+ * @type {FileDeleteResponseTypeEnum}
27
+ * @memberof FileDeleteResponse
28
+ */
29
+ type: FileDeleteResponseTypeEnum;
30
+ /**
31
+ *
32
+ * @type {boolean}
33
+ * @memberof FileDeleteResponse
34
+ */
35
+ success?: boolean;
36
+ /**
37
+ *
38
+ * @type {string}
39
+ * @memberof FileDeleteResponse
40
+ */
41
+ path: string;
42
+ }
43
+ /**
44
+ * @export
45
+ */
46
+ export declare const FileDeleteResponseTypeEnum: {
47
+ readonly FileDeleted: 'file.deleted';
48
+ };
49
+ export type FileDeleteResponseTypeEnum = typeof FileDeleteResponseTypeEnum[keyof typeof FileDeleteResponseTypeEnum];
50
+ /**
51
+ * Check if a given object implements the FileDeleteResponse interface.
52
+ */
53
+ export declare function instanceOfFileDeleteResponse(value: object): value is FileDeleteResponse;
54
+ export declare function FileDeleteResponseFromJSON(json: any): FileDeleteResponse;
55
+ export declare function FileDeleteResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): FileDeleteResponse;
56
+ export declare function FileDeleteResponseToJSON(json: any): FileDeleteResponse;
57
+ export declare function FileDeleteResponseToJSONTyped(value?: FileDeleteResponse | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,59 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Boat Public API v1
5
+ * Public JSON API for creating, operating, prompting, observing, and exposing sandboxes from backend services, CI jobs, hosted workers, and Boat automation products. The v1 reference intentionally documents the developer integration surface only. Dashboard billing actions are not part of v1.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * @export
16
+ */
17
+ export const FileDeleteResponseTypeEnum = {
18
+ FileDeleted: 'file.deleted'
19
+ };
20
+ /**
21
+ * Check if a given object implements the FileDeleteResponse interface.
22
+ */
23
+ export function instanceOfFileDeleteResponse(value) {
24
+ if (!('ok' in value) || value['ok'] === undefined)
25
+ return false;
26
+ if (!('type' in value) || value['type'] === undefined)
27
+ return false;
28
+ if (!('path' in value) || value['path'] === undefined)
29
+ return false;
30
+ return true;
31
+ }
32
+ export function FileDeleteResponseFromJSON(json) {
33
+ return FileDeleteResponseFromJSONTyped(json, false);
34
+ }
35
+ export function FileDeleteResponseFromJSONTyped(json, ignoreDiscriminator) {
36
+ if (json == null) {
37
+ return json;
38
+ }
39
+ return {
40
+ 'ok': json['ok'],
41
+ 'type': json['type'],
42
+ 'success': json['success'] == null ? undefined : json['success'],
43
+ 'path': json['path'],
44
+ };
45
+ }
46
+ export function FileDeleteResponseToJSON(json) {
47
+ return FileDeleteResponseToJSONTyped(json, false);
48
+ }
49
+ export function FileDeleteResponseToJSONTyped(value, ignoreDiscriminator = false) {
50
+ if (value == null) {
51
+ return value;
52
+ }
53
+ return {
54
+ 'ok': value['ok'],
55
+ 'type': value['type'],
56
+ 'success': value['success'],
57
+ 'path': value['path'],
58
+ };
59
+ }
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Boat Public API v1
3
+ * Public JSON API for creating, operating, prompting, observing, and exposing sandboxes from backend services, CI jobs, hosted workers, and Boat automation products. The v1 reference intentionally documents the developer integration surface only. Dashboard billing actions are not part of v1.
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ *
14
+ * @export
15
+ * @interface FileEntry
16
+ */
17
+ export interface FileEntry {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof FileEntry
22
+ */
23
+ name: string;
24
+ /**
25
+ * Absolute path on the sandbox.
26
+ * @type {string}
27
+ * @memberof FileEntry
28
+ */
29
+ path: string;
30
+ /**
31
+ *
32
+ * @type {boolean}
33
+ * @memberof FileEntry
34
+ */
35
+ isDir: boolean;
36
+ /**
37
+ *
38
+ * @type {boolean}
39
+ * @memberof FileEntry
40
+ */
41
+ isSymlink: boolean;
42
+ /**
43
+ *
44
+ * @type {number}
45
+ * @memberof FileEntry
46
+ */
47
+ size: number;
48
+ /**
49
+ * Octal permission bits, for example "0644".
50
+ * @type {string}
51
+ * @memberof FileEntry
52
+ */
53
+ mode: string;
54
+ /**
55
+ *
56
+ * @type {Date}
57
+ * @memberof FileEntry
58
+ */
59
+ modifiedAt: Date;
60
+ }
61
+ /**
62
+ * Check if a given object implements the FileEntry interface.
63
+ */
64
+ export declare function instanceOfFileEntry(value: object): value is FileEntry;
65
+ export declare function FileEntryFromJSON(json: any): FileEntry;
66
+ export declare function FileEntryFromJSONTyped(json: any, ignoreDiscriminator: boolean): FileEntry;
67
+ export declare function FileEntryToJSON(json: any): FileEntry;
68
+ export declare function FileEntryToJSONTyped(value?: FileEntry | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,67 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Boat Public API v1
5
+ * Public JSON API for creating, operating, prompting, observing, and exposing sandboxes from backend services, CI jobs, hosted workers, and Boat automation products. The v1 reference intentionally documents the developer integration surface only. Dashboard billing actions are not part of v1.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * Check if a given object implements the FileEntry interface.
16
+ */
17
+ export function instanceOfFileEntry(value) {
18
+ if (!('name' in value) || value['name'] === undefined)
19
+ return false;
20
+ if (!('path' in value) || value['path'] === undefined)
21
+ return false;
22
+ if (!('isDir' in value) || value['isDir'] === undefined)
23
+ return false;
24
+ if (!('isSymlink' in value) || value['isSymlink'] === undefined)
25
+ return false;
26
+ if (!('size' in value) || value['size'] === undefined)
27
+ return false;
28
+ if (!('mode' in value) || value['mode'] === undefined)
29
+ return false;
30
+ if (!('modifiedAt' in value) || value['modifiedAt'] === undefined)
31
+ return false;
32
+ return true;
33
+ }
34
+ export function FileEntryFromJSON(json) {
35
+ return FileEntryFromJSONTyped(json, false);
36
+ }
37
+ export function FileEntryFromJSONTyped(json, ignoreDiscriminator) {
38
+ if (json == null) {
39
+ return json;
40
+ }
41
+ return {
42
+ 'name': json['name'],
43
+ 'path': json['path'],
44
+ 'isDir': json['isDir'],
45
+ 'isSymlink': json['isSymlink'],
46
+ 'size': json['size'],
47
+ 'mode': json['mode'],
48
+ 'modifiedAt': (new Date(json['modifiedAt'])),
49
+ };
50
+ }
51
+ export function FileEntryToJSON(json) {
52
+ return FileEntryToJSONTyped(json, false);
53
+ }
54
+ export function FileEntryToJSONTyped(value, ignoreDiscriminator = false) {
55
+ if (value == null) {
56
+ return value;
57
+ }
58
+ return {
59
+ 'name': value['name'],
60
+ 'path': value['path'],
61
+ 'isDir': value['isDir'],
62
+ 'isSymlink': value['isSymlink'],
63
+ 'size': value['size'],
64
+ 'mode': value['mode'],
65
+ 'modifiedAt': value['modifiedAt'].toISOString(),
66
+ };
67
+ }