@boatdev/sdk 1.0.0 → 1.0.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 (226) hide show
  1. package/.openapi-generator/FILES +20 -0
  2. package/dist/apis/BoatApi.d.ts +36 -2
  3. package/dist/apis/BoatApi.js +86 -2
  4. package/dist/esm/apis/BoatApi.d.ts +36 -2
  5. package/dist/esm/apis/BoatApi.js +86 -2
  6. package/dist/esm/models/ActiveOrgResponse.d.ts +52 -0
  7. package/dist/esm/models/ActiveOrgResponse.js +58 -0
  8. package/dist/esm/models/ActiveOrgResponseAllOfActive.d.ts +52 -0
  9. package/dist/esm/models/ActiveOrgResponseAllOfActive.js +58 -0
  10. package/dist/esm/models/ActiveOrgUpdateRequest.d.ts +32 -0
  11. package/dist/esm/models/ActiveOrgUpdateRequest.js +43 -0
  12. package/dist/esm/models/CommandResponse.d.ts +6 -0
  13. package/dist/esm/models/CommandResponse.js +2 -0
  14. package/dist/esm/models/CommandStatusResponse.d.ts +6 -0
  15. package/dist/esm/models/CommandStatusResponse.js +2 -0
  16. package/dist/esm/models/CreateSandboxRequest.d.ts +2 -3
  17. package/dist/esm/models/CreateSandboxRequest.js +1 -2
  18. package/dist/esm/models/CreateSandboxResponse.d.ts +8 -1
  19. package/dist/esm/models/CreateSandboxResponse.js +4 -1
  20. package/dist/esm/models/ForkRequest.d.ts +1 -2
  21. package/dist/esm/models/ForkRequest.js +1 -2
  22. package/dist/esm/models/LimitsFields.d.ts +80 -0
  23. package/dist/esm/models/LimitsFields.js +28 -0
  24. package/dist/esm/models/LimitsFieldsCurrentLimits.d.ts +6 -0
  25. package/dist/esm/models/LimitsFieldsCurrentLimits.js +2 -0
  26. package/dist/esm/models/LimitsFieldsGiftLimit.d.ts +50 -0
  27. package/dist/esm/models/LimitsFieldsGiftLimit.js +47 -0
  28. package/dist/esm/models/LimitsFieldsSandboxPlanTiersInner.d.ts +80 -0
  29. package/dist/esm/models/LimitsFieldsSandboxPlanTiersInner.js +57 -0
  30. package/dist/esm/models/LimitsResponse.d.ts +80 -0
  31. package/dist/esm/models/LimitsResponse.js +28 -0
  32. package/dist/esm/models/MeResponseAllOfUser.d.ts +109 -0
  33. package/dist/esm/models/MeResponseAllOfUser.js +47 -0
  34. package/dist/esm/models/Org.d.ts +84 -0
  35. package/dist/esm/models/Org.js +79 -0
  36. package/dist/esm/models/OrgListResponse.d.ts +58 -0
  37. package/dist/esm/models/OrgListResponse.js +62 -0
  38. package/dist/esm/models/PromptEventData.d.ts +20 -0
  39. package/dist/esm/models/PromptEventData.js +8 -0
  40. package/dist/esm/models/PromptEventDataAttachmentsInner.d.ts +44 -0
  41. package/dist/esm/models/PromptEventDataAttachmentsInner.js +45 -0
  42. package/dist/esm/models/PromptEventDataCitationsInner.d.ts +50 -0
  43. package/dist/esm/models/PromptEventDataCitationsInner.js +47 -0
  44. package/dist/esm/models/RepoSelectionResponse.d.ts +6 -0
  45. package/dist/esm/models/RepoSelectionResponse.js +2 -0
  46. package/dist/esm/models/ReposResponse.d.ts +6 -0
  47. package/dist/esm/models/ReposResponse.js +2 -0
  48. package/dist/esm/models/Repository.d.ts +18 -0
  49. package/dist/esm/models/Repository.js +6 -0
  50. package/dist/esm/models/ResponseEventData.d.ts +6 -0
  51. package/dist/esm/models/ResponseEventData.js +2 -0
  52. package/dist/esm/models/ResumeRequest.d.ts +1 -2
  53. package/dist/esm/models/ResumeRequest.js +1 -2
  54. package/dist/esm/models/Sandbox.d.ts +43 -4
  55. package/dist/esm/models/Sandbox.js +21 -3
  56. package/dist/esm/models/SandboxActionResponse.d.ts +12 -0
  57. package/dist/esm/models/SandboxActionResponse.js +4 -0
  58. package/dist/esm/models/SandboxEnvironment.d.ts +12 -0
  59. package/dist/esm/models/SandboxEnvironment.js +4 -0
  60. package/dist/esm/models/SandboxEnvironmentListResponse.d.ts +26 -0
  61. package/dist/esm/models/SandboxEnvironmentListResponse.js +16 -0
  62. package/dist/esm/models/SandboxInfoResponse.d.ts +6 -0
  63. package/dist/esm/models/SandboxInfoResponse.js +2 -0
  64. package/dist/esm/models/SandboxTeam.d.ts +38 -0
  65. package/dist/esm/models/SandboxTeam.js +47 -0
  66. package/dist/esm/models/SandboxUsageResponse.d.ts +1 -2
  67. package/dist/esm/models/SandboxUsageResponse.js +1 -2
  68. package/dist/esm/models/SecretsResponse.d.ts +6 -0
  69. package/dist/esm/models/SecretsResponse.js +2 -0
  70. package/dist/esm/models/SelectedRepository.d.ts +18 -0
  71. package/dist/esm/models/SelectedRepository.js +6 -0
  72. package/dist/esm/models/SnapshotChunk.d.ts +2 -2
  73. package/dist/esm/models/SnapshotSummary.d.ts +3 -3
  74. package/dist/esm/models/SshKeyResponse.d.ts +12 -0
  75. package/dist/esm/models/SshKeyResponse.js +4 -0
  76. package/dist/esm/models/UpgradeSandboxEnvironmentResponse.d.ts +18 -0
  77. package/dist/esm/models/UpgradeSandboxEnvironmentResponse.js +6 -0
  78. package/dist/esm/models/index.d.ts +10 -0
  79. package/dist/esm/models/index.js +10 -0
  80. package/dist/models/ActiveOrgResponse.d.ts +52 -0
  81. package/dist/models/ActiveOrgResponse.js +66 -0
  82. package/dist/models/ActiveOrgResponseAllOfActive.d.ts +52 -0
  83. package/dist/models/ActiveOrgResponseAllOfActive.js +66 -0
  84. package/dist/models/ActiveOrgUpdateRequest.d.ts +32 -0
  85. package/dist/models/ActiveOrgUpdateRequest.js +50 -0
  86. package/dist/models/CommandResponse.d.ts +6 -0
  87. package/dist/models/CommandResponse.js +2 -0
  88. package/dist/models/CommandStatusResponse.d.ts +6 -0
  89. package/dist/models/CommandStatusResponse.js +2 -0
  90. package/dist/models/CreateSandboxRequest.d.ts +2 -3
  91. package/dist/models/CreateSandboxRequest.js +1 -2
  92. package/dist/models/CreateSandboxResponse.d.ts +8 -1
  93. package/dist/models/CreateSandboxResponse.js +4 -1
  94. package/dist/models/ForkRequest.d.ts +1 -2
  95. package/dist/models/ForkRequest.js +1 -2
  96. package/dist/models/LimitsFields.d.ts +80 -0
  97. package/dist/models/LimitsFields.js +28 -0
  98. package/dist/models/LimitsFieldsCurrentLimits.d.ts +6 -0
  99. package/dist/models/LimitsFieldsCurrentLimits.js +2 -0
  100. package/dist/models/LimitsFieldsGiftLimit.d.ts +50 -0
  101. package/dist/models/LimitsFieldsGiftLimit.js +54 -0
  102. package/dist/models/LimitsFieldsSandboxPlanTiersInner.d.ts +80 -0
  103. package/dist/models/LimitsFieldsSandboxPlanTiersInner.js +64 -0
  104. package/dist/models/LimitsResponse.d.ts +80 -0
  105. package/dist/models/LimitsResponse.js +28 -0
  106. package/dist/models/MeResponseAllOfUser.d.ts +109 -0
  107. package/dist/models/MeResponseAllOfUser.js +48 -0
  108. package/dist/models/Org.d.ts +84 -0
  109. package/dist/models/Org.js +87 -0
  110. package/dist/models/OrgListResponse.d.ts +58 -0
  111. package/dist/models/OrgListResponse.js +70 -0
  112. package/dist/models/PromptEventData.d.ts +20 -0
  113. package/dist/models/PromptEventData.js +8 -0
  114. package/dist/models/PromptEventDataAttachmentsInner.d.ts +44 -0
  115. package/dist/models/PromptEventDataAttachmentsInner.js +52 -0
  116. package/dist/models/PromptEventDataCitationsInner.d.ts +50 -0
  117. package/dist/models/PromptEventDataCitationsInner.js +54 -0
  118. package/dist/models/RepoSelectionResponse.d.ts +6 -0
  119. package/dist/models/RepoSelectionResponse.js +2 -0
  120. package/dist/models/ReposResponse.d.ts +6 -0
  121. package/dist/models/ReposResponse.js +2 -0
  122. package/dist/models/Repository.d.ts +18 -0
  123. package/dist/models/Repository.js +6 -0
  124. package/dist/models/ResponseEventData.d.ts +6 -0
  125. package/dist/models/ResponseEventData.js +2 -0
  126. package/dist/models/ResumeRequest.d.ts +1 -2
  127. package/dist/models/ResumeRequest.js +1 -2
  128. package/dist/models/Sandbox.d.ts +43 -4
  129. package/dist/models/Sandbox.js +22 -4
  130. package/dist/models/SandboxActionResponse.d.ts +12 -0
  131. package/dist/models/SandboxActionResponse.js +4 -0
  132. package/dist/models/SandboxEnvironment.d.ts +12 -0
  133. package/dist/models/SandboxEnvironment.js +4 -0
  134. package/dist/models/SandboxEnvironmentListResponse.d.ts +26 -0
  135. package/dist/models/SandboxEnvironmentListResponse.js +17 -0
  136. package/dist/models/SandboxInfoResponse.d.ts +6 -0
  137. package/dist/models/SandboxInfoResponse.js +2 -0
  138. package/dist/models/SandboxTeam.d.ts +38 -0
  139. package/dist/models/SandboxTeam.js +54 -0
  140. package/dist/models/SandboxUsageResponse.d.ts +1 -2
  141. package/dist/models/SandboxUsageResponse.js +1 -2
  142. package/dist/models/SecretsResponse.d.ts +6 -0
  143. package/dist/models/SecretsResponse.js +2 -0
  144. package/dist/models/SelectedRepository.d.ts +18 -0
  145. package/dist/models/SelectedRepository.js +6 -0
  146. package/dist/models/SnapshotChunk.d.ts +2 -2
  147. package/dist/models/SnapshotSummary.d.ts +3 -3
  148. package/dist/models/SshKeyResponse.d.ts +12 -0
  149. package/dist/models/SshKeyResponse.js +4 -0
  150. package/dist/models/UpgradeSandboxEnvironmentResponse.d.ts +18 -0
  151. package/dist/models/UpgradeSandboxEnvironmentResponse.js +6 -0
  152. package/dist/models/index.d.ts +10 -0
  153. package/dist/models/index.js +10 -0
  154. package/docs/ActiveOrgResponse.md +36 -0
  155. package/docs/ActiveOrgResponseAllOfActive.md +36 -0
  156. package/docs/ActiveOrgUpdateRequest.md +32 -0
  157. package/docs/BoatApi.md +148 -7
  158. package/docs/Command200Response.md +2 -0
  159. package/docs/CommandResponse.md +2 -0
  160. package/docs/CommandStatusResponse.md +2 -0
  161. package/docs/CreateSandboxResponse.md +2 -0
  162. package/docs/LimitsFields.md +26 -0
  163. package/docs/LimitsFieldsCurrentLimits.md +2 -0
  164. package/docs/LimitsFieldsGiftLimit.md +39 -0
  165. package/docs/LimitsFieldsSandboxPlanTiersInner.md +48 -0
  166. package/docs/LimitsResponse.md +26 -0
  167. package/docs/MeResponseAllOfUser.md +30 -0
  168. package/docs/Org.md +44 -0
  169. package/docs/OrgListResponse.md +38 -0
  170. package/docs/PromptEventData.md +6 -0
  171. package/docs/PromptEventDataAttachmentsInner.md +36 -0
  172. package/docs/PromptEventDataCitationsInner.md +38 -0
  173. package/docs/RepoSelectionResponse.md +2 -0
  174. package/docs/ReposResponse.md +2 -0
  175. package/docs/Repository.md +6 -0
  176. package/docs/ResponseEventData.md +2 -0
  177. package/docs/Sandbox.md +10 -0
  178. package/docs/SandboxActionResponse.md +4 -0
  179. package/docs/SandboxEnvironment.md +4 -0
  180. package/docs/SandboxEnvironmentListResponse.md +4 -0
  181. package/docs/SandboxInfoResponse.md +2 -0
  182. package/docs/SandboxTeam.md +35 -0
  183. package/docs/SecretsResponse.md +2 -0
  184. package/docs/SelectedRepository.md +6 -0
  185. package/docs/SshKeyResponse.md +4 -0
  186. package/docs/UpgradeSandboxEnvironmentResponse.md +6 -0
  187. package/package.json +1 -1
  188. package/src/apis/BoatApi.ts +125 -2
  189. package/src/models/ActiveOrgResponse.ts +102 -0
  190. package/src/models/ActiveOrgResponseAllOfActive.ts +95 -0
  191. package/src/models/ActiveOrgUpdateRequest.ts +66 -0
  192. package/src/models/CommandResponse.ts +8 -0
  193. package/src/models/CommandStatusResponse.ts +8 -0
  194. package/src/models/CreateSandboxRequest.ts +3 -4
  195. package/src/models/CreateSandboxResponse.ts +11 -2
  196. package/src/models/ForkRequest.ts +2 -3
  197. package/src/models/LimitsFields.ts +118 -0
  198. package/src/models/LimitsFieldsCurrentLimits.ts +8 -0
  199. package/src/models/LimitsFieldsGiftLimit.ts +89 -0
  200. package/src/models/LimitsFieldsSandboxPlanTiersInner.ts +129 -0
  201. package/src/models/LimitsResponse.ts +118 -0
  202. package/src/models/MeResponseAllOfUser.ts +143 -0
  203. package/src/models/Org.ts +139 -0
  204. package/src/models/OrgListResponse.ts +111 -0
  205. package/src/models/PromptEventData.ts +39 -0
  206. package/src/models/PromptEventDataAttachmentsInner.ts +81 -0
  207. package/src/models/PromptEventDataCitationsInner.ts +89 -0
  208. package/src/models/RepoSelectionResponse.ts +8 -0
  209. package/src/models/ReposResponse.ts +8 -0
  210. package/src/models/Repository.ts +24 -0
  211. package/src/models/ResponseEventData.ts +8 -0
  212. package/src/models/ResumeRequest.ts +2 -3
  213. package/src/models/Sandbox.ts +63 -6
  214. package/src/models/SandboxActionResponse.ts +16 -0
  215. package/src/models/SandboxEnvironment.ts +16 -0
  216. package/src/models/SandboxEnvironmentListResponse.ts +34 -0
  217. package/src/models/SandboxInfoResponse.ts +8 -0
  218. package/src/models/SandboxTeam.ts +75 -0
  219. package/src/models/SandboxUsageResponse.ts +2 -3
  220. package/src/models/SecretsResponse.ts +8 -0
  221. package/src/models/SelectedRepository.ts +24 -0
  222. package/src/models/SnapshotChunk.ts +2 -2
  223. package/src/models/SnapshotSummary.ts +3 -3
  224. package/src/models/SshKeyResponse.ts +16 -0
  225. package/src/models/UpgradeSandboxEnvironmentResponse.ts +24 -0
  226. package/src/models/index.ts +10 -0
