@boatdev/sdk 1.0.0 → 1.1.0

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 (244) hide show
  1. package/.openapi-generator/FILES +22 -0
  2. package/README.md +8 -26
  3. package/dist/apis/BoatApi.d.ts +132 -79
  4. package/dist/apis/BoatApi.js +188 -29
  5. package/dist/esm/apis/BoatApi.d.ts +132 -79
  6. package/dist/esm/apis/BoatApi.js +188 -29
  7. package/dist/esm/models/ActiveOrgResponse.d.ts +52 -0
  8. package/dist/esm/models/ActiveOrgResponse.js +58 -0
  9. package/dist/esm/models/ActiveOrgResponseAllOfActive.d.ts +52 -0
  10. package/dist/esm/models/ActiveOrgResponseAllOfActive.js +58 -0
  11. package/dist/esm/models/ActiveOrgUpdateRequest.d.ts +32 -0
  12. package/dist/esm/models/ActiveOrgUpdateRequest.js +43 -0
  13. package/dist/esm/models/CommandResponse.d.ts +6 -0
  14. package/dist/esm/models/CommandResponse.js +2 -0
  15. package/dist/esm/models/CommandStatusResponse.d.ts +6 -0
  16. package/dist/esm/models/CommandStatusResponse.js +2 -0
  17. package/dist/esm/models/CreateSandboxRequest.d.ts +2 -3
  18. package/dist/esm/models/CreateSandboxRequest.js +1 -2
  19. package/dist/esm/models/CreateSandboxResponse.d.ts +8 -1
  20. package/dist/esm/models/CreateSandboxResponse.js +4 -1
  21. package/dist/esm/models/DeletionOperation.d.ts +24 -0
  22. package/dist/esm/models/DeletionOperation.js +15 -0
  23. package/dist/esm/models/DeletionOperationListResponse.d.ts +52 -0
  24. package/dist/esm/models/DeletionOperationListResponse.js +58 -0
  25. package/dist/esm/models/ForkRequest.d.ts +1 -2
  26. package/dist/esm/models/ForkRequest.js +1 -2
  27. package/dist/esm/models/LimitsFields.d.ts +80 -0
  28. package/dist/esm/models/LimitsFields.js +28 -0
  29. package/dist/esm/models/LimitsFieldsCurrentLimits.d.ts +6 -0
  30. package/dist/esm/models/LimitsFieldsCurrentLimits.js +2 -0
  31. package/dist/esm/models/LimitsFieldsGiftLimit.d.ts +50 -0
  32. package/dist/esm/models/LimitsFieldsGiftLimit.js +47 -0
  33. package/dist/esm/models/LimitsFieldsSandboxPlanTiersInner.d.ts +80 -0
  34. package/dist/esm/models/LimitsFieldsSandboxPlanTiersInner.js +57 -0
  35. package/dist/esm/models/LimitsResponse.d.ts +80 -0
  36. package/dist/esm/models/LimitsResponse.js +28 -0
  37. package/dist/esm/models/MeResponseAllOfUser.d.ts +109 -0
  38. package/dist/esm/models/MeResponseAllOfUser.js +47 -0
  39. package/dist/esm/models/Org.d.ts +84 -0
  40. package/dist/esm/models/Org.js +79 -0
  41. package/dist/esm/models/OrgListResponse.d.ts +58 -0
  42. package/dist/esm/models/OrgListResponse.js +62 -0
  43. package/dist/esm/models/PromptEventData.d.ts +20 -0
  44. package/dist/esm/models/PromptEventData.js +8 -0
  45. package/dist/esm/models/PromptEventDataAttachmentsInner.d.ts +44 -0
  46. package/dist/esm/models/PromptEventDataAttachmentsInner.js +45 -0
  47. package/dist/esm/models/PromptEventDataCitationsInner.d.ts +50 -0
  48. package/dist/esm/models/PromptEventDataCitationsInner.js +47 -0
  49. package/dist/esm/models/RepoSelectionResponse.d.ts +6 -0
  50. package/dist/esm/models/RepoSelectionResponse.js +2 -0
  51. package/dist/esm/models/ReposResponse.d.ts +6 -0
  52. package/dist/esm/models/ReposResponse.js +2 -0
  53. package/dist/esm/models/Repository.d.ts +18 -0
  54. package/dist/esm/models/Repository.js +6 -0
  55. package/dist/esm/models/ResponseEventData.d.ts +6 -0
  56. package/dist/esm/models/ResponseEventData.js +2 -0
  57. package/dist/esm/models/ResumeRequest.d.ts +1 -2
  58. package/dist/esm/models/ResumeRequest.js +1 -2
  59. package/dist/esm/models/Sandbox.d.ts +43 -4
  60. package/dist/esm/models/Sandbox.js +21 -3
  61. package/dist/esm/models/SandboxActionResponse.d.ts +12 -0
  62. package/dist/esm/models/SandboxActionResponse.js +4 -0
  63. package/dist/esm/models/SandboxEnvironment.d.ts +12 -0
  64. package/dist/esm/models/SandboxEnvironment.js +4 -0
  65. package/dist/esm/models/SandboxEnvironmentListResponse.d.ts +26 -0
  66. package/dist/esm/models/SandboxEnvironmentListResponse.js +16 -0
  67. package/dist/esm/models/SandboxInfoResponse.d.ts +6 -0
  68. package/dist/esm/models/SandboxInfoResponse.js +2 -0
  69. package/dist/esm/models/SandboxTeam.d.ts +38 -0
  70. package/dist/esm/models/SandboxTeam.js +47 -0
  71. package/dist/esm/models/SandboxUsageResponse.d.ts +1 -2
  72. package/dist/esm/models/SandboxUsageResponse.js +1 -2
  73. package/dist/esm/models/SecretsResponse.d.ts +6 -0
  74. package/dist/esm/models/SecretsResponse.js +2 -0
  75. package/dist/esm/models/SelectedRepository.d.ts +18 -0
  76. package/dist/esm/models/SelectedRepository.js +6 -0
  77. package/dist/esm/models/SnapshotChunk.d.ts +2 -2
  78. package/dist/esm/models/SnapshotSummary.d.ts +3 -3
  79. package/dist/esm/models/SshKeyResponse.d.ts +12 -0
  80. package/dist/esm/models/SshKeyResponse.js +4 -0
  81. package/dist/esm/models/UpgradeSandboxEnvironmentResponse.d.ts +18 -0
  82. package/dist/esm/models/UpgradeSandboxEnvironmentResponse.js +6 -0
  83. package/dist/esm/models/index.d.ts +11 -0
  84. package/dist/esm/models/index.js +11 -0
  85. package/dist/esm/runtime.d.ts +8 -0
  86. package/dist/esm/runtime.js +18 -0
  87. package/dist/models/ActiveOrgResponse.d.ts +52 -0
  88. package/dist/models/ActiveOrgResponse.js +66 -0
  89. package/dist/models/ActiveOrgResponseAllOfActive.d.ts +52 -0
  90. package/dist/models/ActiveOrgResponseAllOfActive.js +66 -0
  91. package/dist/models/ActiveOrgUpdateRequest.d.ts +32 -0
  92. package/dist/models/ActiveOrgUpdateRequest.js +50 -0
  93. package/dist/models/CommandResponse.d.ts +6 -0
  94. package/dist/models/CommandResponse.js +2 -0
  95. package/dist/models/CommandStatusResponse.d.ts +6 -0
  96. package/dist/models/CommandStatusResponse.js +2 -0
  97. package/dist/models/CreateSandboxRequest.d.ts +2 -3
  98. package/dist/models/CreateSandboxRequest.js +1 -2
  99. package/dist/models/CreateSandboxResponse.d.ts +8 -1
  100. package/dist/models/CreateSandboxResponse.js +4 -1
  101. package/dist/models/DeletionOperation.d.ts +24 -0
  102. package/dist/models/DeletionOperation.js +16 -1
  103. package/dist/models/DeletionOperationListResponse.d.ts +52 -0
  104. package/dist/models/DeletionOperationListResponse.js +66 -0
  105. package/dist/models/ForkRequest.d.ts +1 -2
  106. package/dist/models/ForkRequest.js +1 -2
  107. package/dist/models/LimitsFields.d.ts +80 -0
  108. package/dist/models/LimitsFields.js +28 -0
  109. package/dist/models/LimitsFieldsCurrentLimits.d.ts +6 -0
  110. package/dist/models/LimitsFieldsCurrentLimits.js +2 -0
  111. package/dist/models/LimitsFieldsGiftLimit.d.ts +50 -0
  112. package/dist/models/LimitsFieldsGiftLimit.js +54 -0
  113. package/dist/models/LimitsFieldsSandboxPlanTiersInner.d.ts +80 -0
  114. package/dist/models/LimitsFieldsSandboxPlanTiersInner.js +64 -0
  115. package/dist/models/LimitsResponse.d.ts +80 -0
  116. package/dist/models/LimitsResponse.js +28 -0
  117. package/dist/models/MeResponseAllOfUser.d.ts +109 -0
  118. package/dist/models/MeResponseAllOfUser.js +48 -0
  119. package/dist/models/Org.d.ts +84 -0
  120. package/dist/models/Org.js +87 -0
  121. package/dist/models/OrgListResponse.d.ts +58 -0
  122. package/dist/models/OrgListResponse.js +70 -0
  123. package/dist/models/PromptEventData.d.ts +20 -0
  124. package/dist/models/PromptEventData.js +8 -0
  125. package/dist/models/PromptEventDataAttachmentsInner.d.ts +44 -0
  126. package/dist/models/PromptEventDataAttachmentsInner.js +52 -0
  127. package/dist/models/PromptEventDataCitationsInner.d.ts +50 -0
  128. package/dist/models/PromptEventDataCitationsInner.js +54 -0
  129. package/dist/models/RepoSelectionResponse.d.ts +6 -0
  130. package/dist/models/RepoSelectionResponse.js +2 -0
  131. package/dist/models/ReposResponse.d.ts +6 -0
  132. package/dist/models/ReposResponse.js +2 -0
  133. package/dist/models/Repository.d.ts +18 -0
  134. package/dist/models/Repository.js +6 -0
  135. package/dist/models/ResponseEventData.d.ts +6 -0
  136. package/dist/models/ResponseEventData.js +2 -0
  137. package/dist/models/ResumeRequest.d.ts +1 -2
  138. package/dist/models/ResumeRequest.js +1 -2
  139. package/dist/models/Sandbox.d.ts +43 -4
  140. package/dist/models/Sandbox.js +22 -4
  141. package/dist/models/SandboxActionResponse.d.ts +12 -0
  142. package/dist/models/SandboxActionResponse.js +4 -0
  143. package/dist/models/SandboxEnvironment.d.ts +12 -0
  144. package/dist/models/SandboxEnvironment.js +4 -0
  145. package/dist/models/SandboxEnvironmentListResponse.d.ts +26 -0
  146. package/dist/models/SandboxEnvironmentListResponse.js +17 -0
  147. package/dist/models/SandboxInfoResponse.d.ts +6 -0
  148. package/dist/models/SandboxInfoResponse.js +2 -0
  149. package/dist/models/SandboxTeam.d.ts +38 -0
  150. package/dist/models/SandboxTeam.js +54 -0
  151. package/dist/models/SandboxUsageResponse.d.ts +1 -2
  152. package/dist/models/SandboxUsageResponse.js +1 -2
  153. package/dist/models/SecretsResponse.d.ts +6 -0
  154. package/dist/models/SecretsResponse.js +2 -0
  155. package/dist/models/SelectedRepository.d.ts +18 -0
  156. package/dist/models/SelectedRepository.js +6 -0
  157. package/dist/models/SnapshotChunk.d.ts +2 -2
  158. package/dist/models/SnapshotSummary.d.ts +3 -3
  159. package/dist/models/SshKeyResponse.d.ts +12 -0
  160. package/dist/models/SshKeyResponse.js +4 -0
  161. package/dist/models/UpgradeSandboxEnvironmentResponse.d.ts +18 -0
  162. package/dist/models/UpgradeSandboxEnvironmentResponse.js +6 -0
  163. package/dist/models/index.d.ts +11 -0
  164. package/dist/models/index.js +11 -0
  165. package/dist/runtime.d.ts +8 -0
  166. package/dist/runtime.js +19 -0
  167. package/docs/ActiveOrgResponse.md +36 -0
  168. package/docs/ActiveOrgResponseAllOfActive.md +36 -0
  169. package/docs/ActiveOrgUpdateRequest.md +32 -0
  170. package/docs/BoatApi.md +228 -8
  171. package/docs/Command200Response.md +2 -0
  172. package/docs/CommandResponse.md +2 -0
  173. package/docs/CommandStatusResponse.md +2 -0
  174. package/docs/CreateSandboxResponse.md +2 -0
  175. package/docs/DeletionOperation.md +4 -0
  176. package/docs/DeletionOperationListResponse.md +36 -0
  177. package/docs/LimitsFields.md +26 -0
  178. package/docs/LimitsFieldsCurrentLimits.md +2 -0
  179. package/docs/LimitsFieldsGiftLimit.md +39 -0
  180. package/docs/LimitsFieldsSandboxPlanTiersInner.md +48 -0
  181. package/docs/LimitsResponse.md +26 -0
  182. package/docs/MeResponseAllOfUser.md +30 -0
  183. package/docs/Org.md +44 -0
  184. package/docs/OrgListResponse.md +38 -0
  185. package/docs/PromptEventData.md +6 -0
  186. package/docs/PromptEventDataAttachmentsInner.md +36 -0
  187. package/docs/PromptEventDataCitationsInner.md +38 -0
  188. package/docs/RepoSelectionResponse.md +2 -0
  189. package/docs/ReposResponse.md +2 -0
  190. package/docs/Repository.md +6 -0
  191. package/docs/ResponseEventData.md +2 -0
  192. package/docs/Sandbox.md +10 -0
  193. package/docs/SandboxActionResponse.md +4 -0
  194. package/docs/SandboxEnvironment.md +4 -0
  195. package/docs/SandboxEnvironmentListResponse.md +4 -0
  196. package/docs/SandboxInfoResponse.md +2 -0
  197. package/docs/SandboxTeam.md +35 -0
  198. package/docs/SecretsResponse.md +2 -0
  199. package/docs/SelectedRepository.md +6 -0
  200. package/docs/SshKeyResponse.md +4 -0
  201. package/docs/UpgradeSandboxEnvironmentResponse.md +6 -0
  202. package/package.json +1 -1
  203. package/src/apis/BoatApi.ts +304 -79
  204. package/src/models/ActiveOrgResponse.ts +102 -0
  205. package/src/models/ActiveOrgResponseAllOfActive.ts +95 -0
  206. package/src/models/ActiveOrgUpdateRequest.ts +66 -0
  207. package/src/models/CommandResponse.ts +8 -0
  208. package/src/models/CommandStatusResponse.ts +8 -0
  209. package/src/models/CreateSandboxRequest.ts +3 -4
  210. package/src/models/CreateSandboxResponse.ts +11 -2
  211. package/src/models/DeletionOperation.ts +29 -0
  212. package/src/models/DeletionOperationListResponse.ts +102 -0
  213. package/src/models/ForkRequest.ts +2 -3
  214. package/src/models/LimitsFields.ts +118 -0
  215. package/src/models/LimitsFieldsCurrentLimits.ts +8 -0
  216. package/src/models/LimitsFieldsGiftLimit.ts +89 -0
  217. package/src/models/LimitsFieldsSandboxPlanTiersInner.ts +129 -0
  218. package/src/models/LimitsResponse.ts +118 -0
  219. package/src/models/MeResponseAllOfUser.ts +143 -0
  220. package/src/models/Org.ts +139 -0
  221. package/src/models/OrgListResponse.ts +111 -0
  222. package/src/models/PromptEventData.ts +39 -0
  223. package/src/models/PromptEventDataAttachmentsInner.ts +81 -0
  224. package/src/models/PromptEventDataCitationsInner.ts +89 -0
  225. package/src/models/RepoSelectionResponse.ts +8 -0
  226. package/src/models/ReposResponse.ts +8 -0
  227. package/src/models/Repository.ts +24 -0
  228. package/src/models/ResponseEventData.ts +8 -0
  229. package/src/models/ResumeRequest.ts +2 -3
  230. package/src/models/Sandbox.ts +63 -6
  231. package/src/models/SandboxActionResponse.ts +16 -0
  232. package/src/models/SandboxEnvironment.ts +16 -0
  233. package/src/models/SandboxEnvironmentListResponse.ts +34 -0
  234. package/src/models/SandboxInfoResponse.ts +8 -0
  235. package/src/models/SandboxTeam.ts +75 -0
  236. package/src/models/SandboxUsageResponse.ts +2 -3
  237. package/src/models/SecretsResponse.ts +8 -0
  238. package/src/models/SelectedRepository.ts +24 -0
  239. package/src/models/SnapshotChunk.ts +2 -2
  240. package/src/models/SnapshotSummary.ts +3 -3
  241. package/src/models/SshKeyResponse.ts +16 -0
  242. package/src/models/UpgradeSandboxEnvironmentResponse.ts +24 -0
  243. package/src/models/index.ts +11 -0
  244. package/src/runtime.ts +23 -0
