@gpuai/sdk 0.3.13 → 0.3.15
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/.openapi-generator/FILES +28 -0
- package/README.md +34 -9
- package/dist/apis/AutolaunchApi.d.ts +109 -0
- package/dist/apis/AutolaunchApi.js +286 -0
- package/dist/apis/BillingApi.d.ts +15 -0
- package/dist/apis/BillingApi.js +45 -0
- package/dist/apis/MarketApi.d.ts +56 -0
- package/dist/apis/MarketApi.js +112 -0
- package/dist/apis/WatchApi.d.ts +109 -0
- package/dist/apis/WatchApi.js +286 -0
- package/dist/apis/index.d.ts +3 -0
- package/dist/apis/index.js +3 -0
- package/dist/esm/apis/AutolaunchApi.d.ts +109 -0
- package/dist/esm/apis/AutolaunchApi.js +282 -0
- package/dist/esm/apis/BillingApi.d.ts +15 -0
- package/dist/esm/apis/BillingApi.js +45 -0
- package/dist/esm/apis/MarketApi.d.ts +56 -0
- package/dist/esm/apis/MarketApi.js +108 -0
- package/dist/esm/apis/WatchApi.d.ts +109 -0
- package/dist/esm/apis/WatchApi.js +282 -0
- package/dist/esm/apis/index.d.ts +3 -0
- package/dist/esm/apis/index.js +3 -0
- package/dist/esm/models/AutolaunchRule.d.ts +181 -0
- package/dist/esm/models/AutolaunchRule.js +142 -0
- package/dist/esm/models/AutolaunchRuleCreate.d.ts +105 -0
- package/dist/esm/models/AutolaunchRuleCreate.js +84 -0
- package/dist/esm/models/AutolaunchRuleDisarm.d.ts +34 -0
- package/dist/esm/models/AutolaunchRuleDisarm.js +43 -0
- package/dist/esm/models/AutolaunchRulePage.d.ts +39 -0
- package/dist/esm/models/AutolaunchRulePage.js +48 -0
- package/dist/esm/models/Balance.d.ts +65 -0
- package/dist/esm/models/Balance.js +63 -0
- package/dist/esm/models/MarketHistoryPoint.d.ts +59 -0
- package/dist/esm/models/MarketHistoryPoint.js +55 -0
- package/dist/esm/models/MarketHistoryResponse.d.ts +60 -0
- package/dist/esm/models/MarketHistoryResponse.js +60 -0
- package/dist/esm/models/Problem.d.ts +1 -0
- package/dist/esm/models/Problem.js +1 -0
- package/dist/esm/models/WatchRule.d.ts +141 -0
- package/dist/esm/models/WatchRule.js +117 -0
- package/dist/esm/models/WatchRuleCreate.d.ts +87 -0
- package/dist/esm/models/WatchRuleCreate.js +72 -0
- package/dist/esm/models/WatchRulePage.d.ts +39 -0
- package/dist/esm/models/WatchRulePage.js +48 -0
- package/dist/esm/models/WatchRuleUpdate.d.ts +86 -0
- package/dist/esm/models/WatchRuleUpdate.js +68 -0
- package/dist/esm/models/index.d.ts +11 -0
- package/dist/esm/models/index.js +11 -0
- package/dist/models/AutolaunchRule.d.ts +181 -0
- package/dist/models/AutolaunchRule.js +150 -0
- package/dist/models/AutolaunchRuleCreate.d.ts +105 -0
- package/dist/models/AutolaunchRuleCreate.js +92 -0
- package/dist/models/AutolaunchRuleDisarm.d.ts +34 -0
- package/dist/models/AutolaunchRuleDisarm.js +50 -0
- package/dist/models/AutolaunchRulePage.d.ts +39 -0
- package/dist/models/AutolaunchRulePage.js +55 -0
- package/dist/models/Balance.d.ts +65 -0
- package/dist/models/Balance.js +70 -0
- package/dist/models/MarketHistoryPoint.d.ts +59 -0
- package/dist/models/MarketHistoryPoint.js +62 -0
- package/dist/models/MarketHistoryResponse.d.ts +60 -0
- package/dist/models/MarketHistoryResponse.js +67 -0
- package/dist/models/Problem.d.ts +1 -0
- package/dist/models/Problem.js +1 -0
- package/dist/models/WatchRule.d.ts +141 -0
- package/dist/models/WatchRule.js +125 -0
- package/dist/models/WatchRuleCreate.d.ts +87 -0
- package/dist/models/WatchRuleCreate.js +80 -0
- package/dist/models/WatchRulePage.d.ts +39 -0
- package/dist/models/WatchRulePage.js +55 -0
- package/dist/models/WatchRuleUpdate.d.ts +86 -0
- package/dist/models/WatchRuleUpdate.js +76 -0
- package/dist/models/index.d.ts +11 -0
- package/dist/models/index.js +11 -0
- package/docs/AutolaunchApi.md +390 -0
- package/docs/AutolaunchRule.md +69 -0
- package/docs/AutolaunchRuleCreate.md +50 -0
- package/docs/AutolaunchRuleDisarm.md +35 -0
- package/docs/AutolaunchRulePage.md +36 -0
- package/docs/Balance.md +45 -0
- package/docs/BillingApi.md +66 -0
- package/docs/MarketApi.md +98 -0
- package/docs/MarketHistoryPoint.md +43 -0
- package/docs/MarketHistoryResponse.md +43 -0
- package/docs/WatchApi.md +389 -0
- package/docs/WatchRule.md +61 -0
- package/docs/WatchRuleCreate.md +46 -0
- package/docs/WatchRulePage.md +36 -0
- package/docs/WatchRuleUpdate.md +47 -0
- package/package.json +1 -1
- package/src/apis/AutolaunchApi.ts +360 -0
- package/src/apis/BillingApi.ts +52 -0
- package/src/apis/MarketApi.ts +136 -0
- package/src/apis/WatchApi.ts +360 -0
- package/src/apis/index.ts +3 -0
- package/src/models/AutolaunchRule.ts +270 -0
- package/src/models/AutolaunchRuleCreate.ts +162 -0
- package/src/models/AutolaunchRuleDisarm.ts +68 -0
- package/src/models/AutolaunchRulePage.ts +83 -0
- package/src/models/Balance.ts +114 -0
- package/src/models/MarketHistoryPoint.ts +103 -0
- package/src/models/MarketHistoryResponse.ts +113 -0
- package/src/models/Problem.ts +1 -0
- package/src/models/WatchRule.ts +219 -0
- package/src/models/WatchRuleCreate.ts +138 -0
- package/src/models/WatchRulePage.ts +83 -0
- package/src/models/WatchRuleUpdate.ts +135 -0
- package/src/models/index.ts +11 -0
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GPU.ai Public Developer API
|
|
3
|
+
* Programmatic API for GPU.ai. Authenticate with API keys minted from the dashboard. See https://gpu.ai/docs for details.
|
|
4
|
+
*
|
|
5
|
+
* The version of the OpenAPI document: 1.0.0
|
|
6
|
+
* Contact: support@gpu.ai
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
+
* https://openapi-generator.tech
|
|
10
|
+
* Do not edit the class manually.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* A standing, pre-approved purchase order. It carries no upstream supplier identity, no org id, and no identifier of the API key that consented — the consenting principal is recorded in storage for the fire-time re-check, and a credential identifier has no business in a rule listing.
|
|
14
|
+
*
|
|
15
|
+
* @export
|
|
16
|
+
* @interface AutolaunchRule
|
|
17
|
+
*/
|
|
18
|
+
export interface AutolaunchRule {
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
* @type {string}
|
|
22
|
+
* @memberof AutolaunchRule
|
|
23
|
+
*/
|
|
24
|
+
id: string;
|
|
25
|
+
/**
|
|
26
|
+
* The GPU model the rule watches and launches, e.g. "H100".
|
|
27
|
+
* @type {string}
|
|
28
|
+
* @memberof AutolaunchRule
|
|
29
|
+
*/
|
|
30
|
+
gpuModel: string;
|
|
31
|
+
/**
|
|
32
|
+
* Canonical region the rule is narrowed to, or null for every region.
|
|
33
|
+
* @type {string}
|
|
34
|
+
* @memberof AutolaunchRule
|
|
35
|
+
*/
|
|
36
|
+
region: string | null;
|
|
37
|
+
/**
|
|
38
|
+
* Capacity class the rule is narrowed to, or null for both.
|
|
39
|
+
* @type {AutolaunchRuleCapacityClassEnum}
|
|
40
|
+
* @memberof AutolaunchRule
|
|
41
|
+
*/
|
|
42
|
+
capacityClass: AutolaunchRuleCapacityClassEnum | null;
|
|
43
|
+
/**
|
|
44
|
+
*
|
|
45
|
+
* @type {AutolaunchRuleConditionKindEnum}
|
|
46
|
+
* @memberof AutolaunchRule
|
|
47
|
+
*/
|
|
48
|
+
conditionKind: AutolaunchRuleConditionKindEnum;
|
|
49
|
+
/**
|
|
50
|
+
* The TRIGGER. Dollars PER GPU-HOUR for price_under, or a unit count for count_at_least. Null for in_stock. This is NOT the spend cap — see max_price_per_hour, which is in a different unit.
|
|
51
|
+
*
|
|
52
|
+
* @type {number}
|
|
53
|
+
* @memberof AutolaunchRule
|
|
54
|
+
*/
|
|
55
|
+
threshold: number | null;
|
|
56
|
+
/**
|
|
57
|
+
* The CEILING, and the consent. Dollars per hour for the WHOLE INSTANCE, not per GPU. The launch is abandoned — never repriced — if the live price exceeds it.
|
|
58
|
+
*
|
|
59
|
+
* @type {number}
|
|
60
|
+
* @memberof AutolaunchRule
|
|
61
|
+
*/
|
|
62
|
+
maxPricePerHour: number;
|
|
63
|
+
/**
|
|
64
|
+
* How long an auto-launched instance may run before the platform terminates it, enforced through the instance's own auto_terminate_hours.
|
|
65
|
+
*
|
|
66
|
+
* @type {number}
|
|
67
|
+
* @memberof AutolaunchRule
|
|
68
|
+
*/
|
|
69
|
+
maxRuntimeHours: number;
|
|
70
|
+
/**
|
|
71
|
+
* The worst-case total the customer approved: max_price_per_hour × max_runtime_hours, computed by the server and echoed on every read so a client never has to derive the number it is displaying.
|
|
72
|
+
*
|
|
73
|
+
* @type {number}
|
|
74
|
+
* @memberof AutolaunchRule
|
|
75
|
+
*/
|
|
76
|
+
maxTotalUsd: number;
|
|
77
|
+
/**
|
|
78
|
+
* The frozen launch spec, as READ. Every value under `env` is returned as the literal `[REDACTED]` — the key names are kept so you can see what the launch will set, but the values are not readable back on any surface, by any scope. Reading a rule needs only `autolaunch:read`, which every full_access, standard and read_only key holds, so a rule listing must not be a credential listing.
|
|
79
|
+
* This changes nothing about what the rule DOES: the stored spec keeps the real values and replays them at fire time. If you need to change a token, delete the rule and create a new one.
|
|
80
|
+
*
|
|
81
|
+
* @type {{ [key: string]: any; }}
|
|
82
|
+
* @memberof AutolaunchRule
|
|
83
|
+
*/
|
|
84
|
+
spec: {
|
|
85
|
+
[key: string]: any;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* armed = waiting for the condition. launching = an attempt is in flight. fired = a successful launch consumed the rule's one shot. expired = the per-edge attempt budget ran out. A lost capacity race costs nothing and does NOT consume the shot.
|
|
89
|
+
*
|
|
90
|
+
* @type {AutolaunchRuleStateEnum}
|
|
91
|
+
* @memberof AutolaunchRule
|
|
92
|
+
*/
|
|
93
|
+
state: AutolaunchRuleStateEnum;
|
|
94
|
+
/**
|
|
95
|
+
* Launch attempts made since the current condition edge began.
|
|
96
|
+
* @type {number}
|
|
97
|
+
* @memberof AutolaunchRule
|
|
98
|
+
*/
|
|
99
|
+
attemptsThisEdge: number;
|
|
100
|
+
/**
|
|
101
|
+
* Why the last attempt did not buy anything: over_ceiling, capacity_race, stale_reference, key_revoked, authority_revoked or validation_failed, optionally with a colon-separated detail. Match the leading token. It never carries API key material.
|
|
102
|
+
*
|
|
103
|
+
* @type {string}
|
|
104
|
+
* @memberof AutolaunchRule
|
|
105
|
+
*/
|
|
106
|
+
lastFailureReason: string | null;
|
|
107
|
+
/**
|
|
108
|
+
* The instance this rule launched, once it has fired.
|
|
109
|
+
* @type {string}
|
|
110
|
+
* @memberof AutolaunchRule
|
|
111
|
+
*/
|
|
112
|
+
launchedInstanceId: string | null;
|
|
113
|
+
/**
|
|
114
|
+
* Which entrance consented. A dashboard rule has no API key behind it, which is why its fire-time revocation failure is `authority_revoked` (the approving admin was demoted) rather than `key_revoked`.
|
|
115
|
+
*
|
|
116
|
+
* @type {AutolaunchRuleCreatedBySurfaceEnum}
|
|
117
|
+
* @memberof AutolaunchRule
|
|
118
|
+
*/
|
|
119
|
+
createdBySurface: AutolaunchRuleCreatedBySurfaceEnum;
|
|
120
|
+
/**
|
|
121
|
+
* False once disarmed or cancelled. A disarmed rule cannot be re-armed.
|
|
122
|
+
* @type {boolean}
|
|
123
|
+
* @memberof AutolaunchRule
|
|
124
|
+
*/
|
|
125
|
+
enabled: boolean;
|
|
126
|
+
/**
|
|
127
|
+
*
|
|
128
|
+
* @type {Date}
|
|
129
|
+
* @memberof AutolaunchRule
|
|
130
|
+
*/
|
|
131
|
+
createdAt: Date;
|
|
132
|
+
/**
|
|
133
|
+
*
|
|
134
|
+
* @type {Date}
|
|
135
|
+
* @memberof AutolaunchRule
|
|
136
|
+
*/
|
|
137
|
+
updatedAt: Date;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* @export
|
|
141
|
+
*/
|
|
142
|
+
export declare const AutolaunchRuleCapacityClassEnum: {
|
|
143
|
+
readonly Secure: "secure";
|
|
144
|
+
readonly Community: "community";
|
|
145
|
+
};
|
|
146
|
+
export type AutolaunchRuleCapacityClassEnum = typeof AutolaunchRuleCapacityClassEnum[keyof typeof AutolaunchRuleCapacityClassEnum];
|
|
147
|
+
/**
|
|
148
|
+
* @export
|
|
149
|
+
*/
|
|
150
|
+
export declare const AutolaunchRuleConditionKindEnum: {
|
|
151
|
+
readonly PriceUnder: "price_under";
|
|
152
|
+
readonly InStock: "in_stock";
|
|
153
|
+
readonly CountAtLeast: "count_at_least";
|
|
154
|
+
};
|
|
155
|
+
export type AutolaunchRuleConditionKindEnum = typeof AutolaunchRuleConditionKindEnum[keyof typeof AutolaunchRuleConditionKindEnum];
|
|
156
|
+
/**
|
|
157
|
+
* @export
|
|
158
|
+
*/
|
|
159
|
+
export declare const AutolaunchRuleStateEnum: {
|
|
160
|
+
readonly Armed: "armed";
|
|
161
|
+
readonly Launching: "launching";
|
|
162
|
+
readonly Fired: "fired";
|
|
163
|
+
readonly Expired: "expired";
|
|
164
|
+
};
|
|
165
|
+
export type AutolaunchRuleStateEnum = typeof AutolaunchRuleStateEnum[keyof typeof AutolaunchRuleStateEnum];
|
|
166
|
+
/**
|
|
167
|
+
* @export
|
|
168
|
+
*/
|
|
169
|
+
export declare const AutolaunchRuleCreatedBySurfaceEnum: {
|
|
170
|
+
readonly ApiKey: "api_key";
|
|
171
|
+
readonly Dashboard: "dashboard";
|
|
172
|
+
};
|
|
173
|
+
export type AutolaunchRuleCreatedBySurfaceEnum = typeof AutolaunchRuleCreatedBySurfaceEnum[keyof typeof AutolaunchRuleCreatedBySurfaceEnum];
|
|
174
|
+
/**
|
|
175
|
+
* Check if a given object implements the AutolaunchRule interface.
|
|
176
|
+
*/
|
|
177
|
+
export declare function instanceOfAutolaunchRule(value: object): value is AutolaunchRule;
|
|
178
|
+
export declare function AutolaunchRuleFromJSON(json: any): AutolaunchRule;
|
|
179
|
+
export declare function AutolaunchRuleFromJSONTyped(json: any, ignoreDiscriminator: boolean): AutolaunchRule;
|
|
180
|
+
export declare function AutolaunchRuleToJSON(json: any): AutolaunchRule;
|
|
181
|
+
export declare function AutolaunchRuleToJSONTyped(value?: AutolaunchRule | null, ignoreDiscriminator?: boolean): any;
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* GPU.ai Public Developer API
|
|
5
|
+
* Programmatic API for GPU.ai. Authenticate with API keys minted from the dashboard. See https://gpu.ai/docs for details.
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 1.0.0
|
|
8
|
+
* Contact: support@gpu.ai
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
+
* https://openapi-generator.tech
|
|
12
|
+
* Do not edit the class manually.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* @export
|
|
16
|
+
*/
|
|
17
|
+
export const AutolaunchRuleCapacityClassEnum = {
|
|
18
|
+
Secure: 'secure',
|
|
19
|
+
Community: 'community'
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* @export
|
|
23
|
+
*/
|
|
24
|
+
export const AutolaunchRuleConditionKindEnum = {
|
|
25
|
+
PriceUnder: 'price_under',
|
|
26
|
+
InStock: 'in_stock',
|
|
27
|
+
CountAtLeast: 'count_at_least'
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* @export
|
|
31
|
+
*/
|
|
32
|
+
export const AutolaunchRuleStateEnum = {
|
|
33
|
+
Armed: 'armed',
|
|
34
|
+
Launching: 'launching',
|
|
35
|
+
Fired: 'fired',
|
|
36
|
+
Expired: 'expired'
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* @export
|
|
40
|
+
*/
|
|
41
|
+
export const AutolaunchRuleCreatedBySurfaceEnum = {
|
|
42
|
+
ApiKey: 'api_key',
|
|
43
|
+
Dashboard: 'dashboard'
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Check if a given object implements the AutolaunchRule interface.
|
|
47
|
+
*/
|
|
48
|
+
export function instanceOfAutolaunchRule(value) {
|
|
49
|
+
if (!('id' in value) || value['id'] === undefined)
|
|
50
|
+
return false;
|
|
51
|
+
if ((!('gpuModel' in value) && !('gpu_model' in value)) || (value['gpuModel'] === undefined && value['gpu_model'] === undefined))
|
|
52
|
+
return false;
|
|
53
|
+
if (!('region' in value) || value['region'] === undefined)
|
|
54
|
+
return false;
|
|
55
|
+
if ((!('capacityClass' in value) && !('capacity_class' in value)) || (value['capacityClass'] === undefined && value['capacity_class'] === undefined))
|
|
56
|
+
return false;
|
|
57
|
+
if ((!('conditionKind' in value) && !('condition_kind' in value)) || (value['conditionKind'] === undefined && value['condition_kind'] === undefined))
|
|
58
|
+
return false;
|
|
59
|
+
if (!('threshold' in value) || value['threshold'] === undefined)
|
|
60
|
+
return false;
|
|
61
|
+
if ((!('maxPricePerHour' in value) && !('max_price_per_hour' in value)) || (value['maxPricePerHour'] === undefined && value['max_price_per_hour'] === undefined))
|
|
62
|
+
return false;
|
|
63
|
+
if ((!('maxRuntimeHours' in value) && !('max_runtime_hours' in value)) || (value['maxRuntimeHours'] === undefined && value['max_runtime_hours'] === undefined))
|
|
64
|
+
return false;
|
|
65
|
+
if ((!('maxTotalUsd' in value) && !('max_total_usd' in value)) || (value['maxTotalUsd'] === undefined && value['max_total_usd'] === undefined))
|
|
66
|
+
return false;
|
|
67
|
+
if (!('spec' in value) || value['spec'] === undefined)
|
|
68
|
+
return false;
|
|
69
|
+
if (!('state' in value) || value['state'] === undefined)
|
|
70
|
+
return false;
|
|
71
|
+
if ((!('attemptsThisEdge' in value) && !('attempts_this_edge' in value)) || (value['attemptsThisEdge'] === undefined && value['attempts_this_edge'] === undefined))
|
|
72
|
+
return false;
|
|
73
|
+
if ((!('lastFailureReason' in value) && !('last_failure_reason' in value)) || (value['lastFailureReason'] === undefined && value['last_failure_reason'] === undefined))
|
|
74
|
+
return false;
|
|
75
|
+
if ((!('launchedInstanceId' in value) && !('launched_instance_id' in value)) || (value['launchedInstanceId'] === undefined && value['launched_instance_id'] === undefined))
|
|
76
|
+
return false;
|
|
77
|
+
if ((!('createdBySurface' in value) && !('created_by_surface' in value)) || (value['createdBySurface'] === undefined && value['created_by_surface'] === undefined))
|
|
78
|
+
return false;
|
|
79
|
+
if (!('enabled' in value) || value['enabled'] === undefined)
|
|
80
|
+
return false;
|
|
81
|
+
if ((!('createdAt' in value) && !('created_at' in value)) || (value['createdAt'] === undefined && value['created_at'] === undefined))
|
|
82
|
+
return false;
|
|
83
|
+
if ((!('updatedAt' in value) && !('updated_at' in value)) || (value['updatedAt'] === undefined && value['updated_at'] === undefined))
|
|
84
|
+
return false;
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
export function AutolaunchRuleFromJSON(json) {
|
|
88
|
+
return AutolaunchRuleFromJSONTyped(json, false);
|
|
89
|
+
}
|
|
90
|
+
export function AutolaunchRuleFromJSONTyped(json, ignoreDiscriminator) {
|
|
91
|
+
if (json == null) {
|
|
92
|
+
return json;
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
'id': json['id'],
|
|
96
|
+
'gpuModel': json['gpu_model'],
|
|
97
|
+
'region': json['region'],
|
|
98
|
+
'capacityClass': json['capacity_class'],
|
|
99
|
+
'conditionKind': json['condition_kind'],
|
|
100
|
+
'threshold': json['threshold'],
|
|
101
|
+
'maxPricePerHour': json['max_price_per_hour'],
|
|
102
|
+
'maxRuntimeHours': json['max_runtime_hours'],
|
|
103
|
+
'maxTotalUsd': json['max_total_usd'],
|
|
104
|
+
'spec': json['spec'],
|
|
105
|
+
'state': json['state'],
|
|
106
|
+
'attemptsThisEdge': json['attempts_this_edge'],
|
|
107
|
+
'lastFailureReason': json['last_failure_reason'],
|
|
108
|
+
'launchedInstanceId': json['launched_instance_id'],
|
|
109
|
+
'createdBySurface': json['created_by_surface'],
|
|
110
|
+
'enabled': json['enabled'],
|
|
111
|
+
'createdAt': (new Date(json['created_at'])),
|
|
112
|
+
'updatedAt': (new Date(json['updated_at'])),
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
export function AutolaunchRuleToJSON(json) {
|
|
116
|
+
return AutolaunchRuleToJSONTyped(json, false);
|
|
117
|
+
}
|
|
118
|
+
export function AutolaunchRuleToJSONTyped(value, ignoreDiscriminator = false) {
|
|
119
|
+
if (value == null) {
|
|
120
|
+
return value;
|
|
121
|
+
}
|
|
122
|
+
return {
|
|
123
|
+
'id': value['id'],
|
|
124
|
+
'gpu_model': value['gpuModel'],
|
|
125
|
+
'region': value['region'],
|
|
126
|
+
'capacity_class': value['capacityClass'],
|
|
127
|
+
'condition_kind': value['conditionKind'],
|
|
128
|
+
'threshold': value['threshold'],
|
|
129
|
+
'max_price_per_hour': value['maxPricePerHour'],
|
|
130
|
+
'max_runtime_hours': value['maxRuntimeHours'],
|
|
131
|
+
'max_total_usd': value['maxTotalUsd'],
|
|
132
|
+
'spec': value['spec'],
|
|
133
|
+
'state': value['state'],
|
|
134
|
+
'attempts_this_edge': value['attemptsThisEdge'],
|
|
135
|
+
'last_failure_reason': value['lastFailureReason'],
|
|
136
|
+
'launched_instance_id': value['launchedInstanceId'],
|
|
137
|
+
'created_by_surface': value['createdBySurface'],
|
|
138
|
+
'enabled': value['enabled'],
|
|
139
|
+
'created_at': value['createdAt'].toISOString(),
|
|
140
|
+
'updated_at': value['updatedAt'].toISOString(),
|
|
141
|
+
};
|
|
142
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GPU.ai Public Developer API
|
|
3
|
+
* Programmatic API for GPU.ai. Authenticate with API keys minted from the dashboard. See https://gpu.ai/docs for details.
|
|
4
|
+
*
|
|
5
|
+
* The version of the OpenAPI document: 1.0.0
|
|
6
|
+
* Contact: support@gpu.ai
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
+
* https://openapi-generator.tech
|
|
10
|
+
* Do not edit the class manually.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
*
|
|
14
|
+
* @export
|
|
15
|
+
* @interface AutolaunchRuleCreate
|
|
16
|
+
*/
|
|
17
|
+
export interface AutolaunchRuleCreate {
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* @type {string}
|
|
21
|
+
* @memberof AutolaunchRuleCreate
|
|
22
|
+
*/
|
|
23
|
+
gpuModel: string;
|
|
24
|
+
/**
|
|
25
|
+
* Omit or send null to consider every region.
|
|
26
|
+
* @type {string}
|
|
27
|
+
* @memberof AutolaunchRuleCreate
|
|
28
|
+
*/
|
|
29
|
+
region?: string | null;
|
|
30
|
+
/**
|
|
31
|
+
* Omit or send null to consider both capacity classes.
|
|
32
|
+
* @type {AutolaunchRuleCreateCapacityClassEnum}
|
|
33
|
+
* @memberof AutolaunchRuleCreate
|
|
34
|
+
*/
|
|
35
|
+
capacityClass?: AutolaunchRuleCreateCapacityClassEnum | null;
|
|
36
|
+
/**
|
|
37
|
+
*
|
|
38
|
+
* @type {AutolaunchRuleCreateConditionKindEnum}
|
|
39
|
+
* @memberof AutolaunchRuleCreate
|
|
40
|
+
*/
|
|
41
|
+
conditionKind: AutolaunchRuleCreateConditionKindEnum;
|
|
42
|
+
/**
|
|
43
|
+
* The TRIGGER, in dollars PER GPU-HOUR for price_under or a unit count for count_at_least. Required and greater than zero for both. Ignored for in_stock. Not the spend cap. Values above the maximum are refused with a 422 naming the bound — it is the largest value the column stores.
|
|
44
|
+
*
|
|
45
|
+
* @type {number}
|
|
46
|
+
* @memberof AutolaunchRuleCreate
|
|
47
|
+
*/
|
|
48
|
+
threshold?: number | null;
|
|
49
|
+
/**
|
|
50
|
+
* The CEILING, in dollars per hour for the WHOLE INSTANCE. Required even for in_stock rules: "buy it when it comes back" with no ceiling is an unbounded authorization, and this resource has no such shape. Values above the maximum are refused with a 422 naming the bound.
|
|
51
|
+
*
|
|
52
|
+
* @type {number}
|
|
53
|
+
* @memberof AutolaunchRuleCreate
|
|
54
|
+
*/
|
|
55
|
+
maxPricePerHour: number;
|
|
56
|
+
/**
|
|
57
|
+
*
|
|
58
|
+
* @type {number}
|
|
59
|
+
* @memberof AutolaunchRuleCreate
|
|
60
|
+
*/
|
|
61
|
+
maxRuntimeHours: number;
|
|
62
|
+
/**
|
|
63
|
+
* The full create-instance body this rule freezes and replays — the same shape POST /v1/instances accepts. It is modelled as an open object rather than a $ref because the instance-create body is an inline requestBody schema rather than a named component; promoting it would rewrite the instances operation and every generated client's signature for it, in a change that only needs to STORE one.
|
|
64
|
+
*
|
|
65
|
+
* Two fields behave differently here than on a live create: `offering_id` is REJECTED (a pinned offering produces a rule that can never fire, because offering identity churns between catalog polls), and `auto_terminate_hours` is OVERWRITTEN from the rule's `max_runtime_hours` so a nested field cannot widen the runtime bound the customer approved.
|
|
66
|
+
*
|
|
67
|
+
* @type {{ [key: string]: any; }}
|
|
68
|
+
* @memberof AutolaunchRuleCreate
|
|
69
|
+
*/
|
|
70
|
+
spec: {
|
|
71
|
+
[key: string]: any;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* REQUIRED. Echo of the worst-case total, max_price_per_hour × max_runtime_hours, accepted within one cent. This is the consent gate: a caller that never computed this number cannot have shown it to the person approving the rule, and a caller that displayed a different number disagrees with what is about to be stored. Either way the request is refused so the caller can re-render the real figure.
|
|
75
|
+
*
|
|
76
|
+
* @type {number}
|
|
77
|
+
* @memberof AutolaunchRuleCreate
|
|
78
|
+
*/
|
|
79
|
+
acknowledgedMaxTotalUsd: number;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @export
|
|
83
|
+
*/
|
|
84
|
+
export declare const AutolaunchRuleCreateCapacityClassEnum: {
|
|
85
|
+
readonly Secure: "secure";
|
|
86
|
+
readonly Community: "community";
|
|
87
|
+
};
|
|
88
|
+
export type AutolaunchRuleCreateCapacityClassEnum = typeof AutolaunchRuleCreateCapacityClassEnum[keyof typeof AutolaunchRuleCreateCapacityClassEnum];
|
|
89
|
+
/**
|
|
90
|
+
* @export
|
|
91
|
+
*/
|
|
92
|
+
export declare const AutolaunchRuleCreateConditionKindEnum: {
|
|
93
|
+
readonly PriceUnder: "price_under";
|
|
94
|
+
readonly InStock: "in_stock";
|
|
95
|
+
readonly CountAtLeast: "count_at_least";
|
|
96
|
+
};
|
|
97
|
+
export type AutolaunchRuleCreateConditionKindEnum = typeof AutolaunchRuleCreateConditionKindEnum[keyof typeof AutolaunchRuleCreateConditionKindEnum];
|
|
98
|
+
/**
|
|
99
|
+
* Check if a given object implements the AutolaunchRuleCreate interface.
|
|
100
|
+
*/
|
|
101
|
+
export declare function instanceOfAutolaunchRuleCreate(value: object): value is AutolaunchRuleCreate;
|
|
102
|
+
export declare function AutolaunchRuleCreateFromJSON(json: any): AutolaunchRuleCreate;
|
|
103
|
+
export declare function AutolaunchRuleCreateFromJSONTyped(json: any, ignoreDiscriminator: boolean): AutolaunchRuleCreate;
|
|
104
|
+
export declare function AutolaunchRuleCreateToJSON(json: any): AutolaunchRuleCreate;
|
|
105
|
+
export declare function AutolaunchRuleCreateToJSONTyped(value?: AutolaunchRuleCreate | null, ignoreDiscriminator?: boolean): any;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* GPU.ai Public Developer API
|
|
5
|
+
* Programmatic API for GPU.ai. Authenticate with API keys minted from the dashboard. See https://gpu.ai/docs for details.
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 1.0.0
|
|
8
|
+
* Contact: support@gpu.ai
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
+
* https://openapi-generator.tech
|
|
12
|
+
* Do not edit the class manually.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* @export
|
|
16
|
+
*/
|
|
17
|
+
export const AutolaunchRuleCreateCapacityClassEnum = {
|
|
18
|
+
Secure: 'secure',
|
|
19
|
+
Community: 'community'
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* @export
|
|
23
|
+
*/
|
|
24
|
+
export const AutolaunchRuleCreateConditionKindEnum = {
|
|
25
|
+
PriceUnder: 'price_under',
|
|
26
|
+
InStock: 'in_stock',
|
|
27
|
+
CountAtLeast: 'count_at_least'
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Check if a given object implements the AutolaunchRuleCreate interface.
|
|
31
|
+
*/
|
|
32
|
+
export function instanceOfAutolaunchRuleCreate(value) {
|
|
33
|
+
if ((!('gpuModel' in value) && !('gpu_model' in value)) || (value['gpuModel'] === undefined && value['gpu_model'] === undefined))
|
|
34
|
+
return false;
|
|
35
|
+
if ((!('conditionKind' in value) && !('condition_kind' in value)) || (value['conditionKind'] === undefined && value['condition_kind'] === undefined))
|
|
36
|
+
return false;
|
|
37
|
+
if ((!('maxPricePerHour' in value) && !('max_price_per_hour' in value)) || (value['maxPricePerHour'] === undefined && value['max_price_per_hour'] === undefined))
|
|
38
|
+
return false;
|
|
39
|
+
if ((!('maxRuntimeHours' in value) && !('max_runtime_hours' in value)) || (value['maxRuntimeHours'] === undefined && value['max_runtime_hours'] === undefined))
|
|
40
|
+
return false;
|
|
41
|
+
if (!('spec' in value) || value['spec'] === undefined)
|
|
42
|
+
return false;
|
|
43
|
+
if ((!('acknowledgedMaxTotalUsd' in value) && !('acknowledged_max_total_usd' in value)) || (value['acknowledgedMaxTotalUsd'] === undefined && value['acknowledged_max_total_usd'] === undefined))
|
|
44
|
+
return false;
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
export function AutolaunchRuleCreateFromJSON(json) {
|
|
48
|
+
return AutolaunchRuleCreateFromJSONTyped(json, false);
|
|
49
|
+
}
|
|
50
|
+
export function AutolaunchRuleCreateFromJSONTyped(json, ignoreDiscriminator) {
|
|
51
|
+
if (json == null) {
|
|
52
|
+
return json;
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
'gpuModel': json['gpu_model'],
|
|
56
|
+
'region': json['region'] === undefined ? undefined : json['region'] === null ? null : json['region'],
|
|
57
|
+
'capacityClass': json['capacity_class'] === undefined ? undefined : json['capacity_class'] === null ? null : json['capacity_class'],
|
|
58
|
+
'conditionKind': json['condition_kind'],
|
|
59
|
+
'threshold': json['threshold'] === undefined ? undefined : json['threshold'] === null ? null : json['threshold'],
|
|
60
|
+
'maxPricePerHour': json['max_price_per_hour'],
|
|
61
|
+
'maxRuntimeHours': json['max_runtime_hours'],
|
|
62
|
+
'spec': json['spec'],
|
|
63
|
+
'acknowledgedMaxTotalUsd': json['acknowledged_max_total_usd'],
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
export function AutolaunchRuleCreateToJSON(json) {
|
|
67
|
+
return AutolaunchRuleCreateToJSONTyped(json, false);
|
|
68
|
+
}
|
|
69
|
+
export function AutolaunchRuleCreateToJSONTyped(value, ignoreDiscriminator = false) {
|
|
70
|
+
if (value == null) {
|
|
71
|
+
return value;
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
'gpu_model': value['gpuModel'],
|
|
75
|
+
'region': value['region'],
|
|
76
|
+
'capacity_class': value['capacityClass'],
|
|
77
|
+
'condition_kind': value['conditionKind'],
|
|
78
|
+
'threshold': value['threshold'],
|
|
79
|
+
'max_price_per_hour': value['maxPricePerHour'],
|
|
80
|
+
'max_runtime_hours': value['maxRuntimeHours'],
|
|
81
|
+
'spec': value['spec'],
|
|
82
|
+
'acknowledged_max_total_usd': value['acknowledgedMaxTotalUsd'],
|
|
83
|
+
};
|
|
84
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GPU.ai Public Developer API
|
|
3
|
+
* Programmatic API for GPU.ai. Authenticate with API keys minted from the dashboard. See https://gpu.ai/docs for details.
|
|
4
|
+
*
|
|
5
|
+
* The version of the OpenAPI document: 1.0.0
|
|
6
|
+
* Contact: support@gpu.ai
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
+
* https://openapi-generator.tech
|
|
10
|
+
* Do not edit the class manually.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* The entire PATCH surface. `enabled` must be present and must be false. Any other key is refused rather than accepted-and-ignored, because a PATCH carrying a new ceiling that returned 200 would leave the caller believing the cap had moved.
|
|
14
|
+
*
|
|
15
|
+
* @export
|
|
16
|
+
* @interface AutolaunchRuleDisarm
|
|
17
|
+
*/
|
|
18
|
+
export interface AutolaunchRuleDisarm {
|
|
19
|
+
/**
|
|
20
|
+
* Must be false. Sending true is refused: a fired rule consumed its one shot, so "resume" would silently be an authorization nobody gave, and arming again is a create.
|
|
21
|
+
*
|
|
22
|
+
* @type {boolean}
|
|
23
|
+
* @memberof AutolaunchRuleDisarm
|
|
24
|
+
*/
|
|
25
|
+
enabled: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Check if a given object implements the AutolaunchRuleDisarm interface.
|
|
29
|
+
*/
|
|
30
|
+
export declare function instanceOfAutolaunchRuleDisarm(value: object): value is AutolaunchRuleDisarm;
|
|
31
|
+
export declare function AutolaunchRuleDisarmFromJSON(json: any): AutolaunchRuleDisarm;
|
|
32
|
+
export declare function AutolaunchRuleDisarmFromJSONTyped(json: any, ignoreDiscriminator: boolean): AutolaunchRuleDisarm;
|
|
33
|
+
export declare function AutolaunchRuleDisarmToJSON(json: any): AutolaunchRuleDisarm;
|
|
34
|
+
export declare function AutolaunchRuleDisarmToJSONTyped(value?: AutolaunchRuleDisarm | null, ignoreDiscriminator?: boolean): any;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* GPU.ai Public Developer API
|
|
5
|
+
* Programmatic API for GPU.ai. Authenticate with API keys minted from the dashboard. See https://gpu.ai/docs for details.
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 1.0.0
|
|
8
|
+
* Contact: support@gpu.ai
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
+
* https://openapi-generator.tech
|
|
12
|
+
* Do not edit the class manually.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Check if a given object implements the AutolaunchRuleDisarm interface.
|
|
16
|
+
*/
|
|
17
|
+
export function instanceOfAutolaunchRuleDisarm(value) {
|
|
18
|
+
if (!('enabled' in value) || value['enabled'] === undefined)
|
|
19
|
+
return false;
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
export function AutolaunchRuleDisarmFromJSON(json) {
|
|
23
|
+
return AutolaunchRuleDisarmFromJSONTyped(json, false);
|
|
24
|
+
}
|
|
25
|
+
export function AutolaunchRuleDisarmFromJSONTyped(json, ignoreDiscriminator) {
|
|
26
|
+
if (json == null) {
|
|
27
|
+
return json;
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
'enabled': json['enabled'],
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function AutolaunchRuleDisarmToJSON(json) {
|
|
34
|
+
return AutolaunchRuleDisarmToJSONTyped(json, false);
|
|
35
|
+
}
|
|
36
|
+
export function AutolaunchRuleDisarmToJSONTyped(value, ignoreDiscriminator = false) {
|
|
37
|
+
if (value == null) {
|
|
38
|
+
return value;
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
'enabled': value['enabled'],
|
|
42
|
+
};
|
|
43
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GPU.ai Public Developer API
|
|
3
|
+
* Programmatic API for GPU.ai. Authenticate with API keys minted from the dashboard. See https://gpu.ai/docs for details.
|
|
4
|
+
*
|
|
5
|
+
* The version of the OpenAPI document: 1.0.0
|
|
6
|
+
* Contact: support@gpu.ai
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
+
* https://openapi-generator.tech
|
|
10
|
+
* Do not edit the class manually.
|
|
11
|
+
*/
|
|
12
|
+
import type { AutolaunchRule } from './AutolaunchRule';
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* @export
|
|
16
|
+
* @interface AutolaunchRulePage
|
|
17
|
+
*/
|
|
18
|
+
export interface AutolaunchRulePage {
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
* @type {Array<AutolaunchRule>}
|
|
22
|
+
* @memberof AutolaunchRulePage
|
|
23
|
+
*/
|
|
24
|
+
data: Array<AutolaunchRule>;
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
* @type {string}
|
|
28
|
+
* @memberof AutolaunchRulePage
|
|
29
|
+
*/
|
|
30
|
+
nextCursor: string | null;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Check if a given object implements the AutolaunchRulePage interface.
|
|
34
|
+
*/
|
|
35
|
+
export declare function instanceOfAutolaunchRulePage(value: object): value is AutolaunchRulePage;
|
|
36
|
+
export declare function AutolaunchRulePageFromJSON(json: any): AutolaunchRulePage;
|
|
37
|
+
export declare function AutolaunchRulePageFromJSONTyped(json: any, ignoreDiscriminator: boolean): AutolaunchRulePage;
|
|
38
|
+
export declare function AutolaunchRulePageToJSON(json: any): AutolaunchRulePage;
|
|
39
|
+
export declare function AutolaunchRulePageToJSONTyped(value?: AutolaunchRulePage | null, ignoreDiscriminator?: boolean): any;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* GPU.ai Public Developer API
|
|
5
|
+
* Programmatic API for GPU.ai. Authenticate with API keys minted from the dashboard. See https://gpu.ai/docs for details.
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 1.0.0
|
|
8
|
+
* Contact: support@gpu.ai
|
|
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
|
+
import { AutolaunchRuleFromJSON, AutolaunchRuleToJSON, } from './AutolaunchRule';
|
|
15
|
+
/**
|
|
16
|
+
* Check if a given object implements the AutolaunchRulePage interface.
|
|
17
|
+
*/
|
|
18
|
+
export function instanceOfAutolaunchRulePage(value) {
|
|
19
|
+
if (!('data' in value) || value['data'] === undefined)
|
|
20
|
+
return false;
|
|
21
|
+
if ((!('nextCursor' in value) && !('next_cursor' in value)) || (value['nextCursor'] === undefined && value['next_cursor'] === undefined))
|
|
22
|
+
return false;
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
export function AutolaunchRulePageFromJSON(json) {
|
|
26
|
+
return AutolaunchRulePageFromJSONTyped(json, false);
|
|
27
|
+
}
|
|
28
|
+
export function AutolaunchRulePageFromJSONTyped(json, ignoreDiscriminator) {
|
|
29
|
+
if (json == null) {
|
|
30
|
+
return json;
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
'data': (json['data'].map(AutolaunchRuleFromJSON)),
|
|
34
|
+
'nextCursor': json['next_cursor'],
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export function AutolaunchRulePageToJSON(json) {
|
|
38
|
+
return AutolaunchRulePageToJSONTyped(json, false);
|
|
39
|
+
}
|
|
40
|
+
export function AutolaunchRulePageToJSONTyped(value, ignoreDiscriminator = false) {
|
|
41
|
+
if (value == null) {
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
'data': (value['data'].map(AutolaunchRuleToJSON)),
|
|
46
|
+
'next_cursor': value['nextCursor'],
|
|
47
|
+
};
|
|
48
|
+
}
|