@@ -65,6 +65,12 @@ export interface ReposResponse {
65
65
  * @memberof ReposResponse
66
66
  */
67
67
  environmentId: string;
68
+ /**
69
+ * Id of the default environment. `environmentId` is the id of its latest version.
70
+ * @type {string}
71
+ * @memberof ReposResponse
72
+ */
73
+ subenvironmentId?: string | null;
68
74
  /**
69
75
  *
70
76
  * @type {Array<SelectedRepository>}
@@ -105,6 +111,7 @@ export function ReposResponseFromJSONTyped(json: any, ignoreDiscriminator: boole
105
111
  'type': json['type'],
106
112
  'installations': ((json['installations'] as Array<any>).map(RepositoryInstallationFromJSON)),
107
113
  'environmentId': json['environmentId'],
114
+ 'subenvironmentId': json['subenvironmentId'] == null ? undefined : json['subenvironmentId'],
108
115
  'selectedRepositories': ((json['selectedRepositories'] as Array<any>).map(SelectedRepositoryFromJSON)),
109
116
  'pageInfo': json['pageInfo'] == null ? undefined : PageInfoFromJSON(json['pageInfo']),
110
117
  };
@@ -125,6 +132,7 @@ export function ReposResponseToJSONTyped(value?: ReposResponse | null, ignoreDis
125
132
  'type': value['type'],
126
133
  'installations': ((value['installations'] as Array<any>).map(RepositoryInstallationToJSON)),
127
134
  'environmentId': value['environmentId'],
135
+ 'subenvironmentId': value['subenvironmentId'],
128
136
  'selectedRepositories': ((value['selectedRepositories'] as Array<any>).map(SelectedRepositoryToJSON)),
129
137
  'pageInfo': PageInfoToJSON(value['pageInfo']),
130
138
  };
@@ -44,6 +44,18 @@ export interface Repository {
44
44
  * @memberof Repository
45
45
  */
46
46
  fullName?: string;
47
+ /**
48
+ *
49
+ * @type {string}
50
+ * @memberof Repository
51
+ */
52
+ description?: string | null;
53
+ /**
54
+ *
55
+ * @type {string}
56
+ * @memberof Repository
57
+ */
58
+ url?: string;
47
59
  /**
48
60
  *
49
61
  * @type {boolean}
@@ -62,6 +74,12 @@ export interface Repository {
62
74
  * @memberof Repository
63
75
  */
64
76
  pushedAt?: Date | null;
77
+ /**
78
+ * Reserved; always null.
79
+ * @type {Date}
80
+ * @memberof Repository
81
+ */
82
+ lastUserCommitAt?: Date | null;
65
83
  }