@@ -48,7 +48,7 @@ export interface SnapshotSummary {
48
48
  * @type {number}
49
49
  * @memberof SnapshotSummary
50
50
  */
51
- generation: number;
51
+ generation: number | null;
52
52
  /**
53
53
  *
54
54
  * @type {string}
@@ -72,13 +72,13 @@ export interface SnapshotSummary {
72
72
  * @type {number}
73
73
  * @memberof SnapshotSummary
74
74
  */
75
- sizeBytes: number;
75
+ sizeBytes: number | null;
76
76
  /**
77
77
  * Inventory entries alive in the chain at this generation (includes base-image system entries).
78
78
  * @type {number}
79
79
  * @memberof SnapshotSummary
80
80
  */
81
- fileCount: number;
81
+ fileCount: number | null;
82
82
  /**
83
83
  * Total bytes of your data restored by this snapshot (what resume/download returns; base image excluded). `null` on legacy snapshots.
84
84
  * @type {number}
@@ -49,6 +49,18 @@ export interface SshKeyResponse {
49
49
  * @memberof SshKeyResponse
50
50
  */
51
51
  sshUser?: string;
52
+ /**
53
+ * Public IPv4 `host:port` that forwards to the sandbox SSH server, set only when the machine has no public IPv4 of its own. Connect with `ssh -p <port> user@<host>`.
54
+ * @type {string}
55
+ * @memberof SshKeyResponse
56
+ */
57
+ sshEndpoint?: string | null;
58
+ /**
59
+ * The sandbox SSH server's public host key. Pin it in `known_hosts`.
60
+ * @type {string}
61
+ * @memberof SshKeyResponse
62
+ */
63
+ hostKey?: string;
52
64
  }
