kscale 0.0.13__cp311-cp311-macosx_11_0_arm64.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.
kscale/web/gen/api.py ADDED
@@ -0,0 +1,612 @@
1
+ """Auto-generated by generate.sh script."""
2
+
3
+ # generated by datamodel-codegen:
4
+ # filename: openapi.json
5
+ # timestamp: 2024-11-22T23:25:21+00:00
6
+
7
+ from __future__ import annotations
8
+
9
+ from enum import Enum
10
+ from typing import Any, Dict, List, Optional, Union
11
+
12
+ from pydantic import BaseModel, EmailStr, Field
13
+
14
+
15
+ class ArtifactUrls(BaseModel):
16
+ small: Optional[str] = Field(None, title="Small")
17
+ large: str = Field(..., title="Large")
18
+ expires_at: int = Field(..., title="Expires At")
19
+
20
+
21
+ class AuthResponse(BaseModel):
22
+ api_key: str = Field(..., title="Api Key")
23
+
24
+
25
+ class InventoryType(Enum):
26
+ finite = "finite"
27
+ preorder = "preorder"
28
+
29
+
30
+ class BodyAddListingListingsAddPost(BaseModel):
31
+ name: str = Field(..., title="Name")
32
+ description: Optional[str] = Field(None, title="Description")
33
+ child_ids: Optional[str] = Field("", title="Child Ids")
34
+ slug: str = Field(..., title="Slug")
35
+ price_amount: Optional[str] = Field(None, title="Price Amount")
36
+ currency: Optional[str] = Field("usd", title="Currency")
37
+ inventory_type: Optional[InventoryType] = Field("finite", title="Inventory Type")
38
+ inventory_quantity: Optional[str] = Field(None, title="Inventory Quantity")
39
+ preorder_deposit_amount: Optional[str] = Field(None, title="Preorder Deposit Amount")
40
+ preorder_release_date: Optional[str] = Field(None, title="Preorder Release Date")
41
+ photos: Optional[List[bytes]] = Field(None, title="Photos")
42
+
43
+
44
+ class BodyCreateConnectAccountSessionStripeConnectAccountSessionPost(BaseModel):
45
+ account_id: str = Field(..., title="Account Id")
46
+
47
+
48
+ class BodyPullOnshapeDocumentOnshapePullListingIdGet(BaseModel):
49
+ suffix_to_joint_effort: Optional[Dict[str, float]] = Field(None, title="Suffix To Joint Effort")
50
+ suffix_to_joint_velocity: Optional[Dict[str, float]] = Field(None, title="Suffix To Joint Velocity")
51
+
52
+
53
+ class BodyUploadArtifactsUploadListingIdPost(BaseModel):
54
+ files: List[bytes] = Field(..., title="Files")
55
+
56
+
57
+ class CancelReason(BaseModel):
58
+ reason: str = Field(..., title="Reason")
59
+ details: str = Field(..., title="Details")
60
+
61
+
62
+ class ClientIdResponse(BaseModel):
63
+ client_id: str = Field(..., title="Client Id")
64
+
65
+
66
+ class CreateCheckoutSessionRequest(BaseModel):
67
+ listing_id: str = Field(..., title="Listing Id")
68
+ stripe_product_id: str = Field(..., title="Stripe Product Id")
69
+ cancel_url: str = Field(..., title="Cancel Url")
70
+
71
+
72
+ class CreateCheckoutSessionResponse(BaseModel):
73
+ session_id: str = Field(..., title="Session Id")
74
+ stripe_connect_account_id: str = Field(..., title="Stripe Connect Account Id")
75
+
76
+
77
+ class CreateConnectAccountResponse(BaseModel):
78
+ account_id: str = Field(..., title="Account Id")
79
+
80
+
81
+ class CreateRefundsRequest(BaseModel):
82
+ payment_intent_id: str = Field(..., title="Payment Intent Id")
83
+ cancel_reason: CancelReason
84
+ amount: int = Field(..., title="Amount")
85
+
86
+
87
+ class CreateRobotRequest(BaseModel):
88
+ listing_id: str = Field(..., title="Listing Id")
89
+ name: str = Field(..., title="Name")
90
+ description: Optional[str] = Field(None, title="Description")
91
+ order_id: Optional[str] = Field(None, title="Order Id")
92
+
93
+
94
+ class DeleteTestAccountsResponse(BaseModel):
95
+ success: bool = Field(..., title="Success")
96
+ deleted_accounts: List[str] = Field(..., title="Deleted Accounts")
97
+ count: int = Field(..., title="Count")
98
+
99
+
100
+ class DeleteTokenResponse(BaseModel):
101
+ message: str = Field(..., title="Message")
102
+
103
+
104
+ class EmailSignUpRequest(BaseModel):
105
+ email: EmailStr = Field(..., title="Email")
106
+
107
+
108
+ class EmailSignUpResponse(BaseModel):
109
+ message: str = Field(..., title="Message")
110
+
111
+
112
+ class FeaturedListingsResponse(BaseModel):
113
+ listing_ids: List[str] = Field(..., title="Listing Ids")
114
+
115
+
116
+ class GetTokenResponse(BaseModel):
117
+ id: str = Field(..., title="Id")
118
+ email: str = Field(..., title="Email")
119
+
120
+
121
+ class GithubAuthRequest(BaseModel):
122
+ code: str = Field(..., title="Code")
123
+
124
+
125
+ class GithubAuthResponse(BaseModel):
126
+ api_key: str = Field(..., title="Api Key")
127
+
128
+
129
+ class GoogleLogin(BaseModel):
130
+ token: str = Field(..., title="Token")
131
+
132
+
133
+ class KRec(BaseModel):
134
+ id: str = Field(..., title="Id")
135
+ user_id: str = Field(..., title="User Id")
136
+ robot_id: str = Field(..., title="Robot Id")
137
+ created_at: int = Field(..., title="Created At")
138
+ name: str = Field(..., title="Name")
139
+ description: Optional[str] = Field(None, title="Description")
140
+
141
+
142
+ class KRecUrls(BaseModel):
143
+ url: str = Field(..., title="Url")
144
+ filename: str = Field(..., title="Filename")
145
+ expires_at: int = Field(..., title="Expires At")
146
+ checksum: Optional[str] = Field(None, title="Checksum")
147
+
148
+
149
+ class Permission(Enum):
150
+ read = "read"
151
+ write = "write"
152
+ admin = "admin"
153
+
154
+
155
+ class KeysResponseItem(BaseModel):
156
+ token: str = Field(..., title="Token")
157
+ permissions: Optional[List[Permission]] = Field(..., title="Permissions")
158
+
159
+
160
+ class ListKeysResponse(BaseModel):
161
+ keys: List[KeysResponseItem] = Field(..., title="Keys")
162
+
163
+
164
+ class Listing(BaseModel):
165
+ id: str = Field(..., title="Id")
166
+ user_id: str = Field(..., title="User Id")
167
+ created_at: int = Field(..., title="Created At")
168
+ updated_at: int = Field(..., title="Updated At")
169
+ name: str = Field(..., title="Name")
170
+ slug: str = Field(..., title="Slug")
171
+ child_ids: List[str] = Field(..., title="Child Ids")
172
+ description: Optional[str] = Field(None, title="Description")
173
+ onshape_url: Optional[str] = Field(None, title="Onshape Url")
174
+ views: Optional[int] = Field(0, title="Views")
175
+ score: Optional[int] = Field(0, title="Score")
176
+ price_amount: Optional[int] = Field(None, title="Price Amount")
177
+ currency: Optional[str] = Field("usd", title="Currency")
178
+ stripe_product_id: Optional[str] = Field(None, title="Stripe Product Id")
179
+ stripe_price_id: Optional[str] = Field(None, title="Stripe Price Id")
180
+ preorder_deposit_amount: Optional[int] = Field(None, title="Preorder Deposit Amount")
181
+ stripe_preorder_deposit_id: Optional[str] = Field(None, title="Stripe Preorder Deposit Id")
182
+ inventory_type: Optional[InventoryType] = Field("finite", title="Inventory Type")
183
+ inventory_quantity: Optional[int] = Field(None, title="Inventory Quantity")
184
+ preorder_release_date: Optional[int] = Field(None, title="Preorder Release Date")
185
+
186
+
187
+ class ListingInfo(BaseModel):
188
+ id: str = Field(..., title="Id")
189
+ username: str = Field(..., title="Username")
190
+ slug: Optional[str] = Field(..., title="Slug")
191
+
192
+
193
+ class LoginRequest(BaseModel):
194
+ email: EmailStr = Field(..., title="Email")
195
+ password: str = Field(..., title="Password")
196
+
197
+
198
+ class LoginResponse(BaseModel):
199
+ user_id: str = Field(..., title="User Id")
200
+ token: str = Field(..., title="Token")
201
+
202
+
203
+ class Permission1(Enum):
204
+ is_admin = "is_admin"
205
+ is_mod = "is_mod"
206
+ is_content_manager = "is_content_manager"
207
+
208
+
209
+ class NewKeyRequest(BaseModel):
210
+ readonly: Optional[bool] = Field(True, title="Readonly")
211
+
212
+
213
+ class NewKeyResponse(BaseModel):
214
+ user_id: str = Field(..., title="User Id")
215
+ key: KeysResponseItem
216
+
217
+
218
+ class NewListingResponse(BaseModel):
219
+ listing_id: str = Field(..., title="Listing Id")
220
+ username: str = Field(..., title="Username")
221
+ slug: str = Field(..., title="Slug")
222
+
223
+
224
+ class Status(Enum):
225
+ processing = "processing"
226
+ in_development = "in_development"
227
+ being_assembled = "being_assembled"
228
+ shipped = "shipped"
229
+ delivered = "delivered"
230
+ preorder_placed = "preorder_placed"
231
+ awaiting_final_payment = "awaiting_final_payment"
232
+ cancelled = "cancelled"
233
+ refunded = "refunded"
234
+
235
+
236
+ class Order(BaseModel):
237
+ id: str = Field(..., title="Id")
238
+ user_id: str = Field(..., title="User Id")
239
+ listing_id: str = Field(..., title="Listing Id")
240
+ user_email: str = Field(..., title="User Email")
241
+ created_at: int = Field(..., title="Created At")
242
+ updated_at: int = Field(..., title="Updated At")
243
+ status: Status = Field(..., title="Status")
244
+ price_amount: int = Field(..., title="Price Amount")
245
+ currency: str = Field(..., title="Currency")
246
+ quantity: int = Field(..., title="Quantity")
247
+ stripe_checkout_session_id: str = Field(..., title="Stripe Checkout Session Id")
248
+ stripe_connect_account_id: str = Field(..., title="Stripe Connect Account Id")
249
+ stripe_product_id: str = Field(..., title="Stripe Product Id")
250
+ stripe_price_id: str = Field(..., title="Stripe Price Id")
251
+ stripe_payment_intent_id: str = Field(..., title="Stripe Payment Intent Id")
252
+ preorder_release_date: Optional[int] = Field(None, title="Preorder Release Date")
253
+ preorder_deposit_amount: Optional[int] = Field(None, title="Preorder Deposit Amount")
254
+ stripe_preorder_deposit_id: Optional[str] = Field(None, title="Stripe Preorder Deposit Id")
255
+ inventory_type: InventoryType = Field(..., title="Inventory Type")
256
+ final_payment_checkout_session_id: Optional[str] = Field(None, title="Final Payment Checkout Session Id")
257
+ final_payment_intent_id: Optional[str] = Field(None, title="Final Payment Intent Id")
258
+ final_payment_date: Optional[int] = Field(None, title="Final Payment Date")
259
+ shipping_name: Optional[str] = Field(None, title="Shipping Name")
260
+ shipping_address_line1: Optional[str] = Field(None, title="Shipping Address Line1")
261
+ shipping_address_line2: Optional[str] = Field(None, title="Shipping Address Line2")
262
+ shipping_city: Optional[str] = Field(None, title="Shipping City")
263
+ shipping_state: Optional[str] = Field(None, title="Shipping State")
264
+ shipping_postal_code: Optional[str] = Field(None, title="Shipping Postal Code")
265
+ shipping_country: Optional[str] = Field(None, title="Shipping Country")
266
+ shipped_date: Optional[int] = Field(None, title="Shipped Date")
267
+ stripe_refund_id: Optional[str] = Field(None, title="Stripe Refund Id")
268
+ delivered_date: Optional[int] = Field(None, title="Delivered Date")
269
+ cancelled_date: Optional[int] = Field(None, title="Cancelled Date")
270
+ refunded_date: Optional[int] = Field(None, title="Refunded Date")
271
+
272
+
273
+ class PresignedUrlResponse(BaseModel):
274
+ upload_url: str = Field(..., title="Upload Url")
275
+ artifact_id: str = Field(..., title="Artifact Id")
276
+
277
+
278
+ class ProcessPreorderResponse(BaseModel):
279
+ status: str = Field(..., title="Status")
280
+ checkout_session: Dict[str, Any] = Field(..., title="Checkout Session")
281
+
282
+
283
+ class ProductInfo(BaseModel):
284
+ id: str = Field(..., title="Id")
285
+ name: str = Field(..., title="Name")
286
+ description: Optional[str] = Field(..., title="Description")
287
+ images: List[str] = Field(..., title="Images")
288
+ metadata: Dict[str, str] = Field(..., title="Metadata")
289
+ active: bool = Field(..., title="Active")
290
+
291
+
292
+ class ProductResponse(BaseModel):
293
+ id: str = Field(..., title="Id")
294
+ name: str = Field(..., title="Name")
295
+ description: Optional[str] = Field(..., title="Description")
296
+ images: List[str] = Field(..., title="Images")
297
+ metadata: Dict[str, str] = Field(..., title="Metadata")
298
+ active: bool = Field(..., title="Active")
299
+
300
+
301
+ class PublicUserInfoResponseItem(BaseModel):
302
+ id: str = Field(..., title="Id")
303
+ email: str = Field(..., title="Email")
304
+ username: str = Field(..., title="Username")
305
+ permissions: Optional[List[Permission1]] = Field(None, title="Permissions")
306
+ created_at: Optional[int] = Field(None, title="Created At")
307
+ updated_at: Optional[int] = Field(None, title="Updated At")
308
+ first_name: Optional[str] = Field(None, title="First Name")
309
+ last_name: Optional[str] = Field(None, title="Last Name")
310
+ name: Optional[str] = Field(None, title="Name")
311
+ bio: Optional[str] = Field(None, title="Bio")
312
+
313
+
314
+ class PublicUsersInfoResponse(BaseModel):
315
+ users: List[PublicUserInfoResponseItem] = Field(..., title="Users")
316
+
317
+
318
+ class Robot(BaseModel):
319
+ id: str = Field(..., title="Id")
320
+ user_id: str = Field(..., title="User Id")
321
+ listing_id: str = Field(..., title="Listing Id")
322
+ name: str = Field(..., title="Name")
323
+ description: Optional[str] = Field(None, title="Description")
324
+ created_at: int = Field(..., title="Created At")
325
+ updated_at: int = Field(..., title="Updated At")
326
+ order_id: Optional[str] = Field(None, title="Order Id")
327
+
328
+
329
+ class RobotURDFResponse(BaseModel):
330
+ urdf_url: Optional[str] = Field(..., title="Urdf Url")
331
+
332
+
333
+ class SetContentManagerRequest(BaseModel):
334
+ user_id: str = Field(..., title="User Id")
335
+ is_content_manager: bool = Field(..., title="Is Content Manager")
336
+
337
+
338
+ class SetModeratorRequest(BaseModel):
339
+ user_id: str = Field(..., title="User Id")
340
+ is_mod: bool = Field(..., title="Is Mod")
341
+
342
+
343
+ class SetRequest(BaseModel):
344
+ onshape_url: Optional[str] = Field(..., title="Onshape Url")
345
+
346
+
347
+ class ArtifactType(Enum):
348
+ image = "image"
349
+
350
+
351
+ class ArtifactType1(Enum):
352
+ kernel = "kernel"
353
+
354
+
355
+ class ArtifactType2(Enum):
356
+ urdf = "urdf"
357
+ mjcf = "mjcf"
358
+
359
+
360
+ class ArtifactType3(Enum):
361
+ stl = "stl"
362
+ obj = "obj"
363
+ dae = "dae"
364
+ ply = "ply"
365
+
366
+
367
+ class ArtifactType4(Enum):
368
+ tgz = "tgz"
369
+ zip = "zip"
370
+
371
+
372
+ class SingleArtifactResponse(BaseModel):
373
+ artifact_id: str = Field(..., title="Artifact Id")
374
+ listing_id: str = Field(..., title="Listing Id")
375
+ username: str = Field(..., title="Username")
376
+ slug: str = Field(..., title="Slug")
377
+ name: str = Field(..., title="Name")
378
+ artifact_type: Union[ArtifactType, ArtifactType1, ArtifactType2, ArtifactType3, ArtifactType4] = Field(
379
+ ..., title="Artifact Type"
380
+ )
381
+ description: Optional[str] = Field(..., title="Description")
382
+ timestamp: int = Field(..., title="Timestamp")
383
+ urls: ArtifactUrls
384
+ is_main: Optional[bool] = Field(False, title="Is Main")
385
+ can_edit: Optional[bool] = Field(False, title="Can Edit")
386
+ size: Optional[int] = Field(None, title="Size")
387
+
388
+
389
+ class SingleKRecResponse(BaseModel):
390
+ id: str = Field(..., title="Id")
391
+ name: str = Field(..., title="Name")
392
+ created_at: int = Field(..., title="Created At")
393
+ user_id: str = Field(..., title="User Id")
394
+ robot_id: str = Field(..., title="Robot Id")
395
+ type: Optional[str] = Field("KRec", title="Type")
396
+ urls: Optional[KRecUrls] = None
397
+ size: Optional[int] = Field(None, title="Size")
398
+
399
+
400
+ class SingleRobotResponse(BaseModel):
401
+ robot_id: str = Field(..., title="Robot Id")
402
+ user_id: str = Field(..., title="User Id")
403
+ listing_id: str = Field(..., title="Listing Id")
404
+ name: str = Field(..., title="Name")
405
+ username: str = Field(..., title="Username")
406
+ slug: str = Field(..., title="Slug")
407
+ description: Optional[str] = Field(None, title="Description")
408
+ order_id: Optional[str] = Field(None, title="Order Id")
409
+ created_at: int = Field(..., title="Created At")
410
+
411
+
412
+ class SortOption(Enum):
413
+ newest = "newest"
414
+ most_viewed = "most_viewed"
415
+ most_upvoted = "most_upvoted"
416
+
417
+
418
+ class UpdateArtifactRequest(BaseModel):
419
+ name: Optional[str] = Field(None, title="Name")
420
+ description: Optional[str] = Field(None, title="Description")
421
+
422
+
423
+ class UpdateListingRequest(BaseModel):
424
+ name: Optional[str] = Field(None, title="Name")
425
+ child_ids: Optional[List[str]] = Field(None, title="Child Ids")
426
+ description: Optional[str] = Field(None, title="Description")
427
+ tags: Optional[List[str]] = Field(None, title="Tags")
428
+ onshape_url: Optional[str] = Field(None, title="Onshape Url")
429
+ slug: Optional[str] = Field(None, title="Slug")
430
+ stripe_product_id: Optional[str] = Field(None, title="Stripe Product Id")
431
+ stripe_price_id: Optional[str] = Field(None, title="Stripe Price Id")
432
+ stripe_deposit_price_id: Optional[str] = Field(None, title="Stripe Deposit Price Id")
433
+ price_amount: Optional[int] = Field(None, title="Price Amount")
434
+ preorder_release_date: Optional[int] = Field(None, title="Preorder Release Date")
435
+ preorder_deposit_amount: Optional[int] = Field(None, title="Preorder Deposit Amount")
436
+ stripe_preorder_deposit_id: Optional[str] = Field(None, title="Stripe Preorder Deposit Id")
437
+ inventory_type: Optional[InventoryType] = Field(None, title="Inventory Type")
438
+ inventory_quantity: Optional[int] = Field(None, title="Inventory Quantity")
439
+
440
+
441
+ class UpdateOrderAddressRequest(BaseModel):
442
+ shipping_name: str = Field(..., title="Shipping Name")
443
+ shipping_address_line1: str = Field(..., title="Shipping Address Line1")
444
+ shipping_address_line2: Optional[str] = Field(..., title="Shipping Address Line2")
445
+ shipping_city: str = Field(..., title="Shipping City")
446
+ shipping_state: str = Field(..., title="Shipping State")
447
+ shipping_postal_code: str = Field(..., title="Shipping Postal Code")
448
+ shipping_country: str = Field(..., title="Shipping Country")
449
+
450
+
451
+ class UpdateOrderStatusRequest(BaseModel):
452
+ status: Status = Field(..., title="Status")
453
+
454
+
455
+ class UpdateRobotRequest(BaseModel):
456
+ name: Optional[str] = Field(None, title="Name")
457
+ description: Optional[str] = Field(None, title="Description")
458
+ order_id: Optional[str] = Field(None, title="Order Id")
459
+
460
+
461
+ class UpdateUserRequest(BaseModel):
462
+ email: Optional[str] = Field(None, title="Email")
463
+ password: Optional[str] = Field(None, title="Password")
464
+ github_id: Optional[str] = Field(None, title="Github Id")
465
+ google_id: Optional[str] = Field(None, title="Google Id")
466
+ first_name: Optional[str] = Field(None, title="First Name")
467
+ last_name: Optional[str] = Field(None, title="Last Name")
468
+ name: Optional[str] = Field(None, title="Name")
469
+ bio: Optional[str] = Field(None, title="Bio")
470
+
471
+
472
+ class UpdateUsernameRequest(BaseModel):
473
+ new_username: str = Field(..., title="New Username")
474
+
475
+
476
+ class UploadArtifactResponse(BaseModel):
477
+ artifacts: List[SingleArtifactResponse] = Field(..., title="Artifacts")
478
+
479
+
480
+ class UploadKRecRequest(BaseModel):
481
+ name: str = Field(..., title="Name")
482
+ robot_id: str = Field(..., title="Robot Id")
483
+ description: Optional[str] = Field(None, title="Description")
484
+
485
+
486
+ class UserInfoResponseItem(BaseModel):
487
+ id: str = Field(..., title="Id")
488
+ email: str = Field(..., title="Email")
489
+
490
+
491
+ class UserSignup(BaseModel):
492
+ signup_token_id: str = Field(..., title="Signup Token Id")
493
+ email: str = Field(..., title="Email")
494
+ password: str = Field(..., title="Password")
495
+
496
+
497
+ class UserStripeConnect(BaseModel):
498
+ account_id: str = Field(..., title="Account Id")
499
+ onboarding_completed: bool = Field(..., title="Onboarding Completed")
500
+
501
+
502
+ class ValidationError(BaseModel):
503
+ loc: List[Union[str, int]] = Field(..., title="Location")
504
+ msg: str = Field(..., title="Message")
505
+ type: str = Field(..., title="Error Type")
506
+
507
+
508
+ class DumpListingsResponse(BaseModel):
509
+ listings: List[Listing] = Field(..., title="Listings")
510
+
511
+
512
+ class GetListingResponse(BaseModel):
513
+ id: str = Field(..., title="Id")
514
+ name: str = Field(..., title="Name")
515
+ description: Optional[str] = Field(..., title="Description")
516
+ creator_id: Optional[str] = Field(..., title="Creator Id")
517
+ creator_name: Optional[str] = Field(..., title="Creator Name")
518
+ username: Optional[str] = Field(..., title="Username")
519
+ slug: Optional[str] = Field(..., title="Slug")
520
+ score: int = Field(..., title="Score")
521
+ views: int = Field(..., title="Views")
522
+ created_at: int = Field(..., title="Created At")
523
+ artifacts: List[SingleArtifactResponse] = Field(..., title="Artifacts")
524
+ can_edit: bool = Field(..., title="Can Edit")
525
+ user_vote: Optional[bool] = Field(..., title="User Vote")
526
+ onshape_url: Optional[str] = Field(..., title="Onshape Url")
527
+ is_featured: bool = Field(..., title="Is Featured")
528
+ currency: Optional[str] = Field(None, title="Currency")
529
+ price_amount: Optional[int] = Field(None, title="Price Amount")
530
+ stripe_product_id: Optional[str] = Field(None, title="Stripe Product Id")
531
+ stripe_price_id: Optional[str] = Field(None, title="Stripe Price Id")
532
+ preorder_deposit_amount: Optional[int] = Field(None, title="Preorder Deposit Amount")
533
+ stripe_preorder_deposit_id: Optional[str] = Field(None, title="Stripe Preorder Deposit Id")
534
+ preorder_release_date: Optional[int] = Field(None, title="Preorder Release Date")
535
+ inventory_type: Optional[str] = Field(None, title="Inventory Type")
536
+ inventory_quantity: Optional[int] = Field(None, title="Inventory Quantity")
537
+
538
+
539
+ class HTTPValidationError(BaseModel):
540
+ detail: Optional[List[ValidationError]] = Field(None, title="Detail")
541
+
542
+
543
+ class ListArtifactsResponse(BaseModel):
544
+ artifacts: List[SingleArtifactResponse] = Field(..., title="Artifacts")
545
+
546
+
547
+ class ListListingsResponse(BaseModel):
548
+ listings: List[ListingInfo] = Field(..., title="Listings")
549
+ has_next: Optional[bool] = Field(False, title="Has Next")
550
+
551
+
552
+ class ListingInfoResponse(BaseModel):
553
+ id: str = Field(..., title="Id")
554
+ name: str = Field(..., title="Name")
555
+ slug: Optional[str] = Field(..., title="Slug")
556
+ username: Optional[str] = Field(..., title="Username")
557
+ description: Optional[str] = Field(..., title="Description")
558
+ child_ids: List[str] = Field(..., title="Child Ids")
559
+ artifacts: List[SingleArtifactResponse] = Field(..., title="Artifacts")
560
+ onshape_url: Optional[str] = Field(..., title="Onshape Url")
561
+ created_at: int = Field(..., title="Created At")
562
+ views: int = Field(..., title="Views")
563
+ score: int = Field(..., title="Score")
564
+ user_vote: Optional[bool] = Field(..., title="User Vote")
565
+ price_amount: Optional[int] = Field(..., title="Price Amount")
566
+ currency: Optional[str] = Field(..., title="Currency")
567
+ inventory_type: Optional[InventoryType] = Field(..., title="Inventory Type")
568
+ inventory_quantity: Optional[int] = Field(..., title="Inventory Quantity")
569
+
570
+
571
+ class MyUserInfoResponse(BaseModel):
572
+ user_id: str = Field(..., title="User Id")
573
+ email: str = Field(..., title="Email")
574
+ github_id: Optional[str] = Field(..., title="Github Id")
575
+ google_id: Optional[str] = Field(..., title="Google Id")
576
+ permissions: Optional[List[Permission1]] = Field(..., title="Permissions")
577
+ first_name: Optional[str] = Field(..., title="First Name")
578
+ last_name: Optional[str] = Field(..., title="Last Name")
579
+ name: Optional[str] = Field(..., title="Name")
580
+ bio: Optional[str] = Field(..., title="Bio")
581
+ stripe_connect: Optional[UserStripeConnect]
582
+
583
+
584
+ class OrderWithProduct(BaseModel):
585
+ order: Order
586
+ product: Optional[ProductInfo]
587
+
588
+
589
+ class RobotListResponse(BaseModel):
590
+ robots: List[SingleRobotResponse] = Field(..., title="Robots")
591
+
592
+
593
+ class UserPublic(BaseModel):
594
+ id: str = Field(..., title="Id")
595
+ email: str = Field(..., title="Email")
596
+ username: str = Field(..., title="Username")
597
+ permissions: Optional[List[Permission1]] = Field(None, title="Permissions")
598
+ created_at: int = Field(..., title="Created At")
599
+ updated_at: Optional[int] = Field(None, title="Updated At")
600
+ first_name: Optional[str] = Field(None, title="First Name")
601
+ last_name: Optional[str] = Field(None, title="Last Name")
602
+ name: Optional[str] = Field(None, title="Name")
603
+ bio: Optional[str] = Field(None, title="Bio")
604
+ stripe_connect: Optional[UserStripeConnect] = None
605
+
606
+
607
+ class AdminOrdersResponse(BaseModel):
608
+ orders: List[OrderWithProduct] = Field(..., title="Orders")
609
+
610
+
611
+ class GetBatchListingsResponse(BaseModel):
612
+ listings: List[ListingInfoResponse] = Field(..., title="Listings")