66
84
 
67
85
  /**
@@ -86,9 +104,12 @@ export function RepositoryFromJSONTyped(json: any, ignoreDiscriminator: boolean)
86
104
  'databaseId': json['databaseId'] == null ? undefined : json['databaseId'],
87
105
  'name': json['name'] == null ? undefined : json['name'],
88
106
  'fullName': json['fullName'] == null ? undefined : json['fullName'],
107
+ 'description': json['description'] == null ? undefined : json['description'],
108
+ 'url': json['url'] == null ? undefined : json['url'],
89
109
  '_private': json['private'] == null ? undefined : json['private'],
90
110
  'permissions': json['permissions'] == null ? undefined : json['permissions'],
91
111
  'pushedAt': json['pushedAt'] == null ? undefined : (new Date(json['pushedAt'])),
112
+ 'lastUserCommitAt': json['lastUserCommitAt'] == null ? undefined : (new Date(json['lastUserCommitAt'])),
92
113
  };
93
114
  }
94
115
 
@@ -108,9 +129,12 @@ export function RepositoryToJSONTyped(value?: Repository | null, ignoreDiscrimin
108
129
  'databaseId': value['databaseId'],
109
130
  'name': value['name'],
110
131
  'fullName': value['fullName'],
132
+ 'description': value['description'],
133
+ 'url': value['url'],
111
134
  'private': value['_private'],
112
135
  'permissions': value['permissions'],
113
136
  'pushedAt': value['pushedAt'] == null ? value['pushedAt'] : value['pushedAt'].toISOString(),
137
+ 'lastUserCommitAt': value['lastUserCommitAt'] == null ? value['lastUserCommitAt'] : value['lastUserCommitAt'].toISOString(),
114
138
  };
115
139
  }
116
140
 
@@ -43,6 +43,12 @@ export interface ResponseEventData {
43
43
  * @memberof ResponseEventData
44
44
  */
