@daocloud-proto/hydra 0.18.0-dev-3 → 0.18.0-dev-5
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.
|
@@ -9,12 +9,29 @@ import * as fm from "../../../fetch.pb"
|
|
|
9
9
|
import * as GoogleProtobufTimestamp from "../../../google/protobuf/timestamp.pb"
|
|
10
10
|
import * as HydraAdmin_apiModelV1alpha1Model from "../../model/v1alpha1/model.pb"
|
|
11
11
|
|
|
12
|
+
type Absent<T, K extends keyof T> = { [k in Exclude<keyof T, K>]?: undefined };
|
|
13
|
+
type OneOf<T> =
|
|
14
|
+
| { [k in keyof T]?: undefined }
|
|
15
|
+
| (
|
|
16
|
+
keyof T extends infer K ?
|
|
17
|
+
(K extends string & keyof T ? { [k in K]: T[K] } & Absent<T, K>
|
|
18
|
+
: never)
|
|
19
|
+
: never);
|
|
20
|
+
|
|
12
21
|
export enum MAASWorkspaceVisibilityScope {
|
|
13
22
|
MAAS_WORKSPACE_VISIBILITY_SCOPE_UNSPECIFIED = "MAAS_WORKSPACE_VISIBILITY_SCOPE_UNSPECIFIED",
|
|
14
23
|
MAAS_WORKSPACE_VISIBILITY_SCOPE_ALL = "MAAS_WORKSPACE_VISIBILITY_SCOPE_ALL",
|
|
15
24
|
MAAS_WORKSPACE_VISIBILITY_SCOPE_SPECIFIED = "MAAS_WORKSPACE_VISIBILITY_SCOPE_SPECIFIED",
|
|
16
25
|
}
|
|
17
26
|
|
|
27
|
+
export enum MAASModelHealthStatus {
|
|
28
|
+
MAAS_MODEL_HEALTH_STATUS_UNSPECIFIED = "MAAS_MODEL_HEALTH_STATUS_UNSPECIFIED",
|
|
29
|
+
MAAS_MODEL_HEALTH_STATUS_UNKNOWN = "MAAS_MODEL_HEALTH_STATUS_UNKNOWN",
|
|
30
|
+
MAAS_MODEL_HEALTH_STATUS_HEALTHY = "MAAS_MODEL_HEALTH_STATUS_HEALTHY",
|
|
31
|
+
MAAS_MODEL_HEALTH_STATUS_DEGRADED = "MAAS_MODEL_HEALTH_STATUS_DEGRADED",
|
|
32
|
+
MAAS_MODEL_HEALTH_STATUS_FAILED = "MAAS_MODEL_HEALTH_STATUS_FAILED",
|
|
33
|
+
}
|
|
34
|
+
|
|
18
35
|
export enum LoadBalanceStrategy {
|
|
19
36
|
LOAD_BALANCE_STRATEGY_UNSPECIFIED = "LOAD_BALANCE_STRATEGY_UNSPECIFIED",
|
|
20
37
|
LOAD_BALANCE_STRATEGY_ROUND_ROBIN = "LOAD_BALANCE_STRATEGY_ROUND_ROBIN",
|
|
@@ -40,6 +57,62 @@ export enum MAASBackendStatus {
|
|
|
40
57
|
MAAS_BACKEND_STATUS_FAILED = "MAAS_BACKEND_STATUS_FAILED",
|
|
41
58
|
}
|
|
42
59
|
|
|
60
|
+
export enum RateLimitMatchStrategy {
|
|
61
|
+
RATE_LIMIT_MATCH_STRATEGY_UNSPECIFIED = "RATE_LIMIT_MATCH_STRATEGY_UNSPECIFIED",
|
|
62
|
+
RATE_LIMIT_MATCH_STRATEGY_ANY = "RATE_LIMIT_MATCH_STRATEGY_ANY",
|
|
63
|
+
RATE_LIMIT_MATCH_STRATEGY_ALL = "RATE_LIMIT_MATCH_STRATEGY_ALL",
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export enum RateLimitType {
|
|
67
|
+
RATE_LIMIT_TYPE_UNSPECIFIED = "RATE_LIMIT_TYPE_UNSPECIFIED",
|
|
68
|
+
RATE_LIMIT_TYPE_REQUEST = "RATE_LIMIT_TYPE_REQUEST",
|
|
69
|
+
RATE_LIMIT_TYPE_TOKEN = "RATE_LIMIT_TYPE_TOKEN",
|
|
70
|
+
RATE_LIMIT_TYPE_IMAGE = "RATE_LIMIT_TYPE_IMAGE",
|
|
71
|
+
RATE_LIMIT_TYPE_AUDIO = "RATE_LIMIT_TYPE_AUDIO",
|
|
72
|
+
RATE_LIMIT_TYPE_VIDEO = "RATE_LIMIT_TYPE_VIDEO",
|
|
73
|
+
RATE_LIMIT_TYPE_EXEMPTION = "RATE_LIMIT_TYPE_EXEMPTION",
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export enum RateLimitDimension {
|
|
77
|
+
RATE_LIMIT_DIMENSION_UNSPECIFIED = "RATE_LIMIT_DIMENSION_UNSPECIFIED",
|
|
78
|
+
RATE_LIMIT_DIMENSION_WORKSPACE = "RATE_LIMIT_DIMENSION_WORKSPACE",
|
|
79
|
+
RATE_LIMIT_DIMENSION_USER = "RATE_LIMIT_DIMENSION_USER",
|
|
80
|
+
RATE_LIMIT_DIMENSION_API_KEY = "RATE_LIMIT_DIMENSION_API_KEY",
|
|
81
|
+
RATE_LIMIT_DIMENSION_ACCOUNT = "RATE_LIMIT_DIMENSION_ACCOUNT",
|
|
82
|
+
RATE_LIMIT_DIMENSION_SUB_ACCOUNT = "RATE_LIMIT_DIMENSION_SUB_ACCOUNT",
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export enum RateLimitWindow {
|
|
86
|
+
RATE_LIMIT_WINDOW_UNSPECIFIED = "RATE_LIMIT_WINDOW_UNSPECIFIED",
|
|
87
|
+
RATE_LIMIT_WINDOW_SECOND = "RATE_LIMIT_WINDOW_SECOND",
|
|
88
|
+
RATE_LIMIT_WINDOW_MINUTE = "RATE_LIMIT_WINDOW_MINUTE",
|
|
89
|
+
RATE_LIMIT_WINDOW_HOUR = "RATE_LIMIT_WINDOW_HOUR",
|
|
90
|
+
RATE_LIMIT_WINDOW_DAY = "RATE_LIMIT_WINDOW_DAY",
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export enum TokenRateLimitMode {
|
|
94
|
+
TOKEN_RATE_LIMIT_MODE_UNSPECIFIED = "TOKEN_RATE_LIMIT_MODE_UNSPECIFIED",
|
|
95
|
+
TOKEN_RATE_LIMIT_MODE_TOTAL = "TOKEN_RATE_LIMIT_MODE_TOTAL",
|
|
96
|
+
TOKEN_RATE_LIMIT_MODE_INPUT_OUTPUT = "TOKEN_RATE_LIMIT_MODE_INPUT_OUTPUT",
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export enum ImageRateLimitMetric {
|
|
100
|
+
IMAGE_RATE_LIMIT_METRIC_UNSPECIFIED = "IMAGE_RATE_LIMIT_METRIC_UNSPECIFIED",
|
|
101
|
+
IMAGE_RATE_LIMIT_METRIC_OUTPUT_IMAGES = "IMAGE_RATE_LIMIT_METRIC_OUTPUT_IMAGES",
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export enum AudioRateLimitMetric {
|
|
105
|
+
AUDIO_RATE_LIMIT_METRIC_UNSPECIFIED = "AUDIO_RATE_LIMIT_METRIC_UNSPECIFIED",
|
|
106
|
+
AUDIO_RATE_LIMIT_METRIC_INPUT_DURATION_MILLISECONDS = "AUDIO_RATE_LIMIT_METRIC_INPUT_DURATION_MILLISECONDS",
|
|
107
|
+
AUDIO_RATE_LIMIT_METRIC_OUTPUT_DURATION_MILLISECONDS = "AUDIO_RATE_LIMIT_METRIC_OUTPUT_DURATION_MILLISECONDS",
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export enum VideoRateLimitMetric {
|
|
111
|
+
VIDEO_RATE_LIMIT_METRIC_UNSPECIFIED = "VIDEO_RATE_LIMIT_METRIC_UNSPECIFIED",
|
|
112
|
+
VIDEO_RATE_LIMIT_METRIC_INPUT_DURATION_MILLISECONDS = "VIDEO_RATE_LIMIT_METRIC_INPUT_DURATION_MILLISECONDS",
|
|
113
|
+
VIDEO_RATE_LIMIT_METRIC_OUTPUT_DURATION_MILLISECONDS = "VIDEO_RATE_LIMIT_METRIC_OUTPUT_DURATION_MILLISECONDS",
|
|
114
|
+
}
|
|
115
|
+
|
|
43
116
|
export enum MAASModelGatewayStatus {
|
|
44
117
|
GATEWAY_STATUS_UNSPECIFIED = "GATEWAY_STATUS_UNSPECIFIED",
|
|
45
118
|
GATEWAY_STATUS_HEALTHY = "GATEWAY_STATUS_HEALTHY",
|
|
@@ -80,6 +153,7 @@ export type MAASModel = {
|
|
|
80
153
|
tokenWeight?: string
|
|
81
154
|
workspaceVisibility?: MAASWorkspaceVisibility
|
|
82
155
|
capabilityRoutes?: MAASCapabilityRoute[]
|
|
156
|
+
healthStatus?: MAASModelHealthStatus
|
|
83
157
|
}
|
|
84
158
|
|
|
85
159
|
export type LoadBalanceConfig = {
|
|
@@ -122,6 +196,8 @@ export type MAASCapabilityUpstream = {
|
|
|
122
196
|
apiKey?: string
|
|
123
197
|
status?: MAASBackendStatus
|
|
124
198
|
capabilityPaths?: {[key: string]: string}
|
|
199
|
+
healthCheck?: HealthCheck
|
|
200
|
+
healthMessage?: string
|
|
125
201
|
}
|
|
126
202
|
|
|
127
203
|
export type UpstreamModel = {
|
|
@@ -129,6 +205,16 @@ export type UpstreamModel = {
|
|
|
129
205
|
apiKey?: string
|
|
130
206
|
endpoint?: string
|
|
131
207
|
status?: UpstreamModelStatus
|
|
208
|
+
healthCheck?: HealthCheck
|
|
209
|
+
healthMessage?: string
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
export type HealthCheck = {
|
|
213
|
+
path?: string
|
|
214
|
+
interval?: number
|
|
215
|
+
timeout?: number
|
|
216
|
+
healthyThreshold?: number
|
|
217
|
+
unhealthyThreshold?: number
|
|
132
218
|
}
|
|
133
219
|
|
|
134
220
|
export type ListMAASModelRequest = {
|
|
@@ -159,6 +245,135 @@ export type GetMAASModelRequest = {
|
|
|
159
245
|
modelId?: string
|
|
160
246
|
}
|
|
161
247
|
|
|
248
|
+
export type ModelRateLimitPolicy = {
|
|
249
|
+
name?: string
|
|
250
|
+
enabled?: boolean
|
|
251
|
+
modelName?: string[]
|
|
252
|
+
paths?: string[]
|
|
253
|
+
matchStrategy?: RateLimitMatchStrategy
|
|
254
|
+
rules?: ModelRateLimitPolicyRule[]
|
|
255
|
+
creationTimestamp?: GoogleProtobufTimestamp.Timestamp
|
|
256
|
+
updateTimestamp?: GoogleProtobufTimestamp.Timestamp
|
|
257
|
+
generation?: string
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
export type RateLimitTarget = {
|
|
261
|
+
selectors?: RateLimitSelector[]
|
|
262
|
+
dimension?: RateLimitDimension
|
|
263
|
+
values?: string[]
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
export type RateLimitSelector = {
|
|
267
|
+
dimension?: RateLimitDimension
|
|
268
|
+
values?: string[]
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
export type RequestRateLimit = {
|
|
272
|
+
limit?: string
|
|
273
|
+
window?: RateLimitWindow
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
type BaseTokenRateLimit = {
|
|
278
|
+
mode?: TokenRateLimitMode
|
|
279
|
+
window?: RateLimitWindow
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
export type TokenRateLimit = BaseTokenRateLimit
|
|
283
|
+
& OneOf<{ totalLimit: string }>
|
|
284
|
+
& OneOf<{ inputLimit: string }>
|
|
285
|
+
& OneOf<{ outputLimit: string }>
|
|
286
|
+
|
|
287
|
+
export type ImageRateLimit = {
|
|
288
|
+
metric?: ImageRateLimitMetric
|
|
289
|
+
limit?: string
|
|
290
|
+
window?: RateLimitWindow
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
export type AudioRateLimit = {
|
|
294
|
+
metric?: AudioRateLimitMetric
|
|
295
|
+
limit?: string
|
|
296
|
+
window?: RateLimitWindow
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
export type VideoRateLimit = {
|
|
300
|
+
metric?: VideoRateLimitMetric
|
|
301
|
+
limit?: string
|
|
302
|
+
window?: RateLimitWindow
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
export type RateLimitExemption = {
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
export type ModelRateLimitPolicyRule = {
|
|
309
|
+
id?: string
|
|
310
|
+
type?: RateLimitType
|
|
311
|
+
target?: RateLimitTarget
|
|
312
|
+
independentQuota?: boolean
|
|
313
|
+
resolvedReplaces?: string[]
|
|
314
|
+
request?: RequestRateLimit
|
|
315
|
+
token?: TokenRateLimit
|
|
316
|
+
image?: ImageRateLimit
|
|
317
|
+
audio?: AudioRateLimit
|
|
318
|
+
video?: VideoRateLimit
|
|
319
|
+
exemption?: RateLimitExemption
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
export type ModelRateLimitPolicyRuleCount = {
|
|
323
|
+
type?: RateLimitType
|
|
324
|
+
count?: number
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
export type ModelRateLimitPolicyListItem = {
|
|
328
|
+
name?: string
|
|
329
|
+
modelName?: string[]
|
|
330
|
+
paths?: string[]
|
|
331
|
+
matchStrategy?: RateLimitMatchStrategy
|
|
332
|
+
ruleCounts?: ModelRateLimitPolicyRuleCount[]
|
|
333
|
+
enabled?: boolean
|
|
334
|
+
updateTimestamp?: GoogleProtobufTimestamp.Timestamp
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
export type CreateModelRateLimitPolicyRequest = {
|
|
338
|
+
name?: string
|
|
339
|
+
enabled?: boolean
|
|
340
|
+
modelName?: string[]
|
|
341
|
+
paths?: string[]
|
|
342
|
+
matchStrategy?: RateLimitMatchStrategy
|
|
343
|
+
rules?: ModelRateLimitPolicyRule[]
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
export type GetModelRateLimitPolicyRequest = {
|
|
347
|
+
name?: string
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
export type ListModelRateLimitPoliciesRequest = {
|
|
351
|
+
page?: HydraCommonCommon.Pagination
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
export type ListModelRateLimitPoliciesResponse = {
|
|
355
|
+
items?: ModelRateLimitPolicyListItem[]
|
|
356
|
+
page?: HydraCommonCommon.Pagination
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
export type UpdateModelRateLimitPolicyRequest = {
|
|
360
|
+
name?: string
|
|
361
|
+
enabled?: boolean
|
|
362
|
+
modelName?: string[]
|
|
363
|
+
paths?: string[]
|
|
364
|
+
matchStrategy?: RateLimitMatchStrategy
|
|
365
|
+
rules?: ModelRateLimitPolicyRule[]
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
export type UpdateModelRateLimitPolicyStatusRequest = {
|
|
369
|
+
name?: string
|
|
370
|
+
enable?: boolean
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
export type DeleteModelRateLimitPolicyRequest = {
|
|
374
|
+
name?: string
|
|
375
|
+
}
|
|
376
|
+
|
|
162
377
|
export class MAASService {
|
|
163
378
|
static GetMAASModel(req: GetMAASModelRequest, initReq?: fm.InitReq): Promise<MAASModel> {
|
|
164
379
|
return fm.fetchReq<GetMAASModelRequest, MAASModel>(`/apis/admin.hydra.io/v1alpha1/maas-models/${req["modelId"]}?${fm.renderURLSearchParams(req, ["modelId"])}`, {...initReq, method: "GET"})
|
|
@@ -175,4 +390,22 @@ export class MAASService {
|
|
|
175
390
|
static UpdateMAASModelStatus(req: UpdateMAASModelStatusRequest, initReq?: fm.InitReq): Promise<MAASModel> {
|
|
176
391
|
return fm.fetchReq<UpdateMAASModelStatusRequest, MAASModel>(`/apis/admin.hydra.io/v1alpha1/maas-models/${req["modelId"]}/status`, {...initReq, method: "PUT", body: JSON.stringify(req, fm.replacer)})
|
|
177
392
|
}
|
|
393
|
+
static CreateModelRateLimitPolicy(req: CreateModelRateLimitPolicyRequest, initReq?: fm.InitReq): Promise<ModelRateLimitPolicy> {
|
|
394
|
+
return fm.fetchReq<CreateModelRateLimitPolicyRequest, ModelRateLimitPolicy>(`/apis/admin.hydra.io/v1alpha1/model-rate-limit-policies`, {...initReq, method: "POST", body: JSON.stringify(req, fm.replacer)})
|
|
395
|
+
}
|
|
396
|
+
static GetModelRateLimitPolicy(req: GetModelRateLimitPolicyRequest, initReq?: fm.InitReq): Promise<ModelRateLimitPolicy> {
|
|
397
|
+
return fm.fetchReq<GetModelRateLimitPolicyRequest, ModelRateLimitPolicy>(`/apis/admin.hydra.io/v1alpha1/model-rate-limit-policies/${req["name"]}?${fm.renderURLSearchParams(req, ["name"])}`, {...initReq, method: "GET"})
|
|
398
|
+
}
|
|
399
|
+
static ListModelRateLimitPolicies(req: ListModelRateLimitPoliciesRequest, initReq?: fm.InitReq): Promise<ListModelRateLimitPoliciesResponse> {
|
|
400
|
+
return fm.fetchReq<ListModelRateLimitPoliciesRequest, ListModelRateLimitPoliciesResponse>(`/apis/admin.hydra.io/v1alpha1/model-rate-limit-policies?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: "GET"})
|
|
401
|
+
}
|
|
402
|
+
static UpdateModelRateLimitPolicy(req: UpdateModelRateLimitPolicyRequest, initReq?: fm.InitReq): Promise<ModelRateLimitPolicy> {
|
|
403
|
+
return fm.fetchReq<UpdateModelRateLimitPolicyRequest, ModelRateLimitPolicy>(`/apis/admin.hydra.io/v1alpha1/model-rate-limit-policies/${req["name"]}`, {...initReq, method: "PUT", body: JSON.stringify(req, fm.replacer)})
|
|
404
|
+
}
|
|
405
|
+
static UpdateModelRateLimitPolicyStatus(req: UpdateModelRateLimitPolicyStatusRequest, initReq?: fm.InitReq): Promise<ModelRateLimitPolicy> {
|
|
406
|
+
return fm.fetchReq<UpdateModelRateLimitPolicyStatusRequest, ModelRateLimitPolicy>(`/apis/admin.hydra.io/v1alpha1/model-rate-limit-policies/${req["name"]}/status`, {...initReq, method: "PUT", body: JSON.stringify(req, fm.replacer)})
|
|
407
|
+
}
|
|
408
|
+
static DeleteModelRateLimitPolicy(req: DeleteModelRateLimitPolicyRequest, initReq?: fm.InitReq): Promise<ModelRateLimitPolicy> {
|
|
409
|
+
return fm.fetchReq<DeleteModelRateLimitPolicyRequest, ModelRateLimitPolicy>(`/apis/admin.hydra.io/v1alpha1/model-rate-limit-policies/${req["name"]}`, {...initReq, method: "DELETE"})
|
|
410
|
+
}
|
|
178
411
|
}
|