{"openapi":"3.1.0","info":{"title":"Arrakis Control Plane API","description":"Neocloud control plane aggregating multiple upstream GPU clouds behind one API-token-authenticated REST API.","version":"0.1.0"},"paths":{"/v1/tenants":{"post":{"tags":["tenants"],"summary":"Create Tenant","operationId":"create_tenant_v1_tenants_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tokens":{"post":{"tags":["tenants"],"summary":"Create Token","operationId":"create_token_v1_tokens_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenCreatedOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["tenants"],"summary":"List Tokens","operationId":"list_tokens_v1_tokens_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TokenOut"},"title":"Response List Tokens V1 Tokens Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tokens/self":{"get":{"tags":["tenants"],"summary":"Token Self","description":"The calling token's scopes and spend cap. Any valid token may call it.","operationId":"token_self_v1_tokens_self_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenSelfOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tokens/{token_id}":{"delete":{"tags":["tenants"],"summary":"Revoke Token","operationId":"revoke_token_v1_tokens__token_id__delete","parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/github/device/start":{"post":{"summary":"Github Device Start","description":"Begin device flow: ask GitHub for a user code on the tenant's behalf.","operationId":"github_device_start_v1_auth_github_device_start_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceStartOut"}}}}}}},"/v1/auth/github/device/poll":{"post":{"summary":"Github Device Poll","description":"Exchange a completed device grant for an ark_ token.\n\nCalled repeatedly while GitHub says pending. Authorization is OPTIONAL:\nanonymous polling provisions a fresh tenant on success; a valid bearer\ntoken LINKS the identity to the caller's existing tenant instead.","operationId":"github_device_poll_v1_auth_github_device_poll_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevicePollIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevicePollOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/config":{"get":{"summary":"Auth Config","description":"How the console signs people in here. Public: nothing in it is secret.\n\nThe console reads this instead of carrying its own copy, so the client\nit sends to the hosted UI is always the one this API exchanges codes for.","operationId":"auth_config_v1_auth_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthConfigOut"}}}}}}},"/v1/auth/cognito/exchange":{"post":{"summary":"Cognito Exchange","description":"Swap a Cognito hosted-UI code for an ark_ token (link-or-provision).","operationId":"cognito_exchange_v1_auth_cognito_exchange_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CognitoExchangeIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CognitoExchangeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/sign-in":{"post":{"tags":["auth"],"summary":"Email Sign In","description":"Sign in to the console with email and password.\n\nReturns a console session token (expires after 30 days). Agents should\nnot sign in: give them a spend-capped token from POST /v1/tokens.","operationId":"email_sign_in_v1_auth_sign_in_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailPasswordIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CognitoExchangeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/new-password":{"post":{"tags":["auth"],"summary":"Email New Password","description":"Finish a sign-in that Cognito answered with new_password_required.","operationId":"email_new_password_v1_auth_new_password_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewPasswordIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CognitoExchangeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/sign-up":{"post":{"tags":["auth"],"summary":"Email Sign Up","description":"Create an account. Cognito emails a 6-digit code to confirm it.","operationId":"email_sign_up_v1_auth_sign_up_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailPasswordIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeSentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/confirm-email":{"post":{"tags":["auth"],"summary":"Email Confirm","description":"Confirm a new account with the code from the email.","operationId":"email_confirm_v1_auth_confirm_email_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailCodeIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthStepOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/resend-code":{"post":{"tags":["auth"],"summary":"Email Resend Code","description":"Send a new confirmation code for an account that isn't confirmed yet.","operationId":"email_resend_code_v1_auth_resend_code_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeSentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/forgot-password":{"post":{"tags":["auth"],"summary":"Email Forgot Password","description":"Email a code for setting a new password. The answer is the same\nwhether or not the email has an account.","operationId":"email_forgot_password_v1_auth_forgot_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeSentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/reset-password":{"post":{"tags":["auth"],"summary":"Email Reset Password","description":"Set a new password with the emailed code.","operationId":"email_reset_password_v1_auth_reset_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordResetIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthStepOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/gpus":{"get":{"tags":["gpus"],"summary":"Search Gpus Endpoint","description":"Search GPU nodes across all registered providers.\n\nFiltering delegates to providers.filters.apply_filter; per-provider\nmetadata (incl. ignored_filters) is returned alongside the nodes.","operationId":"search_gpus_endpoint_v1_gpus_get","parameters":[{"name":"gpu_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"GPU family, e.g. H100","title":"Gpu Type"},"description":"GPU family, e.g. H100"},{"name":"gpu_count","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Gpu Count"}},{"name":"min_vram_gb","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"title":"Min Vram Gb"}},{"name":"min_download_mbps","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"title":"Min Download Mbps"}},{"name":"min_ports","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Min Ports"}},{"name":"min_cpus","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Min Cpus"}},{"name":"min_ram_gb","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"title":"Min Ram Gb"}},{"name":"min_disk_gb","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"title":"Min Disk Gb"}},{"name":"max_price_per_gpu_hour","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"title":"Max Price Per Gpu Hour"}},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"}},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"}},{"name":"docker_in_docker","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Docker In Docker"}},{"name":"mig","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Mig"}},{"name":"baremetal","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Baremetal"}},{"name":"virtualized","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Virtualized"}},{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"}},{"name":"extra_filters","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated extra key=value filter pairs passed through verbatim so unrecognized filters appear in metadata.ignored_filters.","default":"","title":"Extra Filters"},"description":"Comma-separated extra key=value filter pairs passed through verbatim so unrecognized filters appear in metadata.ignored_filters."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Search Gpus Endpoint V1 Gpus Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/instances":{"post":{"tags":["instances"],"summary":"Create Instance","operationId":"create_instance_v1_instances_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstanceCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstanceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["instances"],"summary":"List Instances","operationId":"list_instances_v1_instances_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InstanceOut"},"title":"Response List Instances V1 Instances Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/instances/{instance_id}":{"get":{"tags":["instances"],"summary":"Get Instance","operationId":"get_instance_v1_instances__instance_id__get","parameters":[{"name":"instance_id","in":"path","required":true,"schema":{"type":"string","title":"Instance Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstanceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/instances/{instance_id}/terminate":{"post":{"tags":["instances"],"summary":"Terminate Instance","operationId":"terminate_instance_v1_instances__instance_id__terminate_post","parameters":[{"name":"instance_id","in":"path","required":true,"schema":{"type":"string","title":"Instance Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstanceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/instances/{instance_id}/reboot":{"post":{"tags":["instances"],"summary":"Reboot Instance","operationId":"reboot_instance_v1_instances__instance_id__reboot_post","parameters":[{"name":"instance_id","in":"path","required":true,"schema":{"type":"string","title":"Instance Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstanceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/instances/{instance_id}/schedule-removal":{"post":{"tags":["instances"],"summary":"Schedule Removal","operationId":"schedule_removal_v1_instances__instance_id__schedule_removal_post","parameters":[{"name":"instance_id","in":"path","required":true,"schema":{"type":"string","title":"Instance Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleRemovalRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstanceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["instances"],"summary":"Cancel Scheduled Removal","operationId":"cancel_scheduled_removal_v1_instances__instance_id__schedule_removal_delete","parameters":[{"name":"instance_id","in":"path","required":true,"schema":{"type":"string","title":"Instance Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstanceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/volumes":{"post":{"tags":["volumes"],"summary":"Create Volume","operationId":"create_volume_v1_volumes_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VolumeCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VolumeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["volumes"],"summary":"List Volumes","operationId":"list_volumes_v1_volumes_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VolumeOut"},"title":"Response List Volumes V1 Volumes Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/volumes/{volume_id}":{"delete":{"tags":["volumes"],"summary":"Delete Volume","operationId":"delete_volume_v1_volumes__volume_id__delete","parameters":[{"name":"volume_id","in":"path","required":true,"schema":{"type":"string","title":"Volume Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/account":{"get":{"tags":["billing"],"summary":"Get Account","description":"Balance, what the running machines cost, when the money runs out, and how to pay.","operationId":"get_account_v1_billing_account_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/balance":{"get":{"tags":["billing"],"summary":"Get Balance","operationId":"get_balance_v1_billing_balance_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BalanceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/checkout":{"post":{"tags":["billing"],"summary":"Create Checkout","description":"Start a card payment. Send the payer to ``url``; the balance grows once Stripe says it is paid.","operationId":"create_checkout_v1_billing_checkout_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/checkout/{session_id}/sync":{"post":{"tags":["billing"],"summary":"Sync Checkout","description":"Ask Stripe how a card payment went (the console calls this when the payer comes back).","operationId":"sync_checkout_v1_billing_checkout__session_id__sync_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/auto-recharge":{"put":{"tags":["billing"],"summary":"Set Auto Recharge","description":"Charge the saved card ``amount_usd`` whenever the balance falls under ``threshold_usd``.","operationId":"set_auto_recharge_v1_billing_auto_recharge_put","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoRechargeUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/card":{"delete":{"tags":["billing"],"summary":"Remove Card","description":"Forget the saved card. Auto-recharge turns off.","operationId":"remove_card_v1_billing_card_delete","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/deposits":{"post":{"tags":["billing"],"summary":"Create Deposit","description":"Ask for funds paid by bank transfer; they are added once the payment is confirmed.","operationId":"create_deposit_v1_billing_deposits_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["billing"],"summary":"List Deposits","operationId":"list_deposits_v1_billing_deposits_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DepositOut"},"title":"Response List Deposits V1 Billing Deposits Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/deposits/{deposit_id}/confirm":{"post":{"tags":["billing"],"summary":"Confirm Deposit","operationId":"confirm_deposit_v1_billing_deposits__deposit_id__confirm_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"deposit_id","in":"path","required":true,"schema":{"type":"string","title":"Deposit Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/deposits/{deposit_id}/reject":{"post":{"tags":["billing"],"summary":"Reject Deposit","operationId":"reject_deposit_v1_billing_deposits__deposit_id__reject_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"deposit_id","in":"path","required":true,"schema":{"type":"string","title":"Deposit Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/stop":{"post":{"tags":["billing"],"summary":"Emergency Stop","description":"Emergency stop: every machine on the account stops now (deleting its disk) and\nrentals pause until the account resumes them. Volumes are kept.","operationId":"emergency_stop_v1_billing_stop_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/StopCreate"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StopOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/resume":{"post":{"tags":["billing"],"summary":"Resume Rentals","description":"Open rentals again after an emergency stop (or a tripped breaker, once funds are in).","operationId":"resume_rentals_v1_billing_resume_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/ledger":{"get":{"tags":["billing"],"summary":"Get Ledger","operationId":"get_ledger_v1_billing_ledger_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LedgerEntryOut"},"title":"Response Get Ledger V1 Billing Ledger Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/charges":{"post":{"tags":["billing"],"summary":"Create Charge","description":"Operator-only manual charge against one tenant (X-Arrakis-Operator-Key).","operationId":"create_charge_v1_billing_charges_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChargeCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LedgerEntryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/v1/billing/summary":{"get":{"tags":["billing"],"summary":"Billing Period Summary","description":"Ledger activity bucketed into monthly or weekly periods.","operationId":"billing_period_summary_v1_billing_summary_get","parameters":[{"name":"granularity","in":"query","required":false,"schema":{"type":"string","default":"monthly","title":"Granularity"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":500,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BillingPeriodOut"},"title":"Response Billing Period Summary V1 Billing Summary Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/operator/accounts":{"get":{"tags":["operator"],"summary":"List Accounts","description":"Every account with its balance, burn, breaker and waiting fund requests.","operationId":"list_accounts_v1_operator_accounts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/OperatorAccountOut"},"type":"array","title":"Response List Accounts V1 Operator Accounts Get"}}}}},"security":[{"APIKeyHeader":[]}]}},"/v1/operator/deposits":{"get":{"tags":["operator"],"summary":"List All Deposits","description":"Fund requests across accounts (pending by default), oldest first.","operationId":"list_all_deposits_v1_operator_deposits_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"pending","title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DepositOut"},"title":"Response List All Deposits V1 Operator Deposits Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/operator/tenants/{tenant_id}/credit":{"post":{"tags":["operator"],"summary":"Grant Credit","description":"Add funds to an account at once (a credit or a payment received outside Arrakis).","operationId":"grant_credit_v1_operator_tenants__tenant_id__credit_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/operator/tenants/{tenant_id}/hold":{"post":{"tags":["operator"],"summary":"Hold Account","description":"Put an account on hold: every machine stops now and it can't rent until the hold is lifted.","operationId":"hold_account_v1_operator_tenants__tenant_id__hold_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HoldCreate"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperatorAccountOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/operator/tenants/{tenant_id}/resume":{"post":{"tags":["operator"],"summary":"Lift Hold","description":"Lift any pause on an account: a hold, an emergency stop or a tripped breaker.","operationId":"lift_hold_v1_operator_tenants__tenant_id__resume_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperatorAccountOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/operator/sweep":{"post":{"tags":["operator"],"summary":"Run Sweep","description":"Run the billing sweep now (it also runs every minute on its own).","operationId":"run_sweep_v1_operator_sweep_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SweepOut"}}}}},"security":[{"APIKeyHeader":[]}]}},"/v1/metering/usage":{"post":{"tags":["metering"],"summary":"Ingest Usage","operationId":"ingest_usage_v1_metering_usage_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageIngest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageRecordOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["metering"],"summary":"List Usage","operationId":"list_usage_v1_metering_usage_get","parameters":[{"name":"resource_kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Kind"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Since"}},{"name":"until","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Until"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":500,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UsageRecordOut"},"title":"Response List Usage V1 Metering Usage Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/metering/summary":{"get":{"tags":["metering"],"summary":"Usage Summary","operationId":"usage_summary_v1_metering_summary_get","parameters":[{"name":"granularity","in":"query","required":false,"schema":{"type":"string","default":"monthly","title":"Granularity"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":500,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UsagePeriodOut"},"title":"Response Usage Summary V1 Metering Summary Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/metering/settle":{"post":{"tags":["metering"],"summary":"Settle Pending Usage","operationId":"settle_pending_usage_v1_metering_settle_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettleOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/reservations":{"post":{"tags":["reservations"],"summary":"Create Reservation","operationId":"create_reservation_v1_reservations_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["reservations"],"summary":"List Reservations","operationId":"list_reservations_v1_reservations_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ReservationOut"},"title":"Response List Reservations V1 Reservations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/reservations/due":{"get":{"tags":["reservations"],"summary":"List Due Reservations","operationId":"list_due_reservations_v1_reservations_due_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ReservationOut"},"title":"Response List Due Reservations V1 Reservations Due Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/reservations/{reservation_id}":{"get":{"tags":["reservations"],"summary":"Get Reservation","operationId":"get_reservation_v1_reservations__reservation_id__get","parameters":[{"name":"reservation_id","in":"path","required":true,"schema":{"type":"string","title":"Reservation Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["reservations"],"summary":"Cancel Reservation","operationId":"cancel_reservation_v1_reservations__reservation_id__delete","parameters":[{"name":"reservation_id","in":"path","required":true,"schema":{"type":"string","title":"Reservation Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/ssh-keys":{"post":{"tags":["catalog"],"summary":"Create Ssh Key","operationId":"create_ssh_key_v1_ssh_keys_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SSHKeyCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SSHKeyOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["catalog"],"summary":"List Ssh Keys","operationId":"list_ssh_keys_v1_ssh_keys_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SSHKeyOut"},"title":"Response List Ssh Keys V1 Ssh Keys Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/ssh-keys/{key_id}":{"get":{"tags":["catalog"],"summary":"Get Ssh Key","operationId":"get_ssh_key_v1_ssh_keys__key_id__get","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SSHKeyOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["catalog"],"summary":"Delete Ssh Key","operationId":"delete_ssh_key_v1_ssh_keys__key_id__delete","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/images":{"post":{"tags":["catalog"],"summary":"Register Image","operationId":"register_image_v1_images_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImageCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImageOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["catalog"],"summary":"List Images","operationId":"list_images_v1_images_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ImageOut"},"title":"Response List Images V1 Images Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/images/{image_id}":{"patch":{"tags":["catalog"],"summary":"Update Image","operationId":"update_image_v1_images__image_id__patch","parameters":[{"name":"image_id","in":"path","required":true,"schema":{"type":"string","title":"Image Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImageUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImageOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["catalog"],"summary":"Delete Image","operationId":"delete_image_v1_images__image_id__delete","parameters":[{"name":"image_id","in":"path","required":true,"schema":{"type":"string","title":"Image Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/templates":{"post":{"tags":["catalog"],"summary":"Create Template","operationId":"create_template_v1_templates_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["catalog"],"summary":"List Templates","operationId":"list_templates_v1_templates_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TemplateOut"},"title":"Response List Templates V1 Templates Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/templates/{template_id}":{"patch":{"tags":["catalog"],"summary":"Update Template","operationId":"update_template_v1_templates__template_id__patch","parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["catalog"],"summary":"Delete Template","operationId":"delete_template_v1_templates__template_id__delete","parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/spot-claims":{"post":{"tags":["catalog"],"summary":"Create Spot Claim","operationId":"create_spot_claim_v1_spot_claims_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpotClaimCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpotClaimOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["catalog"],"summary":"List Spot Claims","operationId":"list_spot_claims_v1_spot_claims_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SpotClaimOut"},"title":"Response List Spot Claims V1 Spot Claims Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/spot-claims/{claim_id}":{"get":{"tags":["catalog"],"summary":"Get Spot Claim","operationId":"get_spot_claim_v1_spot_claims__claim_id__get","parameters":[{"name":"claim_id","in":"path","required":true,"schema":{"type":"string","title":"Claim Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpotClaimOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["catalog"],"summary":"Release Spot Claim","operationId":"release_spot_claim_v1_spot_claims__claim_id__delete","parameters":[{"name":"claim_id","in":"path","required":true,"schema":{"type":"string","title":"Claim Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpotClaimOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/marketplace":{"get":{"tags":["marketplace"],"summary":"Marketplace","description":"Browse the aggregated marketplace: offers grouped by\ngpu_type/provider/region with counts, verified-price ranges (integer\ncents; null when unverified), and availability — plus the calling\ntenant's recently created instances.","operationId":"marketplace_v1_marketplace_get","parameters":[{"name":"gpu_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"GPU family, e.g. H100","title":"Gpu Type"},"description":"GPU family, e.g. H100"},{"name":"gpu_count","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Gpu Count"}},{"name":"min_vram_gb","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"title":"Min Vram Gb"}},{"name":"min_download_mbps","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"title":"Min Download Mbps"}},{"name":"min_ports","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Min Ports"}},{"name":"min_cpus","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Min Cpus"}},{"name":"min_ram_gb","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"title":"Min Ram Gb"}},{"name":"min_disk_gb","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"title":"Min Disk Gb"}},{"name":"max_price_per_gpu_hour","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"title":"Max Price Per Gpu Hour"}},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"}},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"}},{"name":"docker_in_docker","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Docker In Docker"}},{"name":"mig","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Mig"}},{"name":"baremetal","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Baremetal"}},{"name":"virtualized","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Virtualized"}},{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"}},{"name":"extra_filters","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated extra key=value filter pairs passed through verbatim so unrecognized filters appear in ignored_filters.","default":"","title":"Extra Filters"},"description":"Comma-separated extra key=value filter pairs passed through verbatim so unrecognized filters appear in ignored_filters."},{"name":"recent_limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":10,"title":"Recent Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketplaceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/market/summary":{"get":{"tags":["market"],"summary":"Market Summary","description":"Live per-family market summary. No token needed; safe to poll every minute.","operationId":"market_summary_v1_market_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketSummary"}}}},"503":{"description":"No market answered and no recent snapshot exists"}}}},"/healthz":{"get":{"tags":["health"],"summary":"Healthz","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Healthz Healthz Get"}}}}}}}},"components":{"schemas":{"AccountOut":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"balance_cents":{"type":"integer","title":"Balance Cents"},"owed_cents":{"type":"integer","title":"Owed Cents","description":"Usage that ran and is not paid yet."},"available_cents":{"type":"integer","title":"Available Cents","description":"What new hours can be paid from: balance minus what is owed."},"burn_cents_per_hour":{"type":"integer","title":"Burn Cents Per Hour","description":"What the machines running now cost per hour together."},"stops_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stops At","description":"When the machines running now stop if no funds are added (ISO 8601)."},"paid_to_removal":{"type":"boolean","title":"Paid To Removal","description":"Every running machine is paid for up to its removal time.","default":false},"rentals":{"type":"string","enum":["open","paused"],"title":"Rentals"},"running_machines":{"type":"integer","title":"Running Machines"},"pause":{"anyOf":[{"$ref":"#/components/schemas/PauseOut"},{"type":"null"}]},"auto_recharge":{"$ref":"#/components/schemas/AutoRechargeOut"},"card":{"anyOf":[{"$ref":"#/components/schemas/CardOut"},{"type":"null"}]},"payments":{"$ref":"#/components/schemas/PaymentOptionsOut"}},"type":"object","required":["tenant_id","balance_cents","owed_cents","available_cents","burn_cents_per_hour","rentals","running_machines","auto_recharge","payments"],"title":"AccountOut"},"AuthConfigOut":{"properties":{"cognito":{"anyOf":[{"$ref":"#/components/schemas/CognitoPublicConfig"},{"type":"null"}]}},"type":"object","title":"AuthConfigOut"},"AuthStepOut":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"AuthStepOut"},"AutoRechargeOut":{"properties":{"enabled":{"type":"boolean","title":"Enabled"},"threshold_cents":{"type":"integer","title":"Threshold Cents"},"amount_cents":{"type":"integer","title":"Amount Cents"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"payments_last_24h":{"type":"integer","title":"Payments Last 24H"},"max_payments_per_24h":{"type":"integer","title":"Max Payments Per 24H"}},"type":"object","required":["enabled","threshold_cents","amount_cents","payments_last_24h","max_payments_per_24h"],"title":"AutoRechargeOut"},"AutoRechargeUpdate":{"properties":{"enabled":{"type":"boolean","title":"Enabled"},"threshold_usd":{"anyOf":[{"type":"number","maximum":100000.0,"exclusiveMinimum":0.0},{"type":"string"},{"type":"null"}],"title":"Threshold Usd"},"amount_usd":{"anyOf":[{"type":"number","maximum":100000.0,"exclusiveMinimum":0.0},{"type":"string"},{"type":"null"}],"title":"Amount Usd"}},"type":"object","required":["enabled"],"title":"AutoRechargeUpdate"},"BalanceOut":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"balance_cents":{"type":"integer","title":"Balance Cents"},"owed_cents":{"type":"integer","title":"Owed Cents","description":"Usage that ran and is not paid yet."},"available_cents":{"type":"integer","title":"Available Cents","description":"What new hours can be paid from: balance minus what is owed."},"burn_cents_per_hour":{"type":"integer","title":"Burn Cents Per Hour","description":"What the machines running now cost per hour together."},"stops_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stops At","description":"When the machines running now stop if no funds are added (ISO 8601)."},"paid_to_removal":{"type":"boolean","title":"Paid To Removal","description":"Every running machine is paid for up to its removal time.","default":false},"rentals":{"type":"string","enum":["open","paused"],"title":"Rentals"}},"type":"object","required":["tenant_id","balance_cents","owed_cents","available_cents","burn_cents_per_hour","rentals"],"title":"BalanceOut"},"BillingPeriodOut":{"properties":{"period":{"type":"string","title":"Period"},"granularity":{"type":"string","title":"Granularity"},"period_start":{"type":"string","title":"Period Start"},"period_end":{"type":"string","title":"Period End"},"deposit_cents":{"type":"integer","title":"Deposit Cents"},"charge_cents":{"type":"integer","title":"Charge Cents"},"net_cents":{"type":"integer","title":"Net Cents"},"deposits":{"type":"integer","title":"Deposits"},"charges":{"type":"integer","title":"Charges"}},"type":"object","required":["period","granularity","period_start","period_end","deposit_cents","charge_cents","net_cents","deposits","charges"],"title":"BillingPeriodOut"},"ByGpuType":{"properties":{"offerings":{"type":"integer","minimum":0.0,"title":"Offerings"},"gpus_available":{"type":"integer","minimum":0.0,"title":"Gpus Available"},"min_price_cents_per_gpu_hr":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Min Price Cents Per Gpu Hr"},"max_price_cents_per_gpu_hr":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Max Price Cents Per Gpu Hr"},"price_unverified":{"type":"boolean","title":"Price Unverified"},"regions":{"items":{"type":"string"},"type":"array","title":"Regions"}},"type":"object","required":["offerings","gpus_available","price_unverified","regions"],"title":"ByGpuType"},"ByRegion":{"properties":{"offerings":{"type":"integer","minimum":0.0,"title":"Offerings"},"gpus_available":{"type":"integer","minimum":0.0,"title":"Gpus Available"},"min_price_cents_per_gpu_hr":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Min Price Cents Per Gpu Hr"},"max_price_cents_per_gpu_hr":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Max Price Cents Per Gpu Hr"},"price_unverified":{"type":"boolean","title":"Price Unverified"},"gpu_types":{"items":{"type":"string"},"type":"array","title":"Gpu Types"}},"type":"object","required":["offerings","gpus_available","price_unverified","gpu_types"],"title":"ByRegion"},"CardOut":{"properties":{"brand":{"type":"string","title":"Brand"},"last4":{"type":"string","title":"Last4"},"exp_month":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exp Month"},"exp_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exp Year"},"label":{"type":"string","title":"Label"}},"type":"object","required":["brand","last4","label"],"title":"CardOut"},"ChargeCreate":{"properties":{"tenant_id":{"type":"string","maxLength":128,"minLength":1,"title":"Tenant Id"},"resource_kind":{"type":"string","maxLength":64,"minLength":1,"title":"Resource Kind"},"resource_id":{"type":"string","maxLength":128,"minLength":1,"title":"Resource Id"},"amount_cents":{"type":"integer","exclusiveMinimum":0.0,"title":"Amount Cents"},"reason":{"type":"string","maxLength":256,"minLength":1,"title":"Reason"},"occurred_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Occurred At"}},"type":"object","required":["tenant_id","resource_kind","resource_id","amount_cents","reason"],"title":"ChargeCreate"},"CheckoutCreate":{"properties":{"amount_usd":{"anyOf":[{"type":"number","maximum":100000.0,"exclusiveMinimum":0.0},{"type":"string"}],"title":"Amount Usd"},"save_card":{"type":"boolean","title":"Save Card","description":"Keep the card for auto-recharge.","default":false}},"type":"object","required":["amount_usd"],"title":"CheckoutCreate"},"CheckoutOut":{"properties":{"deposit_id":{"type":"string","title":"Deposit Id"},"url":{"type":"string","title":"Url","description":"The Stripe payment page to send the payer to."}},"type":"object","required":["deposit_id","url"],"title":"CheckoutOut"},"CodeSentOut":{"properties":{"status":{"type":"string","title":"Status"},"destination":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Destination"}},"type":"object","required":["status"],"title":"CodeSentOut"},"CognitoExchangeIn":{"properties":{"code":{"type":"string","title":"Code"},"redirect_uri":{"type":"string","title":"Redirect Uri"},"code_verifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Verifier"}},"type":"object","required":["code","redirect_uri"],"title":"CognitoExchangeIn"},"CognitoExchangeOut":{"properties":{"status":{"type":"string","title":"Status"},"token":{"type":"string","title":"Token"},"tenant_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Name"},"linked":{"type":"boolean","title":"Linked","default":false},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"}},"type":"object","required":["status","token"],"title":"CognitoExchangeOut"},"CognitoPublicConfig":{"properties":{"authority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authority"},"client_id":{"type":"string","title":"Client Id"},"callback_origins":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Callback Origins"},"email_password":{"type":"boolean","title":"Email Password","default":false}},"type":"object","required":["client_id"],"title":"CognitoPublicConfig"},"CreditCreate":{"properties":{"amount_usd":{"anyOf":[{"type":"number","maximum":100000.0,"exclusiveMinimum":0.0},{"type":"string"}],"title":"Amount Usd"},"note":{"type":"string","maxLength":500,"title":"Note","default":""}},"type":"object","required":["amount_usd"],"title":"CreditCreate"},"DepositCreate":{"properties":{"amount_usd":{"anyOf":[{"type":"number","maximum":100000.0,"exclusiveMinimum":0.0},{"type":"string"},{"type":"null"}],"title":"Amount Usd"},"amount_cents":{"anyOf":[{"type":"integer","maximum":10000000.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Amount Cents"},"note":{"type":"string","maxLength":1000,"title":"Note","default":""},"method":{"type":"string","maxLength":64,"minLength":1,"title":"Method","default":"manual"}},"type":"object","title":"DepositCreate"},"DepositOut":{"properties":{"amount_usd":{"type":"number","title":"Amount Usd"},"status":{"type":"string","title":"Status"},"note":{"type":"string","title":"Note"},"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"amount_cents":{"type":"integer","title":"Amount Cents"},"method":{"type":"string","title":"Method"},"receipt_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Receipt Url"},"card":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Card"},"reversed_cents":{"type":"integer","title":"Reversed Cents","default":0},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["amount_usd","status","note","id","tenant_id","amount_cents","method","created_at"],"title":"DepositOut"},"DevicePollIn":{"properties":{"device_code":{"type":"string","title":"Device Code"}},"type":"object","required":["device_code"],"title":"DevicePollIn"},"DevicePollOut":{"properties":{"status":{"type":"string","title":"Status"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"},"tenant_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Name"},"linked":{"type":"boolean","title":"Linked","default":false}},"type":"object","required":["status"],"title":"DevicePollOut"},"DeviceStartOut":{"properties":{"device_code":{"type":"string","title":"Device Code"},"user_code":{"type":"string","title":"User Code"},"verification_uri":{"type":"string","title":"Verification Uri"},"expires_in":{"type":"integer","title":"Expires In"},"interval":{"type":"integer","title":"Interval"}},"type":"object","required":["device_code","user_code","verification_uri","expires_in","interval"],"title":"DeviceStartOut"},"EmailCodeIn":{"properties":{"email":{"type":"string","maxLength":254,"title":"Email"},"code":{"type":"string","maxLength":32,"title":"Code"}},"type":"object","required":["email","code"],"title":"EmailCodeIn"},"EmailIn":{"properties":{"email":{"type":"string","maxLength":254,"title":"Email"}},"type":"object","required":["email"],"title":"EmailIn"},"EmailPasswordIn":{"properties":{"email":{"type":"string","maxLength":254,"title":"Email"},"password":{"type":"string","maxLength":256,"title":"Password"}},"type":"object","required":["email","password"],"title":"EmailPasswordIn"},"GPUType":{"type":"string","enum":["H100","H200","B200","B300","GB200","A100","A6000","RTX 4090","RTX 5090","L40S","RTX PRO 6000","MI300X","OTHER"],"title":"GPUType","description":"GPU families Arrakis can discover across providers."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HoldCreate":{"properties":{"note":{"type":"string","maxLength":500,"title":"Note","default":""}},"type":"object","title":"HoldCreate"},"ImageCreate":{"properties":{"name":{"type":"string","maxLength":128,"minLength":1,"title":"Name"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":32},{"type":"null"}],"title":"Tags"}},"type":"object","required":["name"],"title":"ImageCreate"},"ImageOut":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"name":{"type":"string","title":"Name"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","tenant_id","name","tags","created_at"],"title":"ImageOut"},"ImageUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Name"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":32},{"type":"null"}],"title":"Tags"}},"type":"object","title":"ImageUpdate"},"InstanceCreate":{"properties":{"provider":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Provider"},"name":{"type":"string","maxLength":128,"minLength":1,"title":"Name"},"node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Node Id"},"gpu_type":{"anyOf":[{"$ref":"#/components/schemas/GPUType"},{"type":"null"}]},"gpu_count":{"type":"integer","minimum":1.0,"title":"Gpu Count","default":1},"ssh_public_key":{"type":"string","minLength":1,"title":"Ssh Public Key"},"termination_hours":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Termination Hours","description":"Hours until the machine is removed automatically. Required for tokens with a spend cap."},"volume_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Volume Id"},"idempotency_key":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Idempotency Key"},"template_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Template Id"}},"type":"object","required":["name","ssh_public_key"],"title":"InstanceCreate"},"InstanceOut":{"properties":{"managed":{"type":"boolean","title":"Managed"},"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"provider_instance_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Instance Id"},"name":{"type":"string","title":"Name"},"node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Node Id"},"gpu_type":{"anyOf":[{"$ref":"#/components/schemas/GPUType"},{"type":"null"}]},"gpu_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gpu Model"},"gpu_count":{"type":"integer","title":"Gpu Count"},"state":{"type":"string","title":"State"},"ssh_command":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ssh Command"},"termination_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Termination Hours"},"scheduled_removal_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scheduled Removal At"},"hourly_rate_cents":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hourly Rate Cents"},"spend_to_date_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Spend To Date Usd"},"billed_hours":{"type":"integer","title":"Billed Hours","description":"Hours paid for so far; each hour is paid as it begins.","default":0},"paid_through":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paid Through","description":"When the hours paid for so far run out (ISO 8601)."},"idempotency_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency Key"},"created_by_token_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Token Id"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"}},"type":"object","required":["managed","id","tenant_id","name","gpu_count","state","created_at","updated_at"],"title":"InstanceOut"},"LedgerEntryOut":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"kind":{"type":"string","title":"Kind"},"amount_cents":{"type":"integer","title":"Amount Cents"},"resource_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Kind"},"resource_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Id"},"reason":{"type":"string","title":"Reason"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","tenant_id","kind","amount_cents","reason","created_at"],"title":"LedgerEntryOut"},"MarketFamily":{"properties":{"gpu_type":{"type":"string","title":"Gpu Type"},"gpu_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gpu Model"},"min_price_per_gpu_hour":{"type":"number","title":"Min Price Per Gpu Hour"},"available_gpus":{"type":"integer","title":"Available Gpus"},"machines":{"type":"integer","title":"Machines"},"max_vram_gb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Vram Gb"},"models":{"items":{"$ref":"#/components/schemas/MarketModel"},"type":"array","title":"Models","default":[]}},"type":"object","required":["gpu_type","min_price_per_gpu_hour","available_gpus","machines"],"title":"MarketFamily"},"MarketModel":{"properties":{"gpu_model":{"type":"string","title":"Gpu Model"},"min_price_per_gpu_hour":{"type":"number","title":"Min Price Per Gpu Hour"},"available_gpus":{"type":"integer","title":"Available Gpus"},"machines":{"type":"integer","title":"Machines"}},"type":"object","required":["gpu_model","min_price_per_gpu_hour","available_gpus","machines"],"title":"MarketModel"},"MarketSummary":{"properties":{"updated_at":{"type":"string","title":"Updated At"},"stale":{"type":"boolean","title":"Stale"},"gpus_available":{"type":"integer","title":"Gpus Available"},"machines":{"type":"integer","title":"Machines"},"families":{"items":{"$ref":"#/components/schemas/MarketFamily"},"type":"array","title":"Families"}},"type":"object","required":["updated_at","stale","gpus_available","machines","families"],"title":"MarketSummary"},"MarketplaceOut":{"properties":{"offers":{"items":{"$ref":"#/components/schemas/OfferOut"},"type":"array","title":"Offers"},"by_gpu_type":{"additionalProperties":{"$ref":"#/components/schemas/ByGpuType"},"type":"object","title":"By Gpu Type"},"by_region":{"additionalProperties":{"$ref":"#/components/schemas/ByRegion"},"type":"object","title":"By Region"},"totals":{"$ref":"#/components/schemas/TotalsOut"},"ignored_filters":{"items":{"type":"string"},"type":"array","title":"Ignored Filters"},"my_instances":{"items":{"$ref":"#/components/schemas/InstanceOut"},"type":"array","title":"My Instances"}},"type":"object","required":["offers","by_gpu_type","by_region","totals","ignored_filters","my_instances"],"title":"MarketplaceOut"},"NewPasswordIn":{"properties":{"email":{"type":"string","maxLength":254,"title":"Email"},"password":{"type":"string","maxLength":256,"title":"Password"},"session":{"type":"string","maxLength":4096,"title":"Session"}},"type":"object","required":["email","password","session"],"title":"NewPasswordIn"},"OfferOut":{"properties":{"gpu_type":{"type":"string","title":"Gpu Type"},"region":{"type":"string","title":"Region"},"offerings":{"type":"integer","minimum":0.0,"title":"Offerings"},"gpus_available":{"type":"integer","minimum":0.0,"title":"Gpus Available"},"min_price_cents_per_gpu_hr":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Min Price Cents Per Gpu Hr"},"max_price_cents_per_gpu_hr":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Max Price Cents Per Gpu Hr"},"price_unverified":{"type":"boolean","title":"Price Unverified"}},"type":"object","required":["gpu_type","region","offerings","gpus_available","price_unverified"],"title":"OfferOut","description":"One (gpu_type, region) grouping of offerings.\n\nWhitelabeled: offers merge across the underlying providers, whose\nidentity is a trade secret and never appears in the payload."},"OperatorAccountOut":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"name":{"type":"string","title":"Name"},"created_at":{"type":"string","title":"Created At"},"account":{"$ref":"#/components/schemas/AccountOut"},"pending_deposits":{"type":"integer","title":"Pending Deposits"},"pending_deposit_cents":{"type":"integer","title":"Pending Deposit Cents"}},"type":"object","required":["tenant_id","name","created_at","account","pending_deposits","pending_deposit_cents"],"title":"OperatorAccountOut"},"PasswordResetIn":{"properties":{"email":{"type":"string","maxLength":254,"title":"Email"},"code":{"type":"string","maxLength":32,"title":"Code"},"password":{"type":"string","maxLength":256,"title":"Password"}},"type":"object","required":["email","code","password"],"title":"PasswordResetIn"},"PauseOut":{"properties":{"reason":{"type":"string","enum":["out_of_funds","manual","operator"],"title":"Reason"},"paused_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused At"},"note":{"type":"string","title":"Note","default":""},"stopped_instances":{"items":{"type":"string"},"type":"array","title":"Stopped Instances","default":[]},"message":{"type":"string","title":"Message"},"how_to_resume":{"type":"string","enum":["add_funds","resume","contact_us"],"title":"How To Resume"},"needed_cents":{"type":"integer","title":"Needed Cents","description":"For a balance that ran out: what to add before rentals open again.","default":0}},"type":"object","required":["reason","message","how_to_resume"],"title":"PauseOut"},"PaymentOptionsOut":{"properties":{"card":{"type":"boolean","title":"Card","description":"Card payments through Stripe are switched on."},"bank_transfer":{"type":"boolean","title":"Bank Transfer","default":true},"min_card_cents":{"type":"integer","title":"Min Card Cents"},"max_card_cents":{"type":"integer","title":"Max Card Cents"},"min_recharge_threshold_cents":{"type":"integer","title":"Min Recharge Threshold Cents"},"min_recharge_amount_cents":{"type":"integer","title":"Min Recharge Amount Cents"},"max_recharge_amount_cents":{"type":"integer","title":"Max Recharge Amount Cents"}},"type":"object","required":["card","min_card_cents","max_card_cents","min_recharge_threshold_cents","min_recharge_amount_cents","max_recharge_amount_cents"],"title":"PaymentOptionsOut"},"ReservationCreate":{"properties":{"spec":{"additionalProperties":true,"type":"object","title":"Spec"},"kind":{"type":"string","title":"Kind","default":"reserved"},"delete_after":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Delete After"}},"type":"object","title":"ReservationCreate"},"ReservationOut":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"kind":{"type":"string","title":"Kind"},"spec":{"additionalProperties":true,"type":"object","title":"Spec"},"delete_after":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Delete After"},"state":{"type":"string","title":"State"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","tenant_id","kind","spec","state","created_at"],"title":"ReservationOut"},"SSHKeyCreate":{"properties":{"name":{"type":"string","maxLength":128,"minLength":1,"title":"Name"},"public_key":{"type":"string","maxLength":8192,"minLength":1,"title":"Public Key"}},"type":"object","required":["name","public_key"],"title":"SSHKeyCreate"},"SSHKeyOut":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"name":{"type":"string","title":"Name"},"public_key":{"type":"string","title":"Public Key"},"fingerprint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fingerprint"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","tenant_id","name","public_key","created_at"],"title":"SSHKeyOut"},"ScheduleRemovalRequest":{"properties":{"removal_scheduled_at":{"type":"string","format":"date-time","title":"Removal Scheduled At"}},"type":"object","required":["removal_scheduled_at"],"title":"ScheduleRemovalRequest"},"SettleOut":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"settled":{"type":"integer","title":"Settled"},"remaining_pending":{"type":"integer","title":"Remaining Pending"},"settled_ids":{"items":{"type":"string"},"type":"array","title":"Settled Ids"}},"type":"object","required":["tenant_id","settled","remaining_pending","settled_ids"],"title":"SettleOut"},"SpotClaimCreate":{"properties":{"gpu_type":{"type":"string","maxLength":64,"minLength":1,"title":"Gpu Type"},"max_price_cents_per_hr":{"type":"integer","exclusiveMinimum":0.0,"title":"Max Price Cents Per Hr"}},"type":"object","required":["gpu_type","max_price_cents_per_hr"],"title":"SpotClaimCreate"},"SpotClaimOut":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"gpu_type":{"type":"string","title":"Gpu Type"},"max_price_cents_per_hr":{"type":"integer","title":"Max Price Cents Per Hr"},"state":{"type":"string","title":"State"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","tenant_id","gpu_type","max_price_cents_per_hr","state","created_at"],"title":"SpotClaimOut"},"StopCreate":{"properties":{"note":{"type":"string","maxLength":500,"title":"Note","default":""}},"type":"object","title":"StopCreate"},"StopOut":{"properties":{"stopped_instances":{"items":{"type":"string"},"type":"array","title":"Stopped Instances"},"account":{"$ref":"#/components/schemas/AccountOut"}},"type":"object","required":["stopped_instances","account"],"title":"StopOut"},"SweepOut":{"properties":{"at":{"type":"string","title":"At"},"accounts":{"type":"integer","title":"Accounts"},"hours_charged":{"type":"integer","title":"Hours Charged"},"stopped":{"type":"integer","title":"Stopped"},"tripped":{"items":{"type":"string"},"type":"array","title":"Tripped"},"recharged_cents":{"type":"integer","title":"Recharged Cents"},"errors":{"type":"integer","title":"Errors"}},"type":"object","required":["at","accounts","hours_charged","stopped","tripped","recharged_cents","errors"],"title":"SweepOut"},"TemplateCreate":{"properties":{"name":{"type":"string","maxLength":128,"minLength":1,"title":"Name"},"gpu_type":{"type":"string","maxLength":64,"minLength":1,"title":"Gpu Type"},"count":{"type":"integer","minimum":1.0,"title":"Count","default":1},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"image_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Ref"},"docker_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Docker Image"},"docker_image_tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Docker Image Tag"},"docker_image_digest":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Docker Image Digest"},"docker_image_size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Docker Image Size"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"environment":{"additionalProperties":true,"type":"object","title":"Environment"},"entrypoint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entrypoint"}},"type":"object","required":["name","gpu_type"],"title":"TemplateCreate"},"TemplateOut":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"name":{"type":"string","title":"Name"},"gpu_type":{"type":"string","title":"Gpu Type"},"count":{"type":"integer","title":"Count"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"image_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Ref"},"docker_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Docker Image"},"docker_image_tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Docker Image Tag"},"docker_image_digest":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Docker Image Digest"},"docker_image_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Docker Image Size"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"environment":{"additionalProperties":true,"type":"object","title":"Environment"},"entrypoint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entrypoint"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","tenant_id","name","gpu_type","count","created_at"],"title":"TemplateOut"},"TemplateUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Name"},"gpu_type":{"anyOf":[{"type":"string","maxLength":64,"minLength":1},{"type":"null"}],"title":"Gpu Type"},"count":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Count"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"image_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Ref"},"docker_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Docker Image"},"docker_image_tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Docker Image Tag"},"docker_image_digest":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Docker Image Digest"},"docker_image_size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Docker Image Size"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"environment":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Environment"},"entrypoint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entrypoint"}},"type":"object","title":"TemplateUpdate"},"TenantCreate":{"properties":{"name":{"type":"string","maxLength":128,"minLength":1,"title":"Name"}},"type":"object","required":["name"],"title":"TenantCreate"},"TenantOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"created_at":{"type":"string","title":"Created At"},"bootstrap_secret":{"type":"string","title":"Bootstrap Secret"}},"type":"object","required":["id","name","created_at","bootstrap_secret"],"title":"TenantOut"},"TokenCreate":{"properties":{"name":{"type":"string","maxLength":128,"minLength":1,"title":"Name"},"scopes":{"anyOf":[{"items":{"$ref":"#/components/schemas/TokenScope"},"type":"array"},{"type":"null"}],"title":"Scopes"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"},"bootstrap_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bootstrap Secret"},"spend_limit_usd":{"anyOf":[{"type":"number","maximum":1000000.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Spend Limit Usd","description":"Most this token may ever commit to rentals, in USD (worst case: price per hour x termination_hours)."},"max_rental_hours":{"anyOf":[{"type":"integer","maximum":8760.0,"minimum":1.0},{"type":"null"}],"title":"Max Rental Hours","description":"Longest rental this token may start; every rental must set termination_hours."},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At","description":"When the token stops working (ISO 8601, in the future)."}},"type":"object","required":["name"],"title":"TokenCreate"},"TokenCreatedOut":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"name":{"type":"string","title":"Name"},"token":{"type":"string","title":"Token"},"prefix":{"type":"string","title":"Prefix"},"scopes":{"items":{"$ref":"#/components/schemas/TokenScope"},"type":"array","title":"Scopes"},"spend_limit_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Spend Limit Usd"},"max_rental_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Rental Hours"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["id","tenant_id","name","token","prefix","scopes"],"title":"TokenCreatedOut","description":"Creation response: the ONLY time the plaintext token is returned."},"TokenOut":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"name":{"type":"string","title":"Name"},"token_prefix":{"type":"string","title":"Token Prefix"},"scopes":{"items":{"$ref":"#/components/schemas/TokenScope"},"type":"array","title":"Scopes"},"revoked":{"type":"boolean","title":"Revoked"},"created_at":{"type":"string","title":"Created At"},"last_used_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Used At"},"spend_limit_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Spend Limit Usd"},"spend_committed_usd":{"type":"number","title":"Spend Committed Usd","default":0.0},"max_rental_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Rental Hours"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"},"expired":{"type":"boolean","title":"Expired","default":false},"parent_token_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Token Id"},"session":{"type":"boolean","title":"Session","default":false}},"type":"object","required":["id","tenant_id","name","token_prefix","scopes","revoked","created_at"],"title":"TokenOut"},"TokenScope":{"type":"string","enum":["read","rent","manage","billing"],"title":"TokenScope"},"TokenSelfOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"tenant_id":{"type":"string","title":"Tenant Id"},"tenant_name":{"type":"string","title":"Tenant Name"},"token_prefix":{"type":"string","title":"Token Prefix"},"scopes":{"items":{"$ref":"#/components/schemas/TokenScope"},"type":"array","title":"Scopes"},"spend_limit_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Spend Limit Usd"},"spend_committed_usd":{"type":"number","title":"Spend Committed Usd","default":0.0},"spend_remaining_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Spend Remaining Usd"},"max_rental_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Rental Hours"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"},"session":{"type":"boolean","title":"Session","default":false}},"type":"object","required":["id","name","tenant_id","tenant_name","token_prefix","scopes"],"title":"TokenSelfOut","description":"The calling token: who it acts for and what it may still spend."},"TotalsOut":{"properties":{"offerings":{"type":"integer","minimum":0.0,"title":"Offerings"},"gpus_available":{"type":"integer","minimum":0.0,"title":"Gpus Available"}},"type":"object","required":["offerings","gpus_available"],"title":"TotalsOut"},"UsageIngest":{"properties":{"resource_kind":{"type":"string","maxLength":32,"minLength":1,"title":"Resource Kind"},"resource_id":{"type":"string","maxLength":128,"minLength":1,"title":"Resource Id"},"quantity":{"type":"integer","minimum":0.0,"title":"Quantity"},"unit":{"type":"string","maxLength":32,"minLength":1,"title":"Unit"},"rate_cents_per_unit":{"type":"integer","minimum":0.0,"title":"Rate Cents Per Unit"},"occurred_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Occurred At"},"bill":{"type":"boolean","title":"Bill","default":true},"idempotency_key":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Idempotency Key"}},"type":"object","required":["resource_kind","resource_id","quantity","unit","rate_cents_per_unit"],"title":"UsageIngest"},"UsagePeriodOut":{"properties":{"period":{"type":"string","title":"Period"},"granularity":{"type":"string","title":"Granularity"},"period_start":{"type":"string","title":"Period Start"},"period_end":{"type":"string","title":"Period End"},"records":{"type":"integer","title":"Records"},"quantity_by_unit":{"additionalProperties":{"type":"integer"},"type":"object","title":"Quantity By Unit"},"cost_cents":{"type":"integer","title":"Cost Cents"},"billed_cents":{"type":"integer","title":"Billed Cents"},"unbilled_cents":{"type":"integer","title":"Unbilled Cents"}},"type":"object","required":["period","granularity","period_start","period_end","records","quantity_by_unit","cost_cents","billed_cents","unbilled_cents"],"title":"UsagePeriodOut"},"UsageRecordOut":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"resource_kind":{"type":"string","title":"Resource Kind"},"resource_id":{"type":"string","title":"Resource Id"},"quantity":{"type":"integer","title":"Quantity"},"unit":{"type":"string","title":"Unit"},"rate_cents_per_unit":{"type":"integer","title":"Rate Cents Per Unit"},"amount_cents":{"type":"integer","title":"Amount Cents"},"reason":{"type":"string","title":"Reason"},"bill_state":{"type":"string","title":"Bill State"},"charge_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Charge Id"},"idempotency_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency Key"},"occurred_at":{"type":"string","title":"Occurred At"},"recorded_at":{"type":"string","title":"Recorded At"}},"type":"object","required":["id","tenant_id","resource_kind","resource_id","quantity","unit","rate_cents_per_unit","amount_cents","reason","bill_state","occurred_at","recorded_at"],"title":"UsageRecordOut"},"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"},"VolumeCreate":{"properties":{"provider":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Provider"},"name":{"type":"string","maxLength":128,"minLength":1,"title":"Name"},"size_gb":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Size Gb"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"idempotency_key":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Idempotency Key"}},"type":"object","required":["name"],"title":"VolumeCreate"},"VolumeOut":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"provider_volume_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Volume Id"},"name":{"type":"string","title":"Name"},"size_gb":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size Gb"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"state":{"type":"string","title":"State"},"attached_instance_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attached Instance Id"},"idempotency_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency Key"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"}},"type":"object","required":["id","tenant_id","name","state","created_at","updated_at"],"title":"VolumeOut"}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-Arrakis-Operator-Key"}}}}