53
65
 
54
66
  /**
@@ -75,6 +87,8 @@ export function SshKeyResponseFromJSONTyped(json: any, ignoreDiscriminator: bool
75
87
  'success': json['success'] == null ? undefined : json['success'],
76
88
  'machineIp': json['machineIp'] == null ? undefined : json['machineIp'],
77
89
  'sshUser': json['sshUser'] == null ? undefined : json['sshUser'],
90
+ 'sshEndpoint': json['sshEndpoint'] == null ? undefined : json['sshEndpoint'],
91
+ 'hostKey': json['hostKey'] == null ? undefined : json['hostKey'],
78
92
  };
79
93
  }
80
94
 
@@ -94,6 +108,8 @@ export function SshKeyResponseToJSONTyped(value?: SshKeyResponse | null, ignoreD
94
108
  'success': value['success'],
95
109
  'machineIp': value['machineIp'],
96
110
  'sshUser': value['sshUser'],
111
+ 'sshEndpoint': value['sshEndpoint'],
112
+ 'hostKey': value['hostKey'],
97
113
  };
98
114
  }
99
115
 
@@ -31,12 +31,30 @@ export interface UpgradeSandboxEnvironmentResponse {
31
31
  * @memberof UpgradeSandboxEnvironmentResponse
32
32
  */
