unitysvc-services 0.1.24__py3-none-any.whl
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.
- unitysvc_services/__init__.py +4 -0
- unitysvc_services/api.py +421 -0
- unitysvc_services/cli.py +23 -0
- unitysvc_services/format_data.py +140 -0
- unitysvc_services/interactive_prompt.py +1132 -0
- unitysvc_services/list.py +216 -0
- unitysvc_services/models/__init__.py +71 -0
- unitysvc_services/models/base.py +1375 -0
- unitysvc_services/models/listing_data.py +118 -0
- unitysvc_services/models/listing_v1.py +56 -0
- unitysvc_services/models/provider_data.py +79 -0
- unitysvc_services/models/provider_v1.py +54 -0
- unitysvc_services/models/seller_data.py +120 -0
- unitysvc_services/models/seller_v1.py +42 -0
- unitysvc_services/models/service_data.py +114 -0
- unitysvc_services/models/service_v1.py +81 -0
- unitysvc_services/populate.py +207 -0
- unitysvc_services/publisher.py +1628 -0
- unitysvc_services/py.typed +0 -0
- unitysvc_services/query.py +688 -0
- unitysvc_services/scaffold.py +1103 -0
- unitysvc_services/schema/base.json +777 -0
- unitysvc_services/schema/listing_v1.json +1286 -0
- unitysvc_services/schema/provider_v1.json +952 -0
- unitysvc_services/schema/seller_v1.json +379 -0
- unitysvc_services/schema/service_v1.json +1306 -0
- unitysvc_services/test.py +965 -0
- unitysvc_services/unpublisher.py +505 -0
- unitysvc_services/update.py +287 -0
- unitysvc_services/utils.py +533 -0
- unitysvc_services/validator.py +731 -0
- unitysvc_services-0.1.24.dist-info/METADATA +184 -0
- unitysvc_services-0.1.24.dist-info/RECORD +37 -0
- unitysvc_services-0.1.24.dist-info/WHEEL +5 -0
- unitysvc_services-0.1.24.dist-info/entry_points.txt +3 -0
- unitysvc_services-0.1.24.dist-info/licenses/LICENSE +21 -0
- unitysvc_services-0.1.24.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,952 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$defs": {
|
|
3
|
+
"AccessInterface": {
|
|
4
|
+
"additionalProperties": true,
|
|
5
|
+
"properties": {
|
|
6
|
+
"access_method": {
|
|
7
|
+
"$ref": "#/$defs/AccessMethodEnum",
|
|
8
|
+
"default": "http",
|
|
9
|
+
"description": "Type of access method"
|
|
10
|
+
},
|
|
11
|
+
"api_key": {
|
|
12
|
+
"anyOf": [
|
|
13
|
+
{
|
|
14
|
+
"maxLength": 2000,
|
|
15
|
+
"type": "string"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"type": "null"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"default": null,
|
|
22
|
+
"description": "API key if required",
|
|
23
|
+
"title": "Api Key"
|
|
24
|
+
},
|
|
25
|
+
"base_url": {
|
|
26
|
+
"description": "Base URL for api access",
|
|
27
|
+
"maxLength": 500,
|
|
28
|
+
"title": "Base Url",
|
|
29
|
+
"type": "string"
|
|
30
|
+
},
|
|
31
|
+
"constraint": {
|
|
32
|
+
"anyOf": [
|
|
33
|
+
{
|
|
34
|
+
"$ref": "#/$defs/ServiceConstraints"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"type": "null"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"default": null,
|
|
41
|
+
"description": "Service constraints and conditions"
|
|
42
|
+
},
|
|
43
|
+
"description": {
|
|
44
|
+
"anyOf": [
|
|
45
|
+
{
|
|
46
|
+
"maxLength": 500,
|
|
47
|
+
"type": "string"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"type": "null"
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"default": null,
|
|
54
|
+
"description": "Interface description",
|
|
55
|
+
"title": "Description"
|
|
56
|
+
},
|
|
57
|
+
"documents": {
|
|
58
|
+
"anyOf": [
|
|
59
|
+
{
|
|
60
|
+
"items": {
|
|
61
|
+
"$ref": "#/$defs/Document"
|
|
62
|
+
},
|
|
63
|
+
"type": "array"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"type": "null"
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
"default": null,
|
|
70
|
+
"description": "List of documents associated with the interface",
|
|
71
|
+
"title": "Documents"
|
|
72
|
+
},
|
|
73
|
+
"is_active": {
|
|
74
|
+
"default": true,
|
|
75
|
+
"description": "Whether interface is active",
|
|
76
|
+
"title": "Is Active",
|
|
77
|
+
"type": "boolean"
|
|
78
|
+
},
|
|
79
|
+
"is_primary": {
|
|
80
|
+
"default": false,
|
|
81
|
+
"description": "Whether this is the primary interface",
|
|
82
|
+
"title": "Is Primary",
|
|
83
|
+
"type": "boolean"
|
|
84
|
+
},
|
|
85
|
+
"name": {
|
|
86
|
+
"anyOf": [
|
|
87
|
+
{
|
|
88
|
+
"maxLength": 100,
|
|
89
|
+
"type": "string"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"type": "null"
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"default": null,
|
|
96
|
+
"description": "Interface name",
|
|
97
|
+
"title": "Name"
|
|
98
|
+
},
|
|
99
|
+
"rate_limits": {
|
|
100
|
+
"anyOf": [
|
|
101
|
+
{
|
|
102
|
+
"items": {
|
|
103
|
+
"$ref": "#/$defs/RateLimit"
|
|
104
|
+
},
|
|
105
|
+
"type": "array"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"type": "null"
|
|
109
|
+
}
|
|
110
|
+
],
|
|
111
|
+
"default": null,
|
|
112
|
+
"description": "Rate limit",
|
|
113
|
+
"title": "Rate Limits"
|
|
114
|
+
},
|
|
115
|
+
"request_transformer": {
|
|
116
|
+
"anyOf": [
|
|
117
|
+
{
|
|
118
|
+
"additionalProperties": {
|
|
119
|
+
"additionalProperties": true,
|
|
120
|
+
"type": "object"
|
|
121
|
+
},
|
|
122
|
+
"propertyNames": {
|
|
123
|
+
"$ref": "#/$defs/RequestTransformEnum"
|
|
124
|
+
},
|
|
125
|
+
"type": "object"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"type": "null"
|
|
129
|
+
}
|
|
130
|
+
],
|
|
131
|
+
"default": null,
|
|
132
|
+
"description": "Request transformation configuration",
|
|
133
|
+
"title": "Request Transformer"
|
|
134
|
+
},
|
|
135
|
+
"routing_key": {
|
|
136
|
+
"anyOf": [
|
|
137
|
+
{
|
|
138
|
+
"additionalProperties": true,
|
|
139
|
+
"type": "object"
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"type": "null"
|
|
143
|
+
}
|
|
144
|
+
],
|
|
145
|
+
"default": null,
|
|
146
|
+
"description": "Request routing key for matching (e.g., {'model': 'gpt-4'})",
|
|
147
|
+
"title": "Routing Key"
|
|
148
|
+
},
|
|
149
|
+
"sort_order": {
|
|
150
|
+
"default": 0,
|
|
151
|
+
"description": "Display order",
|
|
152
|
+
"title": "Sort Order",
|
|
153
|
+
"type": "integer"
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
"required": [
|
|
157
|
+
"base_url"
|
|
158
|
+
],
|
|
159
|
+
"title": "AccessInterface",
|
|
160
|
+
"type": "object"
|
|
161
|
+
},
|
|
162
|
+
"AccessMethodEnum": {
|
|
163
|
+
"enum": [
|
|
164
|
+
"http",
|
|
165
|
+
"websocket",
|
|
166
|
+
"grpc"
|
|
167
|
+
],
|
|
168
|
+
"title": "AccessMethodEnum",
|
|
169
|
+
"type": "string"
|
|
170
|
+
},
|
|
171
|
+
"AuthMethodEnum": {
|
|
172
|
+
"enum": [
|
|
173
|
+
"api_key",
|
|
174
|
+
"oauth",
|
|
175
|
+
"jwt",
|
|
176
|
+
"bearer_token",
|
|
177
|
+
"basic_auth"
|
|
178
|
+
],
|
|
179
|
+
"title": "AuthMethodEnum",
|
|
180
|
+
"type": "string"
|
|
181
|
+
},
|
|
182
|
+
"ContentFilterEnum": {
|
|
183
|
+
"enum": [
|
|
184
|
+
"adult",
|
|
185
|
+
"violence",
|
|
186
|
+
"hate_speech",
|
|
187
|
+
"profanity",
|
|
188
|
+
"pii"
|
|
189
|
+
],
|
|
190
|
+
"title": "ContentFilterEnum",
|
|
191
|
+
"type": "string"
|
|
192
|
+
},
|
|
193
|
+
"Document": {
|
|
194
|
+
"additionalProperties": false,
|
|
195
|
+
"properties": {
|
|
196
|
+
"category": {
|
|
197
|
+
"$ref": "#/$defs/DocumentCategoryEnum",
|
|
198
|
+
"description": "Document category for organization and filtering"
|
|
199
|
+
},
|
|
200
|
+
"description": {
|
|
201
|
+
"anyOf": [
|
|
202
|
+
{
|
|
203
|
+
"maxLength": 500,
|
|
204
|
+
"type": "string"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"type": "null"
|
|
208
|
+
}
|
|
209
|
+
],
|
|
210
|
+
"default": null,
|
|
211
|
+
"description": "Document description",
|
|
212
|
+
"title": "Description"
|
|
213
|
+
},
|
|
214
|
+
"external_url": {
|
|
215
|
+
"anyOf": [
|
|
216
|
+
{
|
|
217
|
+
"maxLength": 1000,
|
|
218
|
+
"type": "string"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"type": "null"
|
|
222
|
+
}
|
|
223
|
+
],
|
|
224
|
+
"default": null,
|
|
225
|
+
"description": "External URL for the document (mutually exclusive with object_key)",
|
|
226
|
+
"title": "External Url"
|
|
227
|
+
},
|
|
228
|
+
"file_path": {
|
|
229
|
+
"anyOf": [
|
|
230
|
+
{
|
|
231
|
+
"maxLength": 1000,
|
|
232
|
+
"type": "string"
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"type": "null"
|
|
236
|
+
}
|
|
237
|
+
],
|
|
238
|
+
"default": null,
|
|
239
|
+
"description": "Path to file to upload (mutually exclusive with external_url)",
|
|
240
|
+
"title": "File Path"
|
|
241
|
+
},
|
|
242
|
+
"is_active": {
|
|
243
|
+
"default": true,
|
|
244
|
+
"description": "Whether document is active",
|
|
245
|
+
"title": "Is Active",
|
|
246
|
+
"type": "boolean"
|
|
247
|
+
},
|
|
248
|
+
"is_public": {
|
|
249
|
+
"default": false,
|
|
250
|
+
"description": "Whether document is publicly accessible without authentication",
|
|
251
|
+
"title": "Is Public",
|
|
252
|
+
"type": "boolean"
|
|
253
|
+
},
|
|
254
|
+
"meta": {
|
|
255
|
+
"anyOf": [
|
|
256
|
+
{
|
|
257
|
+
"additionalProperties": true,
|
|
258
|
+
"type": "object"
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
"type": "null"
|
|
262
|
+
}
|
|
263
|
+
],
|
|
264
|
+
"default": null,
|
|
265
|
+
"description": "JSON containing operation stats",
|
|
266
|
+
"title": "Meta"
|
|
267
|
+
},
|
|
268
|
+
"mime_type": {
|
|
269
|
+
"$ref": "#/$defs/MimeTypeEnum",
|
|
270
|
+
"description": "Document MIME type"
|
|
271
|
+
},
|
|
272
|
+
"sort_order": {
|
|
273
|
+
"default": 0,
|
|
274
|
+
"description": "Sort order within category",
|
|
275
|
+
"title": "Sort Order",
|
|
276
|
+
"type": "integer"
|
|
277
|
+
},
|
|
278
|
+
"title": {
|
|
279
|
+
"description": "Document title",
|
|
280
|
+
"maxLength": 255,
|
|
281
|
+
"minLength": 5,
|
|
282
|
+
"title": "Title",
|
|
283
|
+
"type": "string"
|
|
284
|
+
},
|
|
285
|
+
"version": {
|
|
286
|
+
"anyOf": [
|
|
287
|
+
{
|
|
288
|
+
"maxLength": 50,
|
|
289
|
+
"type": "string"
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
"type": "null"
|
|
293
|
+
}
|
|
294
|
+
],
|
|
295
|
+
"default": null,
|
|
296
|
+
"description": "Document version",
|
|
297
|
+
"title": "Version"
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
"required": [
|
|
301
|
+
"title",
|
|
302
|
+
"mime_type",
|
|
303
|
+
"category"
|
|
304
|
+
],
|
|
305
|
+
"title": "Document",
|
|
306
|
+
"type": "object"
|
|
307
|
+
},
|
|
308
|
+
"DocumentCategoryEnum": {
|
|
309
|
+
"enum": [
|
|
310
|
+
"getting_started",
|
|
311
|
+
"api_reference",
|
|
312
|
+
"tutorial",
|
|
313
|
+
"code_example",
|
|
314
|
+
"code_example_output",
|
|
315
|
+
"use_case",
|
|
316
|
+
"troubleshooting",
|
|
317
|
+
"changelog",
|
|
318
|
+
"best_practice",
|
|
319
|
+
"specification",
|
|
320
|
+
"service_level_agreement",
|
|
321
|
+
"terms_of_service",
|
|
322
|
+
"statement",
|
|
323
|
+
"invoice",
|
|
324
|
+
"logo",
|
|
325
|
+
"avatar",
|
|
326
|
+
"other"
|
|
327
|
+
],
|
|
328
|
+
"title": "DocumentCategoryEnum",
|
|
329
|
+
"type": "string"
|
|
330
|
+
},
|
|
331
|
+
"MimeTypeEnum": {
|
|
332
|
+
"enum": [
|
|
333
|
+
"markdown",
|
|
334
|
+
"python",
|
|
335
|
+
"javascript",
|
|
336
|
+
"bash",
|
|
337
|
+
"html",
|
|
338
|
+
"text",
|
|
339
|
+
"pdf",
|
|
340
|
+
"jpeg",
|
|
341
|
+
"png",
|
|
342
|
+
"svg",
|
|
343
|
+
"url"
|
|
344
|
+
],
|
|
345
|
+
"title": "MimeTypeEnum",
|
|
346
|
+
"type": "string"
|
|
347
|
+
},
|
|
348
|
+
"OveragePolicyEnum": {
|
|
349
|
+
"enum": [
|
|
350
|
+
"block",
|
|
351
|
+
"throttle",
|
|
352
|
+
"charge",
|
|
353
|
+
"queue"
|
|
354
|
+
],
|
|
355
|
+
"title": "OveragePolicyEnum",
|
|
356
|
+
"type": "string"
|
|
357
|
+
},
|
|
358
|
+
"ProviderStatusEnum": {
|
|
359
|
+
"description": "Provider status enum.",
|
|
360
|
+
"enum": [
|
|
361
|
+
"active",
|
|
362
|
+
"pending",
|
|
363
|
+
"disabled",
|
|
364
|
+
"draft"
|
|
365
|
+
],
|
|
366
|
+
"title": "ProviderStatusEnum",
|
|
367
|
+
"type": "string"
|
|
368
|
+
},
|
|
369
|
+
"QuotaResetCycleEnum": {
|
|
370
|
+
"enum": [
|
|
371
|
+
"daily",
|
|
372
|
+
"weekly",
|
|
373
|
+
"monthly",
|
|
374
|
+
"yearly"
|
|
375
|
+
],
|
|
376
|
+
"title": "QuotaResetCycleEnum",
|
|
377
|
+
"type": "string"
|
|
378
|
+
},
|
|
379
|
+
"RateLimit": {
|
|
380
|
+
"additionalProperties": false,
|
|
381
|
+
"description": "Store rate limiting rules for services.",
|
|
382
|
+
"properties": {
|
|
383
|
+
"burst_limit": {
|
|
384
|
+
"anyOf": [
|
|
385
|
+
{
|
|
386
|
+
"type": "integer"
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
"type": "null"
|
|
390
|
+
}
|
|
391
|
+
],
|
|
392
|
+
"default": null,
|
|
393
|
+
"description": "Short-term burst allowance",
|
|
394
|
+
"title": "Burst Limit"
|
|
395
|
+
},
|
|
396
|
+
"description": {
|
|
397
|
+
"anyOf": [
|
|
398
|
+
{
|
|
399
|
+
"maxLength": 255,
|
|
400
|
+
"type": "string"
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
"type": "null"
|
|
404
|
+
}
|
|
405
|
+
],
|
|
406
|
+
"default": null,
|
|
407
|
+
"description": "Human-readable description",
|
|
408
|
+
"title": "Description"
|
|
409
|
+
},
|
|
410
|
+
"is_active": {
|
|
411
|
+
"default": true,
|
|
412
|
+
"description": "Whether rate limit is active",
|
|
413
|
+
"title": "Is Active",
|
|
414
|
+
"type": "boolean"
|
|
415
|
+
},
|
|
416
|
+
"limit": {
|
|
417
|
+
"description": "Maximum allowed in the time window",
|
|
418
|
+
"title": "Limit",
|
|
419
|
+
"type": "integer"
|
|
420
|
+
},
|
|
421
|
+
"unit": {
|
|
422
|
+
"$ref": "#/$defs/RateLimitUnitEnum",
|
|
423
|
+
"description": "What is being limited"
|
|
424
|
+
},
|
|
425
|
+
"window": {
|
|
426
|
+
"$ref": "#/$defs/TimeWindowEnum",
|
|
427
|
+
"description": "Time window for the limit"
|
|
428
|
+
}
|
|
429
|
+
},
|
|
430
|
+
"required": [
|
|
431
|
+
"limit",
|
|
432
|
+
"unit",
|
|
433
|
+
"window"
|
|
434
|
+
],
|
|
435
|
+
"title": "RateLimit",
|
|
436
|
+
"type": "object"
|
|
437
|
+
},
|
|
438
|
+
"RateLimitUnitEnum": {
|
|
439
|
+
"enum": [
|
|
440
|
+
"requests",
|
|
441
|
+
"tokens",
|
|
442
|
+
"input_tokens",
|
|
443
|
+
"output_tokens",
|
|
444
|
+
"bytes",
|
|
445
|
+
"concurrent"
|
|
446
|
+
],
|
|
447
|
+
"title": "RateLimitUnitEnum",
|
|
448
|
+
"type": "string"
|
|
449
|
+
},
|
|
450
|
+
"RequestTransformEnum": {
|
|
451
|
+
"enum": [
|
|
452
|
+
"proxy_rewrite",
|
|
453
|
+
"body_transformer"
|
|
454
|
+
],
|
|
455
|
+
"title": "RequestTransformEnum",
|
|
456
|
+
"type": "string"
|
|
457
|
+
},
|
|
458
|
+
"ServiceConstraints": {
|
|
459
|
+
"additionalProperties": false,
|
|
460
|
+
"properties": {
|
|
461
|
+
"auth_methods": {
|
|
462
|
+
"anyOf": [
|
|
463
|
+
{
|
|
464
|
+
"items": {
|
|
465
|
+
"$ref": "#/$defs/AuthMethodEnum"
|
|
466
|
+
},
|
|
467
|
+
"type": "array"
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
"type": "null"
|
|
471
|
+
}
|
|
472
|
+
],
|
|
473
|
+
"default": null,
|
|
474
|
+
"description": "Supported authentication methods",
|
|
475
|
+
"title": "Auth Methods"
|
|
476
|
+
},
|
|
477
|
+
"connection_timeout_seconds": {
|
|
478
|
+
"anyOf": [
|
|
479
|
+
{
|
|
480
|
+
"type": "integer"
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
"type": "null"
|
|
484
|
+
}
|
|
485
|
+
],
|
|
486
|
+
"default": null,
|
|
487
|
+
"description": "Connection timeout in seconds",
|
|
488
|
+
"title": "Connection Timeout Seconds"
|
|
489
|
+
},
|
|
490
|
+
"content_filters": {
|
|
491
|
+
"anyOf": [
|
|
492
|
+
{
|
|
493
|
+
"items": {
|
|
494
|
+
"$ref": "#/$defs/ContentFilterEnum"
|
|
495
|
+
},
|
|
496
|
+
"type": "array"
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
"type": "null"
|
|
500
|
+
}
|
|
501
|
+
],
|
|
502
|
+
"default": null,
|
|
503
|
+
"description": "Active content filtering policies",
|
|
504
|
+
"title": "Content Filters"
|
|
505
|
+
},
|
|
506
|
+
"daily_quota": {
|
|
507
|
+
"anyOf": [
|
|
508
|
+
{
|
|
509
|
+
"type": "integer"
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
"type": "null"
|
|
513
|
+
}
|
|
514
|
+
],
|
|
515
|
+
"default": null,
|
|
516
|
+
"description": "Daily usage quota (requests, tokens, etc.)",
|
|
517
|
+
"title": "Daily Quota"
|
|
518
|
+
},
|
|
519
|
+
"input_languages": {
|
|
520
|
+
"anyOf": [
|
|
521
|
+
{
|
|
522
|
+
"items": {
|
|
523
|
+
"type": "string"
|
|
524
|
+
},
|
|
525
|
+
"type": "array"
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
"type": "null"
|
|
529
|
+
}
|
|
530
|
+
],
|
|
531
|
+
"default": null,
|
|
532
|
+
"description": "Supported input languages (ISO 639-1 codes)",
|
|
533
|
+
"title": "Input Languages"
|
|
534
|
+
},
|
|
535
|
+
"ip_whitelist_required": {
|
|
536
|
+
"anyOf": [
|
|
537
|
+
{
|
|
538
|
+
"type": "boolean"
|
|
539
|
+
},
|
|
540
|
+
{
|
|
541
|
+
"type": "null"
|
|
542
|
+
}
|
|
543
|
+
],
|
|
544
|
+
"default": null,
|
|
545
|
+
"description": "Whether IP whitelisting is required",
|
|
546
|
+
"title": "Ip Whitelist Required"
|
|
547
|
+
},
|
|
548
|
+
"maintenance_windows": {
|
|
549
|
+
"anyOf": [
|
|
550
|
+
{
|
|
551
|
+
"items": {
|
|
552
|
+
"type": "string"
|
|
553
|
+
},
|
|
554
|
+
"type": "array"
|
|
555
|
+
},
|
|
556
|
+
{
|
|
557
|
+
"type": "null"
|
|
558
|
+
}
|
|
559
|
+
],
|
|
560
|
+
"default": null,
|
|
561
|
+
"description": "Scheduled maintenance windows",
|
|
562
|
+
"title": "Maintenance Windows"
|
|
563
|
+
},
|
|
564
|
+
"max_batch_size": {
|
|
565
|
+
"anyOf": [
|
|
566
|
+
{
|
|
567
|
+
"type": "integer"
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
"type": "null"
|
|
571
|
+
}
|
|
572
|
+
],
|
|
573
|
+
"default": null,
|
|
574
|
+
"description": "Maximum number of items in batch requests",
|
|
575
|
+
"title": "Max Batch Size"
|
|
576
|
+
},
|
|
577
|
+
"max_concurrent_requests": {
|
|
578
|
+
"anyOf": [
|
|
579
|
+
{
|
|
580
|
+
"type": "integer"
|
|
581
|
+
},
|
|
582
|
+
{
|
|
583
|
+
"type": "null"
|
|
584
|
+
}
|
|
585
|
+
],
|
|
586
|
+
"default": null,
|
|
587
|
+
"description": "Maximum concurrent requests allowed",
|
|
588
|
+
"title": "Max Concurrent Requests"
|
|
589
|
+
},
|
|
590
|
+
"max_connections_per_ip": {
|
|
591
|
+
"anyOf": [
|
|
592
|
+
{
|
|
593
|
+
"type": "integer"
|
|
594
|
+
},
|
|
595
|
+
{
|
|
596
|
+
"type": "null"
|
|
597
|
+
}
|
|
598
|
+
],
|
|
599
|
+
"default": null,
|
|
600
|
+
"description": "Maximum connections per IP address",
|
|
601
|
+
"title": "Max Connections Per Ip"
|
|
602
|
+
},
|
|
603
|
+
"max_context_length": {
|
|
604
|
+
"anyOf": [
|
|
605
|
+
{
|
|
606
|
+
"type": "integer"
|
|
607
|
+
},
|
|
608
|
+
{
|
|
609
|
+
"type": "null"
|
|
610
|
+
}
|
|
611
|
+
],
|
|
612
|
+
"default": null,
|
|
613
|
+
"description": "Maximum context length in tokens",
|
|
614
|
+
"title": "Max Context Length"
|
|
615
|
+
},
|
|
616
|
+
"max_request_size_bytes": {
|
|
617
|
+
"anyOf": [
|
|
618
|
+
{
|
|
619
|
+
"type": "integer"
|
|
620
|
+
},
|
|
621
|
+
{
|
|
622
|
+
"type": "null"
|
|
623
|
+
}
|
|
624
|
+
],
|
|
625
|
+
"default": null,
|
|
626
|
+
"description": "Maximum request payload size in bytes",
|
|
627
|
+
"title": "Max Request Size Bytes"
|
|
628
|
+
},
|
|
629
|
+
"max_response_size_bytes": {
|
|
630
|
+
"anyOf": [
|
|
631
|
+
{
|
|
632
|
+
"type": "integer"
|
|
633
|
+
},
|
|
634
|
+
{
|
|
635
|
+
"type": "null"
|
|
636
|
+
}
|
|
637
|
+
],
|
|
638
|
+
"default": null,
|
|
639
|
+
"description": "Maximum response payload size in bytes",
|
|
640
|
+
"title": "Max Response Size Bytes"
|
|
641
|
+
},
|
|
642
|
+
"monthly_quota": {
|
|
643
|
+
"anyOf": [
|
|
644
|
+
{
|
|
645
|
+
"type": "integer"
|
|
646
|
+
},
|
|
647
|
+
{
|
|
648
|
+
"type": "null"
|
|
649
|
+
}
|
|
650
|
+
],
|
|
651
|
+
"default": null,
|
|
652
|
+
"description": "Monthly usage quota (requests, tokens, etc.)",
|
|
653
|
+
"title": "Monthly Quota"
|
|
654
|
+
},
|
|
655
|
+
"output_languages": {
|
|
656
|
+
"anyOf": [
|
|
657
|
+
{
|
|
658
|
+
"items": {
|
|
659
|
+
"type": "string"
|
|
660
|
+
},
|
|
661
|
+
"type": "array"
|
|
662
|
+
},
|
|
663
|
+
{
|
|
664
|
+
"type": "null"
|
|
665
|
+
}
|
|
666
|
+
],
|
|
667
|
+
"default": null,
|
|
668
|
+
"description": "Supported output languages (ISO 639-1 codes)",
|
|
669
|
+
"title": "Output Languages"
|
|
670
|
+
},
|
|
671
|
+
"overage_policy": {
|
|
672
|
+
"anyOf": [
|
|
673
|
+
{
|
|
674
|
+
"$ref": "#/$defs/OveragePolicyEnum"
|
|
675
|
+
},
|
|
676
|
+
{
|
|
677
|
+
"type": "null"
|
|
678
|
+
}
|
|
679
|
+
],
|
|
680
|
+
"default": null,
|
|
681
|
+
"description": "What happens when quota is exceeded"
|
|
682
|
+
},
|
|
683
|
+
"quota_reset_cycle": {
|
|
684
|
+
"anyOf": [
|
|
685
|
+
{
|
|
686
|
+
"$ref": "#/$defs/QuotaResetCycleEnum"
|
|
687
|
+
},
|
|
688
|
+
{
|
|
689
|
+
"type": "null"
|
|
690
|
+
}
|
|
691
|
+
],
|
|
692
|
+
"default": null,
|
|
693
|
+
"description": "How often quotas reset"
|
|
694
|
+
},
|
|
695
|
+
"quota_unit": {
|
|
696
|
+
"anyOf": [
|
|
697
|
+
{
|
|
698
|
+
"$ref": "#/$defs/RateLimitUnitEnum"
|
|
699
|
+
},
|
|
700
|
+
{
|
|
701
|
+
"type": "null"
|
|
702
|
+
}
|
|
703
|
+
],
|
|
704
|
+
"default": null,
|
|
705
|
+
"description": "Unit for quota limits"
|
|
706
|
+
},
|
|
707
|
+
"region_restrictions": {
|
|
708
|
+
"anyOf": [
|
|
709
|
+
{
|
|
710
|
+
"items": {
|
|
711
|
+
"type": "string"
|
|
712
|
+
},
|
|
713
|
+
"type": "array"
|
|
714
|
+
},
|
|
715
|
+
{
|
|
716
|
+
"type": "null"
|
|
717
|
+
}
|
|
718
|
+
],
|
|
719
|
+
"default": null,
|
|
720
|
+
"description": "Geographic restrictions (ISO country codes)",
|
|
721
|
+
"title": "Region Restrictions"
|
|
722
|
+
},
|
|
723
|
+
"response_time_sla_ms": {
|
|
724
|
+
"anyOf": [
|
|
725
|
+
{
|
|
726
|
+
"type": "integer"
|
|
727
|
+
},
|
|
728
|
+
{
|
|
729
|
+
"type": "null"
|
|
730
|
+
}
|
|
731
|
+
],
|
|
732
|
+
"default": null,
|
|
733
|
+
"description": "Response time SLA in milliseconds",
|
|
734
|
+
"title": "Response Time Sla Ms"
|
|
735
|
+
},
|
|
736
|
+
"timeout_seconds": {
|
|
737
|
+
"anyOf": [
|
|
738
|
+
{
|
|
739
|
+
"type": "integer"
|
|
740
|
+
},
|
|
741
|
+
{
|
|
742
|
+
"type": "null"
|
|
743
|
+
}
|
|
744
|
+
],
|
|
745
|
+
"default": null,
|
|
746
|
+
"description": "Request timeout in seconds",
|
|
747
|
+
"title": "Timeout Seconds"
|
|
748
|
+
},
|
|
749
|
+
"tls_version_min": {
|
|
750
|
+
"anyOf": [
|
|
751
|
+
{
|
|
752
|
+
"type": "string"
|
|
753
|
+
},
|
|
754
|
+
{
|
|
755
|
+
"type": "null"
|
|
756
|
+
}
|
|
757
|
+
],
|
|
758
|
+
"default": null,
|
|
759
|
+
"description": "Minimum TLS version required",
|
|
760
|
+
"title": "Tls Version Min"
|
|
761
|
+
},
|
|
762
|
+
"uptime_sla_percent": {
|
|
763
|
+
"anyOf": [
|
|
764
|
+
{
|
|
765
|
+
"type": "number"
|
|
766
|
+
},
|
|
767
|
+
{
|
|
768
|
+
"type": "null"
|
|
769
|
+
}
|
|
770
|
+
],
|
|
771
|
+
"default": null,
|
|
772
|
+
"description": "Uptime SLA percentage (e.g., 99.9)",
|
|
773
|
+
"title": "Uptime Sla Percent"
|
|
774
|
+
}
|
|
775
|
+
},
|
|
776
|
+
"title": "ServiceConstraints",
|
|
777
|
+
"type": "object"
|
|
778
|
+
},
|
|
779
|
+
"TimeWindowEnum": {
|
|
780
|
+
"enum": [
|
|
781
|
+
"second",
|
|
782
|
+
"minute",
|
|
783
|
+
"hour",
|
|
784
|
+
"day",
|
|
785
|
+
"month"
|
|
786
|
+
],
|
|
787
|
+
"title": "TimeWindowEnum",
|
|
788
|
+
"type": "string"
|
|
789
|
+
}
|
|
790
|
+
},
|
|
791
|
+
"additionalProperties": false,
|
|
792
|
+
"description": "Provider information for service providers (provider_v1 schema).\n\nExtends ProviderData with:\n- schema_version: Schema identifier for file validation\n- time_created: Timestamp for file creation\n- services_populator: How to automatically populate service data\n- provider_access_info: Parameters for accessing service provider\n- logo, terms_of_service: Convenience fields (converted to documents during import)\n- Typed Document model instead of dict for file validation\n- Field validators for name format",
|
|
793
|
+
"properties": {
|
|
794
|
+
"contact_email": {
|
|
795
|
+
"description": "Primary contact email for the provider",
|
|
796
|
+
"format": "email",
|
|
797
|
+
"title": "Contact Email",
|
|
798
|
+
"type": "string"
|
|
799
|
+
},
|
|
800
|
+
"description": {
|
|
801
|
+
"anyOf": [
|
|
802
|
+
{
|
|
803
|
+
"type": "string"
|
|
804
|
+
},
|
|
805
|
+
{
|
|
806
|
+
"type": "null"
|
|
807
|
+
}
|
|
808
|
+
],
|
|
809
|
+
"default": null,
|
|
810
|
+
"description": "Brief description of the provider",
|
|
811
|
+
"title": "Description"
|
|
812
|
+
},
|
|
813
|
+
"display_name": {
|
|
814
|
+
"anyOf": [
|
|
815
|
+
{
|
|
816
|
+
"maxLength": 200,
|
|
817
|
+
"type": "string"
|
|
818
|
+
},
|
|
819
|
+
{
|
|
820
|
+
"type": "null"
|
|
821
|
+
}
|
|
822
|
+
],
|
|
823
|
+
"default": null,
|
|
824
|
+
"description": "Human-readable provider name (e.g., 'Fireworks AI', 'Anthropic')",
|
|
825
|
+
"title": "Display Name"
|
|
826
|
+
},
|
|
827
|
+
"documents": {
|
|
828
|
+
"anyOf": [
|
|
829
|
+
{
|
|
830
|
+
"items": {
|
|
831
|
+
"$ref": "#/$defs/Document"
|
|
832
|
+
},
|
|
833
|
+
"type": "array"
|
|
834
|
+
},
|
|
835
|
+
{
|
|
836
|
+
"type": "null"
|
|
837
|
+
}
|
|
838
|
+
],
|
|
839
|
+
"default": null,
|
|
840
|
+
"description": "List of documents associated with the provider (e.g. logo)",
|
|
841
|
+
"title": "Documents"
|
|
842
|
+
},
|
|
843
|
+
"homepage": {
|
|
844
|
+
"description": "Provider's homepage URL",
|
|
845
|
+
"format": "uri",
|
|
846
|
+
"maxLength": 2083,
|
|
847
|
+
"minLength": 1,
|
|
848
|
+
"title": "Homepage",
|
|
849
|
+
"type": "string"
|
|
850
|
+
},
|
|
851
|
+
"logo": {
|
|
852
|
+
"anyOf": [
|
|
853
|
+
{
|
|
854
|
+
"type": "string"
|
|
855
|
+
},
|
|
856
|
+
{
|
|
857
|
+
"format": "uri",
|
|
858
|
+
"maxLength": 2083,
|
|
859
|
+
"minLength": 1,
|
|
860
|
+
"type": "string"
|
|
861
|
+
},
|
|
862
|
+
{
|
|
863
|
+
"type": "null"
|
|
864
|
+
}
|
|
865
|
+
],
|
|
866
|
+
"default": null,
|
|
867
|
+
"title": "Logo"
|
|
868
|
+
},
|
|
869
|
+
"name": {
|
|
870
|
+
"description": "Unique provider identifier (URL-friendly, e.g., 'fireworks', 'anthropic')",
|
|
871
|
+
"maxLength": 100,
|
|
872
|
+
"minLength": 2,
|
|
873
|
+
"title": "Name",
|
|
874
|
+
"type": "string"
|
|
875
|
+
},
|
|
876
|
+
"provider_access_info": {
|
|
877
|
+
"$ref": "#/$defs/AccessInterface",
|
|
878
|
+
"description": "Dictionary of upstream access interface"
|
|
879
|
+
},
|
|
880
|
+
"schema": {
|
|
881
|
+
"default": "provider_v1",
|
|
882
|
+
"description": "Schema identifier",
|
|
883
|
+
"title": "Schema",
|
|
884
|
+
"type": "string"
|
|
885
|
+
},
|
|
886
|
+
"secondary_contact_email": {
|
|
887
|
+
"anyOf": [
|
|
888
|
+
{
|
|
889
|
+
"format": "email",
|
|
890
|
+
"type": "string"
|
|
891
|
+
},
|
|
892
|
+
{
|
|
893
|
+
"type": "null"
|
|
894
|
+
}
|
|
895
|
+
],
|
|
896
|
+
"default": null,
|
|
897
|
+
"description": "Secondary contact email",
|
|
898
|
+
"title": "Secondary Contact Email"
|
|
899
|
+
},
|
|
900
|
+
"services_populator": {
|
|
901
|
+
"anyOf": [
|
|
902
|
+
{
|
|
903
|
+
"additionalProperties": true,
|
|
904
|
+
"type": "object"
|
|
905
|
+
},
|
|
906
|
+
{
|
|
907
|
+
"type": "null"
|
|
908
|
+
}
|
|
909
|
+
],
|
|
910
|
+
"default": null,
|
|
911
|
+
"title": "Services Populator"
|
|
912
|
+
},
|
|
913
|
+
"status": {
|
|
914
|
+
"$ref": "#/$defs/ProviderStatusEnum",
|
|
915
|
+
"default": "active",
|
|
916
|
+
"description": "Provider status: active, disabled, or draft (skip publish)"
|
|
917
|
+
},
|
|
918
|
+
"terms_of_service": {
|
|
919
|
+
"anyOf": [
|
|
920
|
+
{
|
|
921
|
+
"type": "string"
|
|
922
|
+
},
|
|
923
|
+
{
|
|
924
|
+
"format": "uri",
|
|
925
|
+
"maxLength": 2083,
|
|
926
|
+
"minLength": 1,
|
|
927
|
+
"type": "string"
|
|
928
|
+
},
|
|
929
|
+
{
|
|
930
|
+
"type": "null"
|
|
931
|
+
}
|
|
932
|
+
],
|
|
933
|
+
"default": null,
|
|
934
|
+
"description": "Either a path to a .md file or a URL to terms of service",
|
|
935
|
+
"title": "Terms Of Service"
|
|
936
|
+
},
|
|
937
|
+
"time_created": {
|
|
938
|
+
"format": "date-time",
|
|
939
|
+
"title": "Time Created",
|
|
940
|
+
"type": "string"
|
|
941
|
+
}
|
|
942
|
+
},
|
|
943
|
+
"required": [
|
|
944
|
+
"name",
|
|
945
|
+
"contact_email",
|
|
946
|
+
"homepage",
|
|
947
|
+
"time_created",
|
|
948
|
+
"provider_access_info"
|
|
949
|
+
],
|
|
950
|
+
"title": "ProviderV1",
|
|
951
|
+
"type": "object"
|
|
952
|
+
}
|