{"openapi":"3.0.0","paths":{"/config":{"get":{"operationId":"ConfigController_getConfig","parameters":[],"responses":{"200":{"description":"Daytona configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DaytonaConfiguration"}}}}},"summary":"Get config","tags":["config"]}},"/api-keys":{"post":{"operationId":"createApiKey","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKey"}}}},"responses":{"201":{"description":"API key created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyResponse"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Create API key","tags":["api-keys"]},"get":{"operationId":"listApiKeys","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"API keys retrieved successfully.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiKeyList"}}}}},"500":{"description":"Error fetching API keys."}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"List API keys","tags":["api-keys"]}},"/api-keys/current":{"get":{"operationId":"getCurrentApiKey","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"API key retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyList"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get current API key's details","tags":["api-keys"]}},"/api-keys/{name}":{"get":{"operationId":"getApiKey","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"name","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"API key retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyList"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get API key","tags":["api-keys"]},"delete":{"operationId":"deleteApiKey","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"name","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":"API key deleted successfully."}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Delete API key","tags":["api-keys"]}},"/api-keys/{userId}/{name}":{"delete":{"operationId":"deleteApiKeyForUser","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"userId","required":true,"in":"path","schema":{"type":"string"}},{"name":"name","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":"API key deleted successfully."}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Delete API key for user","tags":["api-keys"]}},"/organizations/invitations":{"get":{"operationId":"listOrganizationInvitationsForAuthenticatedUser","parameters":[],"responses":{"200":{"description":"List of organization invitations","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationInvitation"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"List organization invitations for authenticated user","tags":["organizations"]}},"/organizations/invitations/count":{"get":{"operationId":"getOrganizationInvitationsCountForAuthenticatedUser","parameters":[],"responses":{"200":{"description":"Count of organization invitations","content":{"application/json":{"schema":{"type":"number"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get count of organization invitations for authenticated user","tags":["organizations"]}},"/organizations/invitations/{invitationId}/accept":{"post":{"operationId":"acceptOrganizationInvitation","parameters":[{"name":"invitationId","required":true,"in":"path","description":"Invitation ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Organization invitation accepted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationInvitation"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Accept organization invitation","tags":["organizations"]}},"/organizations/invitations/{invitationId}/decline":{"post":{"operationId":"declineOrganizationInvitation","parameters":[{"name":"invitationId","required":true,"in":"path","description":"Invitation ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Organization invitation declined successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Decline organization invitation","tags":["organizations"]}},"/organizations":{"post":{"operationId":"createOrganization","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganization"}}}},"responses":{"201":{"description":"Organization created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organization"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Create organization","tags":["organizations"]},"get":{"operationId":"listOrganizations","parameters":[],"responses":{"200":{"description":"List of organizations","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Organization"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"List organizations","tags":["organizations"]}},"/organizations/{organizationId}/default-region":{"patch":{"operationId":"setOrganizationDefaultRegion","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationDefaultRegion"}}}},"responses":{"204":{"description":"Default region set successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Set default region for organization","tags":["organizations"]}},"/organizations/{organizationId}":{"get":{"operationId":"getOrganization","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Organization details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organization"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get organization by ID","tags":["organizations"]},"delete":{"operationId":"deleteOrganization","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"responses":{"204":{"description":"Organization deleted successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Delete organization","tags":["organizations"]}},"/organizations/{organizationId}/usage":{"get":{"operationId":"getOrganizationUsageOverview","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Current usage overview","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationUsageOverview"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get organization current usage overview","tags":["organizations"]}},"/organizations/{organizationId}/available-sandbox-classes":{"get":{"operationId":"listAvailableSandboxClasses","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Available sandbox classes","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AvailableSandboxClass"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"List available sandbox classes for organization","tags":["organizations"]}},"/organizations/{organizationId}/quota":{"patch":{"operationId":"updateOrganizationQuota","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationQuota"}}}},"responses":{"204":{"description":"Organization quota updated successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update organization quota","tags":["organizations"]}},"/organizations/{organizationId}/quota/{regionId}":{"patch":{"operationId":"updateOrganizationRegionQuota","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}},{"name":"regionId","required":true,"in":"path","description":"ID of the region where the updated quota will be applied","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationRegionQuota"}}}},"responses":{"204":{"description":"Region quota updated successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update organization region quota","tags":["organizations"]}},"/organizations/{organizationId}/leave":{"post":{"operationId":"leaveOrganization","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"responses":{"204":{"description":"Organization left successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Leave organization","tags":["organizations"]}},"/organizations/{organizationId}/suspend":{"post":{"operationId":"suspendOrganization","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationSuspension"}}}},"responses":{"204":{"description":"Organization suspended successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Suspend organization","tags":["organizations"]}},"/organizations/{organizationId}/unsuspend":{"post":{"operationId":"unsuspendOrganization","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"responses":{"204":{"description":"Organization unsuspended successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Unsuspend organization","tags":["organizations"]}},"/organizations/otel-config/by-sandbox-auth-token/{authToken}":{"get":{"operationId":"getOrganizationOtelConfigBySandboxAuthToken","parameters":[{"name":"authToken","required":true,"in":"path","description":"Sandbox Auth Token","schema":{"type":"string"}}],"responses":{"200":{"description":"OTEL Config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OtelConfig"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get organization OTEL config by sandbox auth token","tags":["organizations"]}},"/organizations/{organizationId}/otel-config":{"get":{"operationId":"getOrganizationOtelConfig","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"responses":{"200":{"description":"OTEL Config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OtelConfig"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get organization OTEL config by organization ID","tags":["organizations"]},"put":{"operationId":"updateOrganizationOtelConfig","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OtelConfig"}}}},"responses":{"204":{"description":"OpenTelemetry configuration updated successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update organization OpenTelemetry configuration","tags":["organizations"]},"delete":{"operationId":"deleteOrganizationOtelConfig","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"responses":{"204":{"description":"OpenTelemetry configuration deleted successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Delete organization OpenTelemetry configuration","tags":["organizations"]}},"/organizations/{organizationId}/sandbox-default-limited-network-egress":{"post":{"operationId":"updateSandboxDefaultLimitedNetworkEgress","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationSandboxDefaultLimitedNetworkEgress"}}}},"responses":{"204":{"description":"Sandbox default limited network egress updated successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update sandbox default limited network egress","tags":["organizations"]}},"/organizations/{organizationId}/preview-warning":{"post":{"operationId":"updateOrganizationPreviewWarning","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationPreviewWarning"}}}},"responses":{"204":{"description":"Preview warning updated successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update organization preview warning","tags":["organizations"]}},"/organizations/{organizationId}/sso-enabled":{"post":{"operationId":"updateOrganizationSsoEnabled","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationSsoEnabled"}}}},"responses":{"204":{"description":"SSO entitlement updated successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update organization SSO entitlement","tags":["organizations"]}},"/organizations/{organizationId}/experimental-config":{"put":{"operationId":"updateExperimentalConfig","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"requestBody":{"required":false,"description":"Experimental configuration as a JSON object. Set to null to clear the configuration.","content":{"application/json":{"schema":{"additionalProperties":true,"example":{"otel":{"endpoint":"http://otel-collector:4317","headers":{"api-key":"XXX"}}}}}}},"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update experimental configuration","tags":["organizations"]}},"/organizations/{organizationId}/roles":{"post":{"operationId":"createOrganizationRole","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationRole"}}}},"responses":{"201":{"description":"Organization role created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationRole"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Create organization role","tags":["organizations"]},"get":{"operationId":"listOrganizationRoles","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"responses":{"200":{"description":"List of organization roles","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationRole"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"List organization roles","tags":["organizations"]}},"/organizations/{organizationId}/roles/{roleId}":{"put":{"operationId":"updateOrganizationRole","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}},{"name":"roleId","required":true,"in":"path","description":"Role ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationRole"}}}},"responses":{"200":{"description":"Role updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationRole"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update organization role","tags":["organizations"]},"delete":{"operationId":"deleteOrganizationRole","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}},{"name":"roleId","required":true,"in":"path","description":"Role ID","schema":{"type":"string"}}],"responses":{"204":{"description":"Organization role deleted successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Delete organization role","tags":["organizations"]}},"/organizations/{organizationId}/users":{"get":{"operationId":"listOrganizationMembers","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"responses":{"200":{"description":"List of organization members","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationUser"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"List organization members","tags":["organizations"]}},"/organizations/{organizationId}/users/{userId}/access":{"post":{"operationId":"updateAccessForOrganizationMember","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}},{"name":"userId","required":true,"in":"path","description":"User ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationMemberAccess"}}}},"responses":{"200":{"description":"Access updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationUser"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update access for organization member","tags":["organizations"]}},"/organizations/{organizationId}/users/{userId}":{"delete":{"operationId":"deleteOrganizationMember","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}},{"name":"userId","required":true,"in":"path","description":"User ID","schema":{"type":"string"}}],"responses":{"204":{"description":"User removed from organization successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Delete organization member","tags":["organizations"]}},"/organizations/{organizationId}/invitations":{"post":{"operationId":"createOrganizationInvitation","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationInvitation"}}}},"responses":{"201":{"description":"Organization invitation created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationInvitation"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Create organization invitation","tags":["organizations"]},"get":{"operationId":"listOrganizationInvitations","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"responses":{"200":{"description":"List of pending organization invitations","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationInvitation"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"List pending organization invitations","tags":["organizations"]}},"/organizations/{organizationId}/invitations/{invitationId}":{"put":{"operationId":"updateOrganizationInvitation","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}},{"name":"invitationId","required":true,"in":"path","description":"Invitation ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationInvitation"}}}},"responses":{"200":{"description":"Organization invitation updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationInvitation"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update organization invitation","tags":["organizations"]}},"/organizations/{organizationId}/invitations/{invitationId}/cancel":{"post":{"operationId":"cancelOrganizationInvitation","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}},{"name":"invitationId","required":true,"in":"path","description":"Invitation ID","schema":{"type":"string"}}],"responses":{"204":{"description":"Organization invitation cancelled successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Cancel organization invitation","tags":["organizations"]}},"/regions":{"get":{"operationId":"listAvailableRegions","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"List of all available regions","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Region"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"List all available regions for the organization","tags":["organizations"]},"post":{"operationId":"createRegion","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRegion"}}}},"responses":{"201":{"description":"The region has been successfully created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRegionResponse"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Create a new region","tags":["organizations"]}},"/regions/{id}":{"get":{"operationId":"getRegionById","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"id","required":true,"in":"path","description":"Region ID","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Region"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get region by ID","tags":["organizations"]},"delete":{"operationId":"deleteRegion","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"id","required":true,"in":"path","description":"Region ID","schema":{"type":"string"}}],"responses":{"204":{"description":"The region has been successfully deleted."}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Delete a region","tags":["organizations"]},"patch":{"operationId":"updateRegion","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"id","required":true,"in":"path","description":"Region ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRegion"}}}},"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update region configuration","tags":["organizations"]}},"/regions/{id}/regenerate-proxy-api-key":{"post":{"operationId":"regenerateProxyApiKey","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"id","required":true,"in":"path","description":"Region ID","schema":{"type":"string"}}],"responses":{"200":{"description":"The proxy API key has been successfully regenerated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegenerateApiKeyResponse"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Regenerate proxy API key for a region","tags":["organizations"]}},"/regions/{id}/regenerate-ssh-gateway-api-key":{"post":{"operationId":"regenerateSshGatewayApiKey","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"id","required":true,"in":"path","description":"Region ID","schema":{"type":"string"}}],"responses":{"200":{"description":"The SSH gateway API key has been successfully regenerated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegenerateApiKeyResponse"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Regenerate SSH gateway API key for a region","tags":["organizations"]}},"/regions/{id}/regenerate-snapshot-manager-credentials":{"post":{"operationId":"regenerateSnapshotManagerCredentials","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"id","required":true,"in":"path","description":"Region ID","schema":{"type":"string"}}],"responses":{"200":{"description":"The snapshot manager credentials have been successfully regenerated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnapshotManagerCredentials"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Regenerate snapshot manager credentials for a region","tags":["organizations"]}},"/organizations/{organizationId}/identity-providers":{"post":{"operationId":"createOrganizationIdentityProvider","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIdentityProvider"}}}},"responses":{"201":{"description":"Identity provider created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityProvider"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Create organization identity provider","tags":["organizations"]},"get":{"operationId":"listOrganizationIdentityProviders","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"responses":{"200":{"description":"List of identity providers","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IdentityProvider"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"List organization identity providers","tags":["organizations"]}},"/organizations/{organizationId}/identity-providers/{id}":{"get":{"operationId":"getOrganizationIdentityProvider","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","description":"Identity provider ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Identity provider details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityProvider"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get organization identity provider","tags":["organizations"]},"patch":{"operationId":"updateOrganizationIdentityProvider","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","description":"Identity provider ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateIdentityProvider"}}}},"responses":{"200":{"description":"Identity provider updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityProvider"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update organization identity provider","tags":["organizations"]},"delete":{"operationId":"deleteOrganizationIdentityProvider","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","description":"Identity provider ID","schema":{"type":"string"}}],"responses":{"204":{"description":"Identity provider deleted successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Delete organization identity provider","tags":["organizations"]}},"/organizations/{organizationId}/identity-providers/test-connection":{"post":{"operationId":"testOrganizationIdentityProviderConnection","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestIdentityProviderConnection"}}}},"responses":{"200":{"description":"Connection test result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestIdentityProviderConnectionResponse"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Test OIDC identity provider connection","tags":["organizations"]}},"/users/me":{"get":{"operationId":"getAuthenticatedUser","parameters":[],"responses":{"200":{"description":"User details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get authenticated user","tags":["users"]}},"/users/account-providers":{"get":{"operationId":"getAvailableAccountProviders","parameters":[],"responses":{"200":{"description":"Available account providers","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AccountProvider"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get available account providers","tags":["users"]}},"/users/linked-accounts":{"post":{"operationId":"linkAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLinkedAccount"}}}},"responses":{"204":{"description":"Account linked successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Link account","tags":["users"]}},"/users/linked-accounts/{provider}/{providerUserId}":{"delete":{"operationId":"unlinkAccount","parameters":[{"name":"provider","required":true,"in":"path","schema":{"type":"string"}},{"name":"providerUserId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":"Account unlinked successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Unlink account","tags":["users"]}},"/users/mfa/sms/enroll":{"post":{"operationId":"enrollInSmsMfa","parameters":[],"responses":{"200":{"description":"SMS MFA enrollment URL","content":{"application/json":{"schema":{"type":"string"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Enroll in SMS MFA","tags":["users"]}},"/shared-regions":{"get":{"operationId":"listSharedRegions","parameters":[],"responses":{"200":{"description":"List of all shared regions","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Region"}}}}}},"summary":"List all shared regions","tags":["regions"]}},"/sandbox":{"get":{"description":"Advanced filtering and ordering. Eventually consistent.","operationId":"listSandboxes","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"cursor","required":false,"in":"query","description":"Pagination cursor from a previous response","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","description":"Number of results per page","schema":{"minimum":1,"maximum":200,"default":100,"type":"number"}},{"name":"id","required":false,"in":"query","description":"Filter by ID prefix (case-insensitive)","schema":{"type":"string"}},{"name":"name","required":false,"in":"query","description":"Filter by name prefix (case-insensitive)","schema":{"type":"string"}},{"name":"labels","required":false,"in":"query","description":"JSON encoded labels to filter by","schema":{"example":"{\"label1\": \"value1\", \"label2\": \"value2\"}","type":"string"}},{"name":"includeErroredDeleted","required":false,"in":"query","description":"Include results with errored state and deleted desired state","schema":{"default":false,"type":"boolean"}},{"name":"includeWarm","required":false,"in":"query","description":"Include unclaimed warm pool sandboxes (excluded by default)","schema":{"default":false,"type":"boolean"}},{"name":"states","required":false,"in":"query","description":"List of states to filter by.","schema":{"type":"array","items":{"$ref":"#/components/schemas/SandboxState"}}},{"name":"snapshots","required":false,"in":"query","description":"List of snapshot names to filter by","schema":{"type":"array","items":{"type":"string"}}},{"name":"regionIds","required":false,"in":"query","description":"List of regions IDs to filter by","schema":{"type":"array","items":{"type":"string"}}},{"name":"sandboxClasses","required":false,"in":"query","description":"List of sandbox classes to filter by","schema":{"type":"array","items":{"$ref":"#/components/schemas/SandboxClass"}}},{"name":"minCpu","required":false,"in":"query","description":"Minimum CPU","schema":{"minimum":1,"type":"number"}},{"name":"maxCpu","required":false,"in":"query","description":"Maximum CPU","schema":{"minimum":1,"type":"number"}},{"name":"minMemoryGiB","required":false,"in":"query","description":"Minimum memory in GiB","schema":{"minimum":1,"type":"number"}},{"name":"maxMemoryGiB","required":false,"in":"query","description":"Maximum memory in GiB","schema":{"minimum":1,"type":"number"}},{"name":"minDiskGiB","required":false,"in":"query","description":"Minimum disk space in GiB","schema":{"minimum":1,"type":"number"}},{"name":"maxDiskGiB","required":false,"in":"query","description":"Maximum disk space in GiB","schema":{"minimum":1,"type":"number"}},{"name":"isPublic","required":false,"in":"query","description":"Filter by public status","schema":{"type":"boolean"}},{"name":"isRecoverable","required":false,"in":"query","description":"Filter by recoverable status","schema":{"type":"boolean"}},{"name":"createdAtAfter","required":false,"in":"query","description":"Include items created after this timestamp","schema":{"format":"date-time","example":"2024-01-01T00:00:00Z","type":"string"}},{"name":"createdAtBefore","required":false,"in":"query","description":"Include items created before this timestamp","schema":{"format":"date-time","example":"2024-12-31T23:59:59Z","type":"string"}},{"name":"lastEventAfter","required":false,"in":"query","description":"Include items with last event after this timestamp","schema":{"format":"date-time","example":"2024-01-01T00:00:00Z","type":"string"}},{"name":"lastEventBefore","required":false,"in":"query","description":"Include items with last event before this timestamp","schema":{"format":"date-time","example":"2024-12-31T23:59:59Z","type":"string"}},{"name":"autoDestroyAtAfter","required":false,"in":"query","description":"Include items scheduled for auto destroy after this timestamp","schema":{"format":"date-time","example":"2024-01-01T00:00:00Z","type":"string"}},{"name":"autoDestroyAtBefore","required":false,"in":"query","description":"Include items scheduled for auto destroy before this timestamp","schema":{"format":"date-time","example":"2024-12-31T23:59:59Z","type":"string"}},{"name":"sort","required":false,"in":"query","description":"Field to sort by","schema":{"$ref":"#/components/schemas/SandboxListSortField"}},{"name":"order","required":false,"in":"query","description":"Direction to sort by","schema":{"$ref":"#/components/schemas/SandboxListSortDirection"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSandboxesResponse"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"List sandboxes","tags":["sandbox"]},"post":{"operationId":"createSandbox","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSandbox"}}}},"responses":{"200":{"description":"The sandbox has been successfully created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Create a new sandbox","tags":["sandbox"]}},"/sandbox/paginated":{"get":{"deprecated":true,"operationId":"listSandboxesPaginated_deprecated","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"page","required":false,"in":"query","description":"Page number of the results","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Number of results per page","schema":{"minimum":1,"maximum":200,"default":100,"type":"number"}},{"name":"id","required":false,"in":"query","description":"Filter by partial ID match","schema":{"example":"abc123","type":"string"}},{"name":"name","required":false,"in":"query","description":"Filter by partial name match","schema":{"example":"abc123","type":"string"}},{"name":"labels","required":false,"in":"query","description":"JSON encoded labels to filter by","schema":{"example":"{\"label1\": \"value1\", \"label2\": \"value2\"}","type":"string"}},{"name":"includeErroredDeleted","required":false,"in":"query","description":"Include results with errored state and deleted desired state","schema":{"default":false,"type":"boolean"}},{"name":"states","required":false,"in":"query","description":"List of states to filter by","schema":{"type":"array","items":{"type":"string","enum":["creating","restoring","destroying","started","stopped","starting","stopping","error","build_failed","pending_build","building_snapshot","unknown","pulling_snapshot","archived","archiving","resizing","snapshotting","forking","pausing","paused","resuming"]}}},{"name":"snapshots","required":false,"in":"query","description":"List of snapshot names to filter by","schema":{"type":"array","items":{"type":"string"}}},{"name":"regions","required":false,"in":"query","description":"List of regions to filter by","schema":{"type":"array","items":{"type":"string"}}},{"name":"minCpu","required":false,"in":"query","description":"Minimum CPU","schema":{"minimum":1,"type":"number"}},{"name":"maxCpu","required":false,"in":"query","description":"Maximum CPU","schema":{"minimum":1,"type":"number"}},{"name":"minMemoryGiB","required":false,"in":"query","description":"Minimum memory in GiB","schema":{"minimum":1,"type":"number"}},{"name":"maxMemoryGiB","required":false,"in":"query","description":"Maximum memory in GiB","schema":{"minimum":1,"type":"number"}},{"name":"minDiskGiB","required":false,"in":"query","description":"Minimum disk space in GiB","schema":{"minimum":1,"type":"number"}},{"name":"maxDiskGiB","required":false,"in":"query","description":"Maximum disk space in GiB","schema":{"minimum":1,"type":"number"}},{"name":"lastEventAfter","required":false,"in":"query","description":"Include items with last event after this timestamp","schema":{"format":"date-time","example":"2024-01-01T00:00:00Z","type":"string"}},{"name":"lastEventBefore","required":false,"in":"query","description":"Include items with last event before this timestamp","schema":{"format":"date-time","example":"2024-12-31T23:59:59Z","type":"string"}},{"name":"sort","required":false,"in":"query","description":"Field to sort by","schema":{"default":"createdAt","type":"string","enum":["id","name","state","snapshot","region","updatedAt","createdAt","lastActivityAt"]}},{"name":"order","required":false,"in":"query","description":"Direction to sort by","schema":{"default":"desc","type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"Paginated list of all sandboxes","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedSandboxes_deprecated"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"[DEPRECATED] List all sandboxes paginated","tags":["sandbox"]}},"/sandbox/for-runner":{"get":{"operationId":"getSandboxesForRunner","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"states","required":false,"in":"query","description":"Comma-separated list of sandbox states to filter by","schema":{"type":"string"}},{"name":"skipReconcilingSandboxes","required":false,"in":"query","description":"Skip sandboxes where state differs from desired state","schema":{"type":"boolean"}}],"responses":{"200":{"description":"List of sandboxes for the authenticated runner","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Sandbox"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get sandboxes for the authenticated runner","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}":{"get":{"description":"Sandboxes destroyed by spot preemption remain retrievable for 24 hours so `spotEvictedAt` can be read.","operationId":"getSandbox","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}},{"name":"verbose","required":false,"in":"query","description":"Include verbose output","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Sandbox details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get sandbox details","tags":["sandbox"]},"delete":{"operationId":"deleteSandbox","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}}],"responses":{"200":{"description":"Sandbox has been deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Delete sandbox","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/recover":{"post":{"operationId":"recoverSandbox","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}},{"name":"skipStart","required":false,"in":"query","description":"If true, the sandbox is left in STOPPED after recovery instead of being started.","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Recovery initiated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Recover sandbox from error state","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/start":{"post":{"description":"Starts a stopped or archived sandbox, or resumes a paused sandbox. The transition taken depends on the current sandbox state.","operationId":"startSandbox","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}}],"responses":{"200":{"description":"Sandbox has been started, is being restored from archived state, or is being resumed from paused","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Start or resume sandbox","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/stop":{"post":{"operationId":"stopSandbox","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}},{"name":"force","required":false,"in":"query","description":"Force stop the sandbox using SIGKILL instead of SIGTERM","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Sandbox has been stopped","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Stop sandbox","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/pause":{"post":{"operationId":"pauseSandbox","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}}],"responses":{"200":{"description":"Sandbox pause has been initiated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Pause sandbox","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/resize":{"post":{"operationId":"resizeSandbox","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResizeSandbox"}}}},"responses":{"200":{"description":"Sandbox has been resized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Resize sandbox resources","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/labels":{"put":{"operationId":"replaceLabels","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxLabels"}}}},"responses":{"200":{"description":"Labels have been successfully replaced","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxLabels"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Replace sandbox labels","tags":["sandbox"]}},"/sandbox/{sandboxId}/state":{"put":{"operationId":"updateSandboxState","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxId","required":true,"in":"path","description":"ID of the sandbox","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSandboxStateDto"}}}},"responses":{"200":{"description":"Sandbox state has been successfully updated"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update sandbox state","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/backup":{"post":{"deprecated":true,"description":"Deprecated: backups are managed automatically. This endpoint is a no-op kept for compatibility.","operationId":"createBackup","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}}],"responses":{"200":{"description":"Sandbox backup request acknowledged (no-op)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Create sandbox backup","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/snapshot":{"post":{"operationId":"createSandboxSnapshot","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSandboxSnapshot"}}}},"responses":{"200":{"description":"Snapshot creation has been initiated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Create a snapshot from a sandbox","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/fork":{"post":{"operationId":"forkSandbox","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForkSandbox"}}}},"responses":{"200":{"description":"Fork operation has been initiated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Fork a sandbox","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/forks":{"get":{"operationId":"getSandboxForks","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","schema":{"type":"string"}},{"name":"includeDestroyed","required":false,"in":"query","schema":{"type":"boolean"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Sandbox"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get sandbox fork children","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/parent":{"get":{"operationId":"getSandboxParent","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get sandbox fork parent","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/ancestors":{"get":{"operationId":"getSandboxAncestors","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Sandbox"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get sandbox fork ancestor chain","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/public/{isPublic}":{"post":{"operationId":"updatePublicStatus","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}},{"name":"isPublic","required":true,"in":"path","description":"Public status to set","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Public status has been successfully updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update public status","tags":["sandbox"]}},"/sandbox/{sandboxId}/signing-key":{"get":{"operationId":"getSandboxSigningKey","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxId","required":true,"in":"path","description":"ID of the sandbox","schema":{"type":"string"}}],"responses":{"200":{"description":"Signing key of the sandbox","content":{"application/json":{"schema":{"type":"string"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get the signing key for a sandbox","tags":["sandbox"]}},"/sandbox/{sandboxId}/signing-key/rotate":{"post":{"operationId":"rotateSigningKey","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxId","required":true,"in":"path","description":"ID of the sandbox","schema":{"type":"string"}}],"responses":{"200":{"description":"New signing key","content":{"application/json":{"schema":{"type":"string"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Rotate the signing key, invalidating all previously signed URLs","tags":["sandbox"]}},"/sandbox/{sandboxId}/last-activity":{"post":{"operationId":"updateLastActivity","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxId","required":true,"in":"path","description":"ID of the sandbox","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateLastActivity"}}}},"responses":{"201":{"description":"Last activity has been updated"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update sandbox last activity","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/autostop/{interval}":{"post":{"operationId":"setAutostopInterval","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}},{"name":"interval","required":true,"in":"path","description":"Auto-stop interval in minutes (0 to disable)","schema":{"type":"number"}}],"responses":{"200":{"description":"Auto-stop interval has been set","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Set sandbox auto-stop interval","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/autopause/{interval}":{"post":{"operationId":"setAutoPauseInterval","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}},{"name":"interval","required":true,"in":"path","description":"Auto-pause interval in minutes (0 to disable)","schema":{"type":"number"}}],"responses":{"200":{"description":"Auto-pause interval has been set","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Set sandbox auto-pause interval","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/ttl/{ttlMinutes}":{"post":{"operationId":"setTtl","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}},{"name":"ttlMinutes","required":true,"in":"path","description":"Maximum time to live in minutes, re-anchored from the current time (0 to disable). When it elapses the sandbox is destroyed, even if it is stopped, paused, or archived","schema":{"type":"number"}}],"responses":{"200":{"description":"TTL has been set","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Set sandbox TTL","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/autoarchive/{interval}":{"post":{"operationId":"setAutoArchiveInterval","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}},{"name":"interval","required":true,"in":"path","description":"Auto-archive interval in minutes (0 means the maximum interval will be used)","schema":{"type":"number"}}],"responses":{"200":{"description":"Auto-archive interval has been set","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Set sandbox auto-archive interval","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/autodelete/{interval}":{"post":{"operationId":"setAutoDeleteInterval","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}},{"name":"interval","required":true,"in":"path","description":"Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)","schema":{"type":"number"}}],"responses":{"200":{"description":"Auto-delete interval has been set","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Set sandbox auto-delete interval","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/network-settings":{"post":{"description":"Changes outbound network policy on the runner for a running sandbox (for example block all traffic, restore access, or set a CIDR allow list).","operationId":"updateNetworkSettings","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSandboxNetworkSettings"}}}},"responses":{"200":{"description":"Network settings have been updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update sandbox network settings","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/secrets":{"put":{"description":"Replaces the set of vault secrets mounted in the sandbox. Attached, detached and rotated secrets take effect for outbound requests within seconds. New env vars become visible to processes spawned after the update; a sandbox created without any secrets must be restarted for newly attached secrets to work.","operationId":"updateSandboxSecrets","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSandboxSecrets"}}}},"responses":{"200":{"description":"Sandbox secrets have been updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update sandbox secrets","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/archive":{"post":{"operationId":"archiveSandbox","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Sandbox has been archived","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Archive sandbox","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/ports/{port}/preview-url":{"get":{"operationId":"getPortPreviewUrl","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}},{"name":"port","required":true,"in":"path","description":"Port number to get preview URL for","schema":{"type":"number"}}],"responses":{"200":{"description":"Preview URL for the specified port","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortPreviewUrl"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get preview URL for a sandbox port","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/ports/{port}/signed-preview-url":{"get":{"operationId":"getSignedPortPreviewUrl","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}},{"name":"port","required":true,"in":"path","description":"Port number to get signed preview URL for","schema":{"type":"integer"}},{"name":"expiresInSeconds","required":false,"in":"query","description":"Expiration time in seconds (default: 60 seconds)","schema":{"type":"integer"}}],"responses":{"200":{"description":"Signed preview URL for the specified port","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignedPortPreviewUrl"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get signed preview URL for a sandbox port","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/ports/{port}/signed-preview-url/{token}/expire":{"post":{"operationId":"expireSignedPortPreviewUrl","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}},{"name":"port","required":true,"in":"path","description":"Port number to expire signed preview URL for","schema":{"type":"integer"}},{"name":"token","required":true,"in":"path","description":"Token to expire signed preview URL for","schema":{"type":"string"}}],"responses":{"200":{"description":"Signed preview URL has been expired"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Expire signed preview URL for a sandbox port","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/build-logs":{"get":{"deprecated":true,"description":"This endpoint is deprecated. Use `getBuildLogsUrl` instead.","operationId":"getBuildLogs","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}},{"name":"follow","required":false,"in":"query","description":"Whether to follow the logs stream","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Build logs stream"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get build logs","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/build-logs-url":{"get":{"operationId":"getBuildLogsUrl","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}}],"responses":{"200":{"description":"Build logs URL","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Url"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get build logs URL","tags":["sandbox"]}},"/sandbox/{sandboxIdOrName}/ssh-access":{"post":{"operationId":"createSshAccess","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}},{"name":"expiresInMinutes","required":false,"in":"query","description":"Expiration time in minutes (default: 60)","schema":{"type":"number"}}],"responses":{"200":{"description":"SSH access has been created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SshAccessDto"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Create SSH access for sandbox","tags":["sandbox"]},"delete":{"operationId":"revokeSshAccess","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxIdOrName","required":true,"in":"path","description":"ID or name of the sandbox","schema":{"type":"string"}},{"name":"token","required":false,"in":"query","description":"SSH access token to revoke. If not provided, all SSH access for the sandbox will be revoked.","schema":{"type":"string"}}],"responses":{"200":{"description":"SSH access has been revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Revoke SSH access for sandbox","tags":["sandbox"]}},"/sandbox/ssh-access/validate":{"get":{"operationId":"validateSshAccess","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"token","required":true,"in":"query","description":"SSH access token to validate","schema":{"type":"string"}}],"responses":{"200":{"description":"SSH access validation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SshAccessValidationDto"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Validate SSH access for sandbox","tags":["sandbox"]}},"/sandbox/{sandboxId}/toolbox-proxy-url":{"get":{"operationId":"getToolboxProxyUrl","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxId","required":true,"in":"path","description":"ID of the sandbox","schema":{"type":"string"}}],"responses":{"200":{"description":"Toolbox proxy URL for the specified sandbox","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolboxProxyUrl"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get toolbox proxy URL for a sandbox","tags":["sandbox"]}},"/sandbox/{sandboxId}/organization":{"get":{"operationId":"getOrganizationBySandboxId","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxId","required":true,"in":"path","description":"ID of the sandbox","schema":{"type":"string"}}],"responses":{"200":{"description":"Organization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organization"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get organization by sandbox ID","tags":["sandbox"]}},"/sandbox/{sandboxId}/region-quota":{"get":{"operationId":"getRegionQuotaBySandboxId","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxId","required":true,"in":"path","description":"ID of the sandbox","schema":{"type":"string"}}],"responses":{"200":{"description":"Region quota","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegionQuota"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get region quota by sandbox ID","tags":["sandbox"]}},"/sandbox/{sandboxId}/secrets":{"get":{"operationId":"resolveSandboxSecrets","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxId","required":true,"in":"path","description":"Sandbox ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Decrypted secret key-value pairs for this sandbox","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"env":{"type":"string","example":"ANTHROPIC_API_KEY"},"placeholder":{"type":"string","example":"dtn_secret_a7f3b2c1e9d4"},"value":{"type":"string","example":"sk-ant-..."},"hosts":{"type":"array","items":{"type":"string"},"example":["api.anthropic.com"]}}}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Resolve sandbox secrets","tags":["sandbox"]}},"/runners":{"post":{"operationId":"createRunner","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRunner"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRunnerResponse"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Create runner","tags":["runners"]},"get":{"operationId":"listRunners","parameters":[{"name":"regionId","required":false,"in":"query","description":"Filter runners by region ID","schema":{"type":"string"}},{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Runner"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"List all runners","tags":["runners"]}},"/runners/me":{"get":{"operationId":"getInfoForAuthenticatedRunner","parameters":[],"responses":{"200":{"description":"Runner info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerFull"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get info for authenticated runner","tags":["runners"]}},"/runners/me/snapshots":{"get":{"operationId":"getSnapshotRefsForAuthenticatedRunner","parameters":[],"responses":{"200":{"description":"Snapshot refs the runner is expected to have","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get snapshot refs for authenticated runner","tags":["runners"]}},"/runners/by-sandbox/{sandboxId}":{"get":{"operationId":"getRunnerBySandboxId","parameters":[{"name":"sandboxId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerFull"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get runner by sandbox ID","tags":["runners"]}},"/runners/by-snapshot-ref":{"get":{"operationId":"getRunnersBySnapshotRef","parameters":[{"name":"ref","required":true,"in":"query","description":"Snapshot ref","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RunnerSnapshotDto"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get runners by snapshot ref","tags":["runners"]}},"/runners/{id}":{"get":{"operationId":"getRunnerById","parameters":[{"name":"id","required":true,"in":"path","description":"Runner ID","schema":{"type":"string"}},{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Runner"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get runner by ID","tags":["runners"]},"delete":{"operationId":"deleteRunner","parameters":[{"name":"id","required":true,"in":"path","description":"Runner ID","schema":{"type":"string"}},{"name":"force","required":false,"in":"query","description":"Delete the runner without waiting for sandboxes already marked for destruction. Requires the runner to have stopped reporting as ready.","schema":{"type":"boolean"}},{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}}],"responses":{"204":{"description":""}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Delete runner","tags":["runners"]}},"/runners/{id}/full":{"get":{"operationId":"getRunnerFullById","parameters":[{"name":"id","required":true,"in":"path","description":"Runner ID","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerFull"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get runner by ID","tags":["runners"]}},"/runners/{id}/scheduling":{"patch":{"operationId":"updateRunnerScheduling","parameters":[{"name":"id","required":true,"in":"path","description":"Runner ID","schema":{"type":"string"}},{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Runner"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update runner scheduling status","tags":["runners"]}},"/runners/{id}/draining":{"patch":{"operationId":"updateRunnerDraining","parameters":[{"name":"id","required":true,"in":"path","description":"Runner ID","schema":{"type":"string"}},{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Runner"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update runner draining status","tags":["runners"]}},"/runners/healthcheck":{"post":{"description":"Endpoint for version 2 runners to send healthcheck and metrics. Updates lastChecked timestamp and runner metrics.","operationId":"runnerHealthcheck","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerHealthcheck"}}}},"responses":{"200":{"description":"Healthcheck received"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Runner healthcheck","tags":["runners"]}},"/snapshots":{"post":{"operationId":"createSnapshot","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSnapshot"}}}},"responses":{"200":{"description":"The snapshot has been successfully created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnapshotDto"}}}},"400":{"description":"Bad request - Snapshots with tag \":latest\" are not allowed"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Create a new snapshot","tags":["snapshots"]},"get":{"operationId":"getAllSnapshots","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"page","required":false,"in":"query","description":"Page number of the results","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Number of results per page","schema":{"minimum":1,"maximum":200,"default":100,"type":"number"}},{"name":"name","required":false,"in":"query","description":"Filter by partial name match","schema":{"example":"abc123","type":"string"}},{"name":"sourceSandboxId","required":false,"in":"query","description":"Filter by the ID of the sandbox the snapshot was created from","schema":{"example":"sandbox123","type":"string"}},{"name":"sort","required":false,"in":"query","description":"Field to sort by","schema":{"default":"lastUsedAt","type":"string","enum":["name","state","lastUsedAt","createdAt"]}},{"name":"order","required":false,"in":"query","description":"Direction to sort by","schema":{"default":"desc","type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"Paginated list of all snapshots","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedSnapshots"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"List all snapshots","tags":["snapshots"]}},"/snapshots/{id}":{"get":{"operationId":"getSnapshot","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"id","required":true,"in":"path","description":"Snapshot ID or name","schema":{"type":"string"}}],"responses":{"200":{"description":"The snapshot","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnapshotDto"}}}},"404":{"description":"Snapshot not found"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get snapshot by ID or name","tags":["snapshots"]},"delete":{"operationId":"removeSnapshot","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"id","required":true,"in":"path","description":"Snapshot ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Snapshot has been deleted"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Delete snapshot","tags":["snapshots"]}},"/snapshots/{id}/build-logs":{"get":{"deprecated":true,"description":"This endpoint is deprecated. Use `getSnapshotBuildLogsUrl` instead.","operationId":"getSnapshotBuildLogs","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"id","required":true,"in":"path","description":"Snapshot ID","schema":{"type":"string"}},{"name":"follow","required":false,"in":"query","description":"Whether to follow the logs stream","schema":{"type":"boolean"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get snapshot build logs","tags":["snapshots"]}},"/snapshots/{id}/build-logs-url":{"get":{"operationId":"getSnapshotBuildLogsUrl","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"id","required":true,"in":"path","description":"Snapshot ID","schema":{"type":"string"}}],"responses":{"200":{"description":"The snapshot build logs URL","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Url"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get snapshot build logs URL","tags":["snapshots"]}},"/snapshots/{id}/activate":{"post":{"operationId":"activateSnapshot","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"id","required":true,"in":"path","description":"Snapshot ID","schema":{"type":"string"}}],"responses":{"200":{"description":"The snapshot has been successfully activated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnapshotDto"}}}},"400":{"description":"Bad request - Snapshot is already active, not in inactive state, or has associated snapshot runners"},"404":{"description":"Snapshot not found"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Activate a snapshot","tags":["snapshots"]}},"/snapshots/{id}/deactivate":{"post":{"operationId":"deactivateSnapshot","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"id","required":true,"in":"path","description":"Snapshot ID","schema":{"type":"string"}}],"responses":{"204":{"description":"The snapshot has been successfully deactivated."}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Deactivate a snapshot","tags":["snapshots"]}},"/preview/{sandboxId}/public":{"get":{"operationId":"isSandboxPublic","parameters":[{"name":"sandboxId","required":true,"in":"path","description":"ID of the sandbox","schema":{"type":"string"}}],"responses":{"200":{"description":"Public status of the sandbox","content":{"application/json":{"schema":{"type":"boolean"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Check if sandbox is public","tags":["preview"]}},"/preview/{sandboxId}/preview-warning":{"get":{"operationId":"isPreviewWarningEnabled","parameters":[{"name":"sandboxId","required":true,"in":"path","description":"ID of the sandbox, or a signed preview URL token (requires the port query param)","schema":{"type":"string"}},{"name":"port","required":false,"in":"query","description":"Port the signed preview URL token was issued for. Required when sandboxId is a signed token.","schema":{"type":"number"}}],"responses":{"200":{"description":"Whether the preview warning page is enabled for the sandbox","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewWarning"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Check if the preview warning page is enabled for the sandbox","tags":["preview"]}},"/preview/{sandboxId}/validate/{authToken}":{"get":{"operationId":"isValidAuthToken","parameters":[{"name":"sandboxId","required":true,"in":"path","description":"ID of the sandbox","schema":{"type":"string"}},{"name":"authToken","required":true,"in":"path","description":"Auth token of the sandbox","schema":{"type":"string"}}],"responses":{"200":{"description":"Sandbox auth token validation status","content":{"application/json":{"schema":{"type":"boolean"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Check if sandbox auth token is valid","tags":["preview"]}},"/preview/{sandboxId}/signing-key":{"get":{"operationId":"getSigningKey","parameters":[{"name":"sandboxId","required":true,"in":"path","description":"ID of the sandbox","schema":{"type":"string"}}],"responses":{"200":{"description":"Signing key of the sandbox","content":{"application/json":{"schema":{"type":"string"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get the signing key for a sandbox","tags":["preview"]}},"/preview/{sandboxId}/access":{"get":{"operationId":"hasSandboxAccess","parameters":[{"name":"sandboxId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"User access status to the sandbox","content":{"application/json":{"schema":{"type":"boolean"}}}},"404":{"description":"Sandbox not found. For members of the owning organization whose sandbox was deleted, the body carries code \"SANDBOX_DESTROYED\"."}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Check if user has access to the sandbox","tags":["preview"]}},"/preview/{signedPreviewToken}/{port}/sandbox-id":{"get":{"operationId":"getSandboxIdFromSignedPreviewUrlToken","parameters":[{"name":"signedPreviewToken","required":true,"in":"path","description":"Signed preview URL token","schema":{"type":"string"}},{"name":"port","required":true,"in":"path","description":"Port number to get sandbox ID from signed preview URL token","schema":{"type":"number"}}],"responses":{"200":{"description":"Sandbox ID from signed preview URL token","content":{"application/json":{"schema":{"type":"string"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get sandbox ID from signed preview URL token","tags":["preview"]}},"/volumes":{"get":{"operationId":"listVolumes","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"includeDeleted","required":false,"in":"query","description":"Include deleted volumes in the response","schema":{"type":"boolean"}}],"responses":{"200":{"description":"List of all volumes","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VolumeDto"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"List all volumes","tags":["volumes"]},"post":{"operationId":"createVolume","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVolume"}}}},"responses":{"200":{"description":"The volume has been successfully created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VolumeDto"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Create a new volume","tags":["volumes"]}},"/volumes/{volumeId}":{"get":{"operationId":"getVolume","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"volumeId","required":true,"in":"path","description":"ID of the volume","schema":{"type":"string"}}],"responses":{"200":{"description":"Volume details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VolumeDto"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get volume details","tags":["volumes"]},"delete":{"operationId":"deleteVolume","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"volumeId","required":true,"in":"path","description":"ID of the volume","schema":{"type":"string"}}],"responses":{"200":{"description":"Volume has been marked for deletion"},"409":{"description":"Volume is in use by one or more sandboxes"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Delete volume","tags":["volumes"]}},"/volumes/by-name/{name}":{"get":{"operationId":"getVolumeByName","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"name","required":true,"in":"path","description":"Name of the volume","schema":{"type":"string"}}],"responses":{"200":{"description":"Volume details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VolumeDto"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get volume details by name","tags":["volumes"]}},"/jobs":{"get":{"description":"Returns a paginated list of jobs for the runner, optionally filtered by status.","operationId":"listJobs","parameters":[{"name":"page","required":false,"in":"query","description":"Page number of the results","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Maximum number of jobs to return (default: 100, max: 500)","schema":{"minimum":1,"maximum":200,"default":100,"type":"number"}},{"name":"status","required":false,"in":"query","description":"Filter jobs by status","schema":{"$ref":"#/components/schemas/JobStatus"}},{"name":"offset","required":false,"in":"query","description":"Number of jobs to skip for pagination (default: 0)","schema":{"type":"number"}}],"responses":{"200":{"description":"List of jobs for the runner","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedJobs"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"List jobs for the runner","tags":["jobs"]}},"/jobs/poll":{"get":{"description":"Long poll endpoint for runners to fetch pending jobs. Returns immediately if jobs are available, otherwise waits up to timeout seconds.","operationId":"pollJobs","parameters":[{"name":"timeout","required":false,"in":"query","description":"Timeout in seconds for long polling (default: 30, max: 60)","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Maximum number of jobs to return (default: 10, max: 100)","schema":{"type":"number"}}],"responses":{"200":{"description":"List of jobs for the runner","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PollJobsResponse"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Long poll for jobs","tags":["jobs"]}},"/jobs/{jobId}":{"get":{"operationId":"getJob","parameters":[{"name":"jobId","required":true,"in":"path","description":"ID of the job","schema":{"type":"string"}}],"responses":{"200":{"description":"Job details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get job details","tags":["jobs"]}},"/jobs/{jobId}/status":{"post":{"operationId":"updateJobStatus","parameters":[{"name":"jobId","required":true,"in":"path","description":"ID of the job","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJobStatus"}}}},"responses":{"200":{"description":"Job status updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update job status","tags":["jobs"]}},"/warm-pools":{"get":{"operationId":"listWarmPools","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"List of warm pools","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WarmPool"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"List warm pools for the organization","tags":["warm-pools"]},"post":{"operationId":"createWarmPool","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWarmPool"}}}},"responses":{"201":{"description":"The warm pool has been created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WarmPool"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Create a warm pool","tags":["warm-pools"]}},"/warm-pools/{id}":{"patch":{"operationId":"updateWarmPool","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"id","required":true,"in":"path","description":"Warm pool ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWarmPool"}}}},"responses":{"200":{"description":"The warm pool has been updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WarmPool"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update a warm pool size","tags":["warm-pools"]},"delete":{"operationId":"deleteWarmPool","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"id","required":true,"in":"path","description":"Warm pool ID","schema":{"type":"string"}}],"responses":{"204":{"description":"The warm pool has been deleted"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Delete a warm pool","tags":["warm-pools"]}},"/docker-registry":{"post":{"operationId":"createRegistry","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDockerRegistry"}}}},"responses":{"201":{"description":"The docker registry has been successfully created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DockerRegistry"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Create registry","tags":["docker-registry"]},"get":{"operationId":"listRegistries","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"List of all docker registries","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DockerRegistry"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"List registries","tags":["docker-registry"]}},"/docker-registry/registry-push-access":{"get":{"operationId":"getTransientPushAccess","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"regionId","required":false,"in":"query","description":"ID of the region where the snapshot will be available (defaults to organization default region)","schema":{"type":"string"}}],"responses":{"200":{"description":"Temporary registry access has been generated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistryPushAccessDto"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get temporary registry access for pushing snapshots","tags":["docker-registry"]}},"/docker-registry/{id}":{"get":{"operationId":"getRegistry","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"id","required":true,"in":"path","description":"ID of the docker registry","schema":{"type":"string"}}],"responses":{"200":{"description":"The docker registry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DockerRegistry"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get registry","tags":["docker-registry"]},"patch":{"operationId":"updateRegistry","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"id","required":true,"in":"path","description":"ID of the docker registry","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDockerRegistry"}}}},"responses":{"200":{"description":"The docker registry has been successfully updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DockerRegistry"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update registry","tags":["docker-registry"]},"delete":{"operationId":"deleteRegistry","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"id","required":true,"in":"path","description":"ID of the docker registry","schema":{"type":"string"}}],"responses":{"204":{"description":"The docker registry has been successfully deleted."}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Delete registry","tags":["docker-registry"]}},"/secret":{"post":{"operationId":"createSecret","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSecret"}}}},"responses":{"201":{"description":"The secret has been successfully created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Secret"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Create secret","tags":["secret"]},"get":{"deprecated":true,"description":"This endpoint is deprecated and fails for organizations with more than 1500 secrets. Use `listSecretsPaginated` instead.","operationId":"listSecrets","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"List of all secrets (metadata only, values are not returned)","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Secret"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"List secrets","tags":["secret"]}},"/secret/paginated":{"get":{"operationId":"listSecretsPaginated","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"cursor","required":false,"in":"query","description":"Pagination cursor from a previous response","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","description":"Number of results per page","schema":{"minimum":1,"maximum":200,"default":100,"type":"number"}},{"name":"name","required":false,"in":"query","description":"Filter by partial name match","schema":{"example":"MY_API_KEY","type":"string"}},{"name":"sort","required":false,"in":"query","description":"Field to sort by","schema":{"default":"createdAt","type":"string","enum":["name","createdAt","updatedAt"]}},{"name":"order","required":false,"in":"query","description":"Direction to sort by","schema":{"default":"desc","type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"Paginated list of secrets (metadata only, values are not returned)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSecretsResponse"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"List secrets with pagination","tags":["secret"]}},"/secret/{secretId}":{"get":{"operationId":"getSecret","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"secretId","required":true,"in":"path","description":"ID of the secret","schema":{"type":"string"}}],"responses":{"200":{"description":"The secret metadata (value is not returned)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Secret"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get secret","tags":["secret"]},"patch":{"operationId":"updateSecret","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"secretId","required":true,"in":"path","description":"ID of the secret","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSecret"}}}},"responses":{"200":{"description":"The secret has been successfully updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Secret"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update secret","tags":["secret"]},"delete":{"operationId":"deleteSecret","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"secretId","required":true,"in":"path","description":"ID of the secret","schema":{"type":"string"}}],"responses":{"204":{"description":"The secret has been successfully deleted."}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Delete secret","tags":["secret"]}},"/users/me/pending-sso-links":{"get":{"operationId":"listPendingSsoLinks","parameters":[],"responses":{"200":{"description":"Pending SSO account links","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PendingSsoLink"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"List pending SSO account links for the authenticated user","tags":["users"]}},"/users/me/pending-sso-links/{id}/confirm":{"post":{"operationId":"confirmPendingSsoLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":"SSO identity linked"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Confirm (link) a pending SSO account link","tags":["users"]}},"/users/me/pending-sso-links/{id}":{"delete":{"operationId":"dismissPendingSsoLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":"Pending SSO link dismissed"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Dismiss a pending SSO account link","tags":["users"]}},"/admin/runners":{"post":{"operationId":"adminCreateRunner","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminCreateRunner"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRunnerResponse"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Create runner","tags":["admin"]},"get":{"operationId":"adminListRunners","parameters":[{"name":"regionId","required":false,"in":"query","description":"Filter runners by region ID","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RunnerFull"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"List all runners","tags":["admin"]}},"/admin/runners/{id}":{"get":{"operationId":"adminGetRunnerById","parameters":[{"name":"id","required":true,"in":"path","description":"Runner ID","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerFull"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get runner by ID","tags":["admin"]},"delete":{"operationId":"adminDeleteRunner","parameters":[{"name":"id","required":true,"in":"path","description":"Runner ID","schema":{"type":"string"}},{"name":"force","required":false,"in":"query","description":"Delete the runner without waiting for sandboxes already marked for destruction. Requires the runner to have stopped reporting as ready.","schema":{"type":"boolean"}}],"responses":{"204":{"description":""}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Delete runner","tags":["admin"]}},"/admin/runners/{id}/scheduling":{"patch":{"operationId":"adminUpdateRunnerScheduling","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":""}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update runner scheduling status","tags":["admin"]}},"/admin/sandbox/{sandboxId}/recover":{"post":{"operationId":"adminRecoverSandbox","parameters":[{"name":"sandboxId","required":true,"in":"path","description":"ID of the sandbox","schema":{"type":"string"}}],"responses":{"200":{"description":"Recovery initiated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Recover sandbox from error state as an admin","tags":["admin"]}},"/admin/users":{"post":{"operationId":"adminCreateUser","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUser"}}}},"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Create user","tags":["admin"]},"get":{"operationId":"adminListUsers","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"List all users","tags":["admin"]}},"/admin/users/{id}/regenerate-key-pair":{"post":{"operationId":"adminRegenerateKeyPair","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Regenerate user key pair","tags":["admin"]}},"/admin/users/{id}":{"get":{"operationId":"adminGetUser","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"User details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get user by ID","tags":["admin"]}},"/admin/webhooks/organizations/{organizationId}/send":{"post":{"operationId":"adminSendWebhook","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendWebhookDto"}}}},"responses":{"200":{"description":"Webhook message sent successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Send a webhook message to an organization","tags":["admin"]}},"/admin/webhooks/organizations/{organizationId}/messages/{messageId}/attempts":{"get":{"operationId":"adminGetMessageAttempts","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"name":"messageId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"List of delivery attempts","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get delivery attempts for a webhook message","tags":["admin"]}},"/admin/webhooks/status":{"get":{"operationId":"adminGetWebhookStatus","parameters":[],"responses":{"200":{"description":"Webhook service status","content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"}}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get webhook service status","tags":["admin"]}},"/admin/webhooks/organizations/{organizationId}/initialize":{"post":{"operationId":"adminInitializeWebhooks","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"Webhooks initialized successfully"},"404":{"description":"Organization not found"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Initialize webhooks for an organization","tags":["admin"]}},"/admin/docker-registry/{id}/set-default":{"post":{"operationId":"adminSetDefaultRegistry","parameters":[{"name":"id","required":true,"in":"path","description":"ID of the docker registry","schema":{"type":"string"}}],"responses":{"200":{"description":"The docker registry has been set as default.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DockerRegistry"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Set default registry","tags":["admin"]}},"/admin/snapshots/can-cleanup-image":{"get":{"operationId":"adminCanCleanupImage","parameters":[{"name":"imageName","required":true,"in":"query","description":"Image name with tag to check","schema":{"type":"string"}}],"responses":{"200":{"description":"Boolean indicating if image can be cleaned up","content":{"application/json":{"schema":{"type":"boolean"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Check if an image can be cleaned up","tags":["admin"]}},"/admin/snapshots/{id}/general":{"patch":{"operationId":"adminSetSnapshotGeneralStatus","parameters":[{"name":"id","required":true,"in":"path","description":"Snapshot ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetSnapshotGeneralStatusDto"}}}},"responses":{"200":{"description":"Snapshot general status has been set","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnapshotDto"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Set snapshot general status","tags":["admin"]}},"/admin/audit":{"get":{"operationId":"adminGetAllAuditLogs","parameters":[{"name":"page","required":false,"in":"query","description":"Page number of the results","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Number of results per page","schema":{"minimum":1,"maximum":200,"default":100,"type":"number"}},{"name":"from","required":false,"in":"query","description":"Deprecated alias for `createdAt[gte]`. From date (ISO 8601 format).","deprecated":true,"schema":{"format":"date-time","type":"string"}},{"name":"to","required":false,"in":"query","description":"Deprecated alias for `createdAt[lte]`. To date (ISO 8601 format).","deprecated":true,"schema":{"format":"date-time","type":"string"}},{"name":"nextToken","required":false,"in":"query","description":"Token for cursor-based pagination. When provided, takes precedence over page parameter.","schema":{"type":"string"}},{"name":"id","required":false,"in":"query","description":"Filter by audit log ID.","schema":{"$ref":"#/components/schemas/StringFilter"}},{"name":"actorId","required":false,"in":"query","description":"Filter by actor user ID.","schema":{"$ref":"#/components/schemas/StringFilter"}},{"name":"actorEmail","required":false,"in":"query","description":"Filter by actor email.","schema":{"$ref":"#/components/schemas/StringFilter"}},{"name":"actorApiKeyPrefix","required":false,"in":"query","description":"Filter by actor API key prefix.","schema":{"$ref":"#/components/schemas/StringFilter"}},{"name":"actorApiKeySuffix","required":false,"in":"query","description":"Filter by actor API key suffix.","schema":{"$ref":"#/components/schemas/StringFilter"}},{"name":"action","required":false,"in":"query","description":"Filter by action.","schema":{"$ref":"#/components/schemas/StringFilter"}},{"name":"targetType","required":false,"in":"query","description":"Filter by target type.","schema":{"$ref":"#/components/schemas/StringFilter"}},{"name":"targetId","required":false,"in":"query","description":"Filter by target ID.","schema":{"$ref":"#/components/schemas/StringFilter"}},{"name":"statusCode","required":false,"in":"query","description":"Filter by HTTP status code.","schema":{"$ref":"#/components/schemas/IntFilter"}},{"name":"createdAt","required":false,"in":"query","description":"Filter by creation timestamp.","schema":{"$ref":"#/components/schemas/DateFilter"}}],"responses":{"200":{"description":"Paginated list of all audit logs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedAuditLogs"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get all audit logs","tags":["admin"]}},"/admin/organizations":{"post":{"operationId":"adminCreateOrganization","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminCreateOrganization"}}}},"responses":{"201":{"description":"Organization created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organization"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Create organization for user","tags":["admin"]}},"/admin/organizations/{organizationId}/quota/{regionId}":{"post":{"operationId":"adminCreateOrganizationRegionQuota","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}},{"name":"regionId","required":true,"in":"path","description":"ID of the region the new quota applies to","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationRegionQuota"}}}},"responses":{"201":{"description":"Region quota created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegionQuota"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Create organization region quota","tags":["admin"]},"patch":{"operationId":"adminUpdateOrganizationRegionQuota","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}},{"name":"regionId","required":true,"in":"path","description":"Region ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationRegionQuota"}}}},"responses":{"204":{"description":"Region quota updated successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update organization region quota","tags":["admin"]}},"/admin/organizations/{organizationId}/quota/{regionId}/{sandboxClass}":{"get":{"operationId":"adminGetOrganizationRegionQuota","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}},{"name":"regionId","required":true,"in":"path","description":"Region ID","schema":{"type":"string"}},{"name":"sandboxClass","required":true,"in":"path","description":"Sandbox class","schema":{"$ref":"#/components/schemas/SandboxClass"}}],"responses":{"200":{"description":"Region quota","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegionQuota"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get organization region quota","tags":["admin"]},"delete":{"operationId":"adminDeleteOrganizationRegionQuota","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}},{"name":"regionId","required":true,"in":"path","description":"Region ID","schema":{"type":"string"}},{"name":"sandboxClass","required":true,"in":"path","description":"Sandbox class","schema":{"$ref":"#/components/schemas/SandboxClass"}}],"responses":{"204":{"description":"Region quota deleted successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Delete organization region quota","tags":["admin"]}},"/admin/organizations/{organizationId}/preview-warning":{"post":{"operationId":"adminUpdateOrganizationPreviewWarning","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationPreviewWarning"}}}},"responses":{"204":{"description":"Preview warning updated successfully"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Update organization preview warning","tags":["admin"]}},"/webhooks/organizations/{organizationId}/app-portal-access":{"post":{"operationId":"WebhookController_getAppPortalAccess","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"App Portal access generated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookAppPortalAccess"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get Svix Consumer App Portal access for an organization","tags":["webhooks"]}},"/webhooks/organizations/{organizationId}/initialization-status":{"get":{"operationId":"WebhookController_getInitializationStatus","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Webhook initialization status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookInitializationStatus"}}}},"404":{"description":"Webhook initialization status not found"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get webhook initialization status for an organization","tags":["webhooks"]}},"/webhooks/organizations/{organizationId}/initialize":{"post":{"operationId":"WebhookController_initializeWebhooks","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}}],"responses":{"201":{"description":"Webhooks initialized successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookInitializationStatus"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Initialize webhooks for an organization","tags":["webhooks"]}},"/webhooks/organizations/{organizationId}/refresh-endpoints":{"post":{"operationId":"WebhookController_refreshEndpoints","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":"Endpoint flag refreshed"},"404":{"description":"Webhook initialization status not found"}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Refresh cached endpoint presence flag for an organization","tags":["webhooks"]}},"/audit/organizations/{organizationId}":{"get":{"operationId":"getOrganizationAuditLogs","parameters":[{"name":"organizationId","required":true,"in":"path","description":"Organization ID","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","description":"Page number of the results","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Number of results per page","schema":{"minimum":1,"maximum":200,"default":100,"type":"number"}},{"name":"from","required":false,"in":"query","description":"Deprecated alias for `createdAt[gte]`. From date (ISO 8601 format).","deprecated":true,"schema":{"format":"date-time","type":"string"}},{"name":"to","required":false,"in":"query","description":"Deprecated alias for `createdAt[lte]`. To date (ISO 8601 format).","deprecated":true,"schema":{"format":"date-time","type":"string"}},{"name":"nextToken","required":false,"in":"query","description":"Token for cursor-based pagination. When provided, takes precedence over page parameter.","schema":{"type":"string"}},{"name":"id","required":false,"in":"query","description":"Filter by audit log ID.","schema":{"$ref":"#/components/schemas/StringFilter"}},{"name":"actorId","required":false,"in":"query","description":"Filter by actor user ID.","schema":{"$ref":"#/components/schemas/StringFilter"}},{"name":"actorEmail","required":false,"in":"query","description":"Filter by actor email.","schema":{"$ref":"#/components/schemas/StringFilter"}},{"name":"actorApiKeyPrefix","required":false,"in":"query","description":"Filter by actor API key prefix.","schema":{"$ref":"#/components/schemas/StringFilter"}},{"name":"actorApiKeySuffix","required":false,"in":"query","description":"Filter by actor API key suffix.","schema":{"$ref":"#/components/schemas/StringFilter"}},{"name":"action","required":false,"in":"query","description":"Filter by action.","schema":{"$ref":"#/components/schemas/StringFilter"}},{"name":"targetType","required":false,"in":"query","description":"Filter by target type.","schema":{"$ref":"#/components/schemas/StringFilter"}},{"name":"targetId","required":false,"in":"query","description":"Filter by target ID.","schema":{"$ref":"#/components/schemas/StringFilter"}},{"name":"statusCode","required":false,"in":"query","description":"Filter by HTTP status code.","schema":{"$ref":"#/components/schemas/IntFilter"}},{"name":"createdAt","required":false,"in":"query","description":"Filter by creation timestamp.","schema":{"$ref":"#/components/schemas/DateFilter"}}],"responses":{"200":{"description":"Paginated list of organization audit logs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedAuditLogs"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get audit logs for organization","tags":["audit"]}},"/audit/scenarios":{"get":{"description":"Returns the supported audit log actions grouped by target type. The list is derived at runtime from the audited routes and system events, so it always reflects what can actually appear in the audit log.","operationId":"getAuditScenarios","parameters":[],"responses":{"200":{"description":"Supported audit log scenarios grouped by target type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditScenarios"}}}}},"summary":"Get supported audit log scenarios","tags":["audit"]}},"/object-storage/push-access":{"get":{"operationId":"getPushAccess","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Temporary storage access has been generated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageAccessDto"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get temporary storage access for pushing objects","tags":["object-storage"]}},"/health":{"get":{"operationId":"HealthController_live","parameters":[],"responses":{"200":{"description":""}},"tags":["Health"]}},"/health/ready":{"get":{"operationId":"HealthController_check","parameters":[],"responses":{"200":{"description":"The Health Check is successful","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"ok"},"info":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"error":{"type":"object","example":{},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"details":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true}}}}}}},"503":{"description":"The Health Check is not successful","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"error"},"info":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"error":{"type":"object","example":{"redis":{"status":"down","message":"Could not connect"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"details":{"type":"object","example":{"database":{"status":"up"},"redis":{"status":"down","message":"Could not connect"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true}}}}}}}},"security":[{"bearer":[]}],"tags":["Health"]}},"/sandbox/{sandboxId}/telemetry/logs":{"get":{"description":"Retrieve OTEL logs for a sandbox within a time range","operationId":"getSandboxLogs","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxId","required":true,"in":"path","description":"ID of the sandbox","schema":{"type":"string"}},{"name":"from","required":true,"in":"query","description":"Start of time range (ISO 8601)","schema":{"format":"date-time","type":"string"}},{"name":"to","required":true,"in":"query","description":"End of time range (ISO 8601)","schema":{"format":"date-time","type":"string"}},{"name":"page","required":false,"in":"query","description":"Page number (1-indexed)","schema":{"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Number of items per page","schema":{"default":100,"type":"number"}},{"name":"severities","required":false,"in":"query","description":"Filter by severity levels (DEBUG, INFO, WARN, ERROR)","schema":{"type":"array","items":{"type":"string"}}},{"name":"search","required":false,"in":"query","description":"Search in log body","schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated list of log entries","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedLogs"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get sandbox logs","tags":["sandbox"]}},"/sandbox/{sandboxId}/telemetry/traces":{"get":{"description":"Retrieve OTEL traces for a sandbox within a time range","operationId":"getSandboxTraces","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxId","required":true,"in":"path","description":"ID of the sandbox","schema":{"type":"string"}},{"name":"from","required":true,"in":"query","description":"Start of time range (ISO 8601)","schema":{"format":"date-time","type":"string"}},{"name":"to","required":true,"in":"query","description":"End of time range (ISO 8601)","schema":{"format":"date-time","type":"string"}},{"name":"page","required":false,"in":"query","description":"Page number (1-indexed)","schema":{"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Number of items per page","schema":{"default":100,"type":"number"}}],"responses":{"200":{"description":"Paginated list of trace summaries","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedTraces"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get sandbox traces","tags":["sandbox"]}},"/sandbox/{sandboxId}/telemetry/traces/{traceId}":{"get":{"description":"Retrieve all spans for a specific trace","operationId":"getSandboxTraceSpans","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxId","required":true,"in":"path","description":"ID of the sandbox","schema":{"type":"string"}},{"name":"traceId","required":true,"in":"path","description":"ID of the trace","schema":{"type":"string"}}],"responses":{"200":{"description":"List of spans in the trace","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TraceSpan"}}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get trace spans","tags":["sandbox"]}},"/sandbox/{sandboxId}/telemetry/metrics":{"get":{"description":"Retrieve OTEL metrics for a sandbox within a time range","operationId":"getSandboxMetrics","parameters":[{"name":"X-Daytona-Organization-ID","in":"header","description":"Use with JWT to specify the organization ID","required":false,"schema":{"type":"string"}},{"name":"sandboxId","required":true,"in":"path","description":"ID of the sandbox","schema":{"type":"string"}},{"name":"from","required":true,"in":"query","description":"Start of time range (ISO 8601)","schema":{"format":"date-time","type":"string"}},{"name":"to","required":true,"in":"query","description":"End of time range (ISO 8601)","schema":{"format":"date-time","type":"string"}},{"name":"metricNames","required":false,"in":"query","description":"Filter by metric names","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"Metrics time series data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"}}}}},"security":[{"bearer":[]},{"oauth2":["openid","profile","email"]}],"summary":"Get sandbox metrics","tags":["sandbox"]}}},"info":{"title":"Daytona","description":"Daytona AI platform API Docs","version":"1.0","contact":{"name":"Daytona Platforms Inc.","url":"https://www.daytona.io","email":"support@daytona.com"},"license":{"name":"Apache-2.0","url":"https://www.apache.org/licenses/LICENSE-2.0"}},"tags":[{"name":"config"},{"name":"api-keys"},{"name":"organizations"},{"name":"users"},{"name":"regions"},{"name":"sandbox"},{"name":"runners"},{"name":"snapshots"},{"name":"preview"},{"name":"volumes"},{"name":"jobs"},{"name":"warm-pools"},{"name":"docker-registry"},{"name":"secret"},{"name":"admin"},{"name":"webhooks"},{"name":"audit"},{"name":"object-storage"},{"name":"Health"}],"servers":[{"url":"https://app.daytona.io/api"}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http","description":"API Key access"},"oauth2":{"type":"openIdConnect","openIdConnectUrl":"http://localhost:3000/.well-known/openid-configuration"}},"schemas":{"Announcement":{"type":"object","properties":{"text":{"type":"string","description":"The announcement text","example":"New feature available!"},"learnMoreUrl":{"type":"string","description":"URL to learn more about the announcement","example":"https://example.com/learn-more"}},"required":["text"]},"PosthogConfig":{"type":"object","properties":{"apiKey":{"type":"string","description":"PostHog API key","example":"phc_abc123"},"host":{"type":"string","description":"PostHog host URL","example":"https://app.posthog.com"}},"required":["apiKey","host"]},"OidcConfig":{"type":"object","properties":{"issuer":{"type":"string","description":"OIDC issuer","example":"https://auth.example.com"},"clientId":{"type":"string","description":"OIDC client ID","example":"daytona-client"},"audience":{"type":"string","description":"OIDC audience","example":"daytona-api"}},"required":["issuer","clientId","audience"]},"SsoOidcConfig":{"type":"object","properties":{"issuer":{"type":"string","description":"OIDC issuer for org-SSO logins (Daytona Auth)","example":"https://api.example.com/api/oidc"},"clientId":{"type":"string","description":"OIDC client ID for org-SSO logins","example":"daytona-dashboard"}},"required":["issuer","clientId"]},"RateLimitEntry":{"type":"object","properties":{"ttl":{"type":"number","description":"Rate limit TTL in seconds","example":60},"limit":{"type":"number","description":"Rate limit max requests","example":100}}},"RateLimitConfig":{"type":"object","properties":{"failedAuth":{"description":"Failed authentication rate limit","allOf":[{"$ref":"#/components/schemas/RateLimitEntry"}]},"authenticated":{"description":"Authenticated rate limit","allOf":[{"$ref":"#/components/schemas/RateLimitEntry"}]},"sandboxCreate":{"description":"Sandbox create rate limit","allOf":[{"$ref":"#/components/schemas/RateLimitEntry"}]},"sandboxLifecycle":{"description":"Sandbox lifecycle rate limit","allOf":[{"$ref":"#/components/schemas/RateLimitEntry"}]},"sandboxList":{"description":"Sandbox list rate limit","allOf":[{"$ref":"#/components/schemas/RateLimitEntry"}]}}},"DaytonaConfiguration":{"type":"object","properties":{"version":{"type":"string","description":"Daytona version","example":"0.0.1"},"buildSha":{"type":"string","description":"Commit sha of the source the app was built from","example":"1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b"},"posthog":{"description":"PostHog configuration","allOf":[{"$ref":"#/components/schemas/PosthogConfig"}]},"oidc":{"description":"OIDC configuration","allOf":[{"$ref":"#/components/schemas/OidcConfig"}]},"ssoOidc":{"description":"OIDC configuration for org-SSO logins (Daytona Auth issuer). Present only when the secondary (org-SSO) issuer is configured; the dashboard uses it as its authority when entered via an organization SSO link.","allOf":[{"$ref":"#/components/schemas/SsoOidcConfig"}]},"forcedFeatureFlags":{"description":"Feature flags forced on for this deployment regardless of PostHog targeting. Lets environments without PostHog (previews, local dev) enable flag-gated dashboard features.","type":"array","items":{"type":"string"}},"linkedAccountsEnabled":{"type":"boolean","description":"Whether linked accounts are enabled","example":true},"announcements":{"type":"object","description":"System announcements","additionalProperties":{"$ref":"#/components/schemas/Announcement"},"example":{"feature-update":{"text":"New feature available!","learnMoreUrl":"https://example.com"}}},"pylonAppId":{"type":"string","description":"Pylon application ID","example":"pylon-app-123"},"proxyTemplateUrl":{"type":"string","description":"Proxy template URL","example":"https://{{PORT}}-{{sandboxId}}.proxy.example.com"},"proxyToolboxUrl":{"type":"string","description":"Toolbox template URL","example":"https://proxy.example.com/toolbox"},"defaultSnapshot":{"type":"string","description":"Default snapshot for sandboxes","example":"ubuntu:22.04"},"dashboardUrl":{"type":"string","description":"Dashboard URL","example":"https://dashboard.example.com"},"maxAutoArchiveInterval":{"type":"number","description":"Maximum auto-archive interval in minutes","example":43200},"maintananceMode":{"type":"boolean","description":"Whether maintenance mode is enabled","example":false},"environment":{"type":"string","description":"Current environment","example":"production"},"billingApiUrl":{"type":"string","description":"Billing API URL","example":"https://billing.example.com"},"analyticsApiUrl":{"type":"string","description":"Analytics API URL","example":"https://analytics.example.com"},"stripePublishableKey":{"type":"string","description":"Stripe publishable key for client-side Stripe.js","example":"pk_live_..."},"sshGatewayCommand":{"type":"string","description":"SSH Gateway command","example":"ssh -p 2222 {{TOKEN}}@localhost"},"sshGatewayPublicKey":{"type":"string","description":"Base64 encoded SSH Gateway public key","example":"ssh-gateway-public-key"},"rateLimit":{"description":"Rate limit configuration","allOf":[{"$ref":"#/components/schemas/RateLimitConfig"}]}},"required":["version","oidc","linkedAccountsEnabled","announcements","proxyTemplateUrl","proxyToolboxUrl","defaultSnapshot","dashboardUrl","maxAutoArchiveInterval","maintananceMode","environment"]},"CreateApiKey":{"type":"object","properties":{"name":{"type":"string","description":"The name of the API key","example":"My API Key"},"permissions":{"type":"array","description":"The list of organization resource permissions explicitly assigned to the API key","items":{"type":"string","enum":["write:registries","delete:registries","write:snapshots","delete:snapshots","write:sandboxes","delete:sandboxes","read:volumes","write:volumes","delete:volumes","write:regions","delete:regions","read:runners","write:runners","delete:runners","read:audit_logs","manage:api_keys","manage:secrets","read:limits","manage:sso","read:billing","manage:billing"],"x-enum-varnames":["WRITE_REGISTRIES","DELETE_REGISTRIES","WRITE_SNAPSHOTS","DELETE_SNAPSHOTS","WRITE_SANDBOXES","DELETE_SANDBOXES","READ_VOLUMES","WRITE_VOLUMES","DELETE_VOLUMES","WRITE_REGIONS","DELETE_REGIONS","READ_RUNNERS","WRITE_RUNNERS","DELETE_RUNNERS","READ_AUDIT_LOGS","MANAGE_API_KEYS","MANAGE_SECRETS","READ_LIMITS","MANAGE_SSO","READ_BILLING","MANAGE_BILLING"]}},"expiresAt":{"format":"date-time","type":"string","description":"When the API key expires","example":"2025-06-09T12:00:00.000Z","nullable":true}},"required":["name","permissions"]},"ApiKeyResponse":{"type":"object","properties":{"name":{"type":"string","description":"The name of the API key","example":"My API Key"},"value":{"type":"string","description":"The API key value","example":"bb_sk_1234567890abcdef"},"createdAt":{"format":"date-time","type":"string","description":"When the API key was created","example":"2024-03-14T12:00:00.000Z"},"permissions":{"type":"array","description":"The list of organization resource permissions assigned to the API key","items":{"type":"string","enum":["write:registries","delete:registries","write:snapshots","delete:snapshots","write:sandboxes","delete:sandboxes","read:volumes","write:volumes","delete:volumes","write:regions","delete:regions","read:runners","write:runners","delete:runners","read:audit_logs","manage:api_keys","manage:secrets","read:limits","manage:sso","read:billing","manage:billing"],"x-enum-varnames":["WRITE_REGISTRIES","DELETE_REGISTRIES","WRITE_SNAPSHOTS","DELETE_SNAPSHOTS","WRITE_SANDBOXES","DELETE_SANDBOXES","READ_VOLUMES","WRITE_VOLUMES","DELETE_VOLUMES","WRITE_REGIONS","DELETE_REGIONS","READ_RUNNERS","WRITE_RUNNERS","DELETE_RUNNERS","READ_AUDIT_LOGS","MANAGE_API_KEYS","MANAGE_SECRETS","READ_LIMITS","MANAGE_SSO","READ_BILLING","MANAGE_BILLING"]}},"expiresAt":{"format":"date-time","type":"string","description":"When the API key expires","example":"2025-06-09T12:00:00.000Z","nullable":true}},"required":["name","value","createdAt","permissions","expiresAt"]},"ApiKeyList":{"type":"object","properties":{"name":{"type":"string","description":"The name of the API key","example":"My API Key"},"value":{"type":"string","description":"The masked API key value","example":"bb_********************def"},"createdAt":{"format":"date-time","type":"string","description":"When the API key was created","example":"2024-03-14T12:00:00.000Z"},"permissions":{"type":"array","description":"The list of organization resource permissions assigned to the API key","items":{"type":"string","enum":["write:registries","delete:registries","write:snapshots","delete:snapshots","write:sandboxes","delete:sandboxes","read:volumes","write:volumes","delete:volumes","write:regions","delete:regions","read:runners","write:runners","delete:runners","read:audit_logs","manage:api_keys","manage:secrets","read:limits","manage:sso","read:billing","manage:billing"],"x-enum-varnames":["WRITE_REGISTRIES","DELETE_REGISTRIES","WRITE_SNAPSHOTS","DELETE_SNAPSHOTS","WRITE_SANDBOXES","DELETE_SANDBOXES","READ_VOLUMES","WRITE_VOLUMES","DELETE_VOLUMES","WRITE_REGIONS","DELETE_REGIONS","READ_RUNNERS","WRITE_RUNNERS","DELETE_RUNNERS","READ_AUDIT_LOGS","MANAGE_API_KEYS","MANAGE_SECRETS","READ_LIMITS","MANAGE_SSO","READ_BILLING","MANAGE_BILLING"]}},"lastUsedAt":{"format":"date-time","type":"string","description":"When the API key was last used","example":"2024-03-14T12:00:00.000Z","nullable":true},"expiresAt":{"format":"date-time","type":"string","description":"When the API key expires","example":"2024-03-14T12:00:00.000Z","nullable":true},"userId":{"type":"string","description":"The user ID of the user who created the API key","example":"123"}},"required":["name","value","createdAt","permissions","lastUsedAt","expiresAt","userId"]},"OrganizationRole":{"type":"object","properties":{"id":{"type":"string","description":"Role ID"},"name":{"type":"string","description":"Role name"},"description":{"type":"string","description":"Role description"},"permissions":{"type":"array","description":"Roles assigned to the user","items":{"type":"string","enum":["write:registries","delete:registries","write:snapshots","delete:snapshots","write:sandboxes","delete:sandboxes","read:volumes","write:volumes","delete:volumes","write:regions","delete:regions","read:runners","write:runners","delete:runners","read:audit_logs","manage:api_keys","manage:secrets","read:limits","manage:sso","read:billing","manage:billing"],"x-enum-varnames":["WRITE_REGISTRIES","DELETE_REGISTRIES","WRITE_SNAPSHOTS","DELETE_SNAPSHOTS","WRITE_SANDBOXES","DELETE_SANDBOXES","READ_VOLUMES","WRITE_VOLUMES","DELETE_VOLUMES","WRITE_REGIONS","DELETE_REGIONS","READ_RUNNERS","WRITE_RUNNERS","DELETE_RUNNERS","READ_AUDIT_LOGS","MANAGE_API_KEYS","MANAGE_SECRETS","READ_LIMITS","MANAGE_SSO","READ_BILLING","MANAGE_BILLING"]}},"isGlobal":{"type":"boolean","description":"Global role flag"},"createdAt":{"format":"date-time","type":"string","description":"Creation timestamp"},"updatedAt":{"format":"date-time","type":"string","description":"Last update timestamp"}},"required":["id","name","description","permissions","isGlobal","createdAt","updatedAt"]},"OrganizationInvitation":{"type":"object","properties":{"id":{"type":"string","description":"Invitation ID"},"email":{"type":"string","description":"Email address of the invitee"},"invitedBy":{"type":"string","description":"Email address of the inviter"},"organizationId":{"type":"string","description":"Organization ID"},"organizationName":{"type":"string","description":"Organization name"},"expiresAt":{"format":"date-time","type":"string","description":"Expiration date of the invitation"},"status":{"type":"string","description":"Invitation status","enum":["pending","accepted","declined","cancelled"]},"role":{"type":"string","description":"Member role","enum":["owner","member"]},"assignedRoles":{"description":"Assigned roles","type":"array","items":{"$ref":"#/components/schemas/OrganizationRole"}},"createdAt":{"format":"date-time","type":"string","description":"Creation timestamp"},"updatedAt":{"format":"date-time","type":"string","description":"Last update timestamp"}},"required":["id","email","invitedBy","organizationId","organizationName","expiresAt","status","role","assignedRoles","createdAt","updatedAt"]},"CreateOrganization":{"type":"object","properties":{"name":{"type":"string","description":"The name of organization","example":"My Organization"},"defaultRegionId":{"type":"string","description":"The ID of the default region for the organization","example":"us"}},"required":["name","defaultRegionId"]},"OtelConfig":{"type":"object","properties":{"endpoint":{"type":"string","description":"Endpoint"},"headers":{"type":"object","description":"Headers","example":{"x-api-key":"my-api-key"},"nullable":true,"additionalProperties":{"type":"string"}},"organizationId":{"type":"string","description":"Organization ID the config belongs to"}},"required":["endpoint"]},"Organization":{"type":"object","properties":{"id":{"type":"string","description":"Organization ID"},"name":{"type":"string","description":"Organization name"},"createdBy":{"type":"string","description":"User ID of the organization creator"},"personal":{"type":"boolean","description":"Personal organization flag"},"createdAt":{"format":"date-time","type":"string","description":"Creation timestamp"},"updatedAt":{"format":"date-time","type":"string","description":"Last update timestamp"},"suspended":{"type":"boolean","description":"Suspended flag"},"suspendedAt":{"format":"date-time","type":"string","description":"Suspended at"},"suspensionReason":{"type":"string","description":"Suspended reason"},"suspendedUntil":{"format":"date-time","type":"string","description":"Suspended until"},"suspensionCleanupGracePeriodHours":{"type":"number","description":"Suspension cleanup grace period hours"},"maxCpuPerSandbox":{"type":"number","description":"Max CPU per sandbox"},"maxMemoryPerSandbox":{"type":"number","description":"Max memory per sandbox"},"maxDiskPerSandbox":{"type":"number","description":"Max disk per sandbox"},"secretQuota":{"type":"number","description":"Maximum number of secrets"},"maxSecretsPerSandbox":{"type":"number","description":"Maximum number of secrets that can be mounted to a single sandbox"},"snapshotDeactivationTimeoutMinutes":{"type":"number","description":"Time in minutes before an unused snapshot is deactivated","default":20160},"sandboxLimitedNetworkEgress":{"type":"boolean","description":"Sandbox default network block all"},"previewWarningEnabled":{"type":"boolean","description":"Whether the proxy shows the preview URL warning page for this organization"},"ssoEnabled":{"type":"boolean","description":"Whether this organization may configure SSO identity providers"},"defaultRegionId":{"type":"string","description":"Default region ID"},"authenticatedRateLimit":{"type":"number","description":"Authenticated rate limit per minute","nullable":true},"sandboxCreateRateLimit":{"type":"number","description":"Sandbox create rate limit per minute","nullable":true},"sandboxLifecycleRateLimit":{"type":"number","description":"Sandbox lifecycle rate limit per minute","nullable":true},"experimentalConfig":{"type":"object","description":"Experimental configuration"},"otelConfig":{"description":"OpenTelemetry collection configuration","nullable":true,"allOf":[{"$ref":"#/components/schemas/OtelConfig"}]},"authenticatedRateLimitTtlSeconds":{"type":"number","description":"Authenticated rate limit TTL in seconds","nullable":true},"sandboxCreateRateLimitTtlSeconds":{"type":"number","description":"Sandbox create rate limit TTL in seconds","nullable":true},"sandboxLifecycleRateLimitTtlSeconds":{"type":"number","description":"Sandbox lifecycle rate limit TTL in seconds","nullable":true}},"required":["id","name","createdBy","personal","createdAt","updatedAt","suspended","suspendedAt","suspensionReason","suspendedUntil","suspensionCleanupGracePeriodHours","maxCpuPerSandbox","maxMemoryPerSandbox","maxDiskPerSandbox","secretQuota","maxSecretsPerSandbox","snapshotDeactivationTimeoutMinutes","sandboxLimitedNetworkEgress","previewWarningEnabled","ssoEnabled","authenticatedRateLimit","sandboxCreateRateLimit","sandboxLifecycleRateLimit","experimentalConfig","otelConfig","authenticatedRateLimitTtlSeconds","sandboxCreateRateLimitTtlSeconds","sandboxLifecycleRateLimitTtlSeconds"]},"UpdateOrganizationDefaultRegion":{"type":"object","properties":{"defaultRegionId":{"type":"string","description":"The ID of the default region for the organization","example":"us"}},"required":["defaultRegionId"]},"SandboxClass":{"type":"string","enum":["linux-vm","container","android","windows"],"x-enum-varnames":["LINUX_VM","CONTAINER","ANDROID","WINDOWS"]},"GpuType":{"type":"string","enum":["H100","H200","RTX-PRO-6000","RTX-4090","RTX-5090"],"x-enum-varnames":["H100","H200","RTX_PRO_6000","RTX_4090","RTX_5090"]},"RegionUsageOverview":{"type":"object","properties":{"regionId":{"type":"string"},"sandboxClass":{"allOf":[{"$ref":"#/components/schemas/SandboxClass"}]},"totalCpuQuota":{"type":"number"},"currentCpuUsage":{"type":"number"},"totalMemoryQuota":{"type":"number"},"currentMemoryUsage":{"type":"number"},"totalDiskQuota":{"type":"number"},"currentDiskUsage":{"type":"number"},"totalGpuQuota":{"type":"number"},"currentGpuUsage":{"type":"number"},"allowedGpuTypes":{"type":"array","items":{"$ref":"#/components/schemas/GpuType"}},"maxCpuPerSandbox":{"type":"number","nullable":true},"maxMemoryPerSandbox":{"type":"number","nullable":true},"maxDiskPerSandbox":{"type":"number","nullable":true},"maxDiskPerNonEphemeralSandbox":{"type":"number","nullable":true},"maxCpuPerGpu":{"type":"number","nullable":true,"description":"CPU maximum per requested GPU unit for GPU sandboxes."},"maxMemoryPerGpu":{"type":"number","nullable":true,"description":"Memory maximum per requested GPU unit for GPU sandboxes."},"maxDiskPerGpu":{"type":"number","nullable":true,"description":"Disk maximum per requested GPU unit for GPU sandboxes."}},"required":["regionId","sandboxClass","totalCpuQuota","currentCpuUsage","totalMemoryQuota","currentMemoryUsage","totalDiskQuota","currentDiskUsage","totalGpuQuota","currentGpuUsage","maxCpuPerSandbox","maxMemoryPerSandbox","maxDiskPerSandbox","maxDiskPerNonEphemeralSandbox","maxCpuPerGpu","maxMemoryPerGpu","maxDiskPerGpu"]},"OrganizationUsageOverview":{"type":"object","properties":{"regionUsage":{"type":"array","items":{"$ref":"#/components/schemas/RegionUsageOverview"}},"totalSnapshotQuota":{"type":"number"},"currentSnapshotUsage":{"type":"number"},"totalVolumeQuota":{"type":"number"},"currentVolumeUsage":{"type":"number"}},"required":["regionUsage","totalSnapshotQuota","currentSnapshotUsage","totalVolumeQuota","currentVolumeUsage"]},"AvailableSandboxClass":{"type":"object","properties":{"regionId":{"type":"string"},"sandboxClass":{"allOf":[{"$ref":"#/components/schemas/SandboxClass"}]},"gpuAvailable":{"type":"boolean"},"allowedGpuTypes":{"type":"array","items":{"$ref":"#/components/schemas/GpuType"}}},"required":["regionId","sandboxClass","gpuAvailable"]},"UpdateOrganizationQuota":{"type":"object","properties":{"maxCpuPerSandbox":{"type":"number","nullable":true},"maxMemoryPerSandbox":{"type":"number","nullable":true},"maxDiskPerSandbox":{"type":"number","nullable":true},"snapshotQuota":{"type":"number","nullable":true},"maxSnapshotSize":{"type":"number","nullable":true},"volumeQuota":{"type":"number","nullable":true},"secretQuota":{"type":"number","nullable":true},"maxSecretsPerSandbox":{"type":"number","nullable":true,"description":"Maximum number of secrets that can be mounted to a single sandbox"},"authenticatedRateLimit":{"type":"number","nullable":true},"sandboxCreateRateLimit":{"type":"number","nullable":true},"sandboxLifecycleRateLimit":{"type":"number","nullable":true},"authenticatedRateLimitTtlSeconds":{"type":"number","nullable":true},"sandboxCreateRateLimitTtlSeconds":{"type":"number","nullable":true},"sandboxLifecycleRateLimitTtlSeconds":{"type":"number","nullable":true},"snapshotDeactivationTimeoutMinutes":{"type":"number","nullable":true,"description":"Time in minutes before an unused snapshot is deactivated"},"maxConcurrentSnapshotProcessing":{"type":"number","nullable":true,"description":"Maximum number of snapshots an organization can process (building or pulling) concurrently. Excess are queued. <= 0 means unlimited."}},"required":["maxCpuPerSandbox","maxMemoryPerSandbox","maxDiskPerSandbox","snapshotQuota","maxSnapshotSize","volumeQuota","secretQuota","maxSecretsPerSandbox","authenticatedRateLimit","sandboxCreateRateLimit","sandboxLifecycleRateLimit","authenticatedRateLimitTtlSeconds","sandboxCreateRateLimitTtlSeconds","sandboxLifecycleRateLimitTtlSeconds","snapshotDeactivationTimeoutMinutes","maxConcurrentSnapshotProcessing"]},"UpdateOrganizationRegionQuota":{"type":"object","properties":{"sandboxClass":{"allOf":[{"$ref":"#/components/schemas/SandboxClass"}]},"totalCpuQuota":{"type":"number","nullable":true},"totalMemoryQuota":{"type":"number","nullable":true},"totalDiskQuota":{"type":"number","nullable":true},"totalGpuQuota":{"type":"number","nullable":true},"allowedGpuTypes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/GpuType"}},"maxCpuPerSandbox":{"type":"number","nullable":true},"maxMemoryPerSandbox":{"type":"number","nullable":true},"maxDiskPerSandbox":{"type":"number","nullable":true},"maxDiskPerNonEphemeralSandbox":{"type":"number","nullable":true},"maxCpuPerGpu":{"type":"number","nullable":true,"description":"CPU maximum per requested GPU unit for GPU sandboxes."},"maxMemoryPerGpu":{"type":"number","nullable":true,"description":"Memory maximum per requested GPU unit for GPU sandboxes."},"maxDiskPerGpu":{"type":"number","nullable":true,"description":"Disk maximum per requested GPU unit for GPU sandboxes."},"maxSandboxLifespan":{"type":"number","nullable":true,"description":"Maximum sandbox lifespan in minutes, measured from sandbox creation to its auto-destroy deadline. If null or 0, lifespan is unrestricted. When set, sandboxes created without a TTL default to this lifespan and TTL cannot be disabled."}},"required":["totalCpuQuota","totalMemoryQuota","totalDiskQuota","totalGpuQuota"]},"OrganizationSuspension":{"type":"object","properties":{"reason":{"type":"string","description":"Suspension reason"},"until":{"format":"date-time","type":"string","description":"Suspension until"},"suspensionCleanupGracePeriodHours":{"type":"number","description":"Suspension cleanup grace period hours","minimum":0}},"required":["reason","until"]},"OrganizationSandboxDefaultLimitedNetworkEgress":{"type":"object","properties":{"sandboxDefaultLimitedNetworkEgress":{"type":"boolean","description":"Sandbox default limited network egress"}},"required":["sandboxDefaultLimitedNetworkEgress"]},"OrganizationPreviewWarning":{"type":"object","properties":{"previewWarningEnabled":{"type":"boolean","description":"Whether the proxy shows the preview URL warning page for this organization"}},"required":["previewWarningEnabled"]},"OrganizationSsoEnabled":{"type":"object","properties":{"ssoEnabled":{"type":"boolean","description":"Whether this organization may configure SSO identity providers"}},"required":["ssoEnabled"]},"CreateOrganizationRole":{"type":"object","properties":{"name":{"type":"string","description":"The name of the role","example":"Maintainer"},"description":{"type":"string","description":"The description of the role","example":"Can manage all resources"},"permissions":{"type":"array","description":"The list of permissions assigned to the role","items":{"type":"string","enum":["write:registries","delete:registries","write:snapshots","delete:snapshots","write:sandboxes","delete:sandboxes","read:volumes","write:volumes","delete:volumes","write:regions","delete:regions","read:runners","write:runners","delete:runners","read:audit_logs","manage:api_keys","manage:secrets","read:limits","manage:sso","read:billing","manage:billing"],"x-enum-varnames":["WRITE_REGISTRIES","DELETE_REGISTRIES","WRITE_SNAPSHOTS","DELETE_SNAPSHOTS","WRITE_SANDBOXES","DELETE_SANDBOXES","READ_VOLUMES","WRITE_VOLUMES","DELETE_VOLUMES","WRITE_REGIONS","DELETE_REGIONS","READ_RUNNERS","WRITE_RUNNERS","DELETE_RUNNERS","READ_AUDIT_LOGS","MANAGE_API_KEYS","MANAGE_SECRETS","READ_LIMITS","MANAGE_SSO","READ_BILLING","MANAGE_BILLING"]}}},"required":["name","description","permissions"]},"UpdateOrganizationRole":{"type":"object","properties":{"name":{"type":"string","description":"The name of the role","example":"Maintainer"},"description":{"type":"string","description":"The description of the role","example":"Can manage all resources"},"permissions":{"type":"array","description":"The list of permissions assigned to the role","items":{"type":"string","enum":["write:registries","delete:registries","write:snapshots","delete:snapshots","write:sandboxes","delete:sandboxes","read:volumes","write:volumes","delete:volumes","write:regions","delete:regions","read:runners","write:runners","delete:runners","read:audit_logs","manage:api_keys","manage:secrets","read:limits","manage:sso","read:billing","manage:billing"],"x-enum-varnames":["WRITE_REGISTRIES","DELETE_REGISTRIES","WRITE_SNAPSHOTS","DELETE_SNAPSHOTS","WRITE_SANDBOXES","DELETE_SANDBOXES","READ_VOLUMES","WRITE_VOLUMES","DELETE_VOLUMES","WRITE_REGIONS","DELETE_REGIONS","READ_RUNNERS","WRITE_RUNNERS","DELETE_RUNNERS","READ_AUDIT_LOGS","MANAGE_API_KEYS","MANAGE_SECRETS","READ_LIMITS","MANAGE_SSO","READ_BILLING","MANAGE_BILLING"]}}},"required":["name","description","permissions"]},"OrganizationUser":{"type":"object","properties":{"userId":{"type":"string","description":"User ID"},"organizationId":{"type":"string","description":"Organization ID"},"name":{"type":"string","description":"User name"},"email":{"type":"string","description":"User email"},"role":{"type":"string","description":"Member role","enum":["owner","member"]},"assignedRoles":{"description":"Roles assigned to the user","type":"array","items":{"$ref":"#/components/schemas/OrganizationRole"}},"createdAt":{"format":"date-time","type":"string","description":"Creation timestamp"},"updatedAt":{"format":"date-time","type":"string","description":"Last update timestamp"}},"required":["userId","organizationId","name","email","role","assignedRoles","createdAt","updatedAt"]},"UpdateOrganizationMemberAccess":{"type":"object","properties":{"role":{"type":"string","description":"Organization member role","enum":["owner","member"],"default":"member"},"assignedRoleIds":{"description":"Array of assigned role IDs","default":["00000000-0000-0000-0000-000000000001"],"type":"array","items":{"type":"string"}}},"required":["role","assignedRoleIds"]},"CreateOrganizationInvitation":{"type":"object","properties":{"email":{"type":"string","description":"Email address of the invitee","example":"mail@example.com"},"role":{"type":"string","description":"Organization member role for the invitee","enum":["owner","member"],"default":"member"},"assignedRoleIds":{"description":"Array of assigned role IDs for the invitee","default":["00000000-0000-0000-0000-000000000001"],"type":"array","items":{"type":"string"}},"expiresAt":{"format":"date-time","type":"string","description":"Expiration date of the invitation","example":"2021-12-31T23:59:59Z"}},"required":["email","role","assignedRoleIds"]},"UpdateOrganizationInvitation":{"type":"object","properties":{"role":{"type":"string","description":"Organization member role","enum":["owner","member"]},"assignedRoleIds":{"description":"Array of role IDs","type":"array","items":{"type":"string"}},"expiresAt":{"format":"date-time","type":"string","description":"Expiration date of the invitation","example":"2021-12-31T23:59:59Z"}},"required":["role","assignedRoleIds"]},"RegionType":{"type":"string","enum":["shared","dedicated","custom"],"description":"The type of the region"},"Region":{"type":"object","properties":{"id":{"type":"string","description":"Region ID","example":"123456789012"},"name":{"type":"string","description":"Region name","example":"us-east-1"},"organizationId":{"type":"string","description":"Organization ID","example":"123e4567-e89b-12d3-a456-426614174000","nullable":true},"regionType":{"description":"The type of the region","example":"shared","allOf":[{"$ref":"#/components/schemas/RegionType"}]},"createdAt":{"type":"string","description":"Creation timestamp","example":"2023-01-01T00:00:00.000Z"},"updatedAt":{"type":"string","description":"Last update timestamp","example":"2023-01-01T00:00:00.000Z"},"proxyUrl":{"type":"string","description":"Proxy URL for the region","example":"https://proxy.example.com","nullable":true},"sshGatewayUrl":{"type":"string","description":"SSH Gateway URL for the region","example":"http://ssh-gateway.example.com","nullable":true},"snapshotManagerUrl":{"type":"string","description":"Snapshot Manager URL for the region","example":"http://snapshot-manager.example.com","nullable":true},"otelEndpoint":{"type":"string","description":"OTel collector endpoint for sandboxes created in this region. When set, sandbox OTel data is sent to this endpoint instead of the Daytona-hosted collector and will not be available in the Daytona analytics API or dashboard.","example":"https://otel-collector.example.com:4318","nullable":true}},"required":["id","name","regionType","createdAt","updatedAt"]},"CreateRegion":{"type":"object","properties":{"name":{"type":"string","description":"Region name","example":"us-east-1"},"proxyUrl":{"type":"string","description":"Proxy URL for the region","example":"https://proxy.example.com","nullable":true},"sshGatewayUrl":{"type":"string","description":"SSH Gateway URL for the region","example":"ssh://ssh-gateway.example.com","nullable":true},"snapshotManagerUrl":{"type":"string","description":"Snapshot Manager URL for the region","example":"https://snapshot-manager.example.com","nullable":true},"otelEndpoint":{"type":"string","description":"OTel collector endpoint for sandboxes created in this region. When set, sandbox OTel data is sent to this endpoint instead of the Daytona-hosted collector and will not be available in the Daytona analytics API or dashboard.","example":"https://otel-collector.example.com:4318","nullable":true}},"required":["name"]},"CreateRegionResponse":{"type":"object","properties":{"id":{"type":"string","description":"ID of the created region","example":"region_12345"},"proxyApiKey":{"type":"string","description":"Proxy API key for the region","example":"proxy-api-key-xyz","nullable":true},"sshGatewayApiKey":{"type":"string","description":"SSH Gateway API key for the region","example":"ssh-gateway-api-key-abc","nullable":true},"snapshotManagerUsername":{"type":"string","description":"Snapshot Manager username for the region","example":"daytona","nullable":true},"snapshotManagerPassword":{"type":"string","description":"Snapshot Manager password for the region","nullable":true}},"required":["id"]},"RegenerateApiKeyResponse":{"type":"object","properties":{"apiKey":{"type":"string","description":"The newly generated API key","example":"api-key-xyz123"}},"required":["apiKey"]},"UpdateRegion":{"type":"object","properties":{"proxyUrl":{"type":"string","description":"Proxy URL for the region","example":"https://proxy.example.com","nullable":true},"sshGatewayUrl":{"type":"string","description":"SSH Gateway URL for the region","example":"ssh://ssh-gateway.example.com","nullable":true},"snapshotManagerUrl":{"type":"string","description":"Snapshot Manager URL for the region","example":"https://snapshot-manager.example.com","nullable":true},"otelEndpoint":{"type":"string","description":"OTel collector endpoint for sandboxes created in this region. When set, sandbox OTel data is sent to this endpoint instead of the Daytona-hosted collector and will not be available in the Daytona analytics API or dashboard.","example":"https://otel-collector.example.com:4318","nullable":true}}},"SnapshotManagerCredentials":{"type":"object","properties":{"username":{"type":"string","description":"Snapshot Manager username for the region","example":"daytona"},"password":{"type":"string","description":"Snapshot Manager password for the region"}},"required":["username","password"]},"OidcIdPConfig":{"type":"object","properties":{"issuerUrl":{"type":"string","description":"OIDC Issuer URL","example":"https://company.okta.com"},"clientId":{"type":"string","description":"OAuth Client ID","example":"abc123"},"clientSecret":{"type":"string","description":"OAuth Client Secret","example":"secret123"},"scope":{"type":"string","description":"OAuth scopes","example":"openid email profile"}},"required":["issuerUrl","clientId","clientSecret"]},"CreateIdentityProvider":{"type":"object","properties":{"name":{"type":"string","description":"Display name for the identity provider","example":"Company Okta"},"oidcConfig":{"description":"OIDC configuration","allOf":[{"$ref":"#/components/schemas/OidcIdPConfig"}]},"emailDomains":{"description":"Email domains used for IdP discovery on the login form and to validate the user identity returned by the IdP. Required and must be non-empty unless `allowAnyDomain` is true.","example":["company.com","corp.company.com"],"default":[],"type":"array","items":{"type":"string"}},"allowAnyDomain":{"type":"boolean","description":"When true, the IdP accepts any email domain returned by the external provider. Disables the post-callback domain check and allows `emailDomains` to be empty. Only enable for trusted IdPs that strictly control which users can authenticate.","example":false,"default":false},"trustEmailVerified":{"type":"boolean","description":"When true, skip the `email_verified` claim check on SSO logins through this identity provider. Only intended for providers that never emit the claim (e.g. Microsoft Entra ID). Risky: only enable if the IdP strictly controls its users' email addresses.","example":false,"default":false},"defaultAssignedRoleIds":{"description":"Organization role IDs assigned to users who join the organization via SSO through this identity provider. Roles must be global or belong to this organization. Empty (default) grants the lowest access: membership with no resource permissions.","example":["00000000-0000-0000-0000-000000000001"],"default":[],"type":"array","items":{"type":"string"}},"enabled":{"type":"boolean","description":"Whether the identity provider is enabled","example":true,"default":true}},"required":["name","oidcConfig","emailDomains"]},"OidcIdPConfigResponse":{"type":"object","properties":{"issuerUrl":{"type":"string","description":"OIDC Issuer URL","example":"https://company.okta.com"},"clientId":{"type":"string","description":"OAuth Client ID","example":"abc123"},"scope":{"type":"string","description":"OAuth scopes","example":"openid email profile"}},"required":["issuerUrl","clientId"]},"IdentityProvider":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier","example":"123e4567-e89b-12d3-a456-426614174000"},"organizationId":{"type":"string","description":"Organization ID","example":"123e4567-e89b-12d3-a456-426614174000"},"name":{"type":"string","description":"Display name for the identity provider","example":"Company Okta"},"oidcConfig":{"description":"OIDC configuration (secret redacted)","allOf":[{"$ref":"#/components/schemas/OidcIdPConfigResponse"}]},"emailDomains":{"description":"Email domains used for IdP discovery on the login form. May be empty when `allowAnyDomain` is true.","example":["company.com","corp.company.com"],"type":"array","items":{"type":"string"}},"allowAnyDomain":{"type":"boolean","description":"Whether the IdP accepts any email domain returned by the external provider","example":false},"trustEmailVerified":{"type":"boolean","description":"Whether the `email_verified` claim check is skipped on SSO logins through this identity provider","example":false},"defaultAssignedRoleIds":{"description":"Organization role IDs assigned to users who join via SSO through this identity provider","example":["00000000-0000-0000-0000-000000000001"],"type":"array","items":{"type":"string"}},"enabled":{"type":"boolean","description":"Whether the identity provider is enabled","example":true},"createdAt":{"format":"date-time","type":"string","description":"Creation timestamp","example":"2025-01-01T00:00:00.000Z"},"updatedAt":{"format":"date-time","type":"string","description":"Last update timestamp","example":"2025-01-01T00:00:00.000Z"}},"required":["id","organizationId","name","oidcConfig","emailDomains","allowAnyDomain","trustEmailVerified","defaultAssignedRoleIds","enabled","createdAt","updatedAt"]},"UpdateOidcIdPConfig":{"type":"object","properties":{"issuerUrl":{"type":"string","description":"OIDC Issuer URL","example":"https://company.okta.com"},"clientId":{"type":"string","description":"OAuth Client ID","example":"abc123"},"clientSecret":{"type":"string","description":"OAuth Client Secret","example":"secret123"},"scope":{"type":"string","description":"OAuth scopes","example":"openid email profile"}}},"UpdateIdentityProvider":{"type":"object","properties":{"name":{"type":"string","description":"Display name for the identity provider","example":"Company Okta"},"oidcConfig":{"description":"OIDC configuration","allOf":[{"$ref":"#/components/schemas/UpdateOidcIdPConfig"}]},"emailDomains":{"description":"Email domains used for IdP discovery on the login form and to validate the user identity returned by the IdP. If provided and `allowAnyDomain` is not being set to true, must contain at least one domain. To clear domains in the same request, set `allowAnyDomain: true` and `emailDomains: []`.","example":["company.com","corp.company.com"],"type":"array","items":{"type":"string"}},"allowAnyDomain":{"type":"boolean","description":"When true, the IdP accepts any email domain returned by the external provider. Disables the post-callback domain check and allows `emailDomains` to be empty. Only enable for trusted IdPs that strictly control which users can authenticate.","example":false},"trustEmailVerified":{"type":"boolean","description":"When true, skip the `email_verified` claim check on SSO logins through this identity provider. Only intended for providers that never emit the claim (e.g. Microsoft Entra ID). Risky: only enable if the IdP strictly controls its users' email addresses.","example":false},"defaultAssignedRoleIds":{"description":"Organization role IDs assigned to users who join the organization via SSO through this identity provider. Roles must be global or belong to this organization. Empty grants the lowest access: membership with no resource permissions.","example":["00000000-0000-0000-0000-000000000001"],"type":"array","items":{"type":"string"}},"enabled":{"type":"boolean","description":"Whether the identity provider is enabled","example":true}}},"TestIdentityProviderConnection":{"type":"object","properties":{"issuerUrl":{"type":"string","description":"OIDC Issuer URL to test","example":"https://company.okta.com"}},"required":["issuerUrl"]},"TestIdentityProviderConnectionResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the connection test was successful","example":true},"issuer":{"type":"string","description":"The discovered issuer from the OIDC configuration","example":"https://company.okta.com"},"error":{"type":"string","description":"Error message if the connection test failed"}},"required":["success"]},"UserPublicKey":{"type":"object","properties":{"key":{"type":"string","description":"Public key"},"name":{"type":"string","description":"Key name"}},"required":["key","name"]},"User":{"type":"object","properties":{"id":{"type":"string","description":"User ID"},"name":{"type":"string","description":"User name"},"email":{"type":"string","description":"User email"},"emailVerified":{"type":"boolean","description":"Whether the user email address has been verified"},"pylonEmailHash":{"type":"string","description":"HMAC of the user email for Pylon support-widget identity verification"},"publicKeys":{"description":"User public keys","type":"array","items":{"$ref":"#/components/schemas/UserPublicKey"}},"createdAt":{"format":"date-time","type":"string","description":"Creation timestamp"}},"required":["id","name","email","emailVerified","publicKeys","createdAt"]},"AccountProvider":{"type":"object","properties":{"name":{"type":"string"},"displayName":{"type":"string"}},"required":["name","displayName"]},"CreateLinkedAccount":{"type":"object","properties":{"provider":{"type":"string","description":"The authentication provider of the secondary account"},"userId":{"type":"string","description":"The user ID of the secondary account"}},"required":["provider","userId"]},"SandboxState":{"type":"string","enum":["creating","restoring","destroyed","destroying","started","stopped","starting","stopping","error","build_failed","pending_build","building_snapshot","unknown","pulling_snapshot","archived","archiving","resizing","snapshotting","forking","pausing","paused","resuming"]},"SandboxListSortField":{"type":"string","enum":["name","cpu","memoryGib","diskGib","lastActivityAt","createdAt"]},"SandboxListSortDirection":{"type":"string","enum":["asc","desc"]},"SandboxDesiredState":{"type":"string","enum":["destroyed","started","stopped","resized","archived","paused"],"description":"The desired state of the sandbox"},"SandboxListItem":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the sandbox","example":"sandbox123"},"organizationId":{"type":"string","description":"The organization ID of the sandbox","example":"organization123"},"name":{"type":"string","description":"The name of the sandbox","example":"MySandbox"},"target":{"type":"string","description":"The target environment for the sandbox","example":"local"},"runnerId":{"type":"string","description":"The runner ID of the sandbox","example":"runner123"},"sandboxClass":{"description":"The class of the sandbox","example":"linux-vm","allOf":[{"$ref":"#/components/schemas/SandboxClass"}]},"state":{"description":"The state of the sandbox","example":"creating","allOf":[{"$ref":"#/components/schemas/SandboxState"}]},"desiredState":{"description":"The desired state of the sandbox","example":"destroyed","allOf":[{"$ref":"#/components/schemas/SandboxDesiredState"}]},"snapshot":{"type":"string","description":"The snapshot used for the sandbox","example":"daytonaio/sandbox:latest"},"user":{"type":"string","description":"The user associated with the project","example":"daytona"},"errorReason":{"type":"string","description":"The error reason of the sandbox","example":"The sandbox is not running"},"recoverable":{"type":"boolean","description":"Whether the sandbox error is recoverable.","example":true},"public":{"type":"boolean","description":"Whether the sandbox http preview is public","example":false},"networkBlockAll":{"type":"boolean","description":"Whether to block all network access for the sandbox","example":false},"networkAllowList":{"type":"string","description":"Comma-separated list of allowed CIDR network addresses for the sandbox","example":"192.168.1.0/16,10.0.0.0/24"},"domainAllowList":{"type":"string","description":"Comma-separated list of allowed domains for the sandbox","example":"example.com,*.daytona.io"},"cpu":{"type":"number","description":"The CPU quota for the sandbox","example":2},"gpu":{"type":"number","description":"The GPU quota for the sandbox","example":0},"spot":{"type":"boolean","description":"Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.","example":false,"default":false},"spotEvictedAt":{"type":"string","description":"When this sandbox was evicted by spot preemption. Set as soon as the sandbox is marked for eviction, so it is already present while the sandbox is still winding down.","example":"2026-08-13T12:00:00.000Z"},"gpuType":{"description":"The GPU type assigned to the sandbox","example":"H100","allOf":[{"$ref":"#/components/schemas/GpuType"}]},"memory":{"type":"number","description":"The memory quota for the sandbox","example":4},"disk":{"type":"number","description":"The disk quota for the sandbox","example":10},"labels":{"type":"object","description":"Labels for the sandbox","additionalProperties":{"type":"string"},"example":{"daytona.io/public":"true"}},"backupState":{"type":"string","description":"The state of the backup","enum":["None","Pending","InProgress","Completed","Error"],"example":"None"},"autoStopInterval":{"type":"number","description":"Auto-stop interval in minutes (0 means disabled)","example":30},"autoPauseInterval":{"type":"number","description":"Auto-pause interval in minutes (0 means disabled)","example":60},"autoArchiveInterval":{"type":"number","description":"Auto-archive interval in minutes","example":10080},"autoDeleteInterval":{"type":"number","description":"Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)","example":30},"autoDestroyAt":{"type":"string","description":"When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)","example":"2026-07-15T12:00:00.000Z"},"createdAt":{"type":"string","description":"The creation timestamp of the sandbox","example":"2024-10-01T12:00:00Z"},"updatedAt":{"type":"string","description":"The last update timestamp of the sandbox","example":"2024-10-01T12:00:00Z"},"lastActivityAt":{"type":"string","description":"The last activity timestamp of the sandbox","example":"2024-10-01T12:00:00Z"},"daemonVersion":{"type":"string","description":"The version of the daemon running in the sandbox","example":"1.0.0"},"warmPoolId":{"type":"string","description":"Id of the warm pool this sandbox waits in; set only while it is an unclaimed member"},"toolboxProxyUrl":{"type":"string","description":"The toolbox proxy URL for the sandbox","example":"https://proxy.app.daytona.io/toolbox"}},"required":["id","organizationId","name","target","user","public","networkBlockAll","cpu","gpu","memory","disk","labels","toolboxProxyUrl"]},"ListSandboxesResponse":{"type":"object","properties":{"items":{"description":"List of results for the current page","type":"array","items":{"$ref":"#/components/schemas/SandboxListItem"}},"nextCursor":{"type":"string","description":"Cursor for the next page of results","nullable":true}},"required":["items","nextCursor"]},"SandboxVolume":{"type":"object","properties":{"volumeId":{"type":"string","description":"The ID or name of the volume. Resolved to the volume ID on sandbox create.","example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"},"mountPath":{"type":"string","description":"The mount path for the volume","example":"/data"},"subpath":{"type":"string","description":"Optional subpath within the volume to mount. When specified, only this S3 prefix will be accessible. When omitted, the entire volume is mounted.","example":"users/alice"}},"required":["volumeId","mountPath"]},"BuildInfo":{"type":"object","properties":{"dockerfileContent":{"type":"string","description":"The Dockerfile content used for the build","example":"FROM node:14\nWORKDIR /app\nCOPY . .\nRUN npm install\nCMD [\"npm\", \"start\"]"},"contextHashes":{"description":"The context hashes used for the build","example":["hash1","hash2"],"type":"array","items":{"type":"string"}},"createdAt":{"format":"date-time","type":"string","description":"The creation timestamp"},"updatedAt":{"format":"date-time","type":"string","description":"The last update timestamp"},"snapshotRef":{"type":"string","description":"The snapshot reference","example":"daytonaio/sandbox:latest"}},"required":["createdAt","updatedAt","snapshotRef"]},"Sandbox":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the sandbox","example":"sandbox123"},"organizationId":{"type":"string","description":"The organization ID of the sandbox","example":"organization123"},"name":{"type":"string","description":"The name of the sandbox","example":"MySandbox"},"snapshot":{"type":"string","description":"The snapshot used for the sandbox","example":"daytonaio/sandbox:latest"},"user":{"type":"string","description":"The user associated with the project","example":"daytona"},"env":{"type":"object","description":"Environment variables for the sandbox","additionalProperties":{"type":"string"},"example":{"NODE_ENV":"production"}},"labels":{"type":"object","description":"Labels for the sandbox","additionalProperties":{"type":"string"},"example":{"daytona.io/public":"true"}},"public":{"type":"boolean","description":"Whether the sandbox http preview is public","example":false},"networkBlockAll":{"type":"boolean","description":"Whether to block all network access for the sandbox","example":false},"networkAllowList":{"type":"string","description":"Comma-separated list of allowed CIDR network addresses for the sandbox","example":"192.168.1.0/16,10.0.0.0/24"},"domainAllowList":{"type":"string","description":"Comma-separated list of allowed domains for the sandbox","example":"example.com,*.daytona.io"},"outboundProxyUrl":{"type":"string","description":"Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.","example":"http://user:pass@proxy.example.com:3128"},"otelEndpointOverride":{"type":"string","description":"OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.","example":"https://otel-collector.example.com:4318"},"target":{"type":"string","description":"The target environment for the sandbox","example":"local"},"cpu":{"type":"number","description":"The CPU quota for the sandbox","example":2},"gpu":{"type":"number","description":"The GPU quota for the sandbox","example":0},"spot":{"type":"boolean","description":"Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.","example":false,"default":false},"spotEvictedAt":{"type":"string","description":"When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.","example":"2026-08-13T12:00:00.000Z"},"gpuType":{"description":"The GPU type assigned to the sandbox","example":"H100","allOf":[{"$ref":"#/components/schemas/GpuType"}]},"memory":{"type":"number","description":"The memory quota for the sandbox","example":4},"disk":{"type":"number","description":"The disk quota for the sandbox","example":10},"state":{"description":"The state of the sandbox","example":"creating","allOf":[{"$ref":"#/components/schemas/SandboxState"}]},"desiredState":{"description":"The desired state of the sandbox","example":"destroyed","allOf":[{"$ref":"#/components/schemas/SandboxDesiredState"}]},"errorReason":{"type":"string","description":"The error reason of the sandbox","example":"The sandbox is not running"},"recoverable":{"type":"boolean","description":"Whether the sandbox error is recoverable.","example":true},"warmPoolId":{"type":"string","description":"Id of the warm pool this sandbox waits in; set only while it is an unclaimed member."},"backupState":{"type":"string","description":"The state of the backup","enum":["None","Pending","InProgress","Completed","Error"],"example":"None","deprecated":true},"backupCreatedAt":{"type":"string","description":"The creation timestamp of the last backup","example":"2024-10-01T12:00:00Z","deprecated":true},"autoStopInterval":{"type":"number","description":"Auto-stop interval in minutes (0 means disabled)","example":30},"autoPauseInterval":{"type":"number","description":"Auto-pause interval in minutes (0 means disabled)","example":60},"autoArchiveInterval":{"type":"number","description":"Auto-archive interval in minutes","example":10080},"autoDeleteInterval":{"type":"number","description":"Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)","example":30},"autoDestroyAt":{"type":"string","description":"When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)","example":"2026-07-15T12:00:00.000Z"},"volumes":{"description":"Array of volumes attached to the sandbox","type":"array","items":{"$ref":"#/components/schemas/SandboxVolume"}},"buildInfo":{"description":"Build information for the sandbox","allOf":[{"$ref":"#/components/schemas/BuildInfo"}]},"createdAt":{"type":"string","description":"The creation timestamp of the sandbox","example":"2024-10-01T12:00:00Z"},"updatedAt":{"type":"string","description":"The last update timestamp of the sandbox","example":"2024-10-01T12:00:00Z"},"lastActivityAt":{"type":"string","description":"The last activity timestamp of the sandbox","example":"2024-10-01T12:00:00Z"},"sandboxClass":{"type":"string","description":"The class of the sandbox","enum":["linux-vm","container","android","windows"],"example":"linux-vm","x-enum-varnames":["LINUX_VM","CONTAINER","ANDROID","WINDOWS"]},"daemonVersion":{"type":"string","description":"The version of the daemon running in the sandbox","example":"1.0.0"},"runnerId":{"type":"string","description":"The runner ID of the sandbox","example":"runner123"},"linkedSandboxId":{"type":"string","description":"ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.","example":"sandbox123"},"toolboxProxyUrl":{"type":"string","description":"The toolbox proxy URL for the sandbox","example":"https://proxy.app.daytona.io/toolbox"}},"required":["id","organizationId","name","user","env","labels","public","networkBlockAll","target","cpu","gpu","memory","disk","toolboxProxyUrl"]},"PaginatedSandboxes_deprecated":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Sandbox"}},"total":{"type":"number"},"page":{"type":"number"},"totalPages":{"type":"number"}},"required":["items","total","page","totalPages"]},"CreateBuildInfo":{"type":"object","properties":{"dockerfileContent":{"type":"string","description":"The Dockerfile content used for the build","example":"FROM node:14\nWORKDIR /app\nCOPY . .\nRUN npm install\nCMD [\"npm\", \"start\"]"},"contextHashes":{"description":"The context hashes used for the build","example":["hash1","hash2"],"type":"array","items":{"type":"string"}}},"required":["dockerfileContent"]},"CreateSandbox":{"type":"object","properties":{"name":{"type":"string","description":"The name of the sandbox. If not provided, the sandbox ID will be used as the name","example":"MySandbox"},"snapshot":{"type":"string","description":"The ID or name of the snapshot used for the sandbox","example":"ubuntu-4vcpu-8ram-100gb"},"user":{"type":"string","description":"The user associated with the project","example":"daytona"},"env":{"type":"object","description":"Environment variables for the sandbox","additionalProperties":{"type":"string"},"example":{"NODE_ENV":"production"}},"labels":{"type":"object","description":"Labels for the sandbox","additionalProperties":{"type":"string"},"example":{"daytona.io/public":"true"}},"public":{"type":"boolean","description":"Whether the sandbox http preview is publicly accessible","example":false},"networkBlockAll":{"type":"boolean","description":"Whether to block all network access for the sandbox","example":false},"networkAllowList":{"type":"string","description":"Comma-separated list of allowed CIDR network addresses for the sandbox","example":"192.168.1.0/16,10.0.0.0/24"},"domainAllowList":{"type":"string","description":"Comma-separated list of allowed domains for the sandbox","example":"example.com,*.daytona.io"},"outboundProxyUrl":{"type":"string","description":"Outbound proxy URL to route the sandbox HTTP(S) traffic through (http or https; credentials may be included in the URL). On its own this is convenience routing, not a security boundary: it is applied by injecting the standard HTTP(S)_PROXY environment variables at creation, so a process that clears those variables egresses directly. Combine with domainAllowList to have web-port (80/443) egress transparently redirected through the proxy chain at the network layer, which cannot be bypassed from inside the sandbox.","example":"http://user:pass@proxy.example.com:3128"},"otelEndpointOverride":{"type":"string","description":"OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector (the Daytona-hosted collector or the region-configured endpoint) and will not be available in the Daytona analytics API or dashboard.","example":"https://otel-collector.example.com:4318"},"target":{"type":"string","description":"The target (region) where the sandbox will be created","example":"us"},"cpu":{"type":"integer","description":"CPU cores allocated to the sandbox","example":2},"gpu":{"type":"integer","description":"GPU units allocated to the sandbox","example":1},"gpuType":{"type":"array","description":"Preferred GPU type for the sandbox. Accepts a single value or an ordered preference list — the scheduler tries each in order and pins the sandbox to the first that has capacity.","example":["H100"],"items":{"$ref":"#/components/schemas/GpuType"}},"spot":{"type":"boolean","description":"GPU-only. When true, the sandbox may be instantly terminated without notice to free GPU capacity for an on-demand (non-spot) GPU sandbox. Ignored / rejected when the sandbox requests no GPUs.","example":false,"default":false},"memory":{"type":"integer","description":"Memory allocated to the sandbox in GB","example":1},"disk":{"type":"integer","description":"Disk space allocated to the sandbox in GB","example":3},"autoStopInterval":{"type":"integer","description":"Auto-stop interval in minutes (0 means disabled)","example":30},"autoPauseInterval":{"type":"integer","description":"Auto-pause interval in minutes (0 means disabled). Only supported for sandbox classes that support pausing. Not allowed for ephemeral sandboxes. At most one of autoStopInterval and autoPauseInterval may be non-zero. For non-ephemeral sandbox classes that support pausing, defaults to 60 minutes (with auto-stop disabled) when neither interval is provided.","example":60},"autoArchiveInterval":{"type":"integer","description":"Auto-archive interval in minutes (0 means the maximum interval will be used)","example":10080},"autoDeleteInterval":{"type":"integer","description":"Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)","example":30},"ttlMinutes":{"type":"integer","description":"Maximum time to live in minutes, counted as wall-clock time since creation regardless of sandbox state (0 means disabled). When it elapses the sandbox is destroyed, even if it is stopped, paused, or archived. Subject to the maximum sandbox lifespan configured for the organization region and sandbox class, in which case it also defaults to that maximum and cannot be disabled.","example":1440},"volumes":{"description":"Array of volumes to attach to the sandbox","type":"array","items":{"$ref":"#/components/schemas/SandboxVolume"}},"buildInfo":{"description":"Build information for the sandbox","allOf":[{"$ref":"#/components/schemas/CreateBuildInfo"}]},"linkedSandbox":{"type":"string","description":"ID or name of an existing sandbox to link the new sandbox to. The new sandbox will be scheduled on the same runner as the linked sandbox so a local network can be established between them. Linked sandboxes must be ephemeral (autoDeleteInterval=0) and cannot themselves be linked to another sandbox. GPU sandboxes cannot participate in links in either direction: a GPU sandbox cannot specify linkedSandbox, and cannot be the link target of another sandbox.","example":"sandbox123"},"secrets":{"type":"array","description":"Secrets to mount in this sandbox. Each entry maps an env var name to a vault secret name.","items":{"type":"object","additionalProperties":{"type":"string"}},"example":[{"ANTHROPIC_API_KEY":"anthropic-prod"},{"DB_PASSWORD":"DB_PASSWORD"}]}}},"ResizeSandbox":{"type":"object","properties":{"cpu":{"type":"integer","description":"CPU cores to allocate to the sandbox (minimum: 1)","example":2,"minimum":1},"memory":{"type":"integer","description":"Memory in GB to allocate to the sandbox (minimum: 1)","example":4,"minimum":1},"disk":{"type":"integer","description":"Disk space in GB to allocate to the sandbox (can only be increased)","example":20,"minimum":1}}},"SandboxLabels":{"type":"object","properties":{"labels":{"type":"object","description":"Key-value pairs of labels","example":{"environment":"dev","team":"backend"},"additionalProperties":{"type":"string"}}},"required":["labels"]},"UpdateSandboxStateDto":{"type":"object","properties":{"state":{"type":"string","description":"The new state for the sandbox","enum":["creating","restoring","destroyed","destroying","started","stopped","starting","stopping","error","build_failed","pending_build","building_snapshot","unknown","pulling_snapshot","archived","archiving","resizing","snapshotting","forking","pausing","paused","resuming"],"example":"started"},"errorReason":{"type":"string","description":"Optional error message when reporting an error state","example":"Failed to pull snapshot image"},"recoverable":{"type":"boolean","description":"Whether the sandbox is recoverable","example":true}},"required":["state"]},"CreateSandboxSnapshot":{"type":"object","properties":{"name":{"type":"string","description":"Name for the new snapshot","example":"my-dev-env-v1"},"includeMemory":{"type":"boolean","description":"Include the VM's memory in the snapshot. VM sandboxes only. When true the sandbox must be STARTED; when false (default) VM sandboxes must be STOPPED. Container sandboxes do not support memory snapshots.","default":false}},"required":["name"]},"ForkSandbox":{"type":"object","properties":{"name":{"type":"string","description":"The name for the forked sandbox. If not provided, a unique name will be generated.","example":"my-forked-sandbox"}}},"UpdateLastActivity":{"type":"object","properties":{"activityType":{"type":"string","description":"Optional type of interaction that reset the activity timer.","example":"toolbox"}}},"UpdateSandboxNetworkSettings":{"type":"object","properties":{"networkBlockAll":{"type":"boolean","description":"Whether to block all network access for the sandbox","example":false},"networkAllowList":{"type":"string","description":"Comma-separated list of allowed CIDR network addresses for the sandbox","example":"192.168.1.0/16,10.0.0.0/24"},"domainAllowList":{"type":"string","description":"Comma-separated list of allowed domains for the sandbox","example":"example.com,*.daytona.io"}}},"UpdateSandboxSecrets":{"type":"object","properties":{"secrets":{"type":"array","description":"Secrets to mount in this sandbox, replacing the previously mounted set. Each entry maps an env var name to a vault secret name. Pass an empty array to detach all secrets.","items":{"type":"object","additionalProperties":{"type":"string"}},"example":[{"ANTHROPIC_API_KEY":"anthropic-prod"},{"DB_PASSWORD":"DB_PASSWORD"}]}},"required":["secrets"]},"PortPreviewUrl":{"type":"object","properties":{"sandboxId":{"type":"string","description":"ID of the sandbox","example":"123456"},"url":{"type":"string","description":"Preview url","example":"https://{port}-{sandboxId}.{proxyDomain}"},"token":{"type":"string","description":"Access token","example":"ul67qtv-jl6wb9z5o3eii-ljqt9qed6l"}},"required":["sandboxId","url","token"]},"SignedPortPreviewUrl":{"type":"object","properties":{"sandboxId":{"type":"string","description":"ID of the sandbox","example":"123456"},"port":{"type":"integer","description":"Port number of the signed preview URL","example":3000},"token":{"type":"string","description":"Token of the signed preview URL","example":"jl6wb9z5o3eii"},"url":{"type":"string","description":"Signed preview url","example":"https://{port}-{token}.{proxyDomain}"}},"required":["sandboxId","port","token","url"]},"Url":{"type":"object","properties":{"url":{"type":"string","description":"URL response"}},"required":["url"]},"SshAccessDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the SSH access","example":"123e4567-e89b-12d3-a456-426614174000"},"sandboxId":{"type":"string","description":"ID of the sandbox this SSH access is for","example":"123e4567-e89b-12d3-a456-426614174000"},"token":{"type":"string","description":"SSH access token","example":"abc123def456ghi789jkl012mno345pqr678stu901vwx234yz"},"expiresAt":{"format":"date-time","type":"string","description":"When the SSH access expires","example":"2025-01-01T12:00:00.000Z"},"createdAt":{"format":"date-time","type":"string","description":"When the SSH access was created","example":"2025-01-01T11:00:00.000Z"},"updatedAt":{"format":"date-time","type":"string","description":"When the SSH access was last updated","example":"2025-01-01T11:00:00.000Z"},"sshCommand":{"type":"string","description":"SSH command to connect to the sandbox","example":"ssh -p 2222 token@localhost"}},"required":["id","sandboxId","token","expiresAt","createdAt","updatedAt","sshCommand"]},"SshAccessValidationDto":{"type":"object","properties":{"valid":{"type":"boolean","description":"Whether the SSH access token is valid","example":true},"sandboxId":{"type":"string","description":"ID of the sandbox this SSH access is for","example":"123e4567-e89b-12d3-a456-426614174000"}},"required":["valid","sandboxId"]},"ToolboxProxyUrl":{"type":"object","properties":{"url":{"type":"string","description":"The toolbox proxy URL for the sandbox","example":"https://proxy.app.daytona.io/toolbox"}},"required":["url"]},"RegionQuota":{"type":"object","properties":{"organizationId":{"type":"string"},"regionId":{"type":"string"},"sandboxClass":{"allOf":[{"$ref":"#/components/schemas/SandboxClass"}]},"totalCpuQuota":{"type":"number"},"totalMemoryQuota":{"type":"number"},"totalDiskQuota":{"type":"number"},"totalGpuQuota":{"type":"number"},"allowedGpuTypes":{"type":"array","items":{"$ref":"#/components/schemas/GpuType"}},"maxCpuPerSandbox":{"type":"number","nullable":true},"maxMemoryPerSandbox":{"type":"number","nullable":true},"maxDiskPerSandbox":{"type":"number","nullable":true},"maxDiskPerNonEphemeralSandbox":{"type":"number","nullable":true},"maxCpuPerGpu":{"type":"number","nullable":true,"description":"CPU maximum per requested GPU unit for GPU sandboxes."},"maxMemoryPerGpu":{"type":"number","nullable":true,"description":"Memory maximum per requested GPU unit for GPU sandboxes."},"maxDiskPerGpu":{"type":"number","nullable":true,"description":"Disk maximum per requested GPU unit for GPU sandboxes."},"maxSandboxLifespan":{"type":"number","nullable":true,"description":"Maximum sandbox lifespan in minutes, measured from sandbox creation to its auto-destroy deadline. If null or 0, lifespan is unrestricted. When set, sandboxes created without a TTL default to this lifespan and TTL cannot be disabled."}},"required":["organizationId","regionId","sandboxClass","totalCpuQuota","totalMemoryQuota","totalDiskQuota","totalGpuQuota","maxCpuPerSandbox","maxMemoryPerSandbox","maxDiskPerSandbox","maxDiskPerNonEphemeralSandbox","maxCpuPerGpu","maxMemoryPerGpu","maxDiskPerGpu","maxSandboxLifespan"]},"CreateRunner":{"type":"object","properties":{"regionId":{"type":"string"},"name":{"type":"string"},"tags":{"description":"Tags to associate with the runner","example":["gpu","us-east"],"type":"array","items":{"type":"string"}}},"required":["regionId","name"]},"CreateRunnerResponse":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the runner","example":"runner123"},"apiKey":{"type":"string","description":"The API key for the runner","example":"dtn_1234567890"}},"required":["id","apiKey"]},"RunnerState":{"type":"string","enum":["initializing","ready","disabled","decommissioned","unresponsive"],"description":"The state of the runner"},"RunnerClass":{"type":"string","enum":["container"],"description":"The class of the runner. Deprecated and always returns \"container\" for backward compatibility - use sandboxClass instead."},"RunnerFull":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the runner","example":"runner123"},"domain":{"type":"string","description":"The domain of the runner","example":"runner1.example.com"},"apiUrl":{"type":"string","description":"The API URL of the runner","example":"https://api.runner1.example.com"},"proxyUrl":{"type":"string","description":"The proxy URL of the runner","example":"https://proxy.runner1.example.com"},"cpu":{"type":"number","description":"The CPU capacity of the runner","example":8},"memory":{"type":"number","description":"The memory capacity of the runner in GiB","example":16},"disk":{"type":"number","description":"The disk capacity of the runner in GiB","example":100},"gpu":{"type":"number","description":"The GPU capacity of the runner","example":1},"gpuType":{"type":"string","description":"The type of GPU"},"sandboxClass":{"description":"The sandbox class supported by this runner","example":"linux-vm","allOf":[{"$ref":"#/components/schemas/SandboxClass"}]},"currentCpuUsagePercentage":{"type":"number","description":"Current CPU usage percentage","example":45.6},"currentMemoryUsagePercentage":{"type":"number","description":"Current RAM usage percentage","example":68.2},"currentDiskUsagePercentage":{"type":"number","description":"Current disk usage percentage","example":33.8},"currentAllocatedCpu":{"type":"number","description":"Current allocated CPU","example":4000},"currentAllocatedMemoryGiB":{"type":"number","description":"Current allocated memory in GiB","example":8000},"currentAllocatedDiskGiB":{"type":"number","description":"Current allocated disk in GiB","example":50000},"currentSnapshotCount":{"type":"number","description":"Current snapshot count","example":12},"currentStartedSandboxes":{"type":"number","description":"Current number of started sandboxes","example":5},"availabilityScore":{"type":"number","description":"Runner availability score","example":85},"region":{"type":"string","description":"The region of the runner","example":"us"},"name":{"type":"string","description":"The name of the runner","example":"runner1"},"state":{"description":"The state of the runner","example":"initializing","allOf":[{"$ref":"#/components/schemas/RunnerState"}]},"lastChecked":{"type":"string","description":"The last time the runner was checked","example":"2024-10-01T12:00:00Z"},"unschedulable":{"type":"boolean","description":"Whether the runner is unschedulable","example":false},"tags":{"description":"Tags associated with the runner","example":["gpu","us-east"],"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","description":"The creation timestamp of the runner","example":"2023-10-01T12:00:00Z"},"updatedAt":{"type":"string","description":"The last update timestamp of the runner","example":"2023-10-01T12:00:00Z"},"version":{"type":"string","description":"The version of the runner (deprecated in favor of apiVersion)","example":"0","deprecated":true},"apiVersion":{"type":"string","description":"The api version of the runner","example":"0","deprecated":true},"runnerClass":{"description":"The class of the runner. Deprecated and always returns \"container\" for backward compatibility - use sandboxClass instead.","example":"container","deprecated":true,"allOf":[{"$ref":"#/components/schemas/RunnerClass"}]},"appVersion":{"type":"string","description":"The app version of the runner","example":"v0.0.0-dev","deprecated":true},"class":{"type":"string","description":"Deprecated runner class property","example":"small","deprecated":true},"apiKey":{"type":"string","description":"The API key for the runner","example":"dtn_1234567890"},"regionType":{"description":"The region type of the runner","example":"shared","allOf":[{"$ref":"#/components/schemas/RegionType"}]}},"required":["id","cpu","memory","disk","region","name","state","unschedulable","tags","createdAt","updatedAt","version","apiVersion","runnerClass","apiKey"]},"RunnerSnapshotDto":{"type":"object","properties":{"runnerSnapshotId":{"type":"string","description":"Runner snapshot ID","example":"123e4567-e89b-12d3-a456-426614174000"},"runnerId":{"type":"string","description":"Runner ID","example":"123e4567-e89b-12d3-a456-426614174000"},"runnerDomain":{"type":"string","description":"Runner domain","example":"runner.example.com"}},"required":["runnerSnapshotId","runnerId"]},"Runner":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the runner","example":"runner123"},"domain":{"type":"string","description":"The domain of the runner","example":"runner1.example.com"},"apiUrl":{"type":"string","description":"The API URL of the runner","example":"https://api.runner1.example.com"},"proxyUrl":{"type":"string","description":"The proxy URL of the runner","example":"https://proxy.runner1.example.com"},"cpu":{"type":"number","description":"The CPU capacity of the runner","example":8},"memory":{"type":"number","description":"The memory capacity of the runner in GiB","example":16},"disk":{"type":"number","description":"The disk capacity of the runner in GiB","example":100},"gpu":{"type":"number","description":"The GPU capacity of the runner","example":1},"gpuType":{"type":"string","description":"The type of GPU"},"sandboxClass":{"description":"The sandbox class supported by this runner","example":"linux-vm","allOf":[{"$ref":"#/components/schemas/SandboxClass"}]},"currentCpuUsagePercentage":{"type":"number","description":"Current CPU usage percentage","example":45.6},"currentMemoryUsagePercentage":{"type":"number","description":"Current RAM usage percentage","example":68.2},"currentDiskUsagePercentage":{"type":"number","description":"Current disk usage percentage","example":33.8},"currentAllocatedCpu":{"type":"number","description":"Current allocated CPU","example":4000},"currentAllocatedMemoryGiB":{"type":"number","description":"Current allocated memory in GiB","example":8000},"currentAllocatedDiskGiB":{"type":"number","description":"Current allocated disk in GiB","example":50000},"currentSnapshotCount":{"type":"number","description":"Current snapshot count","example":12},"currentStartedSandboxes":{"type":"number","description":"Current number of started sandboxes","example":5},"availabilityScore":{"type":"number","description":"Runner availability score","example":85},"region":{"type":"string","description":"The region of the runner","example":"us"},"name":{"type":"string","description":"The name of the runner","example":"runner1"},"state":{"description":"The state of the runner","example":"initializing","allOf":[{"$ref":"#/components/schemas/RunnerState"}]},"lastChecked":{"type":"string","description":"The last time the runner was checked","example":"2024-10-01T12:00:00Z"},"unschedulable":{"type":"boolean","description":"Whether the runner is unschedulable","example":false},"tags":{"description":"Tags associated with the runner","example":["gpu","us-east"],"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","description":"The creation timestamp of the runner","example":"2023-10-01T12:00:00Z"},"updatedAt":{"type":"string","description":"The last update timestamp of the runner","example":"2023-10-01T12:00:00Z"},"version":{"type":"string","description":"The version of the runner (deprecated in favor of apiVersion)","example":"0","deprecated":true},"apiVersion":{"type":"string","description":"The api version of the runner","example":"0","deprecated":true},"runnerClass":{"description":"The class of the runner. Deprecated and always returns \"container\" for backward compatibility - use sandboxClass instead.","example":"container","deprecated":true,"allOf":[{"$ref":"#/components/schemas/RunnerClass"}]},"appVersion":{"type":"string","description":"The app version of the runner","example":"v0.0.0-dev","deprecated":true},"class":{"type":"string","description":"Deprecated runner class property","example":"small","deprecated":true}},"required":["id","cpu","memory","disk","region","name","state","unschedulable","tags","createdAt","updatedAt","version","apiVersion","runnerClass"]},"RunnerHealthMetrics":{"type":"object","properties":{"currentCpuLoadAverage":{"type":"number","description":"Current CPU load average","example":0.98},"currentCpuUsagePercentage":{"type":"number","description":"Current CPU usage percentage","example":45.5},"currentMemoryUsagePercentage":{"type":"number","description":"Current memory usage percentage","example":60.2},"currentDiskUsagePercentage":{"type":"number","description":"Current disk usage percentage","example":35.8},"currentAllocatedCpu":{"type":"number","description":"Currently allocated CPU cores","example":8},"currentAllocatedMemoryGiB":{"type":"number","description":"Currently allocated memory in GiB","example":16},"currentAllocatedDiskGiB":{"type":"number","description":"Currently allocated disk in GiB","example":100},"currentSnapshotCount":{"type":"number","description":"Number of snapshots currently stored","example":5},"currentStartedSandboxes":{"type":"number","description":"Number of started sandboxes","example":10},"cpu":{"type":"number","description":"Total CPU cores on the runner","example":8},"memoryGiB":{"type":"number","description":"Total RAM in GiB on the runner","example":16},"diskGiB":{"type":"number","description":"Total disk space in GiB on the runner","example":100},"gpu":{"type":"number","description":"Total number of GPUs on the runner","example":4},"gpuType":{"type":"string","description":"GPU model name","example":"NVIDIA H100 80GB HBM3"}},"required":["currentCpuLoadAverage","currentCpuUsagePercentage","currentMemoryUsagePercentage","currentDiskUsagePercentage","currentAllocatedCpu","currentAllocatedMemoryGiB","currentAllocatedDiskGiB","currentSnapshotCount","currentStartedSandboxes","cpu","memoryGiB","diskGiB"]},"RunnerServiceHealth":{"type":"object","properties":{"serviceName":{"type":"string","description":"Name of the service being checked","example":"runner"},"healthy":{"type":"boolean","description":"Whether the service is healthy","example":false},"errorReason":{"type":"string","description":"Error reason if the service is unhealthy","example":"Cannot connect to the runner"}},"required":["serviceName","healthy"]},"RunnerHealthcheck":{"type":"object","properties":{"metrics":{"description":"Runner metrics","allOf":[{"$ref":"#/components/schemas/RunnerHealthMetrics"}]},"serviceHealth":{"description":"Health status of individual services on the runner","type":"array","items":{"$ref":"#/components/schemas/RunnerServiceHealth"}},"domain":{"type":"string","description":"Runner domain","example":"runner-123.daytona.example.com"},"proxyUrl":{"type":"string","description":"Runner proxy URL","example":"http://proxy.daytona.example.com:8080"},"apiUrl":{"type":"string","description":"Runner API URL","example":"http://api.daytona.example.com:8080"},"appVersion":{"type":"string","description":"Runner app version","example":"v0.0.0-dev"}},"required":["appVersion"]},"CreateSnapshot":{"type":"object","properties":{"name":{"type":"string","description":"The name of the snapshot","example":"ubuntu-4vcpu-8ram-100gb"},"imageName":{"type":"string","description":"The image name of the snapshot","example":"ubuntu:22.04"},"entrypoint":{"description":"The entrypoint command for the snapshot","example":"sleep infinity","type":"array","items":{"type":"string"}},"cpu":{"type":"integer","description":"CPU cores allocated to the resulting sandbox","example":1},"gpu":{"type":"integer","description":"GPU units allocated to the resulting sandbox","example":0},"gpuType":{"type":"array","description":"Preferred GPU type for the resulting sandbox.","example":["H100"],"items":{"$ref":"#/components/schemas/GpuType"}},"memory":{"type":"integer","description":"Memory allocated to the resulting sandbox in GB","example":1},"disk":{"type":"integer","description":"Disk space allocated to the sandbox in GB","example":3},"buildInfo":{"description":"Build information for the snapshot","allOf":[{"$ref":"#/components/schemas/CreateBuildInfo"}]},"regionId":{"type":"string","description":"ID of the region where the snapshot will be available. Defaults to organization default region if not specified."},"sandboxClass":{"description":"Target sandbox class. Determines which runners can host sandboxes created from this snapshot.","example":"linux-vm","allOf":[{"$ref":"#/components/schemas/SandboxClass"}]}},"required":["name"]},"SnapshotState":{"type":"string","enum":["building","pending","pulling","snapshotting","active","inactive","error","build_failed","removing"]},"SnapshotDto":{"type":"object","properties":{"id":{"type":"string"},"organizationId":{"type":"string"},"general":{"type":"boolean"},"name":{"type":"string"},"imageName":{"type":"string"},"state":{"allOf":[{"$ref":"#/components/schemas/SnapshotState"}]},"size":{"type":"number","nullable":true},"entrypoint":{"nullable":true,"type":"array","items":{"type":"string"}},"cpu":{"type":"number"},"gpu":{"type":"number"},"gpuType":{"description":"The GPU type assigned to the snapshot","example":"H100","allOf":[{"$ref":"#/components/schemas/GpuType"}]},"mem":{"type":"number"},"disk":{"type":"number"},"errorReason":{"type":"string","nullable":true},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"lastUsedAt":{"format":"date-time","type":"string","nullable":true},"buildInfo":{"description":"Build information for the snapshot","allOf":[{"$ref":"#/components/schemas/BuildInfo"}]},"regionIds":{"description":"IDs of regions where the snapshot is available","type":"array","items":{"type":"string"}},"initialRunnerId":{"type":"string","description":"The initial runner ID of the snapshot","example":"runner123"},"ref":{"type":"string","description":"The snapshot reference","example":"daytonaio/sandbox:latest"},"sourceSandboxId":{"type":"string","description":"The ID of the sandbox the snapshot was created from","example":"sandbox123","nullable":true},"sandboxClass":{"type":"string","description":"The sandbox class of the snapshot","enum":["linux-vm","container","android","windows"],"example":"linux-vm","x-enum-varnames":["LINUX_VM","CONTAINER","ANDROID","WINDOWS"]}},"required":["id","general","name","state","size","entrypoint","cpu","gpu","mem","disk","errorReason","createdAt","updatedAt","lastUsedAt","sourceSandboxId"]},"PaginatedSnapshots":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SnapshotDto"}},"total":{"type":"number"},"page":{"type":"number"},"totalPages":{"type":"number"}},"required":["items","total","page","totalPages"]},"PreviewWarning":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether the preview warning page is enabled for the sandbox"}},"required":["enabled"]},"VolumeState":{"type":"string","enum":["creating","ready","pending_create","pending_delete","deleting","deleted","error"],"description":"Volume state"},"VolumeDto":{"type":"object","properties":{"id":{"type":"string","description":"Volume ID","example":"vol-12345678"},"name":{"type":"string","description":"Volume name","example":"my-volume"},"organizationId":{"type":"string","description":"Organization ID","example":"123e4567-e89b-12d3-a456-426614174000"},"state":{"description":"Volume state","example":"ready","allOf":[{"$ref":"#/components/schemas/VolumeState"}]},"createdAt":{"type":"string","description":"Creation timestamp","example":"2023-01-01T00:00:00.000Z"},"updatedAt":{"type":"string","description":"Last update timestamp","example":"2023-01-01T00:00:00.000Z"},"lastUsedAt":{"type":"string","description":"Last used timestamp","example":"2023-01-01T00:00:00.000Z","nullable":true},"errorReason":{"type":"string","description":"The error reason of the volume","example":"Error processing volume","nullable":true}},"required":["id","name","organizationId","state","createdAt","updatedAt","errorReason"]},"CreateVolume":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]},"JobStatus":{"type":"string","enum":["PENDING","IN_PROGRESS","COMPLETED","FAILED"]},"JobType":{"type":"string","enum":["CREATE_SANDBOX","START_SANDBOX","STOP_SANDBOX","DESTROY_SANDBOX","RESIZE_SANDBOX","CREATE_BACKUP","BUILD_SNAPSHOT","PULL_SNAPSHOT","RECOVER_SANDBOX","INSPECT_SNAPSHOT_IN_REGISTRY","REMOVE_SNAPSHOT","UPDATE_SANDBOX_NETWORK_SETTINGS","UPDATE_SANDBOX_SECRETS","SNAPSHOT_SANDBOX","FORK_SANDBOX","PAUSE_SANDBOX"],"description":"The type of the job"},"Job":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the job","example":"job123"},"type":{"description":"The type of the job","example":"CREATE_SANDBOX","allOf":[{"$ref":"#/components/schemas/JobType"}]},"status":{"description":"The status of the job","example":"PENDING","allOf":[{"$ref":"#/components/schemas/JobStatus"}]},"resourceType":{"type":"string","description":"The type of resource this job operates on","enum":["SANDBOX","SNAPSHOT","BACKUP"],"example":"SANDBOX"},"resourceId":{"type":"string","description":"The ID of the resource this job operates on (sandboxId, snapshotRef, etc.)","example":"sandbox123"},"payload":{"type":"string","description":"Job-specific JSON-encoded payload data (operational metadata)"},"traceContext":{"type":"object","description":"OpenTelemetry trace context for distributed tracing (W3C Trace Context format)","additionalProperties":true,"example":{"traceparent":"00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01"}},"errorMessage":{"type":"string","description":"Error message if the job failed","example":"Failed to create sandbox"},"createdAt":{"type":"string","description":"The creation timestamp of the job","example":"2024-10-01T12:00:00Z"},"updatedAt":{"type":"string","description":"The last update timestamp of the job","example":"2024-10-01T12:00:00Z"}},"required":["id","type","status","resourceType","resourceId","createdAt"]},"PaginatedJobs":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Job"}},"total":{"type":"number"},"page":{"type":"number"},"totalPages":{"type":"number"}},"required":["items","total","page","totalPages"]},"PollJobsResponse":{"type":"object","properties":{"jobs":{"description":"List of jobs","type":"array","items":{"$ref":"#/components/schemas/Job"}}},"required":["jobs"]},"UpdateJobStatus":{"type":"object","properties":{"status":{"description":"The new status of the job","example":"IN_PROGRESS","allOf":[{"$ref":"#/components/schemas/JobStatus"}]},"errorMessage":{"type":"string","description":"Error message if the job failed","example":"Failed to create sandbox"},"resultMetadata":{"type":"string","description":"Result metadata for the job"}},"required":["status"]},"WarmPool":{"type":"object","properties":{"id":{"type":"string"},"organizationId":{"type":"string"},"snapshot":{"type":"string"},"target":{"type":"string"},"pool":{"type":"number","description":"Desired number of warm sandboxes"},"currentSize":{"type":"number","description":"Current number of ready warm sandboxes in the pool"},"cpu":{"type":"number"},"mem":{"type":"number"},"disk":{"type":"number"},"osUser":{"type":"string"},"env":{"type":"object","additionalProperties":{"type":"string"}},"errorReason":{"type":"string","nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","snapshot","target","pool","currentSize","cpu","mem","disk","osUser","env","createdAt","updatedAt"]},"CreateWarmPool":{"type":"object","properties":{"snapshot":{"type":"string","description":"The snapshot (id or name) to keep warm sandboxes for. A pool only serves sandbox creates that use this snapshot with the default OS user and no custom env, volumes or secrets.","example":"my-snapshot"},"pool":{"type":"number","description":"Number of warm sandboxes to keep ready (capped by the organization quota)","example":3,"minimum":1},"target":{"type":"string","description":"Target region for the warm pool. Defaults to the organization default region.","example":"us"}},"required":["snapshot","pool"]},"UpdateWarmPool":{"type":"object","properties":{"pool":{"type":"number","description":"New desired number of warm sandboxes (0 drains the pool)","example":5,"minimum":0}},"required":["pool"]},"CreateDockerRegistry":{"type":"object","properties":{"name":{"type":"string","description":"Registry name"},"url":{"type":"string","description":"Registry URL"},"username":{"type":"string","description":"Registry username"},"password":{"type":"string","description":"Registry password"},"project":{"type":"string","description":"Registry project"}},"required":["name","url","username","password"]},"DockerRegistry":{"type":"object","properties":{"id":{"type":"string","description":"Registry ID","example":"123e4567-e89b-12d3-a456-426614174000"},"name":{"type":"string","description":"Registry name","example":"My Docker Hub"},"url":{"type":"string","description":"Registry URL","example":"https://registry.hub.docker.com"},"username":{"type":"string","description":"Registry username","example":"username"},"project":{"type":"string","description":"Registry project","example":"my-project"},"registryType":{"type":"string","description":"Registry type","enum":["internal","organization","transient","backup"],"example":"internal"},"createdAt":{"format":"date-time","type":"string","description":"Creation timestamp","example":"2024-01-31T12:00:00Z"},"updatedAt":{"format":"date-time","type":"string","description":"Last update timestamp","example":"2024-01-31T12:00:00Z"}},"required":["id","name","url","username","project","registryType","createdAt","updatedAt"]},"RegistryPushAccessDto":{"type":"object","properties":{"username":{"type":"string","description":"Temporary username for registry authentication","example":"temp-user-123"},"secret":{"type":"string","description":"Temporary secret for registry authentication","example":"eyJhbGciOiJIUzI1NiIs..."},"registryUrl":{"type":"string","description":"Registry URL","example":"registry.example.com"},"registryId":{"type":"string","description":"Registry ID","example":"123e4567-e89b-12d3-a456-426614174000"},"project":{"type":"string","description":"Registry project ID","example":"library"},"expiresAt":{"type":"string","description":"Token expiration time in ISO format","example":"2023-12-31T23:59:59Z"}},"required":["username","secret","registryUrl","registryId","project","expiresAt"]},"UpdateDockerRegistry":{"type":"object","properties":{"name":{"type":"string","description":"Registry name"},"url":{"type":"string","description":"Registry URL"},"username":{"type":"string","description":"Registry username"},"password":{"type":"string","description":"Registry password"},"project":{"type":"string","description":"Registry project"}},"required":["name","url","username"]},"CreateSecret":{"type":"object","properties":{"name":{"type":"string","description":"Secret name (alphanumeric, hyphens, underscores)","example":"MY_API_KEY"},"value":{"type":"string","description":"Secret value"},"description":{"type":"string","description":"Optional description of the secret"},"hosts":{"description":"Allowed hosts this secret may be sent to","example":["api.anthropic.com"],"type":"array","items":{"type":"string"}}},"required":["name","value"]},"Secret":{"type":"object","properties":{"id":{"type":"string","description":"Secret ID","example":"123e4567-e89b-12d3-a456-426614174000"},"name":{"type":"string","description":"Secret name","example":"MY_API_KEY"},"description":{"type":"string","description":"Optional description of the secret","example":"API key for external service"},"createdAt":{"format":"date-time","type":"string","description":"Creation timestamp","example":"2024-01-31T12:00:00Z"},"placeholder":{"type":"string","description":"Opaque placeholder token injected as env var value in sandboxes","example":"dtn_secret_a7f3b2c1e9d4f6g8"},"hosts":{"description":"Allowed hosts this secret may be sent to","example":["api.anthropic.com"],"type":"array","items":{"type":"string"}},"updatedAt":{"format":"date-time","type":"string","description":"Last update timestamp","example":"2024-01-31T12:00:00Z"}},"required":["id","name","createdAt","placeholder","hosts","updatedAt"]},"ListSecretsResponse":{"type":"object","properties":{"items":{"description":"List of results for the current page","type":"array","items":{"$ref":"#/components/schemas/Secret"}},"total":{"type":"number","description":"Total number of secrets matching the filters"},"nextCursor":{"type":"string","description":"Cursor for the next page of results","nullable":true}},"required":["items","total","nextCursor"]},"UpdateSecret":{"type":"object","properties":{"value":{"type":"string","description":"New secret value"},"description":{"type":"string","description":"Optional description of the secret"},"hosts":{"description":"Allowed hosts this secret may be sent to","example":["api.anthropic.com"],"type":"array","items":{"type":"string"}}}},"PendingSsoLink":{"type":"object","properties":{"id":{"type":"string"},"idpName":{"type":"string","description":"Display name of the identity provider requesting to be linked"},"organizationId":{"type":"string","description":"Organization that configured the identity provider"},"providerEmail":{"type":"string","nullable":true,"description":"Email asserted by the identity provider"},"createdAt":{"type":"string"},"expiresAt":{"type":"string"}},"required":["id","idpName","organizationId","providerEmail","createdAt","expiresAt"]},"AdminCreateRunner":{"type":"object","properties":{"regionId":{"type":"string"},"name":{"type":"string"},"tags":{"description":"Tags to associate with the runner","example":["gpu","us-east"],"type":"array","items":{"type":"string"}},"apiKey":{"type":"string"},"apiVersion":{"type":"string","description":"The api version of the runner to create","pattern":"^(0|2)$","example":"2"},"domain":{"type":"string","description":"The domain of the runner","example":"runner1.example.com"},"apiUrl":{"type":"string","description":"The API URL of the runner","example":"https://api.runner1.example.com"},"proxyUrl":{"type":"string","description":"The proxy URL of the runner","example":"https://proxy.runner1.example.com"},"cpu":{"type":"number","description":"The CPU capacity of the runner","example":8},"memoryGiB":{"type":"number","description":"The memory capacity of the runner in GiB","example":16},"diskGiB":{"type":"number","description":"The disk capacity of the runner in GiB","example":100}},"required":["regionId","name","apiKey","apiVersion"]},"CreateOrganizationQuota":{"type":"object","properties":{"totalCpuQuota":{"type":"number"},"totalMemoryQuota":{"type":"number"},"totalDiskQuota":{"type":"number"},"totalGpuQuota":{"type":"number"},"maxCpuPerSandbox":{"type":"number"},"maxMemoryPerSandbox":{"type":"number"},"maxDiskPerSandbox":{"type":"number"},"snapshotQuota":{"type":"number"},"maxSnapshotSize":{"type":"number"},"volumeQuota":{"type":"number"},"maxConcurrentSnapshotProcessing":{"type":"number","description":"Maximum number of snapshots an organization can process (building or pulling) concurrently. Excess are queued. <= 0 means unlimited."}}},"CreateUser":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"personalOrganizationQuota":{"$ref":"#/components/schemas/CreateOrganizationQuota"},"personalOrganizationDefaultRegionId":{"type":"string"},"role":{"type":"string","enum":["admin","user"]},"emailVerified":{"type":"boolean"},"emailVerifiedSource":{"type":"string","enum":["auth0","admin","sso"],"description":"Provenance of the email verification. Defaults to auth0 when emailVerified is true and unset."}},"required":["name"]},"WebhookEvent":{"type":"string","enum":["sandbox.created","sandbox.state.updated","snapshot.created","snapshot.state.updated","snapshot.removed","volume.created","volume.state.updated"],"description":"The type of event being sent","x-enum-varnames":["SANDBOX_CREATED","SANDBOX_STATE_UPDATED","SNAPSHOT_CREATED","SNAPSHOT_STATE_UPDATED","SNAPSHOT_REMOVED","VOLUME_CREATED","VOLUME_STATE_UPDATED"]},"SendWebhookDto":{"type":"object","properties":{"eventType":{"description":"The type of event being sent","example":"sandbox.created","allOf":[{"$ref":"#/components/schemas/WebhookEvent"}]},"payload":{"type":"object","description":"The payload data to send","example":{"id":"sandbox-123","name":"My Sandbox"}},"eventId":{"type":"string","description":"Optional event ID for idempotency","example":"evt_1234567890abcdef"}},"required":["eventType","payload"]},"SetSnapshotGeneralStatusDto":{"type":"object","properties":{"general":{"type":"boolean","description":"Whether the snapshot is general","example":true}},"required":["general"]},"StringFilter":{"type":"object","properties":{"eq":{"type":"string","description":"Match values equal to this value."},"not":{"type":"string","description":"Match values not equal to this value."},"in":{"description":"Match values present in this list. Accepts comma-separated values or repeated query parameters. Maximum 100 entries.","type":"array","items":{"type":"string"}},"notIn":{"description":"Match values not present in this list. Accepts comma-separated values or repeated query parameters. Maximum 100 entries.","type":"array","items":{"type":"string"}}}},"IntFilter":{"type":"object","properties":{"eq":{"type":"number","description":"Match values equal to this value."},"not":{"type":"number","description":"Match values not equal to this value."},"in":{"description":"Match values present in this list. Accepts comma-separated values or repeated query parameters. Maximum 100 entries.","type":"array","items":{"type":"number"}},"notIn":{"description":"Match values not present in this list. Accepts comma-separated values or repeated query parameters. Maximum 100 entries.","type":"array","items":{"type":"number"}},"gte":{"type":"number","description":"Match values greater than or equal to this value."},"lte":{"type":"number","description":"Match values less than or equal to this value."},"gt":{"type":"number","description":"Match values strictly greater than this value."},"lt":{"type":"number","description":"Match values strictly less than this value."}}},"DateFilter":{"type":"object","properties":{"gte":{"type":"string","format":"date-time","description":"Match values greater than or equal to this timestamp (ISO 8601)."},"lte":{"type":"string","format":"date-time","description":"Match values less than or equal to this timestamp (ISO 8601)."},"gt":{"type":"string","format":"date-time","description":"Match values strictly greater than this timestamp (ISO 8601)."},"lt":{"type":"string","format":"date-time","description":"Match values strictly less than this timestamp (ISO 8601)."}}},"AuditLog":{"type":"object","properties":{"id":{"type":"string"},"actorId":{"type":"string"},"actorEmail":{"type":"string"},"actorApiKeyPrefix":{"type":"string"},"actorApiKeySuffix":{"type":"string"},"organizationId":{"type":"string"},"action":{"type":"string"},"targetType":{"type":"string"},"targetId":{"type":"string"},"statusCode":{"type":"number"},"errorMessage":{"type":"string"},"ipAddress":{"type":"string"},"userAgent":{"type":"string"},"source":{"type":"string"},"metadata":{"type":"object","additionalProperties":true},"createdAt":{"format":"date-time","type":"string"}},"required":["id","actorId","actorEmail","action","createdAt"]},"PaginatedAuditLogs":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/AuditLog"}},"total":{"type":"number"},"page":{"type":"number"},"totalPages":{"type":"number"},"nextToken":{"type":"string","description":"Token for next page in cursor-based pagination"}},"required":["items","total","page","totalPages"]},"AdminCreateOrganization":{"type":"object","properties":{"userId":{"type":"string","description":"The ID of the user the organization will be created for","example":"user_123"},"name":{"type":"string","description":"The name of organization","example":"My Organization"},"defaultRegionId":{"type":"string","description":"The ID of the default region for the organization","example":"us"}},"required":["userId","name","defaultRegionId"]},"CreateOrganizationRegionQuota":{"type":"object","properties":{"sandboxClass":{"allOf":[{"$ref":"#/components/schemas/SandboxClass"}]},"totalCpuQuota":{"type":"number"},"totalMemoryQuota":{"type":"number"},"totalDiskQuota":{"type":"number"},"totalGpuQuota":{"type":"number"},"allowedGpuTypes":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/GpuType"}},"maxCpuPerSandbox":{"type":"number","nullable":true},"maxMemoryPerSandbox":{"type":"number","nullable":true},"maxDiskPerSandbox":{"type":"number","nullable":true},"maxDiskPerNonEphemeralSandbox":{"type":"number","nullable":true},"maxCpuPerGpu":{"type":"number","nullable":true,"description":"CPU maximum per requested GPU unit for GPU sandboxes."},"maxMemoryPerGpu":{"type":"number","nullable":true,"description":"Memory maximum per requested GPU unit for GPU sandboxes."},"maxDiskPerGpu":{"type":"number","nullable":true,"description":"Disk maximum per requested GPU unit for GPU sandboxes."},"maxSandboxLifespan":{"type":"number","nullable":true,"description":"Maximum sandbox lifespan in minutes, measured from sandbox creation to its auto-destroy deadline. If null or 0, lifespan is unrestricted. When set, sandboxes created without a TTL default to this lifespan and TTL cannot be disabled."}},"required":["sandboxClass","totalCpuQuota","totalMemoryQuota","totalDiskQuota","totalGpuQuota"]},"WebhookAppPortalAccess":{"type":"object","properties":{"token":{"type":"string","description":"The authentication token for the Svix consumer app portal","example":"appsk_..."},"url":{"type":"string","description":"The URL to the webhook app portal","example":"https://app.svix.com/app_1234567890"}},"required":["token","url"]},"WebhookInitializationStatus":{"type":"object","properties":{"organizationId":{"type":"string","description":"Organization ID","example":"123e4567-e89b-12d3-a456-426614174000"},"svixApplicationId":{"type":"string","description":"The ID of the Svix application","example":"app_1234567890","nullable":true},"lastError":{"type":"string","description":"The error reason for the last initialization attempt","example":"Failed to create Svix application","nullable":true},"retryCount":{"type":"number","description":"The number of times the initialization has been attempted","example":3},"createdAt":{"type":"string","description":"When the webhook initialization was created","example":"2023-01-01T00:00:00.000Z"},"updatedAt":{"type":"string","description":"When the webhook initialization was last updated","example":"2023-01-01T00:00:00.000Z"}},"required":["organizationId","svixApplicationId","lastError","retryCount","createdAt","updatedAt"]},"AuditTargetScenario":{"type":"object","properties":{"targetType":{"type":"string","enum":["api_key","organization","organization_invitation","organization_role","organization_user","docker_registry","runner","sandbox","snapshot","user","volume","warm_pool","region","secret","other","identity_provider"],"description":"Resource type the actions apply to. Scenarios that are not scoped to a specific resource type (e.g. leaving an organization) are grouped under \"other\"."},"actions":{"type":"array","description":"Actions that can be audited against this target type, sorted alphabetically.","items":{"type":"string","enum":["create","read","update","delete","login","register","change_password","set_default","update_access","update_quota","create_region_quota","update_region_quota","delete_region_quota","suspend","unsuspend","accept","decline","link_account","unlink_account","leave_organization","regenerate_key_pair","update_scheduling","update_draining","start","stop","resize","replace_labels","create_backup","update_public_status","rotate_signing_key","set_auto_stop_interval","set_auto_pause_interval","set_ttl","set_auto_archive_interval","set_auto_delete_interval","archive","snapshot","fork","pause","get_port_preview_url","set_general_status","activate","deactivate","update_network_settings","update_secrets","send_webhook_message","initialize_webhooks","update_sandbox_default_limited_network_egress","update_preview_warning","update_sso_enabled","update_otel_config","delete_otel_config","create_ssh_access","revoke_ssh_access","recover","regenerate_proxy_api_key","regenerate_ssh_gateway_api_key","regenerate_snapshot_manager_credentials","auto_stop","auto_archive","auto_delete","ttl_expire","spot_evict"]}}},"required":["targetType","actions"]},"AuditScenarios":{"type":"object","properties":{"targets":{"description":"Supported audit log scenarios grouped by target type. Derived at runtime from the audited routes and system events, sorted by target type.","type":"array","items":{"$ref":"#/components/schemas/AuditTargetScenario"}}},"required":["targets"]},"StorageAccessDto":{"type":"object","properties":{"accessKey":{"type":"string","description":"Access key for storage authentication","example":"temp-user-123"},"secret":{"type":"string","description":"Secret key for storage authentication","example":"abchbGciOiJIUzI1NiIs..."},"sessionToken":{"type":"string","description":"Session token for storage authentication","example":"eyJhbGciOiJIUzI1NiIs..."},"storageUrl":{"type":"string","description":"Storage URL","example":"storage.example.com"},"organizationId":{"type":"string","description":"Organization ID","example":"123e4567-e89b-12d3-a456-426614174000"},"bucket":{"type":"string","description":"S3 bucket name","example":"daytona"},"region":{"type":"string","description":"Region for the storage backend (e.g. \"us-east-2\")","example":"us-east-1"}},"required":["accessKey","secret","sessionToken","storageUrl","organizationId","bucket","region"]},"LogEntry":{"type":"object","properties":{"timestamp":{"type":"string","description":"Timestamp of the log entry"},"body":{"type":"string","description":"Log message body"},"severityText":{"type":"string","description":"Severity level text (e.g., INFO, WARN, ERROR)"},"severityNumber":{"type":"number","description":"Severity level number"},"serviceName":{"type":"string","description":"Service name that generated the log"},"resourceAttributes":{"type":"object","description":"Resource attributes from OTEL","additionalProperties":{"type":"string"}},"logAttributes":{"type":"object","description":"Log-specific attributes","additionalProperties":{"type":"string"}},"traceId":{"type":"string","description":"Associated trace ID if available"},"spanId":{"type":"string","description":"Associated span ID if available"}},"required":["timestamp","body","severityText","serviceName","resourceAttributes","logAttributes"]},"PaginatedLogs":{"type":"object","properties":{"items":{"description":"List of log entries","type":"array","items":{"$ref":"#/components/schemas/LogEntry"}},"total":{"type":"number","description":"Total number of log entries matching the query"},"page":{"type":"number","description":"Current page number"},"totalPages":{"type":"number","description":"Total number of pages"}},"required":["items","total","page","totalPages"]},"TraceSummary":{"type":"object","properties":{"traceId":{"type":"string","description":"Unique trace identifier"},"rootSpanName":{"type":"string","description":"Name of the root span"},"startTime":{"type":"string","description":"Trace start time"},"endTime":{"type":"string","description":"Trace end time"},"durationMs":{"type":"number","description":"Total duration in milliseconds"},"spanCount":{"type":"number","description":"Number of spans in this trace"},"statusCode":{"type":"string","description":"Status code of the trace"}},"required":["traceId","rootSpanName","startTime","endTime","durationMs","spanCount"]},"PaginatedTraces":{"type":"object","properties":{"items":{"description":"List of trace summaries","type":"array","items":{"$ref":"#/components/schemas/TraceSummary"}},"total":{"type":"number","description":"Total number of traces matching the query"},"page":{"type":"number","description":"Current page number"},"totalPages":{"type":"number","description":"Total number of pages"}},"required":["items","total","page","totalPages"]},"TraceSpan":{"type":"object","properties":{"traceId":{"type":"string","description":"Trace identifier"},"spanId":{"type":"string","description":"Span identifier"},"parentSpanId":{"type":"string","description":"Parent span identifier"},"spanName":{"type":"string","description":"Span name"},"timestamp":{"type":"string","description":"Span start timestamp"},"durationNs":{"type":"number","description":"Span duration in nanoseconds"},"spanAttributes":{"type":"object","description":"Span attributes","additionalProperties":{"type":"string"}},"statusCode":{"type":"string","description":"Status code of the span"},"statusMessage":{"type":"string","description":"Status message"}},"required":["traceId","spanId","spanName","timestamp","durationNs","spanAttributes"]},"MetricDataPoint":{"type":"object","properties":{"timestamp":{"type":"string","description":"Timestamp of the data point"},"value":{"type":"number","description":"Value at this timestamp"}},"required":["timestamp","value"]},"MetricSeries":{"type":"object","properties":{"metricName":{"type":"string","description":"Name of the metric"},"dataPoints":{"description":"Data points for this metric","type":"array","items":{"$ref":"#/components/schemas/MetricDataPoint"}}},"required":["metricName","dataPoints"]},"MetricsResponse":{"type":"object","properties":{"series":{"description":"List of metric series","type":"array","items":{"$ref":"#/components/schemas/MetricSeries"}}},"required":["series"]}}}}