{"openapi":"3.1.0","info":{"title":"gerberize","version":"0.1.0"},"paths":{"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/me":{"get":{"summary":"Me","operationId":"me_v1_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/auth/device":{"post":{"summary":"Device","operationId":"device_v1_auth_device_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/auth/device/approve":{"post":{"summary":"Approve Device","operationId":"approve_device_v1_auth_device_approve_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceApproveBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/token":{"post":{"summary":"Device Token","operationId":"device_token_v1_auth_token_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceTokenBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/limits":{"get":{"summary":"Get Limits","operationId":"get_limits_v1_limits_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"put":{"summary":"Put Limits","operationId":"put_limits_v1_limits_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimitsBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/api-keys":{"get":{"summary":"Keys","operationId":"keys_v1_api_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"New Key","operationId":"new_key_v1_api_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NameBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/api-keys/{key_id}":{"delete":{"summary":"Revoke Key","operationId":"revoke_key_v1_api_keys__key_id__delete","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing":{"get":{"summary":"Billing","operationId":"billing_v1_billing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"put":{"summary":"Save Billing","operationId":"save_billing_v1_billing_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/setup":{"post":{"summary":"Setup Billing","operationId":"setup_billing_v1_billing_setup_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/projects":{"get":{"summary":"Projects","operationId":"projects_v1_projects_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Project","operationId":"project_v1_projects_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NameBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/uploads":{"post":{"summary":"Upload","operationId":"upload_v1_uploads_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_v1_uploads_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/jobs":{"get":{"summary":"List Jobs","operationId":"list_jobs_v1_jobs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Create Job","operationId":"create_job_v1_jobs_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/jobs/{job_id}":{"get":{"summary":"Get Job","operationId":"get_job_v1_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/quotes":{"post":{"summary":"Quotes","operationId":"quotes_v1_quotes_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/quotes/{quote_id}":{"get":{"summary":"Quote Detail","operationId":"quote_detail_v1_quotes__quote_id__get","parameters":[{"name":"quote_id","in":"path","required":true,"schema":{"type":"string","title":"Quote Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/fabs":{"get":{"summary":"Fabs","operationId":"fabs_v1_fabs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/orders":{"get":{"summary":"Orders","operationId":"orders_v1_orders_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Order","operationId":"order_v1_orders_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/orders/{order_id}":{"get":{"summary":"Order Detail","operationId":"order_detail_v1_orders__order_id__get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Refresh"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/approvals/{approval_id}":{"get":{"summary":"Approval","operationId":"approval_v1_approvals__approval_id__get","parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/approvals/{approval_id}/approve":{"post":{"summary":"Approve","operationId":"approve_v1_approvals__approval_id__approve_post","parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/waitlist":{"post":{"summary":"Waitlist","operationId":"waitlist_v1_waitlist_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaitlistBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/waitlist/export":{"get":{"summary":"Export Waitlist","operationId":"export_waitlist_v1_waitlist_export_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/webhooks/stripe":{"post":{"summary":"Stripe Webhook","operationId":"stripe_webhook_v1_webhooks_stripe_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/webhooks/fabs/{provider}":{"post":{"summary":"Fab Webhook","operationId":"fab_webhook_v1_webhooks_fabs__provider__post","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/config":{"get":{"summary":"Auth Config","operationId":"auth_config_v1_auth_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/auth/session":{"get":{"summary":"Auth Session","operationId":"auth_session_v1_auth_session_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/auth/google/start":{"get":{"summary":"Google Start","operationId":"google_start_v1_auth_google_start_get","parameters":[{"name":"return_to","in":"query","required":false,"schema":{"type":"string","default":"/dashboard/#account","title":"Return To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/google/callback":{"get":{"summary":"Google Callback","operationId":"google_callback_v1_auth_google_callback_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/account/google/link":{"post":{"summary":"Link Google","operationId":"link_google_v1_account_google_link_post","parameters":[{"name":"return_to","in":"query","required":false,"schema":{"type":"string","default":"/dashboard/#account","title":"Return To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/account":{"get":{"summary":"Account","operationId":"account_v1_account_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"patch":{"summary":"Update Account","operationId":"update_account_v1_account_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/account/sessions":{"get":{"summary":"Sessions","operationId":"sessions_v1_account_sessions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/account/sessions/{session_id}":{"delete":{"summary":"Revoke Session","operationId":"revoke_session_v1_account_sessions__session_id__delete","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/logout":{"post":{"summary":"Logout","operationId":"logout_v1_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/account/signout-all":{"post":{"summary":"Signout All","operationId":"signout_all_v1_account_signout_all_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/account/export":{"get":{"summary":"Export Account","operationId":"export_account_v1_account_export_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/account/deactivate":{"post":{"summary":"Deactivate","operationId":"deactivate_v1_account_deactivate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/subscription":{"get":{"summary":"Current","operationId":"current_v1_subscription_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/subscription/checkout":{"post":{"summary":"Checkout","operationId":"checkout_v1_subscription_checkout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmptyBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/subscription/portal":{"post":{"summary":"Portal","operationId":"portal_v1_subscription_portal_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmptyBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/subscription/invoices":{"get":{"summary":"Invoices","operationId":"invoices_v1_subscription_invoices_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/subscription/webhook":{"post":{"summary":"Webhook","operationId":"webhook_v1_subscription_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"BillingBody":{"properties":{"customer_id":{"type":"string","pattern":"^cus_[a-zA-Z0-9_]{1,180}$","title":"Customer Id"},"payment_method_id":{"type":"string","pattern":"^pm_[a-zA-Z0-9_]{1,180}$","title":"Payment Method Id"}},"additionalProperties":false,"type":"object","required":["customer_id","payment_method_id"],"title":"BillingBody"},"Body_upload_v1_uploads_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}},"type":"object","required":["file"],"title":"Body_upload_v1_uploads_post"},"DeactivateBody":{"properties":{"confirmation":{"type":"string","pattern":"^DEACTIVATE$","title":"Confirmation"}},"additionalProperties":false,"type":"object","required":["confirmation"],"title":"DeactivateBody"},"DeviceApproveBody":{"properties":{"user_code":{"type":"string","maxLength":12,"minLength":8,"title":"User Code"}},"additionalProperties":false,"type":"object","required":["user_code"],"title":"DeviceApproveBody"},"DeviceTokenBody":{"properties":{"device_code":{"type":"string","maxLength":200,"minLength":20,"title":"Device Code"}},"additionalProperties":false,"type":"object","required":["device_code"],"title":"DeviceTokenBody"},"EmptyBody":{"properties":{},"additionalProperties":false,"type":"object","title":"EmptyBody"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"JobBody":{"properties":{"command":{"type":"string","enum":["validate","simulate"],"title":"Command"},"upload_id":{"type":"string","maxLength":64,"minLength":1,"title":"Upload Id"},"options":{"additionalProperties":true,"type":"object","title":"Options"}},"additionalProperties":false,"type":"object","required":["command","upload_id"],"title":"JobBody"},"LimitsBody":{"properties":{"per_order_cents":{"anyOf":[{"type":"integer","maximum":100000000.0,"minimum":0.0},{"type":"null"}],"title":"Per Order Cents"},"monthly_cents":{"anyOf":[{"type":"integer","maximum":1000000000.0,"minimum":0.0},{"type":"null"}],"title":"Monthly Cents"},"approval_threshold_cents":{"anyOf":[{"type":"integer","maximum":100000000.0,"minimum":0.0},{"type":"null"}],"title":"Approval Threshold Cents"}},"additionalProperties":false,"type":"object","title":"LimitsBody"},"NameBody":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name"}},"additionalProperties":false,"type":"object","required":["name"],"title":"NameBody"},"OrderBody":{"properties":{"quote_id":{"type":"string","maxLength":64,"minLength":1,"title":"Quote Id"},"idempotency_key":{"type":"string","maxLength":200,"minLength":8,"title":"Idempotency Key"},"approval_token":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Approval Token"}},"additionalProperties":false,"type":"object","required":["quote_id","idempotency_key"],"title":"OrderBody"},"Preferences":{"properties":{"theme":{"type":"string","pattern":"^(system|light|dark)$","title":"Theme","default":"system"},"timezone":{"type":"string","maxLength":100,"minLength":1,"title":"Timezone","default":"UTC"}},"additionalProperties":false,"type":"object","title":"Preferences"},"ProfileBody":{"properties":{"display_name":{"anyOf":[{"type":"string","maxLength":100,"minLength":1},{"type":"null"}],"title":"Display Name"},"preferences":{"anyOf":[{"$ref":"#/components/schemas/Preferences"},{"type":"null"}]}},"additionalProperties":false,"type":"object","title":"ProfileBody"},"QuoteBody":{"properties":{"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"upload_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Upload Id"},"quantity":{"type":"integer","maximum":100000.0,"minimum":1.0,"title":"Quantity","default":5},"width_mm":{"type":"number","maximum":2000.0,"exclusiveMinimum":0.0,"title":"Width Mm","default":50},"height_mm":{"type":"number","maximum":2000.0,"exclusiveMinimum":0.0,"title":"Height Mm","default":50},"layers":{"type":"integer","maximum":32.0,"minimum":1.0,"title":"Layers","default":2},"providers":{"items":{"type":"string","enum":["macrofab","pcbway","oshpark","partner-fab","sandbox"]},"type":"array","maxItems":5,"minItems":1,"title":"Providers","default":["macrofab","pcbway","oshpark","partner-fab"]},"sort":{"type":"string","enum":["cost","speed","domestic"],"title":"Sort","default":"cost"}},"additionalProperties":false,"type":"object","title":"QuoteBody"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WaitlistBody":{"properties":{"email":{"type":"string","maxLength":254,"minLength":3,"title":"Email"}},"additionalProperties":false,"type":"object","required":["email"],"title":"WaitlistBody"}}}}