@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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@daocloud-proto/hydra",
3
- "version": "v0.18.0-dev-2",
3
+ "version": "v0.18.0-dev-4",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "license": "ISC"