45
45
  isStreaming?: boolean;
46
+ /**
47
+ *
48
+ * @type {boolean}
49
+ * @memberof ResponseEventData
50
+ */
51
+ isReverted?: boolean;
46
52
  }
47
53
 
48
54
  /**
@@ -67,6 +73,7 @@ export function ResponseEventDataFromJSONTyped(json: any, ignoreDiscriminator: b
67
73
  'model': json['model'] == null ? undefined : json['model'],
68
74
  'tools': json['tools'] == null ? undefined : json['tools'],
69
75
  'isStreaming': json['is_streaming'] == null ? undefined : json['is_streaming'],
76
+ 'isReverted': json['is_reverted'] == null ? undefined : json['is_reverted'],
70
77
  };
71
78
  }
72
79
 
@@ -85,6 +92,7 @@ export function ResponseEventDataToJSONTyped(value?: ResponseEventData | null, i
85
92
  'model': value['model'],
86
93
  'tools': value['tools'],
87
94
  'is_streaming': value['isStreaming'],
95
+ 'is_reverted': value['isReverted'],
88
96
  };
89
97
  }
90
98
 
@@ -20,7 +20,7 @@ import { mapValues } from '../runtime';
20
20
  */
21
21
  export interface ResumeRequest {
22
22
  /**
23
- * Resume onto a different machine size. Omit to keep the sandbox's current type. A resume already restores onto a fresh machine, so changing size costs nothing extra. Shrinking is rejected with `type_too_small` when the sandbox's data would not fit the smaller disk. `xlarge` requires the effective $100 plan or higher and an explicit bare-metal operator allocation.
23
+ * Resume onto a different machine size. Omit to keep the sandbox's current type. A resume already restores onto a fresh machine, so changing size costs nothing extra. Shrinking is rejected with `type_too_small` when the sandbox's data would not fit the smaller disk.
24
24
  * @type {ResumeRequestTypeEnum}
25
25
  * @memberof ResumeRequest
26
26
  */
@@ -58,8 +58,7 @@ export interface ResumeRequest {
58
58
  export const ResumeRequestTypeEnum = {
59
59
  Small: 'small',
60
60
  Default: 'default',
61
- Large: 'large',
62
- Xlarge: 'xlarge'
61
+ Large: 'large'
63
62
  } as const;
64
63
  export type ResumeRequestTypeEnum = typeof ResumeRequestTypeEnum[keyof typeof ResumeRequestTypeEnum];
65
64
 
@@ -13,6 +13,14 @@
13
13
  */
14
14
 
15
15
  import { mapValues } from '../runtime';
16
+ import type { SandboxTeam } from './SandboxTeam';
17
+ import {
18
+ SandboxTeamFromJSON,
19
+ SandboxTeamFromJSONTyped,
20
+ SandboxTeamToJSON,
21
+ SandboxTeamToJSONTyped,
22
+ } from './SandboxTeam';
23
+
16
24
  /**
17
25
  *
18
26
  * @export
@@ -32,13 +40,19 @@ export interface Sandbox {
32
40
  */
33
41
  name: string;
34
42
  /**
35
- *
43
+ * `cancelled` is terminal: a create or fork that could not get a machine was removed. `GET /sandboxes/{sandboxId}` reports it once, with only `id`, `state` and `error`, then answers 404.
36
44
  * @type {SandboxStateEnum}
37
45
  * @memberof Sandbox
38
46
  */
39
47
  state: SandboxStateEnum;
40
48
  /**
41
- * Current machine size: what the sandbox was created with, or the size it was last resumed or forked onto. Legacy bare-metal sandboxes read as `default`.
49
+ * Why the sandbox is stopped, failed or cancelled, or null.
50
+ * @type {string}
51
+ * @memberof Sandbox
52
+ */
53
+ error?: string | null;
54
+ /**
55
+ * Current machine size: what the sandbox was created with, or the size it was last resumed or forked onto.
42
56
  * @type {SandboxTypeEnum}
43
57
  * @memberof Sandbox
44
58
  */
@@ -56,11 +70,17 @@ export interface Sandbox {
56
70
  */
57
71
  memoryGB?: number;
58
72
  /**
59
- * Rate at which this sandbox consumes machine time. 0.5 for `small`, 1 for `default`, 2 for `large`, and 50/9 for `xlarge`.
73
+ * Rate at which this sandbox consumes machine time. 0.5 for `small`, 1 for `default`, and 2 for `large`.
60
74
  * @type {number}
61
75
  * @memberof Sandbox
62
76
  */
63
77
  billingMultiplier?: number;
78
+ /**
79
+ * Machine provider of the machine the sandbox is on, or null when it has no machine.
80
+ * @type {SandboxMachineProviderEnum}
81
+ * @memberof Sandbox
82
+ */
83
+ machineProvider?: SandboxMachineProviderEnum | null;
64
84
  /**
65
85
  * Machine URL when assigned.
66
86
  * @type {string}
@@ -73,6 +93,12 @@ export interface Sandbox {
73
93
  * @memberof Sandbox
74
94
  */
75
95
  ip?: string | null;
96
+ /**
97
+ * Public IPv4 `host:port` that forwards to the sandbox SSH server. Set only when the machine has no public IPv4 of its own; null otherwise. Connect with `ssh -p <port> user@<host>`.
98
+ * @type {string}
99
+ * @memberof Sandbox
100
+ */
101
+ sshEndpoint?: string | null;
76
102
  /**
77
103
  *
78
104
  * @type {Date}
@@ -115,6 +141,18 @@ export interface Sandbox {
115
141
  * @memberof Sandbox
116
142
  */
117
143
  snapshotCompletedAt?: Date | null;
144
+ /**
145
+ * Last time a snapshot confirmed the sandbox's saved state, including checks that found nothing new to save. Falls back to `snapshotCompletedAt`; null if never.
146
+ * @type {Date}
147
+ * @memberof Sandbox
148
+ */
149
+ snapshotVerifiedAt?: Date | null;
150
+ /**
151
+ *
152
+ * @type {SandboxTeam}
153
+ * @memberof Sandbox
154
+ */
155
+ team?: SandboxTeam;
118
156
  /**
119
157
  * The sandbox's stable three-word subdomain slug (e.g. "frazil-pneuma-rallye"), or null before one is assigned.
120
158
  * @type {string}
@@ -173,7 +211,8 @@ export const SandboxStateEnum = {
173
211
  Running: 'running',
174
212
  Archiving: 'archiving',
175
213
  Archived: 'archived',
176
- Error: 'error'
214
+ Error: 'error',
215
+ Cancelled: 'cancelled'
177
216
  } as const;
178
217
  export type SandboxStateEnum = typeof SandboxStateEnum[keyof typeof SandboxStateEnum];
179
218
 
@@ -183,11 +222,19 @@ export type SandboxStateEnum = typeof SandboxStateEnum[keyof typeof SandboxState
183
222
  export const SandboxTypeEnum = {
184
223
  Small: 'small',
185
224
  Default: 'default',
186
- Large: 'large',
187
- Xlarge: 'xlarge'
225
+ Large: 'large'
188
226
  } as const;
189
227
  export type SandboxTypeEnum = typeof SandboxTypeEnum[keyof typeof SandboxTypeEnum];
190
228
 
229
+ /**
230
+ * @export
231
+ */
232
+ export const SandboxMachineProviderEnum = {
233
+ Hetzner: 'hetzner',
234
+ Baremetal: 'baremetal'
235
+ } as const;
236
+ export type SandboxMachineProviderEnum = typeof SandboxMachineProviderEnum[keyof typeof SandboxMachineProviderEnum];
237
+
191
238
  /**
192
239
  * @export
193
240
  */
@@ -237,12 +284,15 @@ export function SandboxFromJSONTyped(json: any, ignoreDiscriminator: boolean): S
237
284
  'id': json['id'],
238
285
  'name': json['name'],
239
286
  'state': json['state'],
287
+ 'error': json['error'] == null ? undefined : json['error'],
240
288
  'type': json['type'] == null ? undefined : json['type'],
241
289
  'vcpu': json['vcpu'] == null ? undefined : json['vcpu'],
242
290
  'memoryGB': json['memoryGB'] == null ? undefined : json['memoryGB'],
243
291
  'billingMultiplier': json['billingMultiplier'] == null ? undefined : json['billingMultiplier'],
292
+ 'machineProvider': json['machineProvider'] == null ? undefined : json['machineProvider'],
244
293
  'url': json['url'] == null ? undefined : json['url'],
245
294
  'ip': json['ip'] == null ? undefined : json['ip'],
295
+ 'sshEndpoint': json['sshEndpoint'] == null ? undefined : json['sshEndpoint'],
246
296
  'createdAt': json['createdAt'] == null ? undefined : (new Date(json['createdAt'])),
247
297
  'updatedAt': json['updatedAt'] == null ? undefined : (new Date(json['updatedAt'])),
248
298
  'archiveAfter': json['archiveAfter'] == null ? undefined : (new Date(json['archiveAfter'])),
@@ -250,6 +300,8 @@ export function SandboxFromJSONTyped(json: any, ignoreDiscriminator: boolean): S
250
300
  'desktopUrl': json['desktopUrl'] == null ? undefined : json['desktopUrl'],
251
301
  'snapshotAvailable': json['snapshotAvailable'],
252
302
  'snapshotCompletedAt': json['snapshotCompletedAt'] == null ? undefined : (new Date(json['snapshotCompletedAt'])),
303
+ 'snapshotVerifiedAt': json['snapshotVerifiedAt'] == null ? undefined : (new Date(json['snapshotVerifiedAt'])),
304
+ 'team': json['team'] == null ? undefined : SandboxTeamFromJSON(json['team']),
253
305
  'subdomain': json['subdomain'] == null ? undefined : json['subdomain'],
254
306
  'lastSnapshotAttemptAt': json['lastSnapshotAttemptAt'] == null ? undefined : (new Date(json['lastSnapshotAttemptAt'])),
255
307
  'lastSnapshotStatus': json['lastSnapshotStatus'] == null ? undefined : json['lastSnapshotStatus'],
@@ -274,12 +326,15 @@ export function SandboxToJSONTyped(value?: Sandbox | null, ignoreDiscriminator:
274
326
  'id': value['id'],
275
327
  'name': value['name'],
276
328
  'state': value['state'],
329
+ 'error': value['error'],
277
330
  'type': value['type'],
278
331
  'vcpu': value['vcpu'],
279
332
  'memoryGB': value['memoryGB'],
280
333
  'billingMultiplier': value['billingMultiplier'],
334
+ 'machineProvider': value['machineProvider'],
281
335
  'url': value['url'],
282
336
  'ip': value['ip'],
337
+ 'sshEndpoint': value['sshEndpoint'],
283
338
  'createdAt': value['createdAt'] == null ? value['createdAt'] : value['createdAt'].toISOString(),
284
339
  'updatedAt': value['updatedAt'] == null ? value['updatedAt'] : value['updatedAt'].toISOString(),
285
340
  'archiveAfter': value['archiveAfter'] == null ? value['archiveAfter'] : value['archiveAfter'].toISOString(),
@@ -287,6 +342,8 @@ export function SandboxToJSONTyped(value?: Sandbox | null, ignoreDiscriminator:
287
342
  'desktopUrl': value['desktopUrl'],
288
343
  'snapshotAvailable': value['snapshotAvailable'],
289
344
  'snapshotCompletedAt': value['snapshotCompletedAt'] == null ? value['snapshotCompletedAt'] : value['snapshotCompletedAt'].toISOString(),
345
+ 'snapshotVerifiedAt': value['snapshotVerifiedAt'] == null ? value['snapshotVerifiedAt'] : value['snapshotVerifiedAt'].toISOString(),
346
+ 'team': SandboxTeamToJSON(value['team']),
290
347
  'subdomain': value['subdomain'],
291
348
  'lastSnapshotAttemptAt': value['lastSnapshotAttemptAt'] == null ? value['lastSnapshotAttemptAt'] : value['lastSnapshotAttemptAt'].toISOString(),
292
349
  'lastSnapshotStatus': value['lastSnapshotStatus'],
@@ -57,6 +57,18 @@ export interface SandboxActionResponse {
57
57
  * @memberof SandboxActionResponse
58
58
  */
59
59
  sandbox?: Sandbox | null;
60
+ /**
61
+ * Present on resume or fork when a fair-use cap on a gifted account shortened the requested auto-stop time.
62
+ * @type {string}
63
+ * @memberof SandboxActionResponse
64
+ */
65
+ giftLimitNotice?: string;
66
+ /**
67
+ * On interrupt, the conversation whose turn was interrupted.
68
+ * @type {string}
69
+ * @memberof SandboxActionResponse
70
+ */
71
+ conversationId?: string;
60
72
  }
61
73
 
62
74
  /**
@@ -85,6 +97,8 @@ export function SandboxActionResponseFromJSONTyped(json: any, ignoreDiscriminato
85
97
  'id': json['id'],
86
98
  'status': json['status'],
87
99
  'sandbox': json['sandbox'] == null ? undefined : SandboxFromJSON(json['sandbox']),
100
+ 'giftLimitNotice': json['giftLimitNotice'] == null ? undefined : json['giftLimitNotice'],
101
+ 'conversationId': json['conversationId'] == null ? undefined : json['conversationId'],
88
102
  };
89
103
  }
90
104
 
@@ -104,6 +118,8 @@ export function SandboxActionResponseToJSONTyped(value?: SandboxActionResponse |
104
118
  'id': value['id'],
105
119
  'status': value['status'],
106
120
  'sandbox': SandboxToJSON(value['sandbox']),
121
+ 'giftLimitNotice': value['giftLimitNotice'],
122
+ 'conversationId': value['conversationId'],
107
123
  };
108
124
  }
109
125
 
@@ -65,6 +65,18 @@ export interface SandboxEnvironment {
65
65
  * @memberof SandboxEnvironment
66
66
  */
67
67
  latestVersionId: string | null;
68
+ /**
69
+ * Number of the latest version, 0 when there is none.
70
+ * @type {number}
71
+ * @memberof SandboxEnvironment
72
+ */
73
+ latestVersionNumber?: number;
74
+ /**
75
+ * When the owner last answered whether this environment is safe for third parties, or null if never asked.
76
+ * @type {Date}
77
+ * @memberof SandboxEnvironment
78
+ */
79
+ safetyAnsweredAt?: Date | null;
68
80
  /**
69
81
  * When true the environment passes nothing to a sandbox (repos, secrets, and all credentials withheld), overriding the fine-grained flags below. Use for sandboxes handed to third parties.
70
82
  * @type {boolean}
@@ -154,6 +166,8 @@ export function SandboxEnvironmentFromJSONTyped(json: any, ignoreDiscriminator:
154
166
  'name': json['name'],
155
167
  'isDefault': json['isDefault'],
156
168
  'latestVersionId': json['latestVersionId'],
169
+ 'latestVersionNumber': json['latestVersionNumber'] == null ? undefined : json['latestVersionNumber'],
170
+ 'safetyAnsweredAt': json['safetyAnsweredAt'] == null ? undefined : (new Date(json['safetyAnsweredAt'])),
157
171
  'safeForThirdParties': json['safeForThirdParties'],
158
172
  'passGithub': json['passGithub'],
159
173
  'passSecrets': json['passSecrets'],
@@ -181,6 +195,8 @@ export function SandboxEnvironmentToJSONTyped(value?: SandboxEnvironment | null,
181
195
  'name': value['name'],
182
196
  'isDefault': value['isDefault'],
183
197
  'latestVersionId': value['latestVersionId'],
198
+ 'latestVersionNumber': value['latestVersionNumber'],
199
+ 'safetyAnsweredAt': value['safetyAnsweredAt'] == null ? value['safetyAnsweredAt'] : value['safetyAnsweredAt'].toISOString(),
184
200
  'safeForThirdParties': value['safeForThirdParties'],
185
201
  'passGithub': value['passGithub'],
186
202
  'passSecrets': value['passSecrets'],
@@ -27,6 +27,18 @@ import {
27
27
  * @interface SandboxEnvironmentListResponse
28
28
  */
29
29
  export interface SandboxEnvironmentListResponse {
30
+ /**
31
+ *
32
+ * @type {SandboxEnvironmentListResponseOkEnum}
33
+ * @memberof SandboxEnvironmentListResponse
34
+ */
35
+ ok?: SandboxEnvironmentListResponseOkEnum;
36
+ /**
37
+ *
38
+ * @type {SandboxEnvironmentListResponseTypeEnum}
39
+ * @memberof SandboxEnvironmentListResponse
40
+ */
41
+ type?: SandboxEnvironmentListResponseTypeEnum;
30
42
  /**
31
43
  *
32
44
  * @type {Array<SandboxEnvironment>}
@@ -35,6 +47,24 @@ export interface SandboxEnvironmentListResponse {
35
47
  environments: Array<SandboxEnvironment>;
36
48
  }
37
49
 
50
+
51
+ /**
52
+ * @export
53
+ */
54
+ export const SandboxEnvironmentListResponseOkEnum = {
55
+ True: true
56
+ } as const;
57
+ export type SandboxEnvironmentListResponseOkEnum = typeof SandboxEnvironmentListResponseOkEnum[keyof typeof SandboxEnvironmentListResponseOkEnum];
58
+
59
+ /**
60
+ * @export
61
+ */
62
+ export const SandboxEnvironmentListResponseTypeEnum = {
63
+ EnvironmentsList: 'environments.list'
64
+ } as const;
65
+ export type SandboxEnvironmentListResponseTypeEnum = typeof SandboxEnvironmentListResponseTypeEnum[keyof typeof SandboxEnvironmentListResponseTypeEnum];
66
+
67
+
38
68
  /**
39
69
  * Check if a given object implements the SandboxEnvironmentListResponse interface.
40
70
  */
@@ -53,6 +83,8 @@ export function SandboxEnvironmentListResponseFromJSONTyped(json: any, ignoreDis
53
83
  }
54
84
  return {
55
85
 
86
+ 'ok': json['ok'] == null ? undefined : json['ok'],
87
+ 'type': json['type'] == null ? undefined : json['type'],
56
88
  'environments': ((json['environments'] as Array<any>).map(SandboxEnvironmentFromJSON)),
57
89
  };
58
90
  }
@@ -68,6 +100,8 @@ export function SandboxEnvironmentListResponseToJSONTyped(value?: SandboxEnviron
68
100
 
69
101
  return {
70
102
 
103
+ 'ok': value['ok'],
104
+ 'type': value['type'],
71
105
  'environments': ((value['environments'] as Array<any>).map(SandboxEnvironmentToJSON)),
72
106
  };
73
107
  }
@@ -45,6 +45,12 @@ export interface SandboxInfoResponse {
45
45
  * @memberof SandboxInfoResponse
46
46
  */
47
47
  sandbox: Sandbox;
48
+ /**
49
+ * Present when a fair-use cap on a gifted account shortened the requested auto-stop time.
50
+ * @type {string}
51
+ * @memberof SandboxInfoResponse
52
+ */
53
+ giftLimitNotice?: string;
48
54
  }
49
55
 
50
56
  /**
@@ -70,6 +76,7 @@ export function SandboxInfoResponseFromJSONTyped(json: any, ignoreDiscriminator:
70
76
  'ok': json['ok'],
71
77
  'type': json['type'],
72
78
  'sandbox': SandboxFromJSON(json['sandbox']),
79
+ 'giftLimitNotice': json['giftLimitNotice'] == null ? undefined : json['giftLimitNotice'],
73
80
  };
74
81
  }
75
82
 
@@ -87,6 +94,7 @@ export function SandboxInfoResponseToJSONTyped(value?: SandboxInfoResponse | nul
87
94
  'ok': value['ok'],
88
95
  'type': value['type'],
89
96
  'sandbox': SandboxToJSON(value['sandbox']),
97
+ 'giftLimitNotice': value['giftLimitNotice'],
90
98
  };
91
99
  }
92
100
 
@@ -0,0 +1,75 @@
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
+ import { mapValues } from '../runtime';
16
+ /**
17
+ * The organization billed for this sandbox, or null when the owner is billed.
18
+ * @export
19
+ * @interface SandboxTeam
20
+ */
21
+ export interface SandboxTeam {
22
+ /**
23
+ *
24
+ * @type {string}
25
+ * @memberof SandboxTeam
26
+ */
27
+ id: string;
28
+ /**
29
+ *
30
+ * @type {string}
31
+ * @memberof SandboxTeam
32
+ */
33
+ name: string;
34
+ }
35
+
36
+ /**
37
+ * Check if a given object implements the SandboxTeam interface.
38
+ */
39
+ export function instanceOfSandboxTeam(value: object): value is SandboxTeam {
40
+ if (!('id' in value) || value['id'] === undefined) return false;
41
+ if (!('name' in value) || value['name'] === undefined) return false;
42
+ return true;
43
+ }
44
+
45
+ export function SandboxTeamFromJSON(json: any): SandboxTeam {
46
+ return SandboxTeamFromJSONTyped(json, false);
47
+ }
48
+
49
+ export function SandboxTeamFromJSONTyped(json: any, ignoreDiscriminator: boolean): SandboxTeam {
50
+ if (json == null) {
51
+ return json;
52
+ }
53
+ return {
54
+
55
+ 'id': json['id'],
56
+ 'name': json['name'],
57
+ };
58
+ }
59
+
60
+ export function SandboxTeamToJSON(json: any): SandboxTeam {
61
+ return SandboxTeamToJSONTyped(json, false);
62
+ }
63
+
64
+ export function SandboxTeamToJSONTyped(value?: SandboxTeam | null, ignoreDiscriminator: boolean = false): any {
65
+ if (value == null) {
66
+ return value;
67
+ }
68
+
69
+ return {
70
+
71
+ 'id': value['id'],
72
+ 'name': value['name'],
73
+ };
74
+ }
75
+
@@ -44,7 +44,7 @@ export interface SandboxUsageResponse {
44
44
  */
45
45
  sandboxType: SandboxUsageResponseSandboxTypeEnum;
46
46
  /**
47
- * Rate at which this sandbox consumes machine time. 0.5 for `small`, 1 for `default`, 2 for `large`, and 50/9 for `xlarge`.
47
+ * Rate at which this sandbox consumes machine time. 0.5 for `small`, 1 for `default`, and 2 for `large`.
48
48
  * @type {number}
49
49
  * @memberof SandboxUsageResponse
50
50
  */
@@ -94,8 +94,7 @@ export interface SandboxUsageResponse {
94
94
  export const SandboxUsageResponseSandboxTypeEnum = {
95
95
  Small: 'small',
96
96
  Default: 'default',
97
- Large: 'large',
98
- Xlarge: 'xlarge'
97
+ Large: 'large'
99
98
  } as const;
100
99
  export type SandboxUsageResponseSandboxTypeEnum = typeof SandboxUsageResponseSandboxTypeEnum[keyof typeof SandboxUsageResponseSandboxTypeEnum];
101
100
 
@@ -51,6 +51,12 @@ export interface SecretsResponse {
51
51
  * @memberof SecretsResponse
52
52
  */
53
53
  environmentId: string;
54
+ /**
55
+ * Id of the default environment. `environmentId` is the id of its latest version.
56
+ * @type {string}
57
+ * @memberof SecretsResponse
58
+ */
59
+ subenvironmentId?: string;
54
60
  /**
55
61
  *
56
62
  * @type {string}
@@ -97,6 +103,7 @@ export function SecretsResponseFromJSONTyped(json: any, ignoreDiscriminator: boo
97
103
  'type': json['type'],
98
104
  'success': json['success'] == null ? undefined : json['success'],
99
105
  'environmentId': json['environmentId'],
106
+ 'subenvironmentId': json['subenvironmentId'] == null ? undefined : json['subenvironmentId'],
100
107
  'envContents': json['envContents'],
101
108
  'secretFiles': ((json['secretFiles'] as Array<any>).map(SecretFileFromJSON)),
102
109
  'pushed': json['pushed'] == null ? undefined : json['pushed'],
@@ -118,6 +125,7 @@ export function SecretsResponseToJSONTyped(value?: SecretsResponse | null, ignor
118
125
  'type': value['type'],
119
126
  'success': value['success'],
120
127
  'environmentId': value['environmentId'],
128
+ 'subenvironmentId': value['subenvironmentId'],
121
129
  'envContents': value['envContents'],
122
130
  'secretFiles': ((value['secretFiles'] as Array<any>).map(SecretFileToJSON)),
123
131
  'pushed': value['pushed'],
@@ -43,6 +43,18 @@ export interface SelectedRepository {
43
43
  * @memberof SelectedRepository
44
44
  */
45
45
  fullName?: string;
46
+ /**
47
+ *
48
+ * @type {string}
49
+ * @memberof SelectedRepository
50
+ */
51
+ description?: string;
52
+ /**
53
+ *
54
+ * @type {string}
55
+ * @memberof SelectedRepository
56
+ */
57
+ url?: string;
46
58
  /**
47
59
  *
48
60
  * @type {boolean}
@@ -61,6 +73,12 @@ export interface SelectedRepository {
61
73
  * @memberof SelectedRepository
62
74
  */
63
75
  pushedAt?: Date;
76
+ /**
77
+ * Reserved; always null.
78
+ * @type {Date}
79
+ * @memberof SelectedRepository
80
+ */
81
+ lastUserCommitAt?: Date;
64
82
  /**
65
83
  *
66
84
  * @type {string}
@@ -108,9 +126,12 @@ export function SelectedRepositoryFromJSONTyped(json: any, ignoreDiscriminator:
108
126
  'databaseId': json['databaseId'] == null ? undefined : json['databaseId'],
109
127
  'name': json['name'] == null ? undefined : json['name'],
110
128
  'fullName': json['fullName'] == null ? undefined : json['fullName'],
129
+ 'description': json['description'] == null ? undefined : json['description'],
130
+ 'url': json['url'] == null ? undefined : json['url'],
111
131
  '_private': json['private'] == null ? undefined : json['private'],
112
132
  'permissions': json['permissions'] == null ? undefined : json['permissions'],
113
133
  'pushedAt': json['pushedAt'] == null ? undefined : (new Date(json['pushedAt'])),
134
+ 'lastUserCommitAt': json['lastUserCommitAt'] == null ? undefined : (new Date(json['lastUserCommitAt'])),
114
135
  'baseBranch': json['baseBranch'] == null ? undefined : json['baseBranch'],
115
136
  'setupRoutineId': json['setupRoutineId'] == null ? undefined : json['setupRoutineId'],
116
137
  'setupScript': json['setupScript'] == null ? undefined : json['setupScript'],
@@ -133,9 +154,12 @@ export function SelectedRepositoryToJSONTyped(value?: SelectedRepository | null,
133
154
  'databaseId': value['databaseId'],
134
155
  'name': value['name'],
135
156
  'fullName': value['fullName'],
157
+ 'description': value['description'],
158
+ 'url': value['url'],
136
159
  'private': value['_private'],
137
160
  'permissions': value['permissions'],
138
161
  'pushedAt': value['pushedAt'] == null ? value['pushedAt'] : value['pushedAt'].toISOString(),
162
+ 'lastUserCommitAt': value['lastUserCommitAt'] == null ? value['lastUserCommitAt'] : value['lastUserCommitAt'].toISOString(),
139
163
  'baseBranch': value['baseBranch'],
140
164
  'setupRoutineId': value['setupRoutineId'],
141
165
  'setupScript': value['setupScript'],
@@ -48,13 +48,13 @@ export interface SnapshotChunk {
48
48
  * @type {number}
49
49
  * @memberof SnapshotChunk
50
50
  */
51
- sizeBytes: number;
51
+ sizeBytes: number | null;
52
52
  /**
53
53
  *
54
54
  * @type {string}
55
55
  * @memberof SnapshotChunk
56
56
  */
57
- sha256: string;
57
+ sha256: string | null;
58
58
  /**
59
59
  * Time-limited download URL (see `expiresInSeconds`).
60
60
  * @type {string}