@boatdev/sdk 1.9.5 → 1.9.6

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 (148) hide show
  1. package/.openapi-generator/FILES +40 -0
  2. package/dist/apis/BoatApi.d.ts +263 -3
  3. package/dist/apis/BoatApi.js +662 -11
  4. package/dist/esm/apis/BoatApi.d.ts +263 -3
  5. package/dist/esm/apis/BoatApi.js +662 -11
  6. package/dist/esm/models/AccountAiUsageResponse.d.ts +83 -0
  7. package/dist/esm/models/AccountAiUsageResponse.js +78 -0
  8. package/dist/esm/models/AiProxySettings.d.ts +81 -0
  9. package/dist/esm/models/AiProxySettings.js +76 -0
  10. package/dist/esm/models/AiProxySettingsAllOfPricing.d.ts +38 -0
  11. package/dist/esm/models/AiProxySettingsAllOfPricing.js +47 -0
  12. package/dist/esm/models/AiUsageRow.d.ts +80 -0
  13. package/dist/esm/models/AiUsageRow.js +75 -0
  14. package/dist/esm/models/AiUsageTotals.d.ts +62 -0
  15. package/dist/esm/models/AiUsageTotals.js +63 -0
  16. package/dist/esm/models/CreateCredentialProfileRequest.d.ts +44 -0
  17. package/dist/esm/models/CreateCredentialProfileRequest.js +47 -0
  18. package/dist/esm/models/CredentialId.d.ts +36 -0
  19. package/dist/esm/models/CredentialId.js +54 -0
  20. package/dist/esm/models/CredentialProfile.d.ts +82 -0
  21. package/dist/esm/models/CredentialProfile.js +77 -0
  22. package/dist/esm/models/CredentialProfileDeletedResponse.d.ts +44 -0
  23. package/dist/esm/models/CredentialProfileDeletedResponse.js +51 -0
  24. package/dist/esm/models/CredentialProfileListResponse.d.ts +45 -0
  25. package/dist/esm/models/CredentialProfileListResponse.js +52 -0
  26. package/dist/esm/models/CredentialProfileOwner.d.ts +58 -0
  27. package/dist/esm/models/CredentialProfileOwner.js +62 -0
  28. package/dist/esm/models/CredentialProfileResponse.d.ts +51 -0
  29. package/dist/esm/models/CredentialProfileResponse.js +56 -0
  30. package/dist/esm/models/ProcessListResponse.d.ts +1 -1
  31. package/dist/esm/models/SandboxAiAccessResponse.d.ts +56 -0
  32. package/dist/esm/models/SandboxAiAccessResponse.js +59 -0
  33. package/dist/esm/models/SandboxAiUsage.d.ts +64 -0
  34. package/dist/esm/models/SandboxAiUsage.js +65 -0
  35. package/dist/esm/models/SandboxAiUsageResponse.d.ts +88 -0
  36. package/dist/esm/models/SandboxAiUsageResponse.js +81 -0
  37. package/dist/esm/models/SandboxEnvironment.d.ts +13 -1
  38. package/dist/esm/models/SandboxEnvironment.js +4 -0
  39. package/dist/esm/models/SetCredentialKeyRequest.d.ts +32 -0
  40. package/dist/esm/models/SetCredentialKeyRequest.js +43 -0
  41. package/dist/esm/models/SetCustomApiRequest.d.ts +38 -0
  42. package/dist/esm/models/SetCustomApiRequest.js +47 -0
  43. package/dist/esm/models/SetSandboxAiAccessRequest.d.ts +32 -0
  44. package/dist/esm/models/SetSandboxAiAccessRequest.js +43 -0
  45. package/dist/esm/models/UpdateAiProxyRequest.d.ts +32 -0
  46. package/dist/esm/models/UpdateAiProxyRequest.js +43 -0
  47. package/dist/esm/models/UpdateCredentialProfileRequest.d.ts +38 -0
  48. package/dist/esm/models/UpdateCredentialProfileRequest.js +43 -0
  49. package/dist/esm/models/UpdateSandboxEnvironmentRequest.d.ts +12 -0
  50. package/dist/esm/models/UpdateSandboxEnvironmentRequest.js +4 -0
  51. package/dist/esm/models/index.d.ts +20 -0
  52. package/dist/esm/models/index.js +20 -0
  53. package/dist/models/AccountAiUsageResponse.d.ts +83 -0
  54. package/dist/models/AccountAiUsageResponse.js +85 -0
  55. package/dist/models/AiProxySettings.d.ts +81 -0
  56. package/dist/models/AiProxySettings.js +83 -0
  57. package/dist/models/AiProxySettingsAllOfPricing.d.ts +38 -0
  58. package/dist/models/AiProxySettingsAllOfPricing.js +54 -0
  59. package/dist/models/AiUsageRow.d.ts +80 -0
  60. package/dist/models/AiUsageRow.js +82 -0
  61. package/dist/models/AiUsageTotals.d.ts +62 -0
  62. package/dist/models/AiUsageTotals.js +70 -0
  63. package/dist/models/CreateCredentialProfileRequest.d.ts +44 -0
  64. package/dist/models/CreateCredentialProfileRequest.js +54 -0
  65. package/dist/models/CredentialId.d.ts +36 -0
  66. package/dist/models/CredentialId.js +62 -0
  67. package/dist/models/CredentialProfile.d.ts +82 -0
  68. package/dist/models/CredentialProfile.js +84 -0
  69. package/dist/models/CredentialProfileDeletedResponse.d.ts +44 -0
  70. package/dist/models/CredentialProfileDeletedResponse.js +58 -0
  71. package/dist/models/CredentialProfileListResponse.d.ts +45 -0
  72. package/dist/models/CredentialProfileListResponse.js +59 -0
  73. package/dist/models/CredentialProfileOwner.d.ts +58 -0
  74. package/dist/models/CredentialProfileOwner.js +70 -0
  75. package/dist/models/CredentialProfileResponse.d.ts +51 -0
  76. package/dist/models/CredentialProfileResponse.js +63 -0
  77. package/dist/models/ProcessListResponse.d.ts +1 -1
  78. package/dist/models/SandboxAiAccessResponse.d.ts +56 -0
  79. package/dist/models/SandboxAiAccessResponse.js +66 -0
  80. package/dist/models/SandboxAiUsage.d.ts +64 -0
  81. package/dist/models/SandboxAiUsage.js +72 -0
  82. package/dist/models/SandboxAiUsageResponse.d.ts +88 -0
  83. package/dist/models/SandboxAiUsageResponse.js +88 -0
  84. package/dist/models/SandboxEnvironment.d.ts +13 -1
  85. package/dist/models/SandboxEnvironment.js +4 -0
  86. package/dist/models/SetCredentialKeyRequest.d.ts +32 -0
  87. package/dist/models/SetCredentialKeyRequest.js +50 -0
  88. package/dist/models/SetCustomApiRequest.d.ts +38 -0
  89. package/dist/models/SetCustomApiRequest.js +54 -0
  90. package/dist/models/SetSandboxAiAccessRequest.d.ts +32 -0
  91. package/dist/models/SetSandboxAiAccessRequest.js +50 -0
  92. package/dist/models/UpdateAiProxyRequest.d.ts +32 -0
  93. package/dist/models/UpdateAiProxyRequest.js +50 -0
  94. package/dist/models/UpdateCredentialProfileRequest.d.ts +38 -0
  95. package/dist/models/UpdateCredentialProfileRequest.js +50 -0
  96. package/dist/models/UpdateSandboxEnvironmentRequest.d.ts +12 -0
  97. package/dist/models/UpdateSandboxEnvironmentRequest.js +4 -0
  98. package/dist/models/index.d.ts +20 -0
  99. package/dist/models/index.js +20 -0
  100. package/docs/AccountAiUsageResponse.md +48 -0
  101. package/docs/AiProxySettings.md +48 -0
  102. package/docs/AiProxySettingsAllOfPricing.md +34 -0
  103. package/docs/AiUsageRow.md +48 -0
  104. package/docs/AiUsageTotals.md +43 -0
  105. package/docs/BoatApi.md +1285 -234
  106. package/docs/CreateCredentialProfileRequest.md +36 -0
  107. package/docs/CredentialId.md +31 -0
  108. package/docs/CredentialProfile.md +49 -0
  109. package/docs/CredentialProfileDeletedResponse.md +36 -0
  110. package/docs/CredentialProfileListResponse.md +36 -0
  111. package/docs/CredentialProfileOwner.md +38 -0
  112. package/docs/CredentialProfileResponse.md +38 -0
  113. package/docs/SandboxAiAccessResponse.md +40 -0
  114. package/docs/SandboxAiUsage.md +42 -0
  115. package/docs/SandboxAiUsageResponse.md +50 -0
  116. package/docs/SandboxEnvironment.md +4 -0
  117. package/docs/SetCredentialKeyRequest.md +32 -0
  118. package/docs/SetCustomApiRequest.md +34 -0
  119. package/docs/SetSandboxAiAccessRequest.md +32 -0
  120. package/docs/UpdateAiProxyRequest.md +32 -0
  121. package/docs/UpdateCredentialProfileRequest.md +34 -0
  122. package/docs/UpdateSandboxEnvironmentRequest.md +4 -0
  123. package/package.json +1 -1
  124. package/src/apis/BoatApi.ts +1013 -13
  125. package/src/models/AccountAiUsageResponse.ts +160 -0
  126. package/src/models/AiProxySettings.ts +146 -0
  127. package/src/models/AiProxySettingsAllOfPricing.ts +75 -0
  128. package/src/models/AiUsageRow.ts +138 -0
  129. package/src/models/AiUsageTotals.ts +111 -0
  130. package/src/models/CreateCredentialProfileRequest.ts +82 -0
  131. package/src/models/CredentialId.ts +64 -0
  132. package/src/models/CredentialProfile.ts +153 -0
  133. package/src/models/CredentialProfileDeletedResponse.ts +84 -0
  134. package/src/models/CredentialProfileListResponse.ts +92 -0
  135. package/src/models/CredentialProfileOwner.ts +104 -0
  136. package/src/models/CredentialProfileResponse.ts +101 -0
  137. package/src/models/ProcessListResponse.ts +1 -1
  138. package/src/models/SandboxAiAccessResponse.ts +102 -0
  139. package/src/models/SandboxAiUsage.ts +126 -0
  140. package/src/models/SandboxAiUsageResponse.ts +162 -0
  141. package/src/models/SandboxEnvironment.ts +17 -1
  142. package/src/models/SetCredentialKeyRequest.ts +66 -0
  143. package/src/models/SetCustomApiRequest.ts +75 -0
  144. package/src/models/SetSandboxAiAccessRequest.ts +66 -0
  145. package/src/models/UpdateAiProxyRequest.ts +66 -0
  146. package/src/models/UpdateCredentialProfileRequest.ts +73 -0
  147. package/src/models/UpdateSandboxEnvironmentRequest.ts +16 -0
  148. package/src/models/index.ts +20 -0
