cloreai 4.0.2 → 5.0.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.
- package/README.md +38 -57
- package/dist/Cloreai.d.ts +7 -4
- package/dist/Cloreai.js +46 -32
- package/dist/CloreaiError.d.ts +14 -13
- package/dist/CloreaiError.js +4 -5
- package/dist/constants.d.ts +0 -4
- package/dist/constants.js +0 -4
- package/dist/index.d.ts +2 -3
- package/dist/resources/cancelOrders.d.ts +1 -1
- package/dist/resources/createOrder.d.ts +8 -10
- package/dist/resources/marketplace.d.ts +7 -1
- package/dist/resources/myOrders.d.ts +19 -3
- package/dist/resources/myServers.d.ts +11 -2
- package/dist/resources/orderRenewals.d.ts +21 -0
- package/dist/resources/renterFees.d.ts +8 -0
- package/dist/resources/serverConfig.d.ts +25 -0
- package/dist/resources/setOrderAutoRenew.d.ts +8 -0
- package/dist/resources/setServerSettings.d.ts +1 -0
- package/dist/resources/setSpotPrice.d.ts +1 -10
- package/dist/types.d.ts +20 -26
- package/package.json +8 -8
- package/dist/Gigaspot.d.ts +0 -15
- package/dist/Gigaspot.js +0 -71
- package/dist/resources/createGigaspotOrders.d.ts +0 -15
- package/dist/resources/editGigaspotOrders.d.ts +0 -12
- package/dist/resources/getGigaspot.d.ts +0 -46
- package/dist/resources/getGigaspot.js +0 -1
- /package/dist/resources/{createGigaspotOrders.js → orderRenewals.js} +0 -0
- /package/dist/resources/{editGigaspotOrders.js → setOrderAutoRenew.js} +0 -0
package/README.md
CHANGED
|
@@ -9,12 +9,10 @@ Features:
|
|
|
9
9
|
[p-queue](https://github.com/sindresorhus/p-queue)
|
|
10
10
|
- Convenient error handling
|
|
11
11
|
- Full type safety
|
|
12
|
-
- Supports GigaSPOT
|
|
13
12
|
|
|
14
13
|
Official documentation: [clore.ai/api-docs](https://clore.ai/api-docs)
|
|
15
14
|
|
|
16
|
-
Official
|
|
17
|
-
[gigaspot-api-docs.clore.ai](https://gigaspot-api-docs.clore.ai)
|
|
15
|
+
Official changelog: [clore.ai/changelog](https://clore.ai/changelog)
|
|
18
16
|
|
|
19
17
|
## Installation
|
|
20
18
|
|
|
@@ -105,6 +103,7 @@ await cloreai.setServerSettings({
|
|
|
105
103
|
'USD-Blockchain': { on_demand: 1, spot: 1 },
|
|
106
104
|
'bitcoin': { on_demand: 1, spot: 1 },
|
|
107
105
|
},
|
|
106
|
+
'auto_renew_allowed': true,
|
|
108
107
|
})
|
|
109
108
|
```
|
|
110
109
|
|
|
@@ -126,85 +125,60 @@ await cloreai.cancelOrder({
|
|
|
126
125
|
})
|
|
127
126
|
```
|
|
128
127
|
|
|
129
|
-
### 10.
|
|
128
|
+
### 10. cancelOrders
|
|
129
|
+
|
|
130
|
+
```typescript
|
|
131
|
+
await cloreai.cancelOrders({
|
|
132
|
+
order_ids: [8383],
|
|
133
|
+
})
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### 11. create_order
|
|
130
137
|
|
|
131
138
|
```typescript
|
|
132
139
|
await cloreai.createOrder({
|
|
133
|
-
type: 'on-demand',
|
|
134
140
|
currency: 'CLORE-Blockchain',
|
|
135
141
|
image: 'cloreai/jupyter:ubuntu24.04-v2',
|
|
136
142
|
renting_server: 5738,
|
|
143
|
+
type: 'on-demand',
|
|
137
144
|
ports: { 22: 'tcp', 8888: 'http' },
|
|
138
145
|
env: { SSH_PASSWORD: 'SSH_PASSWORD', JUPYTER_TOKEN: 'JUPYTER_TOKEN' },
|
|
139
146
|
jupyter_token: 'JUPYTER_TOKEN',
|
|
140
147
|
ssh_password: 'SSH_PASSWORD',
|
|
141
148
|
required_price: 50,
|
|
142
149
|
remember_password: true,
|
|
150
|
+
auto_renew: true,
|
|
151
|
+
auto_renew_max_price: 50,
|
|
143
152
|
})
|
|
144
153
|
```
|
|
145
154
|
|
|
146
|
-
###
|
|
147
|
-
|
|
148
|
-
```typescript
|
|
149
|
-
const pohBalance = await cloreai.pohBalance()
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
### 12. renter_fees
|
|
153
|
-
|
|
154
|
-
```typescript
|
|
155
|
-
const renterFees = await cloreai.renterFees()
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
### GigaSPOT
|
|
159
|
-
|
|
160
|
-
#### getGigaspot
|
|
155
|
+
### 12. set_order_auto_renew
|
|
161
156
|
|
|
162
157
|
```typescript
|
|
163
|
-
|
|
158
|
+
await cloreai.setOrderAutoRenew({
|
|
159
|
+
order_id: 38,
|
|
160
|
+
rental_hours: null,
|
|
161
|
+
auto_renew: true,
|
|
162
|
+
auto_renew_max_price: 300,
|
|
163
|
+
})
|
|
164
164
|
```
|
|
165
165
|
|
|
166
|
-
|
|
166
|
+
### 13. order_renewals
|
|
167
167
|
|
|
168
168
|
```typescript
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
await cloreai.gigaspot.createGigaspotOrders([
|
|
172
|
-
{
|
|
173
|
-
currency: 'CLORE-Blockchain',
|
|
174
|
-
image: gigaspotBaseImages.UBUNTU, // Use the base image constant
|
|
175
|
-
renting_server: 5941,
|
|
176
|
-
price: 50,
|
|
177
|
-
oc: [
|
|
178
|
-
{
|
|
179
|
-
pl: 150,
|
|
180
|
-
},
|
|
181
|
-
],
|
|
182
|
-
},
|
|
183
|
-
])
|
|
169
|
+
const orderRenewals = await cloreai.orderRenewals({ order_id: 38 })
|
|
184
170
|
```
|
|
185
171
|
|
|
186
|
-
|
|
172
|
+
### 14. poh_balance
|
|
187
173
|
|
|
188
174
|
```typescript
|
|
189
|
-
await cloreai.
|
|
190
|
-
{
|
|
191
|
-
order_id: 58991,
|
|
192
|
-
price: 50,
|
|
193
|
-
oc: [
|
|
194
|
-
{
|
|
195
|
-
pl: 150,
|
|
196
|
-
},
|
|
197
|
-
],
|
|
198
|
-
},
|
|
199
|
-
])
|
|
175
|
+
const pohBalance = await cloreai.pohBalance()
|
|
200
176
|
```
|
|
201
177
|
|
|
202
|
-
|
|
178
|
+
### 15. renter_fees
|
|
203
179
|
|
|
204
180
|
```typescript
|
|
205
|
-
await cloreai.
|
|
206
|
-
order_ids: [8383],
|
|
207
|
-
})
|
|
181
|
+
const renterFees = await cloreai.renterFees()
|
|
208
182
|
```
|
|
209
183
|
|
|
210
184
|
## Fetch Options
|
|
@@ -221,9 +195,16 @@ const marketplace = await cloreai.marketplace({
|
|
|
221
195
|
|
|
222
196
|
Use the `CloreaiError` class for error handling.
|
|
223
197
|
|
|
224
|
-
|
|
198
|
+
To check the error type based on its code, use the `statusCodes` constant.
|
|
199
|
+
|
|
200
|
+
Errors include an `error.data` field, which contains the server
|
|
201
|
+
response—including a code and a description of the error—and, in some cases,
|
|
202
|
+
additional fields with further error details.
|
|
225
203
|
|
|
226
|
-
|
|
204
|
+
This class only catches errors when a response has been successfully received,
|
|
205
|
+
but the response code is not equal to `statusCodes.NORMAL` (0). Be sure to
|
|
206
|
+
implement a pattern for propagating unknown exceptions (such as connection
|
|
207
|
+
errors, etc.), as shown in the example below.
|
|
227
208
|
|
|
228
209
|
```typescript
|
|
229
210
|
import { CloreaiError, statusCodes } from 'cloreai'
|
|
@@ -232,9 +213,9 @@ try {
|
|
|
232
213
|
const marketplace = await cloreai.marketplace()
|
|
233
214
|
} catch (error) {
|
|
234
215
|
if (error instanceof CloreaiError) {
|
|
235
|
-
console.log(
|
|
216
|
+
console.log('Error data:', error.data)
|
|
236
217
|
|
|
237
|
-
if (error.
|
|
218
|
+
if (error.data.code === statusCodes.EXCEEDED) {
|
|
238
219
|
console.log('Rate limit exceeded error')
|
|
239
220
|
}
|
|
240
221
|
} else {
|
package/dist/Cloreai.d.ts
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import PQueue, { type Options as
|
|
1
|
+
import PQueue, { type Options as QueueOptions } from 'p-queue';
|
|
2
2
|
import type { CancelOrderRequestData, CancelOrderResponseData } from './resources/cancelOrder.ts';
|
|
3
|
+
import type { CancelOrdersRequestData, CancelOrdersResponseData } from './resources/cancelOrders.ts';
|
|
3
4
|
import type { CreateOrderRequestData, CreateOrderResponseData } from './resources/createOrder.ts';
|
|
4
5
|
import type { MarketplaceResponseData } from './resources/marketplace.ts';
|
|
5
6
|
import type { MyOrdersRequestParams, MyOrdersResponseData } from './resources/myOrders.ts';
|
|
6
7
|
import type { MyServersResponseData } from './resources/myServers.ts';
|
|
8
|
+
import type { OrderRenewalsRequestData, OrderRenewalsResponseData } from './resources/orderRenewals.ts';
|
|
7
9
|
import type { PohBalanceResponseData } from './resources/pohBalance.ts';
|
|
8
10
|
import type { RenterFeesResponseData } from './resources/renterFees.ts';
|
|
9
11
|
import type { ServerConfigRequestData, ServerConfigResponseData } from './resources/serverConfig.ts';
|
|
12
|
+
import type { SetOrderAutoRenewRequestData, SetOrderAutoRenewResponseData } from './resources/setOrderAutoRenew.ts';
|
|
10
13
|
import type { SetServerSettingsRequestData, SetServerSettingsResponseData } from './resources/setServerSettings.ts';
|
|
11
14
|
import type { SetSpotPriceRequestData, SetSpotPriceResponseData } from './resources/setSpotPrice.ts';
|
|
12
15
|
import type { SpotMarketplaceRequestParams, SpotMarketplaceResponseData } from './resources/spotMarketplace.ts';
|
|
13
16
|
import type { WalletsResponseData } from './resources/wallets.ts';
|
|
14
|
-
import Gigaspot from './Gigaspot.ts';
|
|
15
17
|
export interface Options {
|
|
16
18
|
baseURL?: string;
|
|
17
19
|
fetchOptions?: RequestInit;
|
|
@@ -19,7 +21,6 @@ export interface Options {
|
|
|
19
21
|
queueOptions?: QueueOptions;
|
|
20
22
|
queueCreateOrderOptions?: QueueOptions;
|
|
21
23
|
}
|
|
22
|
-
export type QueueOptions = PQueueOptions<Queue<() => Promise<unknown>, QueueAddOptions>, QueueAddOptions>;
|
|
23
24
|
declare class Cloreai {
|
|
24
25
|
#private;
|
|
25
26
|
apiKey: string;
|
|
@@ -28,7 +29,6 @@ declare class Cloreai {
|
|
|
28
29
|
fetch: typeof fetch;
|
|
29
30
|
queue: PQueue;
|
|
30
31
|
queueCreateOrder: PQueue;
|
|
31
|
-
gigaspot: Gigaspot;
|
|
32
32
|
constructor(apiKey: string, options?: Options);
|
|
33
33
|
wallets(init?: RequestInit): Promise<WalletsResponseData>;
|
|
34
34
|
myServers(init?: RequestInit): Promise<MyServersResponseData>;
|
|
@@ -39,7 +39,10 @@ declare class Cloreai {
|
|
|
39
39
|
setServerSettings(data: SetServerSettingsRequestData, init?: RequestInit): Promise<SetServerSettingsResponseData>;
|
|
40
40
|
setSpotPrice(data: SetSpotPriceRequestData, init?: RequestInit): Promise<SetSpotPriceResponseData>;
|
|
41
41
|
cancelOrder(data: CancelOrderRequestData, init?: RequestInit): Promise<CancelOrderResponseData>;
|
|
42
|
+
cancelOrders(data: CancelOrdersRequestData, init?: RequestInit): Promise<CancelOrdersResponseData>;
|
|
42
43
|
createOrder(data: CreateOrderRequestData, init?: RequestInit): Promise<CreateOrderResponseData>;
|
|
44
|
+
setOrderAutoRenew(data: SetOrderAutoRenewRequestData, init?: RequestInit): Promise<SetOrderAutoRenewResponseData>;
|
|
45
|
+
orderRenewals(data: OrderRenewalsRequestData, init?: RequestInit): Promise<OrderRenewalsResponseData>;
|
|
43
46
|
pohBalance(init?: RequestInit): Promise<PohBalanceResponseData>;
|
|
44
47
|
renterFees(init?: RequestInit): Promise<RenterFeesResponseData>;
|
|
45
48
|
}
|
package/dist/Cloreai.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import PQueue, {} from 'p-queue';
|
|
2
2
|
import { CloreaiError } from "./CloreaiError.js";
|
|
3
3
|
import { priorityLevels, RATE_LIMIT, RATE_LIMIT_CREATE_ORDER, statusCodes } from "./constants.js";
|
|
4
|
-
import Gigaspot from "./Gigaspot.js";
|
|
5
4
|
class Cloreai {
|
|
6
5
|
apiKey;
|
|
7
6
|
baseURL;
|
|
@@ -9,7 +8,6 @@ class Cloreai {
|
|
|
9
8
|
fetch;
|
|
10
9
|
queue;
|
|
11
10
|
queueCreateOrder;
|
|
12
|
-
gigaspot;
|
|
13
11
|
constructor(apiKey, options = {}) {
|
|
14
12
|
this.apiKey = apiKey;
|
|
15
13
|
this.baseURL = options.baseURL ?? 'https://api.clore.ai/v1';
|
|
@@ -27,7 +25,6 @@ class Cloreai {
|
|
|
27
25
|
concurrency: 1,
|
|
28
26
|
...options.queueCreateOrderOptions,
|
|
29
27
|
});
|
|
30
|
-
this.gigaspot = new Gigaspot(this, this.#fetch.bind(this));
|
|
31
28
|
}
|
|
32
29
|
async #fetch(input, init = {}) {
|
|
33
30
|
const headers = new Headers({
|
|
@@ -50,34 +47,12 @@ class Cloreai {
|
|
|
50
47
|
headers,
|
|
51
48
|
signal,
|
|
52
49
|
};
|
|
53
|
-
const
|
|
54
|
-
const
|
|
55
|
-
let response;
|
|
56
|
-
try {
|
|
57
|
-
response = await this.fetch(request);
|
|
58
|
-
}
|
|
59
|
-
catch (error) {
|
|
60
|
-
throw new CloreaiError(error instanceof Error ? error.message : String(error), {
|
|
61
|
-
cause: error,
|
|
62
|
-
init: mergedInit,
|
|
63
|
-
request,
|
|
64
|
-
});
|
|
65
|
-
}
|
|
50
|
+
const request = new Request(input, mergedInit);
|
|
51
|
+
const response = await this.fetch(request);
|
|
66
52
|
const originalJson = response.json;
|
|
67
53
|
// @ts-expect-error: json is readonly
|
|
68
54
|
response.json = async () => {
|
|
69
|
-
|
|
70
|
-
try {
|
|
71
|
-
data = await originalJson.call(response);
|
|
72
|
-
}
|
|
73
|
-
catch (error) {
|
|
74
|
-
throw new CloreaiError(error instanceof Error ? error.message : String(error), {
|
|
75
|
-
cause: error,
|
|
76
|
-
init: mergedInit,
|
|
77
|
-
request,
|
|
78
|
-
response,
|
|
79
|
-
});
|
|
80
|
-
}
|
|
55
|
+
const data = await originalJson.call(response);
|
|
81
56
|
if (data.code === statusCodes.NORMAL) {
|
|
82
57
|
return data;
|
|
83
58
|
}
|
|
@@ -86,11 +61,8 @@ class Cloreai {
|
|
|
86
61
|
? `Code "${data.code}, error "${data.error}"`
|
|
87
62
|
: `Code "${data.code}"`;
|
|
88
63
|
throw new CloreaiError(errorMessage, {
|
|
89
|
-
init: mergedInit,
|
|
90
64
|
request,
|
|
91
65
|
response,
|
|
92
|
-
statusCode: data.code,
|
|
93
|
-
description: data.error ?? '',
|
|
94
66
|
data,
|
|
95
67
|
});
|
|
96
68
|
};
|
|
@@ -223,9 +195,23 @@ class Cloreai {
|
|
|
223
195
|
});
|
|
224
196
|
return await response.json();
|
|
225
197
|
}
|
|
198
|
+
async cancelOrders(data, init = {}) {
|
|
199
|
+
const url = new URL(this.baseURL + '/cancel_orders');
|
|
200
|
+
const response = await this.queue.add(async () => {
|
|
201
|
+
return await this.#fetch(url, {
|
|
202
|
+
...init,
|
|
203
|
+
method: 'POST',
|
|
204
|
+
body: JSON.stringify(data),
|
|
205
|
+
});
|
|
206
|
+
}, {
|
|
207
|
+
priority: priorityLevels.HIGH,
|
|
208
|
+
signal: init.signal ?? undefined,
|
|
209
|
+
});
|
|
210
|
+
return await response.json();
|
|
211
|
+
}
|
|
226
212
|
async createOrder(data, init = {}) {
|
|
227
213
|
const url = new URL(this.baseURL + '/create_order');
|
|
228
|
-
const response = await this.
|
|
214
|
+
const response = await this.queueCreateOrder.add(async () => {
|
|
229
215
|
return await this.#fetch(url, {
|
|
230
216
|
...init,
|
|
231
217
|
method: 'POST',
|
|
@@ -237,6 +223,34 @@ class Cloreai {
|
|
|
237
223
|
});
|
|
238
224
|
return await response.json();
|
|
239
225
|
}
|
|
226
|
+
async setOrderAutoRenew(data, init = {}) {
|
|
227
|
+
const url = new URL(this.baseURL + '/set_order_auto_renew');
|
|
228
|
+
const response = await this.queue.add(async () => {
|
|
229
|
+
return await this.#fetch(url, {
|
|
230
|
+
...init,
|
|
231
|
+
method: 'POST',
|
|
232
|
+
body: JSON.stringify(data),
|
|
233
|
+
});
|
|
234
|
+
}, {
|
|
235
|
+
priority: priorityLevels.NORMAL,
|
|
236
|
+
signal: init.signal ?? undefined,
|
|
237
|
+
});
|
|
238
|
+
return await response.json();
|
|
239
|
+
}
|
|
240
|
+
async orderRenewals(data, init = {}) {
|
|
241
|
+
const url = new URL(this.baseURL + '/order_renewals');
|
|
242
|
+
const response = await this.queue.add(async () => {
|
|
243
|
+
return await this.#fetch(url, {
|
|
244
|
+
...init,
|
|
245
|
+
method: 'POST',
|
|
246
|
+
body: JSON.stringify(data),
|
|
247
|
+
});
|
|
248
|
+
}, {
|
|
249
|
+
priority: priorityLevels.NORMAL,
|
|
250
|
+
signal: init.signal ?? undefined,
|
|
251
|
+
});
|
|
252
|
+
return await response.json();
|
|
253
|
+
}
|
|
240
254
|
async pohBalance(init = {}) {
|
|
241
255
|
const url = new URL(this.baseURL + '/poh_balance');
|
|
242
256
|
const response = await this.queue.add(async () => {
|
package/dist/CloreaiError.d.ts
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
+
import type { ResponseData } from './types.ts';
|
|
2
|
+
export interface ErrorData extends ResponseData {
|
|
3
|
+
max_step?: number;
|
|
4
|
+
time_to_lowering?: number;
|
|
5
|
+
min_price?: number;
|
|
6
|
+
[key: string]: unknown;
|
|
7
|
+
}
|
|
1
8
|
export interface CloreaiErrorOptions extends ErrorOptions {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
statusCode?: number;
|
|
6
|
-
description?: string;
|
|
7
|
-
data?: unknown;
|
|
9
|
+
request: Request;
|
|
10
|
+
response: Response;
|
|
11
|
+
data: ErrorData;
|
|
8
12
|
}
|
|
9
13
|
export declare class CloreaiError extends Error {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
description?: string;
|
|
15
|
-
data?: unknown;
|
|
16
|
-
constructor(message?: string, options?: CloreaiErrorOptions);
|
|
14
|
+
request: Request;
|
|
15
|
+
response: Response;
|
|
16
|
+
data: ErrorData;
|
|
17
|
+
constructor(message: string, options: CloreaiErrorOptions);
|
|
17
18
|
}
|
package/dist/CloreaiError.js
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
export class CloreaiError extends Error {
|
|
2
|
-
init;
|
|
3
2
|
request;
|
|
4
3
|
response;
|
|
5
|
-
statusCode;
|
|
6
|
-
description;
|
|
7
4
|
data;
|
|
8
5
|
constructor(message, options) {
|
|
9
|
-
super(message);
|
|
6
|
+
super(message, options);
|
|
10
7
|
this.name = 'CloreaiError';
|
|
11
|
-
|
|
8
|
+
this.request = options.request;
|
|
9
|
+
this.response = options.response;
|
|
10
|
+
this.data = options.data;
|
|
12
11
|
}
|
|
13
12
|
}
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
export declare const RATE_LIMIT = 1000;
|
|
2
2
|
export declare const RATE_LIMIT_CREATE_ORDER = 5000;
|
|
3
|
-
export declare const gigaspotBaseImages: Readonly<{
|
|
4
|
-
UBUNTU: "a3f9c4d7e5b088d8a0bff880";
|
|
5
|
-
HIVEOS: "c9a4e2f6b7d488d8f0bab0ff";
|
|
6
|
-
}>;
|
|
7
3
|
export declare const statusCodes: Readonly<{
|
|
8
4
|
NORMAL: 0;
|
|
9
5
|
DATABASE_ERROR: 1;
|
package/dist/constants.js
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
export const RATE_LIMIT = 1000;
|
|
2
2
|
export const RATE_LIMIT_CREATE_ORDER = 5000;
|
|
3
|
-
export const gigaspotBaseImages = Object.freeze({
|
|
4
|
-
UBUNTU: 'a3f9c4d7e5b088d8a0bff880',
|
|
5
|
-
HIVEOS: 'c9a4e2f6b7d488d8f0bab0ff',
|
|
6
|
-
});
|
|
7
3
|
export const statusCodes = Object.freeze({
|
|
8
4
|
NORMAL: 0,
|
|
9
5
|
DATABASE_ERROR: 1,
|
package/dist/index.d.ts
CHANGED
|
@@ -4,16 +4,15 @@ export * from './CloreaiError.ts';
|
|
|
4
4
|
export * from './constants.ts';
|
|
5
5
|
export type * from './resources/cancelOrder.ts';
|
|
6
6
|
export type * from './resources/cancelOrders.ts';
|
|
7
|
-
export type * from './resources/createGigaspotOrders.ts';
|
|
8
7
|
export type * from './resources/createOrder.ts';
|
|
9
|
-
export type * from './resources/editGigaspotOrders.ts';
|
|
10
|
-
export type * from './resources/getGigaspot.ts';
|
|
11
8
|
export type * from './resources/marketplace.ts';
|
|
12
9
|
export type * from './resources/myOrders.ts';
|
|
13
10
|
export type * from './resources/myServers.ts';
|
|
11
|
+
export type * from './resources/orderRenewals.ts';
|
|
14
12
|
export type * from './resources/pohBalance.ts';
|
|
15
13
|
export type * from './resources/renterFees.ts';
|
|
16
14
|
export type * from './resources/serverConfig.ts';
|
|
15
|
+
export type * from './resources/setOrderAutoRenew.ts';
|
|
17
16
|
export type * from './resources/setServerSettings.ts';
|
|
18
17
|
export type * from './resources/setSpotPrice.ts';
|
|
19
18
|
export type * from './resources/spotMarketplace.ts';
|
|
@@ -1,17 +1,10 @@
|
|
|
1
1
|
import type { Currency, OrderType, ResponseData } from '../types.ts';
|
|
2
|
-
export
|
|
3
|
-
export interface CreateOrderOnDemand extends CreateOrderBase {
|
|
4
|
-
type: 'on-demand';
|
|
5
|
-
}
|
|
6
|
-
export interface CreateOrderSpot extends CreateOrderBase {
|
|
7
|
-
type: 'spot';
|
|
8
|
-
spotprice: number;
|
|
9
|
-
}
|
|
10
|
-
export interface CreateOrderBase {
|
|
11
|
-
type: OrderType;
|
|
2
|
+
export interface CreateOrderRequestData {
|
|
12
3
|
currency: Currency;
|
|
13
4
|
image: string;
|
|
14
5
|
renting_server: number;
|
|
6
|
+
type: OrderType;
|
|
7
|
+
spotprice?: number;
|
|
15
8
|
ports?: Record<string, string>;
|
|
16
9
|
env?: Record<string, string>;
|
|
17
10
|
jupyter_token?: string;
|
|
@@ -22,5 +15,10 @@ export interface CreateOrderBase {
|
|
|
22
15
|
autossh_entrypoint?: boolean;
|
|
23
16
|
remember_password?: boolean;
|
|
24
17
|
dockerhub_auth?: string;
|
|
18
|
+
gpu_count?: number;
|
|
19
|
+
gpu_indices?: number[];
|
|
20
|
+
rental_hours?: number;
|
|
21
|
+
auto_renew?: boolean;
|
|
22
|
+
auto_renew_max_price?: number;
|
|
25
23
|
}
|
|
26
24
|
export type CreateOrderResponseData = ResponseData;
|
|
@@ -10,11 +10,17 @@ export interface MarketplaceServer {
|
|
|
10
10
|
price: Price;
|
|
11
11
|
rented: boolean;
|
|
12
12
|
specs: Specs;
|
|
13
|
+
partial_gpu_rental: false | MarketplaceServerPartialGpuRental;
|
|
13
14
|
reliability: number;
|
|
14
15
|
allowed_coins: Currency[];
|
|
16
|
+
auto_renew_allowed: boolean;
|
|
15
17
|
rating: Rating;
|
|
16
18
|
gpu_array: string[];
|
|
17
|
-
gigaspot?: boolean;
|
|
18
19
|
oc?: boolean;
|
|
19
20
|
cuda_version: string;
|
|
20
21
|
}
|
|
22
|
+
export interface MarketplaceServerPartialGpuRental {
|
|
23
|
+
total_gpus: number;
|
|
24
|
+
available_gpus: number;
|
|
25
|
+
free_indices: number[];
|
|
26
|
+
}
|
|
@@ -10,18 +10,32 @@ export interface MyOrdersOrder {
|
|
|
10
10
|
id: number;
|
|
11
11
|
creation_fee: number;
|
|
12
12
|
price: number;
|
|
13
|
+
oc_price: number;
|
|
14
|
+
original_price_usd?: number;
|
|
13
15
|
mrl: number;
|
|
14
16
|
image: string;
|
|
15
17
|
currency: Currency;
|
|
16
|
-
original_price_usd?: number;
|
|
17
18
|
spend: number;
|
|
18
19
|
ct: number;
|
|
20
|
+
p: number;
|
|
19
21
|
specs: Specs;
|
|
22
|
+
gpu_count: number;
|
|
23
|
+
total_gpus: number;
|
|
24
|
+
gpu_array: string[];
|
|
20
25
|
si: number;
|
|
26
|
+
rental_hours: number;
|
|
27
|
+
rental_end: number;
|
|
28
|
+
term_start: number;
|
|
29
|
+
term_end: number;
|
|
30
|
+
term_mrl: number;
|
|
31
|
+
last_renewal_at: number;
|
|
32
|
+
auto_renew: boolean;
|
|
33
|
+
auto_renew_max_price: number;
|
|
34
|
+
renewals_count: number;
|
|
35
|
+
ssh_auth: string;
|
|
21
36
|
my_past_rating?: number;
|
|
22
37
|
auto_login: string;
|
|
23
38
|
mon_container: number;
|
|
24
|
-
online: boolean;
|
|
25
39
|
pub_cluster: string[];
|
|
26
40
|
tcp_ports: string[];
|
|
27
41
|
http_port: string;
|
|
@@ -30,7 +44,9 @@ export interface MyOrdersOrder {
|
|
|
30
44
|
reliability: number;
|
|
31
45
|
owner: number;
|
|
32
46
|
cuda_version: string;
|
|
33
|
-
gpu_array: string[];
|
|
34
47
|
spot?: boolean;
|
|
35
48
|
expired?: boolean;
|
|
49
|
+
paused?: boolean;
|
|
50
|
+
online: boolean;
|
|
51
|
+
autossh: boolean;
|
|
36
52
|
}
|
|
@@ -10,7 +10,16 @@ export interface MyServersServer {
|
|
|
10
10
|
pricing: Pricing;
|
|
11
11
|
online: boolean;
|
|
12
12
|
min_spot_pricing: Pricing;
|
|
13
|
-
allowed_currencies: Currency[];
|
|
14
13
|
init_token?: string;
|
|
15
|
-
specs
|
|
14
|
+
specs: Specs;
|
|
15
|
+
allowed_currencies: Currency[];
|
|
16
|
+
auto_renew_allowed: boolean;
|
|
17
|
+
rented: boolean;
|
|
18
|
+
remaining_time: number;
|
|
19
|
+
rented_currency: Currency;
|
|
20
|
+
rented_price: number;
|
|
21
|
+
rental_state: string;
|
|
22
|
+
rented_gpus: number;
|
|
23
|
+
total_gpus: number;
|
|
24
|
+
rented_price_by_currency: Pricing;
|
|
16
25
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ResponseData } from '../types.ts';
|
|
2
|
+
export interface OrderRenewalsRequestData {
|
|
3
|
+
order_id: number;
|
|
4
|
+
}
|
|
5
|
+
export interface OrderRenewalsResponseData extends ResponseData {
|
|
6
|
+
renewals: OrderRenewal;
|
|
7
|
+
}
|
|
8
|
+
export interface OrderRenewal {
|
|
9
|
+
order_id: number;
|
|
10
|
+
renewal_no: number;
|
|
11
|
+
outcome: string;
|
|
12
|
+
reason: string;
|
|
13
|
+
decided_at: number;
|
|
14
|
+
applied_at: number;
|
|
15
|
+
old_price: number;
|
|
16
|
+
new_price: number;
|
|
17
|
+
cap: number;
|
|
18
|
+
term_seconds: number;
|
|
19
|
+
term_start: number;
|
|
20
|
+
term_end: number;
|
|
21
|
+
}
|
|
@@ -3,6 +3,9 @@ export interface RenterFeesResponseData extends ResponseData {
|
|
|
3
3
|
renter_fees: RenterFees;
|
|
4
4
|
poh_config: RenterFeesPohConfig;
|
|
5
5
|
creation_fees: RenterFeesCreationFees;
|
|
6
|
+
creation_fee_delay_minutes: number;
|
|
7
|
+
minimal_balance_when_creating_order: RenterFeesMinimalBalance;
|
|
8
|
+
terminate_order_when_customer_has_less_balance_than_for_minutes: number;
|
|
6
9
|
poh_balance: number;
|
|
7
10
|
}
|
|
8
11
|
export interface RenterFees {
|
|
@@ -11,6 +14,7 @@ export interface RenterFees {
|
|
|
11
14
|
}
|
|
12
15
|
export interface RenterFee {
|
|
13
16
|
base: Pricing;
|
|
17
|
+
extra: Pricing;
|
|
14
18
|
}
|
|
15
19
|
export interface RenterFeesPohConfig {
|
|
16
20
|
max_reduction_percent: number;
|
|
@@ -20,3 +24,7 @@ export interface RenterFeesCreationFees {
|
|
|
20
24
|
on_demand: Pricing;
|
|
21
25
|
spot: Pricing;
|
|
22
26
|
}
|
|
27
|
+
export interface RenterFeesMinimalBalance {
|
|
28
|
+
on_demand: Pricing;
|
|
29
|
+
spot: Pricing;
|
|
30
|
+
}
|
|
@@ -17,11 +17,24 @@ export interface ServerConfig {
|
|
|
17
17
|
initialized: boolean;
|
|
18
18
|
id: number;
|
|
19
19
|
rental_status: number;
|
|
20
|
+
partial_rental_enabled: boolean;
|
|
21
|
+
auto_renew_allowed: boolean;
|
|
20
22
|
specs: Specs;
|
|
21
23
|
background_job: ServerConfigBackgroundJob;
|
|
24
|
+
init_communication_token: string;
|
|
22
25
|
allowed_coins: Currency[];
|
|
23
26
|
autoprice: AutoPrice;
|
|
24
27
|
usd_pricing: PricingInOriginalUsd;
|
|
28
|
+
remaining_time: number;
|
|
29
|
+
rental_state: string;
|
|
30
|
+
rented_gpus: number;
|
|
31
|
+
total_gpus: number;
|
|
32
|
+
update_channel: string;
|
|
33
|
+
requested_channel: string;
|
|
34
|
+
target_backend_version: number;
|
|
35
|
+
driver: ServerConfigDriver;
|
|
36
|
+
rented_price_by_currency: Pricing;
|
|
37
|
+
tenants: ServerConfigTenant[];
|
|
25
38
|
}
|
|
26
39
|
export interface ServerConfigBackgroundJob {
|
|
27
40
|
times_updated: number;
|
|
@@ -29,3 +42,15 @@ export interface ServerConfigBackgroundJob {
|
|
|
29
42
|
command: string;
|
|
30
43
|
env: Record<string, string>;
|
|
31
44
|
}
|
|
45
|
+
export interface ServerConfigDriver {
|
|
46
|
+
version: string;
|
|
47
|
+
status: string;
|
|
48
|
+
latest: string;
|
|
49
|
+
}
|
|
50
|
+
export interface ServerConfigTenant {
|
|
51
|
+
rental_type: string;
|
|
52
|
+
currency: Currency;
|
|
53
|
+
price: number;
|
|
54
|
+
remaining_time: number;
|
|
55
|
+
gpu_count: number;
|
|
56
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ResponseData } from '../types.ts';
|
|
2
|
+
export interface SetOrderAutoRenewRequestData {
|
|
3
|
+
order_id: number;
|
|
4
|
+
rental_hours?: number | null;
|
|
5
|
+
auto_renew?: boolean;
|
|
6
|
+
auto_renew_max_price?: number;
|
|
7
|
+
}
|
|
8
|
+
export type SetOrderAutoRenewResponseData = ResponseData;
|
|
@@ -3,13 +3,4 @@ export interface SetSpotPriceRequestData {
|
|
|
3
3
|
order_id: number;
|
|
4
4
|
desired_price: number;
|
|
5
5
|
}
|
|
6
|
-
export type SetSpotPriceResponseData =
|
|
7
|
-
export interface SetSpotPriceMaxStep extends ResponseData {
|
|
8
|
-
error: 'exceeded_max_step';
|
|
9
|
-
max_step: number;
|
|
10
|
-
}
|
|
11
|
-
export interface SetSpotPriceTimeToLowering extends ResponseData {
|
|
12
|
-
error: 'can_lower_every_600_seconds';
|
|
13
|
-
time_to_lowering: number;
|
|
14
|
-
}
|
|
15
|
-
export type SetSpotPriceNormal = Omit<ResponseData, 'error'>;
|
|
6
|
+
export type SetSpotPriceResponseData = ResponseData;
|
package/dist/types.d.ts
CHANGED
|
@@ -23,25 +23,6 @@ export interface Price {
|
|
|
23
23
|
usd: PricingInUsd;
|
|
24
24
|
original_usd?: PricingInOriginalUsd;
|
|
25
25
|
}
|
|
26
|
-
export interface Net {
|
|
27
|
-
cc: string;
|
|
28
|
-
down: number;
|
|
29
|
-
up: number;
|
|
30
|
-
test_history: string[];
|
|
31
|
-
}
|
|
32
|
-
export interface Gpu {
|
|
33
|
-
type: string;
|
|
34
|
-
mem: number;
|
|
35
|
-
pcie_gen: number;
|
|
36
|
-
pcie_width: number;
|
|
37
|
-
}
|
|
38
|
-
export interface Overclock {
|
|
39
|
-
model: string;
|
|
40
|
-
core_offset: number | null;
|
|
41
|
-
mem_offset: number | null;
|
|
42
|
-
core_lock: number | null;
|
|
43
|
-
mem_lock: number | null;
|
|
44
|
-
}
|
|
45
26
|
export interface Specs {
|
|
46
27
|
mb: string;
|
|
47
28
|
cpu: string;
|
|
@@ -55,6 +36,7 @@ export interface Specs {
|
|
|
55
36
|
backend_version: number;
|
|
56
37
|
pcie_rev: number;
|
|
57
38
|
pcie_width: number;
|
|
39
|
+
update_channel: string;
|
|
58
40
|
xfs?: number;
|
|
59
41
|
stock_oc_override?: boolean;
|
|
60
42
|
pl: number[];
|
|
@@ -62,14 +44,26 @@ export interface Specs {
|
|
|
62
44
|
stock_pl: number[];
|
|
63
45
|
stock_oc: Overclock[] | 'default';
|
|
64
46
|
}
|
|
47
|
+
export interface Net {
|
|
48
|
+
cc: string;
|
|
49
|
+
down: number;
|
|
50
|
+
up: number;
|
|
51
|
+
test_history: string[];
|
|
52
|
+
}
|
|
53
|
+
export interface Gpu {
|
|
54
|
+
type: string;
|
|
55
|
+
mem: number;
|
|
56
|
+
pcie_gen: number;
|
|
57
|
+
pcie_width: number;
|
|
58
|
+
}
|
|
59
|
+
export interface Overclock {
|
|
60
|
+
model: string;
|
|
61
|
+
core_offset: number | null;
|
|
62
|
+
mem_offset: number | null;
|
|
63
|
+
core_lock: number | null;
|
|
64
|
+
mem_lock: number | null;
|
|
65
|
+
}
|
|
65
66
|
export interface Rating {
|
|
66
67
|
avg: number;
|
|
67
68
|
cnt: number;
|
|
68
69
|
}
|
|
69
|
-
export interface GigaspotOverclock {
|
|
70
|
-
pl: number;
|
|
71
|
-
core_offset?: number;
|
|
72
|
-
mem_offset?: number;
|
|
73
|
-
core_lock?: number;
|
|
74
|
-
mem_lock?: number;
|
|
75
|
-
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cloreai",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"description": "CLORE.AI API client",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cloreai",
|
|
@@ -29,18 +29,18 @@
|
|
|
29
29
|
"typecheck": "tsc --noEmit"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"p-queue": "^
|
|
32
|
+
"p-queue": "^10.0.0"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@tsconfig/node-lts": "^24.0.
|
|
35
|
+
"@tsconfig/node-lts": "^24.0.1",
|
|
36
36
|
"@tsconfig/node-ts": "^23.6.4",
|
|
37
37
|
"@tsconfig/strictest": "^2.0.8",
|
|
38
|
-
"@types/node": "^
|
|
39
|
-
"eslint": "^10.
|
|
40
|
-
"eslint-config-vladpuz": "^4.
|
|
38
|
+
"@types/node": "^26.6.5",
|
|
39
|
+
"eslint": "^10.13.0",
|
|
40
|
+
"eslint-config-vladpuz": "^4.4.1",
|
|
41
41
|
"husky": "^9.1.7",
|
|
42
|
-
"prettier": "^3.
|
|
43
|
-
"prettier-config-vladpuz": "^3.0.
|
|
42
|
+
"prettier": "^3.9.10",
|
|
43
|
+
"prettier-config-vladpuz": "^3.0.2",
|
|
44
44
|
"rimraf": "^6.1.3",
|
|
45
45
|
"typescript": "^6.0.3"
|
|
46
46
|
}
|
package/dist/Gigaspot.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type Cloreai from './Cloreai.ts';
|
|
2
|
-
import type { CancelOrdersRequestData, CancelOrdersResponseData } from './resources/cancelOrders.ts';
|
|
3
|
-
import type { CreateGigaspotOrdersRequestData, CreateGigaspotOrdersResponseData } from './resources/createGigaspotOrders.ts';
|
|
4
|
-
import type { EditGigaspotOrdersRequestData, EditGigaspotOrdersResponseData } from './resources/editGigaspotOrders.ts';
|
|
5
|
-
import type { GetGigaspotResponseData } from './resources/getGigaspot.ts';
|
|
6
|
-
type Fetch = (input: string | URL, init?: RequestInit) => Promise<Response>;
|
|
7
|
-
declare class Gigaspot {
|
|
8
|
-
#private;
|
|
9
|
-
constructor(cloreai: Cloreai, fetch: Fetch);
|
|
10
|
-
getGigaspot(init?: RequestInit): Promise<GetGigaspotResponseData>;
|
|
11
|
-
createGigaspotOrders(data: CreateGigaspotOrdersRequestData, init?: RequestInit): Promise<CreateGigaspotOrdersResponseData>;
|
|
12
|
-
editGigaspotOrders(data: EditGigaspotOrdersRequestData, init?: RequestInit): Promise<EditGigaspotOrdersResponseData>;
|
|
13
|
-
cancelOrders(data: CancelOrdersRequestData, init?: RequestInit): Promise<CancelOrdersResponseData>;
|
|
14
|
-
}
|
|
15
|
-
export default Gigaspot;
|
package/dist/Gigaspot.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { priorityLevels } from "./constants.js";
|
|
2
|
-
class Gigaspot {
|
|
3
|
-
#cloreai;
|
|
4
|
-
#fetch;
|
|
5
|
-
constructor(cloreai, fetch) {
|
|
6
|
-
this.#cloreai = cloreai;
|
|
7
|
-
this.#fetch = fetch;
|
|
8
|
-
}
|
|
9
|
-
async getGigaspot(init = {}) {
|
|
10
|
-
const url = new URL(this.#cloreai.baseURL + '/get_gigaspot');
|
|
11
|
-
const response = await this.#cloreai.queue.add(async () => {
|
|
12
|
-
return await this.#fetch(url, {
|
|
13
|
-
...init,
|
|
14
|
-
method: 'GET',
|
|
15
|
-
});
|
|
16
|
-
}, {
|
|
17
|
-
priority: priorityLevels.NORMAL,
|
|
18
|
-
signal: init.signal ?? undefined,
|
|
19
|
-
});
|
|
20
|
-
const data = await response.json();
|
|
21
|
-
const snapshotResponse = await fetch(data.v1_snapshot_url);
|
|
22
|
-
const snapshotData = await snapshotResponse.json();
|
|
23
|
-
return {
|
|
24
|
-
...data,
|
|
25
|
-
snapshot: snapshotData,
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
async createGigaspotOrders(data, init = {}) {
|
|
29
|
-
const url = new URL(this.#cloreai.baseURL + '/create_gigaspot_orders');
|
|
30
|
-
const response = await this.#cloreai.queue.add(async () => {
|
|
31
|
-
return await this.#fetch(url, {
|
|
32
|
-
...init,
|
|
33
|
-
method: 'POST',
|
|
34
|
-
body: JSON.stringify(data),
|
|
35
|
-
});
|
|
36
|
-
}, {
|
|
37
|
-
priority: priorityLevels.HIGH,
|
|
38
|
-
signal: init.signal ?? undefined,
|
|
39
|
-
});
|
|
40
|
-
return await response.json();
|
|
41
|
-
}
|
|
42
|
-
async editGigaspotOrders(data, init = {}) {
|
|
43
|
-
const url = new URL(this.#cloreai.baseURL + '/edit_gigaspot_orders');
|
|
44
|
-
const response = await this.#cloreai.queue.add(async () => {
|
|
45
|
-
return await this.#fetch(url, {
|
|
46
|
-
...init,
|
|
47
|
-
method: 'POST',
|
|
48
|
-
body: JSON.stringify(data),
|
|
49
|
-
});
|
|
50
|
-
}, {
|
|
51
|
-
priority: priorityLevels.HIGH,
|
|
52
|
-
signal: init.signal ?? undefined,
|
|
53
|
-
});
|
|
54
|
-
return await response.json();
|
|
55
|
-
}
|
|
56
|
-
async cancelOrders(data, init = {}) {
|
|
57
|
-
const url = new URL(this.#cloreai.baseURL + '/cancel_orders');
|
|
58
|
-
const response = await this.#cloreai.queue.add(async () => {
|
|
59
|
-
return await this.#fetch(url, {
|
|
60
|
-
...init,
|
|
61
|
-
method: 'POST',
|
|
62
|
-
body: JSON.stringify(data),
|
|
63
|
-
});
|
|
64
|
-
}, {
|
|
65
|
-
priority: priorityLevels.HIGH,
|
|
66
|
-
signal: init.signal ?? undefined,
|
|
67
|
-
});
|
|
68
|
-
return await response.json();
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
export default Gigaspot;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { Currency, GigaspotOverclock, ResponseData } from '../types.ts';
|
|
2
|
-
export type CreateGigaspotOrdersRequestData = CreateGigaspotOrdersOrder[];
|
|
3
|
-
export interface CreateGigaspotOrdersOrder {
|
|
4
|
-
currency: Currency;
|
|
5
|
-
image: string;
|
|
6
|
-
renting_server: number;
|
|
7
|
-
price: number;
|
|
8
|
-
oc: GigaspotOverclock[];
|
|
9
|
-
env?: Record<string, string>;
|
|
10
|
-
}
|
|
11
|
-
export interface CreateGigaspotOrdersResponseData extends ResponseData {
|
|
12
|
-
failed_to_oc_servers: number[];
|
|
13
|
-
failed_to_rent_servers: number[];
|
|
14
|
-
too_low_bids_servers: number[];
|
|
15
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { GigaspotOverclock, ResponseData } from '../types.ts';
|
|
2
|
-
export type EditGigaspotOrdersRequestData = EditGigaspotOrdersOrder[];
|
|
3
|
-
export interface EditGigaspotOrdersOrder {
|
|
4
|
-
order_id: number;
|
|
5
|
-
price: number;
|
|
6
|
-
oc: GigaspotOverclock[];
|
|
7
|
-
}
|
|
8
|
-
export interface EditGigaspotOrdersResponseData extends ResponseData {
|
|
9
|
-
success_to_update_ids: number[];
|
|
10
|
-
failed_to_update_ids: number[];
|
|
11
|
-
too_low_bid_ids: number[];
|
|
12
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import type { Currency, Pricing, ResponseData } from '../types.ts';
|
|
2
|
-
export interface GetGigaspotResponseData extends GetGigaspotResponseDataBase {
|
|
3
|
-
snapshot: GetGigaspotSnapshot;
|
|
4
|
-
}
|
|
5
|
-
export interface GetGigaspotResponseDataBase extends ResponseData {
|
|
6
|
-
my_user_id: number;
|
|
7
|
-
v1_snapshot_url: string;
|
|
8
|
-
creation_fees: Pricing;
|
|
9
|
-
}
|
|
10
|
-
export type GetGigaspotSnapshot = Record<string, GetGigaspotSnapshotServer>;
|
|
11
|
-
export interface GetGigaspotSnapshotServer {
|
|
12
|
-
bids: GetGigaspotSnapshotServerBid[];
|
|
13
|
-
on_demand_rented: boolean;
|
|
14
|
-
online: boolean;
|
|
15
|
-
cpu: string;
|
|
16
|
-
cores: number;
|
|
17
|
-
threads: number;
|
|
18
|
-
ram: number;
|
|
19
|
-
gpus: GetGigaspotSnapshotServerGpu[];
|
|
20
|
-
working_properly: boolean;
|
|
21
|
-
cuda: string;
|
|
22
|
-
max_rental_length: number;
|
|
23
|
-
cc: string;
|
|
24
|
-
host: number;
|
|
25
|
-
reliability: number;
|
|
26
|
-
min_bid: number;
|
|
27
|
-
energy_price: number;
|
|
28
|
-
}
|
|
29
|
-
export interface GetGigaspotSnapshotServerBid {
|
|
30
|
-
owner: number;
|
|
31
|
-
id: number;
|
|
32
|
-
active: boolean;
|
|
33
|
-
to_cache: boolean;
|
|
34
|
-
cached: boolean;
|
|
35
|
-
price: number;
|
|
36
|
-
currency: Currency;
|
|
37
|
-
pl: number;
|
|
38
|
-
}
|
|
39
|
-
export interface GetGigaspotSnapshotServerGpu {
|
|
40
|
-
pl: [number, number];
|
|
41
|
-
mem_lock: [number, number];
|
|
42
|
-
core_lock: [number, number];
|
|
43
|
-
mem_offset: [number, number];
|
|
44
|
-
core_offset: [number, number];
|
|
45
|
-
model: string;
|
|
46
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
File without changes
|
|
File without changes
|