@daocloud-proto/hydra 0.18.0-dev-2 → 0.18.0-dev-4
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,6 +9,15 @@ 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",
|
|
@@ -40,6 +49,62 @@ export enum MAASBackendStatus {
|
|
|
40
49
|
MAAS_BACKEND_STATUS_FAILED = "MAAS_BACKEND_STATUS_FAILED",
|
|
41
50
|
}
|
|
42
51
|
|
|
52
|
+
export enum RateLimitMatchStrategy {
|
|
53
|
+
RATE_LIMIT_MATCH_STRATEGY_UNSPECIFIED = "RATE_LIMIT_MATCH_STRATEGY_UNSPECIFIED",
|
|
54
|
+
RATE_LIMIT_MATCH_STRATEGY_ANY = "RATE_LIMIT_MATCH_STRATEGY_ANY",
|
|
55
|
+
RATE_LIMIT_MATCH_STRATEGY_ALL = "RATE_LIMIT_MATCH_STRATEGY_ALL",
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export enum RateLimitType {
|
|
59
|
+
RATE_LIMIT_TYPE_UNSPECIFIED = "RATE_LIMIT_TYPE_UNSPECIFIED",
|
|
60
|
+
RATE_LIMIT_TYPE_REQUEST = "RATE_LIMIT_TYPE_REQUEST",
|
|
61
|
+
RATE_LIMIT_TYPE_TOKEN = "RATE_LIMIT_TYPE_TOKEN",
|
|
62
|
+
RATE_LIMIT_TYPE_IMAGE = "RATE_LIMIT_TYPE_IMAGE",
|
|
63
|
+
RATE_LIMIT_TYPE_AUDIO = "RATE_LIMIT_TYPE_AUDIO",
|
|
64
|
+
RATE_LIMIT_TYPE_VIDEO = "RATE_LIMIT_TYPE_VIDEO",
|
|
65
|
+
RATE_LIMIT_TYPE_EXEMPTION = "RATE_LIMIT_TYPE_EXEMPTION",
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export enum RateLimitDimension {
|
|
69
|
+
RATE_LIMIT_DIMENSION_UNSPECIFIED = "RATE_LIMIT_DIMENSION_UNSPECIFIED",
|
|
70
|
+
RATE_LIMIT_DIMENSION_WORKSPACE = "RATE_LIMIT_DIMENSION_WORKSPACE",
|
|
71
|
+
RATE_LIMIT_DIMENSION_USER = "RATE_LIMIT_DIMENSION_USER",
|
|
72
|
+
RATE_LIMIT_DIMENSION_API_KEY = "RATE_LIMIT_DIMENSION_API_KEY",
|
|
73
|
+
RATE_LIMIT_DIMENSION_ACCOUNT = "RATE_LIMIT_DIMENSION_ACCOUNT",
|
|
74
|
+
RATE_LIMIT_DIMENSION_SUB_ACCOUNT = "RATE_LIMIT_DIMENSION_SUB_ACCOUNT",
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export enum RateLimitWindow {
|
|
78
|
+
RATE_LIMIT_WINDOW_UNSPECIFIED = "RATE_LIMIT_WINDOW_UNSPECIFIED",
|
|
79
|
+
RATE_LIMIT_WINDOW_SECOND = "RATE_LIMIT_WINDOW_SECOND",
|
|
80
|
+
RATE_LIMIT_WINDOW_MINUTE = "RATE_LIMIT_WINDOW_MINUTE",
|
|
81
|
+
RATE_LIMIT_WINDOW_HOUR = "RATE_LIMIT_WINDOW_HOUR",
|
|
82
|
+
RATE_LIMIT_WINDOW_DAY = "RATE_LIMIT_WINDOW_DAY",
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export enum TokenRateLimitMode {
|
|
86
|
+
TOKEN_RATE_LIMIT_MODE_UNSPECIFIED = "TOKEN_RATE_LIMIT_MODE_UNSPECIFIED",
|
|
87
|
+
TOKEN_RATE_LIMIT_MODE_TOTAL = "TOKEN_RATE_LIMIT_MODE_TOTAL",
|
|
88
|
+
TOKEN_RATE_LIMIT_MODE_INPUT_OUTPUT = "TOKEN_RATE_LIMIT_MODE_INPUT_OUTPUT",
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export enum ImageRateLimitMetric {
|
|
92
|
+
IMAGE_RATE_LIMIT_METRIC_UNSPECIFIED = "IMAGE_RATE_LIMIT_METRIC_UNSPECIFIED",
|
|
93
|
+
IMAGE_RATE_LIMIT_METRIC_OUTPUT_IMAGES = "IMAGE_RATE_LIMIT_METRIC_OUTPUT_IMAGES",
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export enum AudioRateLimitMetric {
|
|
97
|
+
AUDIO_RATE_LIMIT_METRIC_UNSPECIFIED = "AUDIO_RATE_LIMIT_METRIC_UNSPECIFIED",
|
|
98
|
+
AUDIO_RATE_LIMIT_METRIC_INPUT_DURATION_MILLISECONDS = "AUDIO_RATE_LIMIT_METRIC_INPUT_DURATION_MILLISECONDS",
|
|
99
|
+
AUDIO_RATE_LIMIT_METRIC_OUTPUT_DURATION_MILLISECONDS = "AUDIO_RATE_LIMIT_METRIC_OUTPUT_DURATION_MILLISECONDS",
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export enum VideoRateLimitMetric {
|
|
103
|
+
VIDEO_RATE_LIMIT_METRIC_UNSPECIFIED = "VIDEO_RATE_LIMIT_METRIC_UNSPECIFIED",
|
|
104
|
+
VIDEO_RATE_LIMIT_METRIC_INPUT_DURATION_MILLISECONDS = "VIDEO_RATE_LIMIT_METRIC_INPUT_DURATION_MILLISECONDS",
|
|
105
|
+
VIDEO_RATE_LIMIT_METRIC_OUTPUT_DURATION_MILLISECONDS = "VIDEO_RATE_LIMIT_METRIC_OUTPUT_DURATION_MILLISECONDS",
|
|
106
|
+
}
|
|
107
|
+
|
|
43
108
|
export enum MAASModelGatewayStatus {
|
|
44
109
|
GATEWAY_STATUS_UNSPECIFIED = "GATEWAY_STATUS_UNSPECIFIED",
|
|
45
110
|
GATEWAY_STATUS_HEALTHY = "GATEWAY_STATUS_HEALTHY",
|
|
@@ -159,6 +224,135 @@ export type GetMAASModelRequest = {
|
|
|
159
224
|
modelId?: string
|
|
160
225
|
}
|
|
161
226
|
|
|
227
|
+
export type ModelRateLimitPolicy = {
|
|
228
|
+
name?: string
|
|
229
|
+
enabled?: boolean
|
|
230
|
+
modelName?: string[]
|
|
231
|
+
paths?: string[]
|
|
232
|
+
matchStrategy?: RateLimitMatchStrategy
|
|
233
|
+
rules?: ModelRateLimitPolicyRule[]
|
|
234
|
+
creationTimestamp?: GoogleProtobufTimestamp.Timestamp
|
|
235
|
+
updateTimestamp?: GoogleProtobufTimestamp.Timestamp
|
|
236
|
+
generation?: string
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
export type RateLimitTarget = {
|
|
240
|
+
selectors?: RateLimitSelector[]
|
|
241
|
+
dimension?: RateLimitDimension
|
|
242
|
+
values?: string[]
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
export type RateLimitSelector = {
|
|
246
|
+
dimension?: RateLimitDimension
|
|
247
|
+
values?: string[]
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
export type RequestRateLimit = {
|
|
251
|
+
limit?: string
|
|
252
|
+
window?: RateLimitWindow
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
type BaseTokenRateLimit = {
|
|
257
|
+
mode?: TokenRateLimitMode
|
|
258
|
+
window?: RateLimitWindow
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
export type TokenRateLimit = BaseTokenRateLimit
|
|
262
|
+
& OneOf<{ totalLimit: string }>
|
|
263
|
+
& OneOf<{ inputLimit: string }>
|
|
264
|
+
& OneOf<{ outputLimit: string }>
|
|
265
|
+
|
|
266
|
+
export type ImageRateLimit = {
|
|
267
|
+
metric?: ImageRateLimitMetric
|
|
268
|
+
limit?: string
|
|
269
|
+
window?: RateLimitWindow
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
export type AudioRateLimit = {
|
|
273
|
+
metric?: AudioRateLimitMetric
|
|
274
|
+
limit?: string
|
|
275
|
+
window?: RateLimitWindow
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
export type VideoRateLimit = {
|
|
279
|
+
metric?: VideoRateLimitMetric
|
|
280
|
+
limit?: string
|
|
281
|
+
window?: RateLimitWindow
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
export type RateLimitExemption = {
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
export type ModelRateLimitPolicyRule = {
|
|
288
|
+
id?: string
|
|
289
|
+
type?: RateLimitType
|
|
290
|
+
target?: RateLimitTarget
|
|
291
|
+
independentQuota?: boolean
|
|
292
|
+
resolvedReplaces?: string[]
|
|
293
|
+
request?: RequestRateLimit
|
|
294
|
+
token?: TokenRateLimit
|
|
295
|
+
image?: ImageRateLimit
|
|
296
|
+
audio?: AudioRateLimit
|
|
297
|
+
video?: VideoRateLimit
|
|
298
|
+
exemption?: RateLimitExemption
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
export type ModelRateLimitPolicyRuleCount = {
|
|
302
|
+
type?: RateLimitType
|
|
303
|
+
count?: number
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
export type ModelRateLimitPolicyListItem = {
|
|
307
|
+
name?: string
|
|
308
|
+
modelName?: string[]
|
|
309
|
+
paths?: string[]
|
|
310
|
+
matchStrategy?: RateLimitMatchStrategy
|
|
311
|
+
ruleCounts?: ModelRateLimitPolicyRuleCount[]
|
|
312
|
+
enabled?: boolean
|
|
313
|
+
updateTimestamp?: GoogleProtobufTimestamp.Timestamp
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
export type CreateModelRateLimitPolicyRequest = {
|
|
317
|
+
name?: string
|
|
318
|
+
enabled?: boolean
|
|
319
|
+
modelName?: string[]
|
|
320
|
+
paths?: string[]
|
|
321
|
+
matchStrategy?: RateLimitMatchStrategy
|
|
322
|
+
rules?: ModelRateLimitPolicyRule[]
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
export type GetModelRateLimitPolicyRequest = {
|
|
326
|
+
name?: string
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
export type ListModelRateLimitPoliciesRequest = {
|
|
330
|
+
page?: HydraCommonCommon.Pagination
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
export type ListModelRateLimitPoliciesResponse = {
|
|
334
|
+
items?: ModelRateLimitPolicyListItem[]
|
|
335
|
+
page?: HydraCommonCommon.Pagination
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
export type UpdateModelRateLimitPolicyRequest = {
|
|
339
|
+
name?: string
|
|
340
|
+
enabled?: boolean
|
|
341
|
+
modelName?: string[]
|
|
342
|
+
paths?: string[]
|
|
343
|
+
matchStrategy?: RateLimitMatchStrategy
|
|
344
|
+
rules?: ModelRateLimitPolicyRule[]
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
export type UpdateModelRateLimitPolicyStatusRequest = {
|
|
348
|
+
name?: string
|
|
349
|
+
enable?: boolean
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
export type DeleteModelRateLimitPolicyRequest = {
|
|
353
|
+
name?: string
|
|
354
|
+
}
|
|
355
|
+
|
|
162
356
|
export class MAASService {
|
|
163
357
|
static GetMAASModel(req: GetMAASModelRequest, initReq?: fm.InitReq): Promise<MAASModel> {
|
|
164
358
|
return fm.fetchReq<GetMAASModelRequest, MAASModel>(`/apis/admin.hydra.io/v1alpha1/maas-models/${req["modelId"]}?${fm.renderURLSearchParams(req, ["modelId"])}`, {...initReq, method: "GET"})
|
|
@@ -175,4 +369,22 @@ export class MAASService {
|
|
|
175
369
|
static UpdateMAASModelStatus(req: UpdateMAASModelStatusRequest, initReq?: fm.InitReq): Promise<MAASModel> {
|
|
176
370
|
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
371
|
}
|
|
372
|
+
static CreateModelRateLimitPolicy(req: CreateModelRateLimitPolicyRequest, initReq?: fm.InitReq): Promise<ModelRateLimitPolicy> {
|
|
373
|
+
return fm.fetchReq<CreateModelRateLimitPolicyRequest, ModelRateLimitPolicy>(`/apis/admin.hydra.io/v1alpha1/model-rate-limit-policies`, {...initReq, method: "POST", body: JSON.stringify(req, fm.replacer)})
|
|
374
|
+
}
|
|
375
|
+
static GetModelRateLimitPolicy(req: GetModelRateLimitPolicyRequest, initReq?: fm.InitReq): Promise<ModelRateLimitPolicy> {
|
|
376
|
+
return fm.fetchReq<GetModelRateLimitPolicyRequest, ModelRateLimitPolicy>(`/apis/admin.hydra.io/v1alpha1/model-rate-limit-policies/${req["name"]}?${fm.renderURLSearchParams(req, ["name"])}`, {...initReq, method: "GET"})
|
|
377
|
+
}
|
|
378
|
+
static ListModelRateLimitPolicies(req: ListModelRateLimitPoliciesRequest, initReq?: fm.InitReq): Promise<ListModelRateLimitPoliciesResponse> {
|
|
379
|
+
return fm.fetchReq<ListModelRateLimitPoliciesRequest, ListModelRateLimitPoliciesResponse>(`/apis/admin.hydra.io/v1alpha1/model-rate-limit-policies?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: "GET"})
|
|
380
|
+
}
|
|
381
|
+
static UpdateModelRateLimitPolicy(req: UpdateModelRateLimitPolicyRequest, initReq?: fm.InitReq): Promise<ModelRateLimitPolicy> {
|
|
382
|
+
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)})
|
|
383
|
+
}
|
|
384
|
+
static UpdateModelRateLimitPolicyStatus(req: UpdateModelRateLimitPolicyStatusRequest, initReq?: fm.InitReq): Promise<ModelRateLimitPolicy> {
|
|
385
|
+
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)})
|
|
386
|
+
}
|
|
387
|
+
static DeleteModelRateLimitPolicy(req: DeleteModelRateLimitPolicyRequest, initReq?: fm.InitReq): Promise<ModelRateLimitPolicy> {
|
|
388
|
+
return fm.fetchReq<DeleteModelRateLimitPolicyRequest, ModelRateLimitPolicy>(`/apis/admin.hydra.io/v1alpha1/model-rate-limit-policies/${req["name"]}`, {...initReq, method: "DELETE"})
|
|
389
|
+
}
|
|
178
390
|
}
|
|
@@ -131,6 +131,11 @@ export type DeleteWSAPIKeyRequest = {
|
|
|
131
131
|
workspace?: number
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
+
export type GetWSAPIKeyRequest = {
|
|
135
|
+
id?: string
|
|
136
|
+
workspace?: number
|
|
137
|
+
}
|
|
138
|
+
|
|
134
139
|
export type GetWSAPIKeySecretRequest = {
|
|
135
140
|
id?: string
|
|
136
141
|
workspace?: number
|
|
@@ -189,6 +194,10 @@ export type DeleteAPIKeyRequest = {
|
|
|
189
194
|
id?: string
|
|
190
195
|
}
|
|
191
196
|
|
|
197
|
+
export type GetAPIKeyRequest = {
|
|
198
|
+
id?: string
|
|
199
|
+
}
|
|
200
|
+
|
|
192
201
|
export type GetAPIKeySecretRequest = {
|
|
193
202
|
id?: string
|
|
194
203
|
}
|
|
@@ -267,6 +276,9 @@ export class APIKeyManagement {
|
|
|
267
276
|
static ListAllAPIKeysStatus(req: ListAllAPIKeysStatusRequest, initReq?: fm.InitReq): Promise<ListAllAPIKeysStatusResponse> {
|
|
268
277
|
return fm.fetchReq<ListAllAPIKeysStatusRequest, ListAllAPIKeysStatusResponse>(`/apis/hydra.io/v1alpha1/all-apikey-statuses?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: "GET"})
|
|
269
278
|
}
|
|
279
|
+
static GetAPIKey(req: GetAPIKeyRequest, initReq?: fm.InitReq): Promise<APIKey> {
|
|
280
|
+
return fm.fetchReq<GetAPIKeyRequest, APIKey>(`/apis/hydra.io/v1alpha1/apikeys/${req["id"]}?${fm.renderURLSearchParams(req, ["id"])}`, {...initReq, method: "GET"})
|
|
281
|
+
}
|
|
270
282
|
static GetAPIKeySecret(req: GetAPIKeySecretRequest, initReq?: fm.InitReq): Promise<APIKeySecret> {
|
|
271
283
|
return fm.fetchReq<GetAPIKeySecretRequest, APIKeySecret>(`/apis/hydra.io/v1alpha1/apikeys/${req["id"]}/secret?${fm.renderURLSearchParams(req, ["id"])}`, {...initReq, method: "GET"})
|
|
272
284
|
}
|
|
@@ -305,6 +317,9 @@ export class WSAPIKeyManagement {
|
|
|
305
317
|
static ListWSAPIKeyMasked(req: ListWSAPIKeyRequest, initReq?: fm.InitReq): Promise<ListAPIKeyResponse> {
|
|
306
318
|
return fm.fetchReq<ListWSAPIKeyRequest, ListAPIKeyResponse>(`/apis/hydra.io/v1alpha1/workspaces/${req["workspace"]}/masked-apikeys?${fm.renderURLSearchParams(req, ["workspace"])}`, {...initReq, method: "GET"})
|
|
307
319
|
}
|
|
320
|
+
static GetWSAPIKey(req: GetWSAPIKeyRequest, initReq?: fm.InitReq): Promise<APIKey> {
|
|
321
|
+
return fm.fetchReq<GetWSAPIKeyRequest, APIKey>(`/apis/hydra.io/v1alpha1/workspaces/${req["workspace"]}/apikeys/${req["id"]}?${fm.renderURLSearchParams(req, ["workspace", "id"])}`, {...initReq, method: "GET"})
|
|
322
|
+
}
|
|
308
323
|
static GetWSAPIKeySecret(req: GetWSAPIKeySecretRequest, initReq?: fm.InitReq): Promise<APIKeySecret> {
|
|
309
324
|
return fm.fetchReq<GetWSAPIKeySecretRequest, APIKeySecret>(`/apis/hydra.io/v1alpha1/workspaces/${req["workspace"]}/apikeys/${req["id"]}/secret?${fm.renderURLSearchParams(req, ["workspace", "id"])}`, {...initReq, method: "GET"})
|
|
310
325
|
}
|