@@ -0,0 +1,102 @@
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
+ *
18
+ * @export
19
+ * @interface SandboxAiAccessResponse
20
+ */
21
+ export interface SandboxAiAccessResponse {
22
+ /**
23
+ *
24
+ * @type {boolean}
25
+ * @memberof SandboxAiAccessResponse
26
+ */
27
+ ok: boolean;
28
+ /**
29
+ * Stable success envelope discriminator added by v1.
30
+ * @type {string}
31
+ * @memberof SandboxAiAccessResponse
32
+ */
33
+ type: string;
34
+ /**
35
+ *
36
+ * @type {boolean}
37
+ * @memberof SandboxAiAccessResponse
38
+ */
39
+ success: boolean;
40
+ /**
41
+ *
42
+ * @type {string}
43
+ * @memberof SandboxAiAccessResponse
44
+ */
45
+ sandboxId: string;
46
+ /**
47
+ *
48
+ * @type {boolean}
49
+ * @memberof SandboxAiAccessResponse
50
+ */
51
+ blocked: boolean;
52
+ }
53
+
54
+ /**
55
+ * Check if a given object implements the SandboxAiAccessResponse interface.
56
+ */
57
+ export function instanceOfSandboxAiAccessResponse(value: object): value is SandboxAiAccessResponse {
58
+ if (!('ok' in value) || value['ok'] === undefined) return false;
59
+ if (!('type' in value) || value['type'] === undefined) return false;
60
+ if (!('success' in value) || value['success'] === undefined) return false;
61
+ if (!('sandboxId' in value) || value['sandboxId'] === undefined) return false;
62
+ if (!('blocked' in value) || value['blocked'] === undefined) return false;
63
+ return true;
64
+ }
65
+
66
+ export function SandboxAiAccessResponseFromJSON(json: any): SandboxAiAccessResponse {
67
+ return SandboxAiAccessResponseFromJSONTyped(json, false);
68
+ }
69
+
70
+ export function SandboxAiAccessResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): SandboxAiAccessResponse {
71
+ if (json == null) {
72
+ return json;
73
+ }
74
+ return {
75
+
76
+ 'ok': json['ok'],
77
+ 'type': json['type'],
78
+ 'success': json['success'],
79
+ 'sandboxId': json['sandboxId'],
80
+ 'blocked': json['blocked'],
81
+ };
82
+ }
83
+
84
+ export function SandboxAiAccessResponseToJSON(json: any): SandboxAiAccessResponse {
85
+ return SandboxAiAccessResponseToJSONTyped(json, false);
86
+ }
87
+
88
+ export function SandboxAiAccessResponseToJSONTyped(value?: SandboxAiAccessResponse | null, ignoreDiscriminator: boolean = false): any {
89
+ if (value == null) {
90
+ return value;
91
+ }
92
+
93
+ return {
94
+
95
+ 'ok': value['ok'],
96
+ 'type': value['type'],
97
+ 'success': value['success'],
98
+ 'sandboxId': value['sandboxId'],
99
+ 'blocked': value['blocked'],
100
+ };
101
+ }
102
+
@@ -0,0 +1,126 @@
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
+ import type { AiUsageRow } from './AiUsageRow';
17
+ import {
18
+ AiUsageRowFromJSON,
19
+ AiUsageRowFromJSONTyped,
20
+ AiUsageRowToJSON,
21
+ AiUsageRowToJSONTyped,
22
+ } from './AiUsageRow';
23
+ import type { AiUsageTotals } from './AiUsageTotals';
24
+ import {
25
+ AiUsageTotalsFromJSON,
26
+ AiUsageTotalsFromJSONTyped,
27
+ AiUsageTotalsToJSON,
28
+ AiUsageTotalsToJSONTyped,
29
+ } from './AiUsageTotals';
30
+
31
+ /**
32
+ *
33
+ * @export
34
+ * @interface SandboxAiUsage
35
+ */
36
+ export interface SandboxAiUsage {
37
+ /**
38
+ *
39
+ * @type {string}
40
+ * @memberof SandboxAiUsage
41
+ */
42
+ sandboxId: string | null;
43
+ /**
44
+ *
45
+ * @type {string}
46
+ * @memberof SandboxAiUsage
47
+ */
48
+ name: string | null;
49
+ /**
50
+ *
51
+ * @type {boolean}
52
+ * @memberof SandboxAiUsage
53
+ */
54
+ blocked: boolean;
55
+ /**
56
+ *
57
+ * @type {Array<AiUsageRow>}
58
+ * @memberof SandboxAiUsage
59
+ */
60
+ usage: Array<AiUsageRow>;
61
+ /**
62
+ *
63
+ * @type {AiUsageTotals}
64
+ * @memberof SandboxAiUsage
65
+ */
66
+ totals: AiUsageTotals;
67
+ /**
68
+ * Request charge for the period, at the price per 1,000 requests.
69
+ * @type {number}
70
+ * @memberof SandboxAiUsage
71
+ */
72
+ dollars: number;
73
+ }
74
+
75
+ /**
76
+ * Check if a given object implements the SandboxAiUsage interface.
77
+ */
78
+ export function instanceOfSandboxAiUsage(value: object): value is SandboxAiUsage {
79
+ if (!('sandboxId' in value) || value['sandboxId'] === undefined) return false;
80
+ if (!('name' in value) || value['name'] === undefined) return false;
81
+ if (!('blocked' in value) || value['blocked'] === undefined) return false;
82
+ if (!('usage' in value) || value['usage'] === undefined) return false;
83
+ if (!('totals' in value) || value['totals'] === undefined) return false;
84
+ if (!('dollars' in value) || value['dollars'] === undefined) return false;
85
+ return true;
86
+ }
87
+
88
+ export function SandboxAiUsageFromJSON(json: any): SandboxAiUsage {
89
+ return SandboxAiUsageFromJSONTyped(json, false);
90
+ }
91
+
92
+ export function SandboxAiUsageFromJSONTyped(json: any, ignoreDiscriminator: boolean): SandboxAiUsage {
93
+ if (json == null) {
94
+ return json;
95
+ }
96
+ return {
97
+
98
+ 'sandboxId': json['sandboxId'],
99
+ 'name': json['name'],
100
+ 'blocked': json['blocked'],
101
+ 'usage': ((json['usage'] as Array<any>).map(AiUsageRowFromJSON)),
102
+ 'totals': AiUsageTotalsFromJSON(json['totals']),
103
+ 'dollars': json['dollars'],
104
+ };
105
+ }
106
+
107
+ export function SandboxAiUsageToJSON(json: any): SandboxAiUsage {
108
+ return SandboxAiUsageToJSONTyped(json, false);
109
+ }
110
+
111
+ export function SandboxAiUsageToJSONTyped(value?: SandboxAiUsage | null, ignoreDiscriminator: boolean = false): any {
112
+ if (value == null) {
113
+ return value;
114
+ }
115
+
116
+ return {
117
+
118
+ 'sandboxId': value['sandboxId'],
119
+ 'name': value['name'],
120
+ 'blocked': value['blocked'],
121
+ 'usage': ((value['usage'] as Array<any>).map(AiUsageRowToJSON)),
122
+ 'totals': AiUsageTotalsToJSON(value['totals']),
123
+ 'dollars': value['dollars'],
124
+ };
125
+ }
126
+
@@ -0,0 +1,162 @@
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
+ import type { AiUsageRow } from './AiUsageRow';
17
+ import {
18
+ AiUsageRowFromJSON,
19
+ AiUsageRowFromJSONTyped,
20
+ AiUsageRowToJSON,
21
+ AiUsageRowToJSONTyped,
22
+ } from './AiUsageRow';
23
+ import type { AiUsageTotals } from './AiUsageTotals';
24
+ import {
25
+ AiUsageTotalsFromJSON,
26
+ AiUsageTotalsFromJSONTyped,
27
+ AiUsageTotalsToJSON,
28
+ AiUsageTotalsToJSONTyped,
29
+ } from './AiUsageTotals';
30
+
31
+ /**
32
+ *
33
+ * @export
34
+ * @interface SandboxAiUsageResponse
35
+ */
36
+ export interface SandboxAiUsageResponse {
37
+ /**
38
+ *
39
+ * @type {boolean}
40
+ * @memberof SandboxAiUsageResponse
41
+ */
42
+ ok: boolean;
43
+ /**
44
+ * Stable success envelope discriminator added by v1.
45
+ * @type {string}
46
+ * @memberof SandboxAiUsageResponse
47
+ */
48
+ type: string;
49
+ /**
50
+ *
51
+ * @type {string}
52
+ * @memberof SandboxAiUsageResponse
53
+ */
54
+ sandboxId: string;
55
+ /**
56
+ * True when the proxy refuses this sandbox's placeholders.
57
+ * @type {boolean}
58
+ * @memberof SandboxAiUsageResponse
59
+ */
60
+ blocked: boolean;
61
+ /**
62
+ * True when the sandbox holds placeholders, not real keys.
63
+ * @type {boolean}
64
+ * @memberof SandboxAiUsageResponse
65
+ */
66
+ proxied: boolean;
67
+ /**
68
+ * The profile the sandbox uses. Null means its owner's default.
69
+ * @type {string}
70
+ * @memberof SandboxAiUsageResponse
71
+ */
72
+ credentialProfileId: string | null;
73
+ /**
74
+ *
75
+ * @type {Date}
76
+ * @memberof SandboxAiUsageResponse
77
+ */
78
+ since: Date;
79
+ /**
80
+ *
81
+ * @type {Array<AiUsageRow>}
82
+ * @memberof SandboxAiUsageResponse
83
+ */
84
+ usage: Array<AiUsageRow>;
85
+ /**
86
+ *
87
+ * @type {AiUsageTotals}
88
+ * @memberof SandboxAiUsageResponse
89
+ */
90
+ totals: AiUsageTotals;
91
+ /**
92
+ *
93
+ * @type {number}
94
+ * @memberof SandboxAiUsageResponse
95
+ */
96
+ dollars: number;
97
+ }
98
+
99
+ /**
100
+ * Check if a given object implements the SandboxAiUsageResponse interface.
101
+ */
102
+ export function instanceOfSandboxAiUsageResponse(value: object): value is SandboxAiUsageResponse {
103
+ if (!('ok' in value) || value['ok'] === undefined) return false;
104
+ if (!('type' in value) || value['type'] === undefined) return false;
105
+ if (!('sandboxId' in value) || value['sandboxId'] === undefined) return false;
106
+ if (!('blocked' in value) || value['blocked'] === undefined) return false;
107
+ if (!('proxied' in value) || value['proxied'] === undefined) return false;
108
+ if (!('credentialProfileId' in value) || value['credentialProfileId'] === undefined) return false;
109
+ if (!('since' in value) || value['since'] === undefined) return false;
110
+ if (!('usage' in value) || value['usage'] === undefined) return false;
111
+ if (!('totals' in value) || value['totals'] === undefined) return false;
112
+ if (!('dollars' in value) || value['dollars'] === undefined) return false;
113
+ return true;
114
+ }
115
+
116
+ export function SandboxAiUsageResponseFromJSON(json: any): SandboxAiUsageResponse {
117
+ return SandboxAiUsageResponseFromJSONTyped(json, false);
118
+ }
119
+
120
+ export function SandboxAiUsageResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): SandboxAiUsageResponse {
121
+ if (json == null) {
122
+ return json;
123
+ }
124
+ return {
125
+
126
+ 'ok': json['ok'],
127
+ 'type': json['type'],
128
+ 'sandboxId': json['sandboxId'],
129
+ 'blocked': json['blocked'],
130
+ 'proxied': json['proxied'],
131
+ 'credentialProfileId': json['credentialProfileId'],
132
+ 'since': (new Date(json['since'])),
133
+ 'usage': ((json['usage'] as Array<any>).map(AiUsageRowFromJSON)),
134
+ 'totals': AiUsageTotalsFromJSON(json['totals']),
135
+ 'dollars': json['dollars'],
136
+ };
137
+ }
138
+
139
+ export function SandboxAiUsageResponseToJSON(json: any): SandboxAiUsageResponse {
140
+ return SandboxAiUsageResponseToJSONTyped(json, false);
141
+ }
142
+
143
+ export function SandboxAiUsageResponseToJSONTyped(value?: SandboxAiUsageResponse | null, ignoreDiscriminator: boolean = false): any {
144
+ if (value == null) {
145
+ return value;
146
+ }
147
+
148
+ return {
149
+
150
+ 'ok': value['ok'],
151
+ 'type': value['type'],
152
+ 'sandboxId': value['sandboxId'],
153
+ 'blocked': value['blocked'],
154
+ 'proxied': value['proxied'],
155
+ 'credentialProfileId': value['credentialProfileId'],
156
+ 'since': value['since'].toISOString().substring(0,10),
157
+ 'usage': ((value['usage'] as Array<any>).map(AiUsageRowToJSON)),
158
+ 'totals': AiUsageTotalsToJSON(value['totals']),
159
+ 'dollars': value['dollars'],
160
+ };
161
+ }
162
+
@@ -78,7 +78,7 @@ export interface SandboxEnvironment {
78
78
  */
79
79
  safetyAnsweredAt?: Date | null;
80
80
  /**
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.
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. The one exception is `proxyAiCredentials`.
82
82
  * @type {boolean}
83
83
  * @memberof SandboxEnvironment
84
84
  */
@@ -107,6 +107,18 @@ export interface SandboxEnvironment {
107
107
  * @memberof SandboxEnvironment
108
108
  */
109
109
  passAgentsCredentials: boolean;
110
+ /**
111
+ * The AI credential profile the environment's sandboxes get. Null means the sandbox owner's default profile.
112
+ * @type {string}
113
+ * @memberof SandboxEnvironment
114
+ */
115
+ credentialProfileId?: string | null;
116
+ /**
117
+ * Only with `safeForThirdParties` true. The sandboxes still get AI credentials, as AI credentials proxy placeholders. Real keys never enter them.
118
+ * @type {boolean}
119
+ * @memberof SandboxEnvironment
120
+ */
121
+ proxyAiCredentials?: boolean;
110
122
  /**
111
123
  * The latest version's .env-style content. Treat as sensitive.
112
124
  * @type {string}
@@ -173,6 +185,8 @@ export function SandboxEnvironmentFromJSONTyped(json: any, ignoreDiscriminator:
173
185
  'passSecrets': json['passSecrets'],
174
186
  'passSandboxCredentials': json['passSandboxCredentials'],
175
187
  'passAgentsCredentials': json['passAgentsCredentials'],
188
+ 'credentialProfileId': json['credentialProfileId'] == null ? undefined : json['credentialProfileId'],
189
+ 'proxyAiCredentials': json['proxyAiCredentials'] == null ? undefined : json['proxyAiCredentials'],
176
190
  'envContents': json['envContents'],
177
191
  'secretFiles': ((json['secretFiles'] as Array<any>).map(SecretFileFromJSON)),
178
192
  'selectedRepositories': json['selectedRepositories'] == null ? undefined : ((json['selectedRepositories'] as Array<any>).map(SelectedRepositoryFromJSON)),
@@ -202,6 +216,8 @@ export function SandboxEnvironmentToJSONTyped(value?: SandboxEnvironment | null,
202
216
  'passSecrets': value['passSecrets'],
203
217
  'passSandboxCredentials': value['passSandboxCredentials'],
204
218
  'passAgentsCredentials': value['passAgentsCredentials'],
219
+ 'credentialProfileId': value['credentialProfileId'],
220
+ 'proxyAiCredentials': value['proxyAiCredentials'],
205
221
  'envContents': value['envContents'],
206
222
  'secretFiles': ((value['secretFiles'] as Array<any>).map(SecretFileToJSON)),
207
223
  'selectedRepositories': value['selectedRepositories'] == null ? undefined : ((value['selectedRepositories'] as Array<any>).map(SelectedRepositoryToJSON)),
@@ -0,0 +1,66 @@
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
+ *
18
+ * @export
19
+ * @interface SetCredentialKeyRequest
20
+ */
21
+ export interface SetCredentialKeyRequest {
22
+ /**
23
+ * The API key. Boat encrypts it at rest.
24
+ * @type {string}
25
+ * @memberof SetCredentialKeyRequest
26
+ */
27
+ value: string;
28
+ }
29
+
30
+ /**
31
+ * Check if a given object implements the SetCredentialKeyRequest interface.
32
+ */
33
+ export function instanceOfSetCredentialKeyRequest(value: object): value is SetCredentialKeyRequest {
34
+ if (!('value' in value) || value['value'] === undefined) return false;
35
+ return true;
36
+ }
37
+
38
+ export function SetCredentialKeyRequestFromJSON(json: any): SetCredentialKeyRequest {
39
+ return SetCredentialKeyRequestFromJSONTyped(json, false);
40
+ }
41
+
42
+ export function SetCredentialKeyRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): SetCredentialKeyRequest {
43
+ if (json == null) {
44
+ return json;
45
+ }
46
+ return {
47
+
48
+ 'value': json['value'],
49
+ };
50
+ }
51
+
52
+ export function SetCredentialKeyRequestToJSON(json: any): SetCredentialKeyRequest {
53
+ return SetCredentialKeyRequestToJSONTyped(json, false);
54
+ }
55
+
56
+ export function SetCredentialKeyRequestToJSONTyped(value?: SetCredentialKeyRequest | null, ignoreDiscriminator: boolean = false): any {
57
+ if (value == null) {
58
+ return value;
59
+ }
60
+
61
+ return {
62
+
63
+ 'value': value['value'],
64
+ };
65
+ }
66
+
@@ -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
+ *
18
+ * @export
19
+ * @interface SetCustomApiRequest
20
+ */
21
+ export interface SetCustomApiRequest {
22
+ /**
23
+ * The secret. The sandbox gets it as the variable named in the path.
24
+ * @type {string}
25
+ * @memberof SetCustomApiRequest
26
+ */
27
+ value: string;
28
+ /**
29
+ * Public HTTPS base URL of the API, on the default port, with a DNS name. The sandbox gets it as `<NAME>_BASE_URL`.
30
+ * @type {string}
31
+ * @memberof SetCustomApiRequest
32
+ */
33
+ baseUrl: string;
34
+ }
35
+
36
+ /**
37
+ * Check if a given object implements the SetCustomApiRequest interface.
38
+ */
39
+ export function instanceOfSetCustomApiRequest(value: object): value is SetCustomApiRequest {
40
+ if (!('value' in value) || value['value'] === undefined) return false;
41
+ if (!('baseUrl' in value) || value['baseUrl'] === undefined) return false;
42
+ return true;
43
+ }
44
+
45
+ export function SetCustomApiRequestFromJSON(json: any): SetCustomApiRequest {
46
+ return SetCustomApiRequestFromJSONTyped(json, false);
47
+ }
48
+
49
+ export function SetCustomApiRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): SetCustomApiRequest {
50
+ if (json == null) {
51
+ return json;
52
+ }
53
+ return {
54
+
55
+ 'value': json['value'],
56
+ 'baseUrl': json['baseUrl'],
57
+ };
58
+ }
59
+
60
+ export function SetCustomApiRequestToJSON(json: any): SetCustomApiRequest {
61
+ return SetCustomApiRequestToJSONTyped(json, false);
62
+ }
63
+
64
+ export function SetCustomApiRequestToJSONTyped(value?: SetCustomApiRequest | null, ignoreDiscriminator: boolean = false): any {
65
+ if (value == null) {
66
+ return value;
67
+ }
68
+
69
+ return {
70
+
71
+ 'value': value['value'],
72
+ 'baseUrl': value['baseUrl'],
73
+ };
74
+ }
75
+
@@ -0,0 +1,66 @@
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
+ *
18
+ * @export
19
+ * @interface SetSandboxAiAccessRequest
20
+ */
21
+ export interface SetSandboxAiAccessRequest {
22
+ /**
23
+ *
24
+ * @type {boolean}
25
+ * @memberof SetSandboxAiAccessRequest
26
+ */
27
+ blocked: boolean;
28
+ }
29
+
30
+ /**
31
+ * Check if a given object implements the SetSandboxAiAccessRequest interface.
32
+ */
33
+ export function instanceOfSetSandboxAiAccessRequest(value: object): value is SetSandboxAiAccessRequest {
34
+ if (!('blocked' in value) || value['blocked'] === undefined) return false;
35
+ return true;
36
+ }
37
+
38
+ export function SetSandboxAiAccessRequestFromJSON(json: any): SetSandboxAiAccessRequest {
39
+ return SetSandboxAiAccessRequestFromJSONTyped(json, false);
40
+ }
41
+
42
+ export function SetSandboxAiAccessRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): SetSandboxAiAccessRequest {
43
+ if (json == null) {
44
+ return json;
45
+ }
46
+ return {
47
+
48
+ 'blocked': json['blocked'],
49
+ };
50
+ }
51
+
52
+ export function SetSandboxAiAccessRequestToJSON(json: any): SetSandboxAiAccessRequest {
53
+ return SetSandboxAiAccessRequestToJSONTyped(json, false);
54
+ }
55
+
56
+ export function SetSandboxAiAccessRequestToJSONTyped(value?: SetSandboxAiAccessRequest | null, ignoreDiscriminator: boolean = false): any {
57
+ if (value == null) {
58
+ return value;
59
+ }
60
+
61
+ return {
62
+
63
+ 'blocked': value['blocked'],
64
+ };
65
+ }
66
+