33
33
  upgraded: number;
34
+ /**
35
+ * Running sandboxes that received the new configuration now.
36
+ * @type {number}
37
+ * @memberof UpgradeSandboxEnvironmentResponse
38
+ */
39
+ upgradedLive?: number;
40
+ /**
41
+ * Stopped sandboxes moved to the latest version; they pick it up when they next resume.
42
+ * @type {number}
43
+ * @memberof UpgradeSandboxEnvironmentResponse
44
+ */
45
+ upgradedStopped?: number;
34
46
  /**
35
47
  *
36
48
  * @type {number}
37
49
  * @memberof UpgradeSandboxEnvironmentResponse
38
50
  */
39
51
  failed: number;
52
+ /**
53
+ * Id of the version the sandboxes were moved to.
54
+ * @type {string}
55
+ * @memberof UpgradeSandboxEnvironmentResponse
56
+ */
57
+ latestVersionId?: string;
40
58
  }
41
59
 
42
60
  /**
@@ -61,7 +79,10 @@ export function UpgradeSandboxEnvironmentResponseFromJSONTyped(json: any, ignore
61
79
 
62
80
  'success': json['success'],
63
81
  'upgraded': json['upgraded'],
82
+ 'upgradedLive': json['upgradedLive'] == null ? undefined : json['upgradedLive'],
83
+ 'upgradedStopped': json['upgradedStopped'] == null ? undefined : json['upgradedStopped'],
64
84
  'failed': json['failed'],
85
+ 'latestVersionId': json['latestVersionId'] == null ? undefined : json['latestVersionId'],
65
86
  };
66
87
  }
67
88
 
@@ -78,7 +99,10 @@ export function UpgradeSandboxEnvironmentResponseToJSONTyped(value?: UpgradeSand
78
99
 
79
100
  'success': value['success'],
80
101
  'upgraded': value['upgraded'],
102
+ 'upgradedLive': value['upgradedLive'],
103
+ 'upgradedStopped': value['upgradedStopped'],
81
104
  'failed': value['failed'],
105
+ 'latestVersionId': value['latestVersionId'],
82
106
  };
83
107
  }
84
108
 
@@ -1,5 +1,8 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
+ export * from './ActiveOrgResponse';
4
+ export * from './ActiveOrgResponseAllOfActive';
5
+ export * from './ActiveOrgUpdateRequest';
3
6
  export * from './AddEnvironmentRepoRequest';
4
7
  export * from './ApiKey';
5
8
  export * from './ApiKeyCatalog';
@@ -30,6 +33,7 @@ export * from './CreateScopedApiKeyRequest';
30
33
  export * from './DataRetentionPolicyResponse';
31
34
  export * from './DataRetentionUpdateRequest';
32
35
  export * from './DeletionOperation';
36
+ export * from './DeletionOperationListResponse';
33
37
  export * from './DeletionOperationResponse';
34
38
  export * from './DesktopRequest';
35
39
  export * from './DesktopResponse';
@@ -46,6 +50,8 @@ export * from './HostPortRequest';
46
50
  export * from './HostPortResponse';
47
51
  export * from './LimitsFields';
48
52
  export * from './LimitsFieldsCurrentLimits';
53
+ export * from './LimitsFieldsGiftLimit';
54
+ export * from './LimitsFieldsSandboxPlanTiersInner';
49
55
  export * from './LimitsFieldsStartLimits';
50
56
  export * from './LimitsFieldsStarts';
51
57
  export * from './LimitsResponse';
@@ -57,9 +63,13 @@ export * from './NamedSnapshotInfoResponse';
57
63
  export * from './NamedSnapshotListResponse';
58
64
  export * from './NamedSnapshotSaveRequest';
59
65
  export * from './NamedSnapshotSavingResponse';
66
+ export * from './Org';
67
+ export * from './OrgListResponse';
60
68
  export * from './PageInfo';
61
69
  export * from './PromptEvent';
62
70
  export * from './PromptEventData';
71
+ export * from './PromptEventDataAttachmentsInner';
72
+ export * from './PromptEventDataCitationsInner';
63
73
  export * from './PromptRequest';
64
74
  export * from './PromptResponse';
65
75
  export * from './PromptRun';
@@ -82,6 +92,7 @@ export * from './SandboxEnvironmentVersionSummary';
82
92
  export * from './SandboxEvent';
83
93
  export * from './SandboxInfoResponse';
84
94
  export * from './SandboxListResponse';
95
+ export * from './SandboxTeam';
85
96
  export * from './SandboxUsageResponse';
86
97
  export * from './SecretFile';
87
98
  export * from './SecretsResponse';
package/src/runtime.ts CHANGED
@@ -447,3 +447,26 @@ export class TextApiResponse {
447
447
  return await this.raw.text();
448
448
  };
449
449
  }
450
+
451
+
452
+ /**
453
+ * A body-taking call's parameters with the body's fields inline, next to the
454
+ * path/query/header parameters: `fork({ sandboxId, type: 'small' })` is
455
+ * `fork({ sandboxId, forkRequest: { type: 'small' } })`. Both shapes are accepted.
456
+ */
457
+ export type FlatBody<R, K extends keyof R> = Omit<R, K> & NonNullable<R[K]>;
458
+
459
+ /** Turns either call shape into the wrapped one the generated code sends. */
460
+ export function unflattenBody<R>(input: object, bodyKey: string, paramKeys: string[], sharedKeys: string[]): R {
461
+ if (input == null || bodyKey in input) return input as R;
462
+ const params: any = {};
463
+ const body: any = {};
464
+ for (const [k, v] of Object.entries(input)) {
465
+ const isParam = paramKeys.indexOf(k) !== -1;
466
+ if (isParam) params[k] = v;
467
+ if (!isParam || sharedKeys.indexOf(k) !== -1) body[k] = v;
468
+ }
469
+ // No body field given: send no body, exactly like the wrapped call with the key omitted.
470
+ if (Object.keys(body).length > 0) params[bodyKey] = body;
471
+ return params as R;
472
+ }