# FETCHED 2026-04-30 from https://raw.githubusercontent.com/daytonaio/daytona/main/libs/api-client-go/api/openapi.yaml
# Verified by: P1.2.c agent
# SHA-256: 81a1e3f6af322fc03975edcfe3dfc36eb050cf5870598ba968667fbb3fb4f07d
openapi: 3.0.0
info:
  contact:
    email: support@daytona.com
    name: Daytona Platforms Inc.
    url: https://www.daytona.io
  description: Daytona AI platform API Docs
  license:
    name: Apache-2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  title: Daytona
  version: "1.0"
servers:
- url: http://localhost:3000
paths:
  /config:
    get:
      operationId: ConfigController_getConfig
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DaytonaConfiguration"
          description: Daytona configuration
      summary: Get config
      tags:
      - config
  /api-keys:
    get:
      operationId: listApiKeys
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ApiKeyList"
                type: array
          description: API keys retrieved successfully.
        "500":
          description: Error fetching API keys.
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: List API keys
      tags:
      - api-keys
    post:
      operationId: createApiKey
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateApiKey"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiKeyResponse"
          description: API key created successfully.
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Create API key
      tags:
      - api-keys
  /api-keys/current:
    get:
      operationId: getCurrentApiKey
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiKeyList"
          description: API key retrieved successfully.
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get current API key's details
      tags:
      - api-keys
  /api-keys/{name}:
    delete:
      operationId: deleteApiKey
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: name
        required: true
        schema:
          type: string
        style: simple
      responses:
        "204":
          description: API key deleted successfully.
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Delete API key
      tags:
      - api-keys
    get:
      operationId: getApiKey
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: name
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiKeyList"
          description: API key retrieved successfully.
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get API key
      tags:
      - api-keys
  /api-keys/{userId}/{name}:
    delete:
      operationId: deleteApiKeyForUser
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: userId
        required: true
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: name
        required: true
        schema:
          type: string
        style: simple
      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":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/OrganizationInvitation"
                type: array
          description: List of organization invitations
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: List organization invitations for authenticated user
      tags:
      - organizations
  /organizations/invitations/count:
    get:
      operationId: getOrganizationInvitationsCountForAuthenticatedUser
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                type: number
          description: Count of organization invitations
      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:
      - description: Invitation ID
        explode: false
        in: path
        name: invitationId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OrganizationInvitation"
          description: Organization invitation accepted successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Accept organization invitation
      tags:
      - organizations
  /organizations/invitations/{invitationId}/decline:
    post:
      operationId: declineOrganizationInvitation
      parameters:
      - description: Invitation ID
        explode: false
        in: path
        name: invitationId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          description: Organization invitation declined successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Decline organization invitation
      tags:
      - organizations
  /organizations:
    get:
      operationId: listOrganizations
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Organization"
                type: array
          description: List of organizations
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: List organizations
      tags:
      - organizations
    post:
      operationId: createOrganization
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateOrganization"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Organization"
          description: Organization created successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Create organization
      tags:
      - organizations
  /organizations/{organizationId}/default-region:
    patch:
      operationId: setOrganizationDefaultRegion
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateOrganizationDefaultRegion"
        required: true
      responses:
        "204":
          description: Default region set successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Set default region for organization
      tags:
      - organizations
  /organizations/{organizationId}:
    delete:
      operationId: deleteOrganization
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "204":
          description: Organization deleted successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Delete organization
      tags:
      - organizations
    get:
      operationId: getOrganization
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Organization"
          description: Organization details
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get organization by ID
      tags:
      - organizations
  /organizations/{organizationId}/usage:
    get:
      operationId: getOrganizationUsageOverview
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OrganizationUsageOverview"
          description: Current usage overview
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get organization current usage overview
      tags:
      - organizations
  /organizations/{organizationId}/quota:
    patch:
      operationId: updateOrganizationQuota
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateOrganizationQuota"
        required: true
      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:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      - description: ID of the region where the updated quota will be applied
        explode: false
        in: path
        name: regionId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateOrganizationRegionQuota"
        required: true
      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:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "204":
          description: Organization left successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Leave organization
      tags:
      - organizations
  /organizations/{organizationId}/suspend:
    post:
      operationId: suspendOrganization
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OrganizationSuspension"
        required: false
      responses:
        "204":
          description: Organization suspended successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Suspend organization
      tags:
      - organizations
  /organizations/{organizationId}/unsuspend:
    post:
      operationId: unsuspendOrganization
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      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:
      - description: Sandbox Auth Token
        explode: false
        in: path
        name: authToken
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OtelConfig"
          description: OTEL Config
      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:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OtelConfig"
          description: OTEL Config
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get organization OTEL config by organization ID
      tags:
      - organizations
  /organizations/{organizationId}/sandbox-default-limited-network-egress:
    post:
      operationId: updateSandboxDefaultLimitedNetworkEgress
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OrganizationSandboxDefaultLimitedNetworkEgress"
        required: true
      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}/experimental-config:
    put:
      operationId: updateExperimentalConfig
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: true
              example:
                otel:
                  endpoint: http://otel-collector:4317
                  headers:
                    api-key: XXX
              type: object
        description: Experimental configuration as a JSON object. Set to null to clear
          the configuration.
        required: false
      responses:
        "200":
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Update experimental configuration
      tags:
      - organizations
  /organizations/{organizationId}/roles:
    get:
      operationId: listOrganizationRoles
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/OrganizationRole"
                type: array
          description: List of organization roles
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: List organization roles
      tags:
      - organizations
    post:
      operationId: createOrganizationRole
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateOrganizationRole"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OrganizationRole"
          description: Organization role created successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Create organization role
      tags:
      - organizations
  /organizations/{organizationId}/roles/{roleId}:
    delete:
      operationId: deleteOrganizationRole
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      - description: Role ID
        explode: false
        in: path
        name: roleId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "204":
          description: Organization role deleted successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Delete organization role
      tags:
      - organizations
    put:
      operationId: updateOrganizationRole
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      - description: Role ID
        explode: false
        in: path
        name: roleId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateOrganizationRole"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OrganizationRole"
          description: Role updated successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Update organization role
      tags:
      - organizations
  /organizations/{organizationId}/users:
    get:
      operationId: listOrganizationMembers
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/OrganizationUser"
                type: array
          description: List of organization members
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: List organization members
      tags:
      - organizations
  /organizations/{organizationId}/users/{userId}/access:
    post:
      operationId: updateAccessForOrganizationMember
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      - description: User ID
        explode: false
        in: path
        name: userId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateOrganizationMemberAccess"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OrganizationUser"
          description: Access updated successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Update access for organization member
      tags:
      - organizations
  /organizations/{organizationId}/users/{userId}:
    delete:
      operationId: deleteOrganizationMember
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      - description: User ID
        explode: false
        in: path
        name: userId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "204":
          description: User removed from organization successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Delete organization member
      tags:
      - organizations
  /organizations/{organizationId}/invitations:
    get:
      operationId: listOrganizationInvitations
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/OrganizationInvitation"
                type: array
          description: List of pending organization invitations
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: List pending organization invitations
      tags:
      - organizations
    post:
      operationId: createOrganizationInvitation
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateOrganizationInvitation"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OrganizationInvitation"
          description: Organization invitation created successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Create organization invitation
      tags:
      - organizations
  /organizations/{organizationId}/invitations/{invitationId}:
    put:
      operationId: updateOrganizationInvitation
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      - description: Invitation ID
        explode: false
        in: path
        name: invitationId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateOrganizationInvitation"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OrganizationInvitation"
          description: Organization invitation updated successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Update organization invitation
      tags:
      - organizations
  /organizations/{organizationId}/invitations/{invitationId}/cancel:
    post:
      operationId: cancelOrganizationInvitation
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      - description: Invitation ID
        explode: false
        in: path
        name: invitationId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "204":
          description: Organization invitation cancelled successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Cancel organization invitation
      tags:
      - organizations
  /regions:
    get:
      operationId: listAvailableRegions
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Region"
                type: array
          description: List of all available regions
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: List all available regions for the organization
      tags:
      - organizations
    post:
      operationId: createRegion
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateRegion"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateRegionResponse"
          description: The region has been successfully created.
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Create a new region
      tags:
      - organizations
  /regions/{id}:
    delete:
      operationId: deleteRegion
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: Region ID
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      responses:
        "204":
          description: The region has been successfully deleted.
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Delete a region
      tags:
      - organizations
    get:
      operationId: getRegionById
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: Region ID
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Region"
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get region by ID
      tags:
      - organizations
    patch:
      operationId: updateRegion
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: Region ID
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateRegion"
        required: true
      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:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: Region ID
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RegenerateApiKeyResponse"
          description: The proxy API key has been successfully regenerated.
      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:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: Region ID
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RegenerateApiKeyResponse"
          description: The SSH gateway API key has been successfully regenerated.
      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:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: Region ID
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SnapshotManagerCredentials"
          description: The snapshot manager credentials have been successfully regenerated.
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Regenerate snapshot manager credentials for a region
      tags:
      - organizations
  /users/me:
    get:
      operationId: getAuthenticatedUser
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/User"
          description: User details
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get authenticated user
      tags:
      - users
  /users/account-providers:
    get:
      operationId: getAvailableAccountProviders
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/AccountProvider"
                type: array
          description: Available account providers
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get available account providers
      tags:
      - users
  /users/linked-accounts:
    post:
      operationId: linkAccount
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateLinkedAccount"
        required: true
      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:
      - explode: false
        in: path
        name: provider
        required: true
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: providerUserId
        required: true
        schema:
          type: string
        style: simple
      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":
          content:
            application/json:
              schema:
                type: string
          description: SMS MFA enrollment URL
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Enroll in SMS MFA
      tags:
      - users
  /shared-regions:
    get:
      operationId: listSharedRegions
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Region"
                type: array
          description: List of all shared regions
      summary: List all shared regions
      tags:
      - regions
  /sandbox:
    get:
      operationId: listSandboxes
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: Include verbose output
        explode: true
        in: query
        name: verbose
        required: false
        schema:
          type: boolean
        style: form
      - description: JSON encoded labels to filter by
        explode: true
        in: query
        name: labels
        required: false
        schema:
          example: "{\"label1\": \"value1\", \"label2\": \"value2\"}"
          type: string
        style: form
      - description: Include errored and deleted sandboxes
        explode: true
        in: query
        name: includeErroredDeleted
        required: false
        schema:
          type: boolean
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Sandbox"
                type: array
          description: List of all sandboxes
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: List all sandboxes
      tags:
      - sandbox
    post:
      operationId: createSandbox
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateSandbox"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sandbox"
          description: The sandbox has been successfully created.
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Create a new sandbox
      tags:
      - sandbox
  /sandbox/paginated:
    get:
      operationId: listSandboxesPaginated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: Page number of the results
        explode: true
        in: query
        name: page
        required: false
        schema:
          default: 1
          minimum: 1
          type: number
        style: form
      - description: Number of results per page
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 100
          maximum: 200
          minimum: 1
          type: number
        style: form
      - description: Filter by partial ID match
        explode: true
        in: query
        name: id
        required: false
        schema:
          example: abc123
          type: string
        style: form
      - description: Filter by partial name match
        explode: true
        in: query
        name: name
        required: false
        schema:
          example: abc123
          type: string
        style: form
      - description: JSON encoded labels to filter by
        explode: true
        in: query
        name: labels
        required: false
        schema:
          example: "{\"label1\": \"value1\", \"label2\": \"value2\"}"
          type: string
        style: form
      - description: Include results with errored state and deleted desired state
        explode: true
        in: query
        name: includeErroredDeleted
        required: false
        schema:
          default: false
          type: boolean
        style: form
      - description: List of states to filter by
        explode: true
        in: query
        name: states
        required: false
        schema:
          items:
            enum:
            - creating
            - restoring
            - destroying
            - started
            - stopped
            - starting
            - stopping
            - error
            - build_failed
            - pending_build
            - building_snapshot
            - unknown
            - pulling_snapshot
            - archived
            - archiving
            - resizing
            - snapshotting
            - forking
            type: string
          type: array
        style: form
      - description: List of snapshot names to filter by
        explode: true
        in: query
        name: snapshots
        required: false
        schema:
          items:
            type: string
          type: array
        style: form
      - description: List of regions to filter by
        explode: true
        in: query
        name: regions
        required: false
        schema:
          items:
            type: string
          type: array
        style: form
      - description: Minimum CPU
        explode: true
        in: query
        name: minCpu
        required: false
        schema:
          minimum: 1
          type: number
        style: form
      - description: Maximum CPU
        explode: true
        in: query
        name: maxCpu
        required: false
        schema:
          minimum: 1
          type: number
        style: form
      - description: Minimum memory in GiB
        explode: true
        in: query
        name: minMemoryGiB
        required: false
        schema:
          minimum: 1
          type: number
        style: form
      - description: Maximum memory in GiB
        explode: true
        in: query
        name: maxMemoryGiB
        required: false
        schema:
          minimum: 1
          type: number
        style: form
      - description: Minimum disk space in GiB
        explode: true
        in: query
        name: minDiskGiB
        required: false
        schema:
          minimum: 1
          type: number
        style: form
      - description: Maximum disk space in GiB
        explode: true
        in: query
        name: maxDiskGiB
        required: false
        schema:
          minimum: 1
          type: number
        style: form
      - description: Include items with last event after this timestamp
        explode: true
        in: query
        name: lastEventAfter
        required: false
        schema:
          example: 2024-01-01T00:00:00Z
          format: date-time
          type: string
        style: form
      - description: Include items with last event before this timestamp
        explode: true
        in: query
        name: lastEventBefore
        required: false
        schema:
          example: 2024-12-31T23:59:59Z
          format: date-time
          type: string
        style: form
      - description: Field to sort by
        explode: true
        in: query
        name: sort
        required: false
        schema:
          default: createdAt
          enum:
          - id
          - name
          - state
          - snapshot
          - region
          - updatedAt
          - createdAt
          - lastActivityAt
          type: string
        style: form
      - description: Direction to sort by
        explode: true
        in: query
        name: order
        required: false
        schema:
          default: desc
          enum:
          - asc
          - desc
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaginatedSandboxes"
          description: Paginated list of all sandboxes
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: List all sandboxes paginated
      tags:
      - sandbox
  /sandbox/for-runner:
    get:
      operationId: getSandboxesForRunner
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: Comma-separated list of sandbox states to filter by
        explode: true
        in: query
        name: states
        required: false
        schema:
          type: string
        style: form
      - description: Skip sandboxes where state differs from desired state
        explode: true
        in: query
        name: skipReconcilingSandboxes
        required: false
        schema:
          type: boolean
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Sandbox"
                type: array
          description: List of sandboxes for the authenticated runner
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get sandboxes for the authenticated runner
      tags:
      - sandbox
  /sandbox/{sandboxIdOrName}:
    delete:
      operationId: deleteSandbox
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID or name of the sandbox
        explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sandbox"
          description: Sandbox has been deleted
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Delete sandbox
      tags:
      - sandbox
    get:
      operationId: getSandbox
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID or name of the sandbox
        explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      - description: Include verbose output
        explode: true
        in: query
        name: verbose
        required: false
        schema:
          type: boolean
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sandbox"
          description: Sandbox details
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get sandbox details
      tags:
      - sandbox
  /sandbox/{sandboxIdOrName}/recover:
    post:
      operationId: recoverSandbox
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID or name of the sandbox
        explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      - description: "If true, the sandbox is left in STOPPED after recovery instead\
          \ of being started."
        explode: true
        in: query
        name: skipStart
        required: false
        schema:
          type: boolean
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sandbox"
          description: Recovery initiated
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Recover sandbox from error state
      tags:
      - sandbox
  /sandbox/{sandboxIdOrName}/start:
    post:
      operationId: startSandbox
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID or name of the sandbox
        explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sandbox"
          description: Sandbox has been started or is being restored from archived
            state
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Start sandbox
      tags:
      - sandbox
  /sandbox/{sandboxIdOrName}/stop:
    post:
      operationId: stopSandbox
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID or name of the sandbox
        explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      - description: Force stop the sandbox using SIGKILL instead of SIGTERM
        explode: true
        in: query
        name: force
        required: false
        schema:
          type: boolean
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sandbox"
          description: Sandbox has been stopped
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Stop sandbox
      tags:
      - sandbox
  /sandbox/{sandboxIdOrName}/resize:
    post:
      operationId: resizeSandbox
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID or name of the sandbox
        explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ResizeSandbox"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sandbox"
          description: Sandbox has been resized
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Resize sandbox resources
      tags:
      - sandbox
  /sandbox/{sandboxIdOrName}/labels:
    put:
      operationId: replaceLabels
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID or name of the sandbox
        explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SandboxLabels"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SandboxLabels"
          description: Labels have been successfully replaced
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Replace sandbox labels
      tags:
      - sandbox
  /sandbox/{sandboxId}/state:
    put:
      operationId: updateSandboxState
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the sandbox
        explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateSandboxStateDto"
        required: true
      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:
      operationId: createBackup
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID or name of the sandbox
        explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sandbox"
          description: Sandbox backup has been initiated
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Create sandbox backup
      tags:
      - sandbox
  /sandbox/{sandboxIdOrName}/snapshot:
    post:
      operationId: createSandboxSnapshot
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateSandboxSnapshot"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sandbox"
          description: Snapshot creation has been initiated
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Create a snapshot from a sandbox
      tags:
      - sandbox
  /sandbox/{sandboxIdOrName}/fork:
    post:
      operationId: forkSandbox
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ForkSandbox"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sandbox"
          description: Fork operation has been initiated
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Fork a sandbox
      tags:
      - sandbox
  /sandbox/{sandboxIdOrName}/forks:
    get:
      operationId: getSandboxForks
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: includeDestroyed
        required: false
        schema:
          type: boolean
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Sandbox"
                type: array
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get sandbox fork children
      tags:
      - sandbox
  /sandbox/{sandboxIdOrName}/parent:
    get:
      operationId: getSandboxParent
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sandbox"
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get sandbox fork parent
      tags:
      - sandbox
  /sandbox/{sandboxIdOrName}/ancestors:
    get:
      operationId: getSandboxAncestors
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Sandbox"
                type: array
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get sandbox fork ancestor chain
      tags:
      - sandbox
  /sandbox/{sandboxIdOrName}/public/{isPublic}:
    post:
      operationId: updatePublicStatus
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID or name of the sandbox
        explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      - description: Public status to set
        explode: false
        in: path
        name: isPublic
        required: true
        schema:
          type: boolean
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sandbox"
          description: Public status has been successfully updated
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Update public status
      tags:
      - sandbox
  /sandbox/{sandboxId}/last-activity:
    post:
      operationId: updateLastActivity
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the sandbox
        explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      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:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID or name of the sandbox
        explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      - description: Auto-stop interval in minutes (0 to disable)
        explode: false
        in: path
        name: interval
        required: true
        schema:
          type: number
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sandbox"
          description: Auto-stop interval has been set
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Set sandbox auto-stop interval
      tags:
      - sandbox
  /sandbox/{sandboxIdOrName}/autoarchive/{interval}:
    post:
      operationId: setAutoArchiveInterval
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID or name of the sandbox
        explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      - description: Auto-archive interval in minutes (0 means the maximum interval
          will be used)
        explode: false
        in: path
        name: interval
        required: true
        schema:
          type: number
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sandbox"
          description: Auto-archive interval has been set
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Set sandbox auto-archive interval
      tags:
      - sandbox
  /sandbox/{sandboxIdOrName}/autodelete/{interval}:
    post:
      operationId: setAutoDeleteInterval
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID or name of the sandbox
        explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      - description: "Auto-delete interval in minutes (negative value means disabled,\
          \ 0 means delete immediately upon stopping)"
        explode: false
        in: path
        name: interval
        required: true
        schema:
          type: number
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sandbox"
          description: Auto-delete interval has been set
      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:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID or name of the sandbox
        explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateSandboxNetworkSettings"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sandbox"
          description: Network settings have been updated
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Update sandbox network settings
      tags:
      - sandbox
  /sandbox/{sandboxIdOrName}/archive:
    post:
      operationId: archiveSandbox
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sandbox"
          description: Sandbox has been archived
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Archive sandbox
      tags:
      - sandbox
  /sandbox/{sandboxIdOrName}/ports/{port}/preview-url:
    get:
      operationId: getPortPreviewUrl
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID or name of the sandbox
        explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      - description: Port number to get preview URL for
        explode: false
        in: path
        name: port
        required: true
        schema:
          type: number
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PortPreviewUrl"
          description: Preview URL for the specified port
      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:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID or name of the sandbox
        explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      - description: Port number to get signed preview URL for
        explode: false
        in: path
        name: port
        required: true
        schema:
          type: integer
        style: simple
      - description: "Expiration time in seconds (default: 60 seconds)"
        explode: true
        in: query
        name: expiresInSeconds
        required: false
        schema:
          type: integer
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SignedPortPreviewUrl"
          description: Signed preview URL for the specified port
      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:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID or name of the sandbox
        explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      - description: Port number to expire signed preview URL for
        explode: false
        in: path
        name: port
        required: true
        schema:
          type: integer
        style: simple
      - description: Token to expire signed preview URL for
        explode: false
        in: path
        name: token
        required: true
        schema:
          type: string
        style: simple
      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:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID or name of the sandbox
        explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      - description: Whether to follow the logs stream
        explode: true
        in: query
        name: follow
        required: false
        schema:
          type: boolean
        style: form
      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:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID or name of the sandbox
        explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Url"
          description: Build logs URL
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get build logs URL
      tags:
      - sandbox
  /sandbox/{sandboxIdOrName}/ssh-access:
    delete:
      operationId: revokeSshAccess
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID or name of the sandbox
        explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      - description: "SSH access token to revoke. If not provided, all SSH access\
          \ for the sandbox will be revoked."
        explode: true
        in: query
        name: token
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sandbox"
          description: SSH access has been revoked
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Revoke SSH access for sandbox
      tags:
      - sandbox
    post:
      operationId: createSshAccess
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID or name of the sandbox
        explode: false
        in: path
        name: sandboxIdOrName
        required: true
        schema:
          type: string
        style: simple
      - description: "Expiration time in minutes (default: 60)"
        explode: true
        in: query
        name: expiresInMinutes
        required: false
        schema:
          type: number
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SshAccessDto"
          description: SSH access has been created
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Create SSH access for sandbox
      tags:
      - sandbox
  /sandbox/ssh-access/validate:
    get:
      operationId: validateSshAccess
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: SSH access token to validate
        explode: true
        in: query
        name: token
        required: true
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SshAccessValidationDto"
          description: SSH access validation result
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Validate SSH access for sandbox
      tags:
      - sandbox
  /sandbox/{sandboxId}/toolbox-proxy-url:
    get:
      operationId: getToolboxProxyUrl
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the sandbox
        explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ToolboxProxyUrl"
          description: Toolbox proxy URL for the specified sandbox
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get toolbox proxy URL for a sandbox
      tags:
      - sandbox
  /sandbox/{sandboxId}/organization:
    get:
      operationId: getOrganizationBySandboxId
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the sandbox
        explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Organization"
          description: Organization
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get organization by sandbox ID
      tags:
      - sandbox
  /sandbox/{sandboxId}/region-quota:
    get:
      operationId: getRegionQuotaBySandboxId
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the sandbox
        explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RegionQuota"
          description: Region quota
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get region quota by sandbox ID
      tags:
      - sandbox
  /runners:
    get:
      operationId: listRunners
      parameters:
      - description: Filter runners by region ID
        explode: true
        in: query
        name: regionId
        required: false
        schema:
          type: string
        style: form
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Runner"
                type: array
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: List all runners
      tags:
      - runners
    post:
      operationId: createRunner
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateRunner"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateRunnerResponse"
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Create runner
      tags:
      - runners
  /runners/me:
    get:
      operationId: getInfoForAuthenticatedRunner
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RunnerFull"
          description: Runner info
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get info for authenticated runner
      tags:
      - runners
  /runners/by-sandbox/{sandboxId}:
    get:
      operationId: getRunnerBySandboxId
      parameters:
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RunnerFull"
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get runner by sandbox ID
      tags:
      - runners
  /runners/by-snapshot-ref:
    get:
      operationId: getRunnersBySnapshotRef
      parameters:
      - description: Snapshot ref
        explode: true
        in: query
        name: ref
        required: true
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/RunnerSnapshotDto"
                type: array
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get runners by snapshot ref
      tags:
      - runners
  /runners/{id}:
    delete:
      operationId: deleteRunner
      parameters:
      - description: Runner ID
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      responses:
        "204":
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Delete runner
      tags:
      - runners
    get:
      operationId: getRunnerById
      parameters:
      - description: Runner ID
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Runner"
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get runner by ID
      tags:
      - runners
  /runners/{id}/full:
    get:
      operationId: getRunnerFullById
      parameters:
      - description: Runner ID
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RunnerFull"
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get runner by ID
      tags:
      - runners
  /runners/{id}/scheduling:
    patch:
      operationId: updateRunnerScheduling
      parameters:
      - description: Runner ID
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Runner"
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Update runner scheduling status
      tags:
      - runners
  /runners/{id}/draining:
    patch:
      operationId: updateRunnerDraining
      parameters:
      - description: Runner ID
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Runner"
          description: ""
      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:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RunnerHealthcheck"
        required: true
      responses:
        "200":
          description: Healthcheck received
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Runner healthcheck
      tags:
      - runners
  /toolbox/{sandboxId}/toolbox/project-dir:
    get:
      deprecated: true
      operationId: getProjectDir_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectDirResponse"
          description: Project directory retrieved successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get sandbox project dir"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/user-home-dir:
    get:
      deprecated: true
      operationId: getUserHomeDir_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserHomeDirResponse"
          description: User home directory retrieved successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get sandbox user home dir"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/work-dir:
    get:
      deprecated: true
      operationId: getWorkDir_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WorkDirResponse"
          description: Work-dir retrieved successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get sandbox work-dir"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/files:
    delete:
      deprecated: true
      description: Delete file inside sandbox
      operationId: deleteFile_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: recursive
        required: false
        schema:
          type: boolean
        style: form
      - explode: true
        in: query
        name: path
        required: true
        schema:
          type: string
        style: form
      responses:
        "200":
          description: File deleted successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Delete file"
      tags:
      - toolbox
    get:
      deprecated: true
      operationId: listFiles_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: path
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/FileInfo"
                type: array
          description: Files listed successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] List files"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/files/download:
    get:
      deprecated: true
      description: Download file from sandbox
      operationId: downloadFile_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: path
        required: true
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                format: binary
                type: string
          description: File downloaded successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Download file"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/files/bulk-download:
    post:
      deprecated: true
      description: Streams back a multipart/form-data bundle of the requested paths
      operationId: downloadFiles_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DownloadFiles"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                format: binary
                type: string
          description: A multipart/form-data response with each file as a part
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Download multiple files"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/files/find:
    get:
      deprecated: true
      description: Search for text/pattern inside sandbox files
      operationId: findInFiles_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: path
        required: true
        schema:
          type: string
        style: form
      - explode: true
        in: query
        name: pattern
        required: true
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Match"
                type: array
          description: Search completed successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Search for text/pattern in files"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/files/folder:
    post:
      deprecated: true
      description: Create folder inside sandbox
      operationId: createFolder_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: path
        required: true
        schema:
          type: string
        style: form
      - explode: true
        in: query
        name: mode
        required: true
        schema:
          type: string
        style: form
      responses:
        "200":
          description: Folder created successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Create folder"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/files/info:
    get:
      deprecated: true
      description: Get file info inside sandbox
      operationId: getFileInfo_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: path
        required: true
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FileInfo"
          description: File info retrieved successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get file info"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/files/move:
    post:
      deprecated: true
      description: Move file inside sandbox
      operationId: moveFile_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: source
        required: true
        schema:
          type: string
        style: form
      - explode: true
        in: query
        name: destination
        required: true
        schema:
          type: string
        style: form
      responses:
        "200":
          description: File moved successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Move file"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/files/permissions:
    post:
      deprecated: true
      description: Set file owner/group/permissions inside sandbox
      operationId: setFilePermissions_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: path
        required: true
        schema:
          type: string
        style: form
      - explode: true
        in: query
        name: owner
        required: false
        schema:
          type: string
        style: form
      - explode: true
        in: query
        name: group
        required: false
        schema:
          type: string
        style: form
      - explode: true
        in: query
        name: mode
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          description: File permissions updated successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Set file permissions"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/files/replace:
    post:
      deprecated: true
      description: Replace text/pattern in multiple files inside sandbox
      operationId: replaceInFiles_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ReplaceRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ReplaceResult"
                type: array
          description: Text replaced successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Replace in files"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/files/search:
    get:
      deprecated: true
      description: Search for files inside sandbox
      operationId: searchFiles_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: path
        required: true
        schema:
          type: string
        style: form
      - explode: true
        in: query
        name: pattern
        required: true
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SearchFilesResponse"
          description: Search completed successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Search files"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/files/upload:
    post:
      deprecated: true
      description: Upload file inside sandbox
      operationId: uploadFile_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: path
        required: true
        schema:
          type: string
        style: form
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/uploadFile_deprecated_request"
        required: true
      responses:
        "200":
          description: File uploaded successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Upload file"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/files/bulk-upload:
    post:
      deprecated: true
      description: Upload multiple files inside sandbox
      operationId: uploadFiles_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          multipart/form-data:
            schema:
              items:
                $ref: "#/components/schemas/UploadFile"
              type: array
        required: true
      responses:
        "200":
          description: Files uploaded successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Upload multiple files"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/git/add:
    post:
      deprecated: true
      description: Add files to git commit
      operationId: gitAddFiles_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GitAddRequest"
        required: true
      responses:
        "200":
          description: Files added to git successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Add files"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/git/branches:
    delete:
      deprecated: true
      description: Delete branch on git repository
      operationId: gitDeleteBranch_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GitDeleteBranchRequest"
        required: true
      responses:
        "200":
          description: Branch deleted successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Delete branch"
      tags:
      - toolbox
    get:
      deprecated: true
      description: Get branch list from git repository
      operationId: gitListBranches_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: path
        required: true
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListBranchResponse"
          description: Branch list retrieved successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get branch list"
      tags:
      - toolbox
    post:
      deprecated: true
      description: Create branch on git repository
      operationId: gitCreateBranch_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GitBranchRequest"
        required: true
      responses:
        "200":
          description: Branch created successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Create branch"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/git/clone:
    post:
      deprecated: true
      description: Clone git repository
      operationId: gitCloneRepository_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GitCloneRequest"
        required: true
      responses:
        "200":
          description: Repository cloned successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Clone repository"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/git/commit:
    post:
      deprecated: true
      description: Commit changes to git repository
      operationId: gitCommitChanges_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GitCommitRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GitCommitResponse"
          description: Changes committed successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Commit changes"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/git/history:
    get:
      deprecated: true
      description: Get commit history from git repository
      operationId: gitGetHistory_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: path
        required: true
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/GitCommitInfo"
                type: array
          description: Commit history retrieved successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get commit history"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/git/pull:
    post:
      deprecated: true
      description: Pull changes from remote
      operationId: gitPullChanges_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GitRepoRequest"
        required: true
      responses:
        "200":
          description: Changes pulled successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Pull changes"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/git/push:
    post:
      deprecated: true
      description: Push changes to remote
      operationId: gitPushChanges_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GitRepoRequest"
        required: true
      responses:
        "200":
          description: Changes pushed successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Push changes"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/git/checkout:
    post:
      deprecated: true
      description: Checkout branch or commit in git repository
      operationId: gitCheckoutBranch_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GitCheckoutRequest"
        required: true
      responses:
        "200":
          description: Branch checked out successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Checkout branch"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/git/status:
    get:
      deprecated: true
      description: Get status from git repository
      operationId: gitGetStatus_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: path
        required: true
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GitStatus"
          description: Git status retrieved successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get git status"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/process/execute:
    post:
      deprecated: true
      description: Execute command synchronously inside sandbox
      operationId: executeCommand_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExecuteRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExecuteResponse"
          description: Command executed successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Execute command"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/process/session:
    get:
      deprecated: true
      description: List all active sessions in the sandbox
      operationId: listSessions_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Session"
                type: array
          description: Sessions retrieved successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] List sessions"
      tags:
      - toolbox
    post:
      deprecated: true
      description: Create a new session in the sandbox
      operationId: createSession_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateSessionRequest"
        required: true
      responses:
        "200":
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Create session"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/process/session/{sessionId}:
    delete:
      deprecated: true
      description: Delete a specific session
      operationId: deleteSession_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sessionId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          description: Session deleted successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Delete session"
      tags:
      - toolbox
    get:
      deprecated: true
      description: Get session by ID
      operationId: getSession_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sessionId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Session"
          description: Session retrieved successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get session"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/process/session/{sessionId}/exec:
    post:
      deprecated: true
      description: Execute a command in a specific session
      operationId: executeSessionCommand_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sessionId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SessionExecuteRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SessionExecuteResponse"
          description: Command executed successfully
        "202":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SessionExecuteResponse"
          description: Command accepted and is being processed
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Execute command in session"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/process/session/{sessionId}/command/{commandId}:
    get:
      deprecated: true
      description: Get session command by ID
      operationId: getSessionCommand_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sessionId
        required: true
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: commandId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Command"
          description: Session command retrieved successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get session command"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/process/session/{sessionId}/command/{commandId}/logs:
    get:
      deprecated: true
      description: Get logs for a specific command in a session
      operationId: getSessionCommandLogs_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sessionId
        required: true
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: commandId
        required: true
        schema:
          type: string
        style: simple
      - description: Whether to stream the logs
        explode: true
        in: query
        name: follow
        required: false
        schema:
          type: boolean
        style: form
      responses:
        "200":
          content:
            text/plain:
              schema:
                type: string
          description: Command log stream marked with stdout and stderr prefixes
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get command logs"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/process/pty:
    get:
      deprecated: true
      description: List all active PTY sessions in the sandbox
      operationId: listPTYSessions_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PtyListResponse"
          description: PTY sessions retrieved successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] List PTY sessions"
      tags:
      - toolbox
    post:
      deprecated: true
      description: Create a new PTY session in the sandbox
      operationId: createPTYSession_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PtyCreateRequest"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PtyCreateResponse"
          description: PTY session created successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Create PTY session"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/process/pty/{sessionId}:
    delete:
      deprecated: true
      description: Delete a PTY session and terminate the associated process
      operationId: deletePTYSession_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sessionId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          description: PTY session deleted successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Delete PTY session"
      tags:
      - toolbox
    get:
      deprecated: true
      description: Get PTY session information by ID
      operationId: getPTYSession_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sessionId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PtySessionInfo"
          description: PTY session retrieved successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get PTY session"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/process/pty/{sessionId}/resize:
    post:
      deprecated: true
      description: Resize a PTY session
      operationId: resizePTYSession_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sessionId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PtyResizeRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PtySessionInfo"
          description: PTY session resized successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Resize PTY session"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/lsp/completions:
    post:
      deprecated: true
      description: The Completion request is sent from the client to the server to
        compute completion items at a given cursor position.
      operationId: LspCompletions_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LspCompletionParams"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CompletionList"
          description: OK
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get Lsp Completions"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/lsp/did-close:
    post:
      deprecated: true
      description: The document close notification is sent from the client to the
        server when the document got closed in the client.
      operationId: LspDidClose_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LspDocumentRequest"
        required: true
      responses:
        "200":
          description: OK
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Call Lsp DidClose"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/lsp/did-open:
    post:
      deprecated: true
      description: The document open notification is sent from the client to the server
        to signal newly opened text documents.
      operationId: LspDidOpen_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LspDocumentRequest"
        required: true
      responses:
        "200":
          description: OK
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Call Lsp DidOpen"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/lsp/document-symbols:
    get:
      deprecated: true
      description: The document symbol request is sent from the client to the server.
      operationId: LspDocumentSymbols_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: languageId
        required: true
        schema:
          type: string
        style: form
      - explode: true
        in: query
        name: pathToProject
        required: true
        schema:
          type: string
        style: form
      - explode: true
        in: query
        name: uri
        required: true
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/LspSymbol"
                type: array
          description: OK
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Call Lsp DocumentSymbols"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/lsp/start:
    post:
      deprecated: true
      description: Start Lsp server process inside sandbox project
      operationId: LspStart_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LspServerRequest"
        required: true
      responses:
        "200":
          description: OK
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Start Lsp server"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/lsp/stop:
    post:
      deprecated: true
      description: Stop Lsp server process inside sandbox project
      operationId: LspStop_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LspServerRequest"
        required: true
      responses:
        "200":
          description: OK
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Stop Lsp server"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/lsp/workspace-symbols:
    get:
      deprecated: true
      description: The workspace symbol request is sent from the client to the server
        to list project-wide symbols matching the query string.
      operationId: LspWorkspaceSymbols_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: languageId
        required: true
        schema:
          type: string
        style: form
      - explode: true
        in: query
        name: pathToProject
        required: true
        schema:
          type: string
        style: form
      - explode: true
        in: query
        name: query
        required: true
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/LspSymbol"
                type: array
          description: OK
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Call Lsp WorkspaceSymbols"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/computeruse/start:
    post:
      deprecated: true
      description: "Start all VNC desktop processes (Xvfb, xfce4, x11vnc, novnc)"
      operationId: startComputerUse_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ComputerUseStartResponse"
          description: Computer use processes started successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Start computer use processes"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/computeruse/stop:
    post:
      deprecated: true
      description: "Stop all VNC desktop processes (Xvfb, xfce4, x11vnc, novnc)"
      operationId: stopComputerUse_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ComputerUseStopResponse"
          description: Computer use processes stopped successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Stop computer use processes"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/computeruse/status:
    get:
      deprecated: true
      description: Get status of all VNC desktop processes
      operationId: getComputerUseStatus_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ComputerUseStatusResponse"
          description: Computer use status retrieved successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get computer use status"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/computeruse/process/{processName}/status:
    get:
      deprecated: true
      description: Get status of a specific VNC process
      operationId: getProcessStatus_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: processName
        required: true
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProcessStatusResponse"
          description: Process status retrieved successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get process status"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/computeruse/process/{processName}/restart:
    post:
      deprecated: true
      description: Restart a specific VNC process
      operationId: restartProcess_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: processName
        required: true
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProcessRestartResponse"
          description: Process restarted successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Restart process"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/computeruse/process/{processName}/logs:
    get:
      deprecated: true
      description: Get logs for a specific VNC process
      operationId: getProcessLogs_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: processName
        required: true
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProcessLogsResponse"
          description: Process logs retrieved successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get process logs"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/computeruse/process/{processName}/errors:
    get:
      deprecated: true
      description: Get error logs for a specific VNC process
      operationId: getProcessErrors_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: processName
        required: true
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProcessErrorsResponse"
          description: Process errors retrieved successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get process errors"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/computeruse/mouse/position:
    get:
      deprecated: true
      description: Get current mouse cursor position
      operationId: getMousePosition_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MousePosition"
          description: Mouse position retrieved successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get mouse position"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/computeruse/mouse/move:
    post:
      deprecated: true
      description: Move mouse cursor to specified coordinates
      operationId: moveMouse_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MouseMoveRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MouseMoveResponse"
          description: Mouse moved successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Move mouse"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/computeruse/mouse/click:
    post:
      deprecated: true
      description: Click mouse at specified coordinates
      operationId: clickMouse_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MouseClickRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MouseClickResponse"
          description: Mouse clicked successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Click mouse"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/computeruse/mouse/drag:
    post:
      deprecated: true
      description: Drag mouse from start to end coordinates
      operationId: dragMouse_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MouseDragRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MouseDragResponse"
          description: Mouse dragged successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Drag mouse"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/computeruse/mouse/scroll:
    post:
      deprecated: true
      description: Scroll mouse at specified coordinates
      operationId: scrollMouse_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MouseScrollRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MouseScrollResponse"
          description: Mouse scrolled successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Scroll mouse"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/computeruse/keyboard/type:
    post:
      deprecated: true
      description: Type text using keyboard
      operationId: typeText_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/KeyboardTypeRequest"
        required: true
      responses:
        "200":
          description: Text typed successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Type text"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/computeruse/keyboard/key:
    post:
      deprecated: true
      description: Press a key with optional modifiers
      operationId: pressKey_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/KeyboardPressRequest"
        required: true
      responses:
        "200":
          description: Key pressed successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Press key"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/computeruse/keyboard/hotkey:
    post:
      deprecated: true
      description: Press a hotkey combination
      operationId: pressHotkey_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/KeyboardHotkeyRequest"
        required: true
      responses:
        "200":
          description: Hotkey pressed successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Press hotkey"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/computeruse/screenshot:
    get:
      deprecated: true
      description: Take a screenshot of the entire screen
      operationId: takeScreenshot_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: show_cursor
        required: false
        schema:
          type: boolean
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScreenshotResponse"
          description: Screenshot taken successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Take screenshot"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/computeruse/screenshot/region:
    get:
      deprecated: true
      description: Take a screenshot of a specific region
      operationId: takeRegionScreenshot_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: show_cursor
        required: false
        schema:
          type: boolean
        style: form
      - explode: true
        in: query
        name: height
        required: true
        schema:
          type: number
        style: form
      - explode: true
        in: query
        name: width
        required: true
        schema:
          type: number
        style: form
      - explode: true
        in: query
        name: "y"
        required: true
        schema:
          type: number
        style: form
      - explode: true
        in: query
        name: x
        required: true
        schema:
          type: number
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RegionScreenshotResponse"
          description: Region screenshot taken successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Take region screenshot"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/computeruse/screenshot/compressed:
    get:
      deprecated: true
      description: "Take a compressed screenshot with format, quality, and scale options"
      operationId: takeCompressedScreenshot_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: scale
        required: false
        schema:
          type: number
        style: form
      - explode: true
        in: query
        name: quality
        required: false
        schema:
          type: number
        style: form
      - explode: true
        in: query
        name: format
        required: false
        schema:
          type: string
        style: form
      - explode: true
        in: query
        name: show_cursor
        required: false
        schema:
          type: boolean
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CompressedScreenshotResponse"
          description: Compressed screenshot taken successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Take compressed screenshot"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/computeruse/screenshot/region/compressed:
    get:
      deprecated: true
      description: Take a compressed screenshot of a specific region
      operationId: takeCompressedRegionScreenshot_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: scale
        required: false
        schema:
          type: number
        style: form
      - explode: true
        in: query
        name: quality
        required: false
        schema:
          type: number
        style: form
      - explode: true
        in: query
        name: format
        required: false
        schema:
          type: string
        style: form
      - explode: true
        in: query
        name: show_cursor
        required: false
        schema:
          type: boolean
        style: form
      - explode: true
        in: query
        name: height
        required: true
        schema:
          type: number
        style: form
      - explode: true
        in: query
        name: width
        required: true
        schema:
          type: number
        style: form
      - explode: true
        in: query
        name: "y"
        required: true
        schema:
          type: number
        style: form
      - explode: true
        in: query
        name: x
        required: true
        schema:
          type: number
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CompressedScreenshotResponse"
          description: Compressed region screenshot taken successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Take compressed region screenshot"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/computeruse/display/info:
    get:
      deprecated: true
      description: Get information about displays
      operationId: getDisplayInfo_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DisplayInfoResponse"
          description: Display info retrieved successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get display info"
      tags:
      - toolbox
  /toolbox/{sandboxId}/toolbox/computeruse/display/windows:
    get:
      deprecated: true
      description: Get list of open windows
      operationId: getWindows_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WindowsResponse"
          description: Windows list retrieved successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get windows"
      tags:
      - toolbox
  /snapshots:
    get:
      operationId: getAllSnapshots
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: Page number of the results
        explode: true
        in: query
        name: page
        required: false
        schema:
          default: 1
          minimum: 1
          type: number
        style: form
      - description: Number of results per page
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 100
          maximum: 200
          minimum: 1
          type: number
        style: form
      - description: Filter by partial name match
        explode: true
        in: query
        name: name
        required: false
        schema:
          example: abc123
          type: string
        style: form
      - description: Field to sort by
        explode: true
        in: query
        name: sort
        required: false
        schema:
          default: lastUsedAt
          enum:
          - name
          - state
          - lastUsedAt
          - createdAt
          type: string
        style: form
      - description: Direction to sort by
        explode: true
        in: query
        name: order
        required: false
        schema:
          default: desc
          enum:
          - asc
          - desc
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaginatedSnapshots"
          description: Paginated list of all snapshots
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: List all snapshots
      tags:
      - snapshots
    post:
      operationId: createSnapshot
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateSnapshot"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SnapshotDto"
          description: The snapshot has been successfully created.
        "400":
          description: Bad request - Snapshots with tag ":latest" are not allowed
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Create a new snapshot
      tags:
      - snapshots
  /snapshots/{id}:
    delete:
      operationId: removeSnapshot
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: Snapshot ID
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          description: Snapshot has been deleted
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Delete snapshot
      tags:
      - snapshots
    get:
      operationId: getSnapshot
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: Snapshot ID or name
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SnapshotDto"
          description: The snapshot
        "404":
          description: Snapshot not found
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get snapshot by ID or name
      tags:
      - snapshots
  /snapshots/{id}/build-logs:
    get:
      deprecated: true
      description: This endpoint is deprecated. Use `getSnapshotBuildLogsUrl` instead.
      operationId: getSnapshotBuildLogs
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: Snapshot ID
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      - description: Whether to follow the logs stream
        explode: true
        in: query
        name: follow
        required: false
        schema:
          type: boolean
        style: form
      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:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: Snapshot ID
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Url"
          description: The snapshot build logs URL
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get snapshot build logs URL
      tags:
      - snapshots
  /snapshots/{id}/activate:
    post:
      operationId: activateSnapshot
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: Snapshot ID
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SnapshotDto"
          description: The snapshot has been successfully activated.
        "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:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: Snapshot ID
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      responses:
        "204":
          description: The snapshot has been successfully deactivated.
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Deactivate a snapshot
      tags:
      - snapshots
  /workspace:
    get:
      deprecated: true
      operationId: listWorkspaces_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: Include verbose output
        explode: true
        in: query
        name: verbose
        required: false
        schema:
          type: boolean
        style: form
      - description: JSON encoded labels to filter by
        explode: true
        in: query
        name: labels
        required: false
        schema:
          example: "{\"label1\": \"value1\", \"label2\": \"value2\"}"
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Workspace"
                type: array
          description: List of all workspacees
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] List all workspaces"
      tags:
      - workspace
    post:
      deprecated: true
      operationId: createWorkspace_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateWorkspace"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Workspace"
          description: The workspace has been successfully created.
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Create a new workspace"
      tags:
      - workspace
  /workspace/{workspaceId}:
    delete:
      deprecated: true
      operationId: deleteWorkspace_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the workspace
        explode: false
        in: path
        name: workspaceId
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: force
        required: true
        schema:
          type: boolean
        style: form
      responses:
        "200":
          description: Workspace has been deleted
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Delete workspace"
      tags:
      - workspace
    get:
      deprecated: true
      operationId: getWorkspace_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the workspace
        explode: false
        in: path
        name: workspaceId
        required: true
        schema:
          type: string
        style: simple
      - description: Include verbose output
        explode: true
        in: query
        name: verbose
        required: false
        schema:
          type: boolean
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Workspace"
          description: Workspace details
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get workspace details"
      tags:
      - workspace
  /workspace/{workspaceId}/start:
    post:
      deprecated: true
      operationId: startWorkspace_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the workspace
        explode: false
        in: path
        name: workspaceId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          description: Workspace has been started
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Start workspace"
      tags:
      - workspace
  /workspace/{workspaceId}/stop:
    post:
      deprecated: true
      operationId: stopWorkspace_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the workspace
        explode: false
        in: path
        name: workspaceId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          description: Workspace has been stopped
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Stop workspace"
      tags:
      - workspace
  /workspace/{workspaceId}/labels:
    put:
      deprecated: true
      operationId: replaceLabelsWorkspace_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the workspace
        explode: false
        in: path
        name: workspaceId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SandboxLabels"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SandboxLabels"
          description: Labels have been successfully replaced
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Replace workspace labels"
      tags:
      - workspace
  /workspace/{workspaceId}/backup:
    post:
      deprecated: true
      operationId: createBackupWorkspace_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the workspace
        explode: false
        in: path
        name: workspaceId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Workspace"
          description: Workspace backup has been initiated
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Create workspace backup"
      tags:
      - workspace
  /workspace/{workspaceId}/public/{isPublic}:
    post:
      deprecated: true
      operationId: updatePublicStatusWorkspace_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the workspace
        explode: false
        in: path
        name: workspaceId
        required: true
        schema:
          type: string
        style: simple
      - description: Public status to set
        explode: false
        in: path
        name: isPublic
        required: true
        schema:
          type: boolean
        style: simple
      responses:
        "201":
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Update public status"
      tags:
      - workspace
  /workspace/{workspaceId}/autostop/{interval}:
    post:
      deprecated: true
      operationId: setAutostopIntervalWorkspace_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the workspace
        explode: false
        in: path
        name: workspaceId
        required: true
        schema:
          type: string
        style: simple
      - description: Auto-stop interval in minutes (0 to disable)
        explode: false
        in: path
        name: interval
        required: true
        schema:
          type: number
        style: simple
      responses:
        "200":
          description: Auto-stop interval has been set
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Set workspace auto-stop interval"
      tags:
      - workspace
  /workspace/{workspaceId}/autoarchive/{interval}:
    post:
      deprecated: true
      operationId: setAutoArchiveIntervalWorkspace_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the workspace
        explode: false
        in: path
        name: workspaceId
        required: true
        schema:
          type: string
        style: simple
      - description: Auto-archive interval in minutes (0 means the maximum interval
          will be used)
        explode: false
        in: path
        name: interval
        required: true
        schema:
          type: number
        style: simple
      responses:
        "200":
          description: Auto-archive interval has been set
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Set workspace auto-archive interval"
      tags:
      - workspace
  /workspace/{workspaceId}/archive:
    post:
      deprecated: true
      operationId: archiveWorkspace_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: workspaceId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          description: Workspace has been archived
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Archive workspace"
      tags:
      - workspace
  /workspace/{workspaceId}/ports/{port}/preview-url:
    get:
      deprecated: true
      operationId: getPortPreviewUrlWorkspace_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the workspace
        explode: false
        in: path
        name: workspaceId
        required: true
        schema:
          type: string
        style: simple
      - description: Port number to get preview URL for
        explode: false
        in: path
        name: port
        required: true
        schema:
          type: number
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WorkspacePortPreviewUrl"
          description: Preview URL for the specified port
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get preview URL for a workspace port"
      tags:
      - workspace
  /workspace/{workspaceId}/build-logs:
    get:
      deprecated: true
      operationId: getBuildLogsWorkspace_deprecated
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the workspace
        explode: false
        in: path
        name: workspaceId
        required: true
        schema:
          type: string
        style: simple
      - description: Whether to follow the logs stream
        explode: true
        in: query
        name: follow
        required: false
        schema:
          type: boolean
        style: form
      responses:
        "200":
          description: Build logs stream
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: "[DEPRECATED] Get build logs"
      tags:
      - workspace
  /preview/{sandboxId}/public:
    get:
      operationId: isSandboxPublic
      parameters:
      - description: ID of the sandbox
        explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                type: boolean
          description: Public status of the sandbox
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Check if sandbox is public
      tags:
      - preview
  /preview/{sandboxId}/validate/{authToken}:
    get:
      operationId: isValidAuthToken
      parameters:
      - description: ID of the sandbox
        explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - description: Auth token of the sandbox
        explode: false
        in: path
        name: authToken
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                type: boolean
          description: Sandbox auth token validation status
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Check if sandbox auth token is valid
      tags:
      - preview
  /preview/{sandboxId}/access:
    get:
      operationId: hasSandboxAccess
      parameters:
      - explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                type: boolean
          description: User access status to the sandbox
      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:
      - description: Signed preview URL token
        explode: false
        in: path
        name: signedPreviewToken
        required: true
        schema:
          type: string
        style: simple
      - description: Port number to get sandbox ID from signed preview URL token
        explode: false
        in: path
        name: port
        required: true
        schema:
          type: number
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: Sandbox ID from signed preview URL token
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get sandbox ID from signed preview URL token
      tags:
      - preview
  /volumes:
    get:
      operationId: listVolumes
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: Include deleted volumes in the response
        explode: true
        in: query
        name: includeDeleted
        required: false
        schema:
          type: boolean
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/VolumeDto"
                type: array
          description: List of all volumes
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: List all volumes
      tags:
      - volumes
    post:
      operationId: createVolume
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateVolume"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VolumeDto"
          description: The volume has been successfully created.
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Create a new volume
      tags:
      - volumes
  /volumes/{volumeId}:
    delete:
      operationId: deleteVolume
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the volume
        explode: false
        in: path
        name: volumeId
        required: true
        schema:
          type: string
        style: simple
      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
    get:
      operationId: getVolume
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the volume
        explode: false
        in: path
        name: volumeId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VolumeDto"
          description: Volume details
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get volume details
      tags:
      - volumes
  /volumes/by-name/{name}:
    get:
      operationId: getVolumeByName
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: Name of the volume
        explode: false
        in: path
        name: name
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VolumeDto"
          description: Volume details
      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:
      - description: Page number of the results
        explode: true
        in: query
        name: page
        required: false
        schema:
          default: 1
          minimum: 1
          type: number
        style: form
      - description: "Maximum number of jobs to return (default: 100, max: 500)"
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 100
          maximum: 200
          minimum: 1
          type: number
        style: form
      - description: Filter jobs by status
        explode: true
        in: query
        name: status
        required: false
        schema:
          $ref: "#/components/schemas/JobStatus"
        style: form
      - description: "Number of jobs to skip for pagination (default: 0)"
        explode: true
        in: query
        name: offset
        required: false
        schema:
          type: number
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaginatedJobs"
          description: List of jobs for the runner
      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:
      - description: "Timeout in seconds for long polling (default: 30, max: 60)"
        explode: true
        in: query
        name: timeout
        required: false
        schema:
          type: number
        style: form
      - description: "Maximum number of jobs to return (default: 10, max: 100)"
        explode: true
        in: query
        name: limit
        required: false
        schema:
          type: number
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PollJobsResponse"
          description: List of jobs for the runner
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Long poll for jobs
      tags:
      - jobs
  /jobs/{jobId}:
    get:
      operationId: getJob
      parameters:
      - description: ID of the job
        explode: false
        in: path
        name: jobId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Job"
          description: Job details
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get job details
      tags:
      - jobs
  /jobs/{jobId}/status:
    post:
      operationId: updateJobStatus
      parameters:
      - description: ID of the job
        explode: false
        in: path
        name: jobId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateJobStatus"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Job"
          description: Job status updated successfully
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Update job status
      tags:
      - jobs
  /docker-registry:
    get:
      operationId: listRegistries
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/DockerRegistry"
                type: array
          description: List of all docker registries
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: List registries
      tags:
      - docker-registry
    post:
      operationId: createRegistry
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateDockerRegistry"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DockerRegistry"
          description: The docker registry has been successfully created.
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Create registry
      tags:
      - docker-registry
  /docker-registry/registry-push-access:
    get:
      operationId: getTransientPushAccess
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the region where the snapshot will be available (defaults
          to organization default region)
        explode: true
        in: query
        name: regionId
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RegistryPushAccessDto"
          description: Temporary registry access has been generated
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get temporary registry access for pushing snapshots
      tags:
      - docker-registry
  /docker-registry/{id}:
    delete:
      operationId: deleteRegistry
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the docker registry
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      responses:
        "204":
          description: The docker registry has been successfully deleted.
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Delete registry
      tags:
      - docker-registry
    get:
      operationId: getRegistry
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the docker registry
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DockerRegistry"
          description: The docker registry
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get registry
      tags:
      - docker-registry
    patch:
      operationId: updateRegistry
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the docker registry
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateDockerRegistry"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DockerRegistry"
          description: The docker registry has been successfully updated.
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Update registry
      tags:
      - docker-registry
  /admin/runners:
    get:
      operationId: adminListRunners
      parameters:
      - description: Filter runners by region ID
        explode: true
        in: query
        name: regionId
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/RunnerFull"
                type: array
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: List all runners
      tags:
      - admin
    post:
      operationId: adminCreateRunner
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AdminCreateRunner"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateRunnerResponse"
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Create runner
      tags:
      - admin
  /admin/runners/{id}:
    delete:
      operationId: adminDeleteRunner
      parameters:
      - description: Runner ID
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      responses:
        "204":
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Delete runner
      tags:
      - admin
    get:
      operationId: adminGetRunnerById
      parameters:
      - description: Runner ID
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RunnerFull"
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get runner by ID
      tags:
      - admin
  /admin/runners/{id}/scheduling:
    patch:
      operationId: adminUpdateRunnerScheduling
      parameters:
      - explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      responses:
        "204":
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Update runner scheduling status
      tags:
      - admin
  /admin/sandbox/{sandboxId}/recover:
    post:
      operationId: adminRecoverSandbox
      parameters:
      - description: ID of the sandbox
        explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sandbox"
          description: Recovery initiated
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Recover sandbox from error state as an admin
      tags:
      - admin
  /admin/users:
    get:
      operationId: adminListUsers
      parameters: []
      responses:
        "200":
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: List all users
      tags:
      - admin
    post:
      operationId: adminCreateUser
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateUser"
        required: true
      responses:
        "201":
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Create user
      tags:
      - admin
  /admin/users/{id}/regenerate-key-pair:
    post:
      operationId: adminRegenerateKeyPair
      parameters:
      - explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      responses:
        "201":
          description: ""
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Regenerate user key pair
      tags:
      - admin
  /admin/users/{id}:
    get:
      operationId: adminGetUser
      parameters:
      - explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/User"
          description: User details
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get user by ID
      tags:
      - admin
  /admin/webhooks/organizations/{organizationId}/send:
    post:
      operationId: adminSendWebhook
      parameters:
      - explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SendWebhookDto"
        required: true
      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:
      - explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: messageId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: object
                type: array
          description: List of delivery attempts
      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":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/adminGetWebhookStatus_200_response"
          description: Webhook service status
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get webhook service status
      tags:
      - admin
  /admin/webhooks/organizations/{organizationId}/initialize:
    post:
      operationId: adminInitializeWebhooks
      parameters:
      - explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      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:
      - description: ID of the docker registry
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DockerRegistry"
          description: The docker registry has been set as default.
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Set default registry
      tags:
      - admin
  /admin/snapshots/can-cleanup-image:
    get:
      operationId: adminCanCleanupImage
      parameters:
      - description: Image name with tag to check
        explode: true
        in: query
        name: imageName
        required: true
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                type: boolean
          description: Boolean indicating if image can be cleaned up
      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:
      - description: Snapshot ID
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SetSnapshotGeneralStatusDto"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SnapshotDto"
          description: Snapshot general status has been set
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Set snapshot general status
      tags:
      - admin
  /admin/audit:
    get:
      operationId: adminGetAllAuditLogs
      parameters:
      - description: Page number of the results
        explode: true
        in: query
        name: page
        required: false
        schema:
          default: 1
          minimum: 1
          type: number
        style: form
      - description: Number of results per page
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 100
          maximum: 200
          minimum: 1
          type: number
        style: form
      - description: From date (ISO 8601 format)
        explode: true
        in: query
        name: from
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: To date (ISO 8601 format)
        explode: true
        in: query
        name: to
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: "Token for cursor-based pagination. When provided, takes precedence\
          \ over page parameter."
        explode: true
        in: query
        name: nextToken
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaginatedAuditLogs"
          description: Paginated list of all audit logs
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get all audit logs
      tags:
      - admin
  /webhooks/organizations/{organizationId}/app-portal-access:
    post:
      operationId: WebhookController_getAppPortalAccess
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebhookAppPortalAccess"
          description: App Portal access generated successfully
      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:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebhookInitializationStatus"
          description: Webhook initialization status
        "404":
          description: Webhook initialization status not found
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get webhook initialization status for an organization
      tags:
      - webhooks
  /audit/organizations/{organizationId}:
    get:
      operationId: getOrganizationAuditLogs
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: organizationId
        required: true
        schema:
          type: string
        style: simple
      - description: Page number of the results
        explode: true
        in: query
        name: page
        required: false
        schema:
          default: 1
          minimum: 1
          type: number
        style: form
      - description: Number of results per page
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 100
          maximum: 200
          minimum: 1
          type: number
        style: form
      - description: From date (ISO 8601 format)
        explode: true
        in: query
        name: from
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: To date (ISO 8601 format)
        explode: true
        in: query
        name: to
        required: false
        schema:
          format: date-time
          type: string
        style: form
      - description: "Token for cursor-based pagination. When provided, takes precedence\
          \ over page parameter."
        explode: true
        in: query
        name: nextToken
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaginatedAuditLogs"
          description: Paginated list of organization audit logs
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get audit logs for organization
      tags:
      - audit
  /object-storage/push-access:
    get:
      operationId: getPushAccess
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StorageAccessDto"
          description: Temporary storage access has been generated
      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":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HealthController_check_200_response"
          description: The Health Check is successful
        "503":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HealthController_check_503_response"
          description: The Health Check is not successful
      security:
      - bearer: []
      tags:
      - Health
  /sandbox/{sandboxId}/telemetry/logs:
    get:
      description: Retrieve OTEL logs for a sandbox within a time range
      operationId: getSandboxLogs
      parameters:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the sandbox
        explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - description: Start of time range (ISO 8601)
        explode: true
        in: query
        name: from
        required: true
        schema:
          format: date-time
          type: string
        style: form
      - description: End of time range (ISO 8601)
        explode: true
        in: query
        name: to
        required: true
        schema:
          format: date-time
          type: string
        style: form
      - description: Page number (1-indexed)
        explode: true
        in: query
        name: page
        required: false
        schema:
          default: 1
          type: number
        style: form
      - description: Number of items per page
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 100
          type: number
        style: form
      - description: "Filter by severity levels (DEBUG, INFO, WARN, ERROR)"
        explode: true
        in: query
        name: severities
        required: false
        schema:
          items:
            type: string
          type: array
        style: form
      - description: Search in log body
        explode: true
        in: query
        name: search
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaginatedLogs"
          description: Paginated list of log entries
      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:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the sandbox
        explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - description: Start of time range (ISO 8601)
        explode: true
        in: query
        name: from
        required: true
        schema:
          format: date-time
          type: string
        style: form
      - description: End of time range (ISO 8601)
        explode: true
        in: query
        name: to
        required: true
        schema:
          format: date-time
          type: string
        style: form
      - description: Page number (1-indexed)
        explode: true
        in: query
        name: page
        required: false
        schema:
          default: 1
          type: number
        style: form
      - description: Number of items per page
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 100
          type: number
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaginatedTraces"
          description: Paginated list of trace summaries
      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:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the sandbox
        explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - description: ID of the trace
        explode: false
        in: path
        name: traceId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/TraceSpan"
                type: array
          description: List of spans in the trace
      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:
      - description: Use with JWT to specify the organization ID
        explode: false
        in: header
        name: X-Daytona-Organization-ID
        required: false
        schema:
          type: string
        style: simple
      - description: ID of the sandbox
        explode: false
        in: path
        name: sandboxId
        required: true
        schema:
          type: string
        style: simple
      - description: Start of time range (ISO 8601)
        explode: true
        in: query
        name: from
        required: true
        schema:
          format: date-time
          type: string
        style: form
      - description: End of time range (ISO 8601)
        explode: true
        in: query
        name: to
        required: true
        schema:
          format: date-time
          type: string
        style: form
      - description: Filter by metric names
        explode: true
        in: query
        name: metricNames
        required: false
        schema:
          items:
            type: string
          type: array
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MetricsResponse"
          description: Metrics time series data
      security:
      - bearer: []
      - oauth2:
        - openid
        - profile
        - email
      summary: Get sandbox metrics
      tags:
      - sandbox
components:
  schemas:
    Announcement:
      properties:
        text:
          description: The announcement text
          example: New feature available!
          type: string
        learnMoreUrl:
          description: URL to learn more about the announcement
          example: https://example.com/learn-more
          type: string
      required:
      - text
      type: object
    PosthogConfig:
      properties:
        apiKey:
          description: PostHog API key
          example: phc_abc123
          type: string
        host:
          description: PostHog host URL
          example: https://app.posthog.com
          type: string
      required:
      - apiKey
      - host
      type: object
    OidcConfig:
      properties:
        issuer:
          description: OIDC issuer
          example: https://auth.example.com
          type: string
        clientId:
          description: OIDC client ID
          example: daytona-client
          type: string
        audience:
          description: OIDC audience
          example: daytona-api
          type: string
      required:
      - audience
      - clientId
      - issuer
      type: object
    RateLimitEntry:
      properties:
        ttl:
          description: Rate limit TTL in seconds
          example: 60
          type: number
        limit:
          description: Rate limit max requests
          example: 100
          type: number
      type: object
    RateLimitConfig:
      properties:
        failedAuth:
          allOf:
          - $ref: "#/components/schemas/RateLimitEntry"
          description: Failed authentication rate limit
        authenticated:
          allOf:
          - $ref: "#/components/schemas/RateLimitEntry"
          description: Authenticated rate limit
        sandboxCreate:
          allOf:
          - $ref: "#/components/schemas/RateLimitEntry"
          description: Sandbox create rate limit
        sandboxLifecycle:
          allOf:
          - $ref: "#/components/schemas/RateLimitEntry"
          description: Sandbox lifecycle rate limit
      type: object
    DaytonaConfiguration:
      example:
        dashboardUrl: https://dashboard.example.com
        rateLimit: ""
        analyticsApiUrl: https://analytics.example.com
        sshGatewayPublicKey: ssh-gateway-public-key
        billingApiUrl: https://billing.example.com
        linkedAccountsEnabled: true
        version: 0.0.1
        oidc: ""
        proxyToolboxUrl: https://proxy.example.com/toolbox
        posthog: ""
        maxAutoArchiveInterval: 43200
        pylonAppId: pylon-app-123
        proxyTemplateUrl: "https://{{PORT}}-{{sandboxId}}.proxy.example.com"
        maintananceMode: false
        environment: production
        defaultSnapshot: ubuntu:22.04
        sshGatewayCommand: "ssh -p 2222 {{TOKEN}}@localhost"
        announcements:
          feature-update:
            text: New feature available!
            learnMoreUrl: https://example.com
      properties:
        version:
          description: Daytona version
          example: 0.0.1
          type: string
        posthog:
          allOf:
          - $ref: "#/components/schemas/PosthogConfig"
          description: PostHog configuration
        oidc:
          allOf:
          - $ref: "#/components/schemas/OidcConfig"
          description: OIDC configuration
        linkedAccountsEnabled:
          description: Whether linked accounts are enabled
          example: true
          type: boolean
        announcements:
          additionalProperties:
            $ref: "#/components/schemas/Announcement"
          description: System announcements
          example:
            feature-update:
              text: New feature available!
              learnMoreUrl: https://example.com
          type: object
        pylonAppId:
          description: Pylon application ID
          example: pylon-app-123
          type: string
        proxyTemplateUrl:
          description: Proxy template URL
          example: "https://{{PORT}}-{{sandboxId}}.proxy.example.com"
          type: string
        proxyToolboxUrl:
          description: Toolbox template URL
          example: https://proxy.example.com/toolbox
          type: string
        defaultSnapshot:
          description: Default snapshot for sandboxes
          example: ubuntu:22.04
          type: string
        dashboardUrl:
          description: Dashboard URL
          example: https://dashboard.example.com
          type: string
        maxAutoArchiveInterval:
          description: Maximum auto-archive interval in minutes
          example: 43200
          type: number
        maintananceMode:
          description: Whether maintenance mode is enabled
          example: false
          type: boolean
        environment:
          description: Current environment
          example: production
          type: string
        billingApiUrl:
          description: Billing API URL
          example: https://billing.example.com
          type: string
        analyticsApiUrl:
          description: Analytics API URL
          example: https://analytics.example.com
          type: string
        sshGatewayCommand:
          description: SSH Gateway command
          example: "ssh -p 2222 {{TOKEN}}@localhost"
          type: string
        sshGatewayPublicKey:
          description: Base64 encoded SSH Gateway public key
          example: ssh-gateway-public-key
          type: string
        rateLimit:
          allOf:
          - $ref: "#/components/schemas/RateLimitConfig"
          description: Rate limit configuration
      required:
      - announcements
      - dashboardUrl
      - defaultSnapshot
      - environment
      - linkedAccountsEnabled
      - maintananceMode
      - maxAutoArchiveInterval
      - oidc
      - proxyTemplateUrl
      - proxyToolboxUrl
      - version
      type: object
    CreateApiKey:
      example:
        permissions:
        - write:registries
        - write:registries
        name: My API Key
        expiresAt: 2025-06-09T12:00:00Z
      properties:
        name:
          description: The name of the API key
          example: My API Key
          type: string
        permissions:
          description: The list of organization resource permissions explicitly assigned
            to the API key
          items:
            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
            type: string
          type: array
        expiresAt:
          description: When the API key expires
          example: 2025-06-09T12:00:00Z
          format: date-time
          nullable: true
          type: string
      required:
      - name
      - permissions
      type: object
    ApiKeyResponse:
      example:
        createdAt: 2024-03-14T12:00:00Z
        permissions:
        - write:registries
        - write:registries
        name: My API Key
        value: bb_sk_1234567890abcdef
        expiresAt: 2025-06-09T12:00:00Z
      properties:
        name:
          description: The name of the API key
          example: My API Key
          type: string
        value:
          description: The API key value
          example: bb_sk_1234567890abcdef
          type: string
        createdAt:
          description: When the API key was created
          example: 2024-03-14T12:00:00Z
          format: date-time
          type: string
        permissions:
          description: The list of organization resource permissions assigned to the
            API key
          items:
            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
            type: string
          type: array
        expiresAt:
          description: When the API key expires
          example: 2025-06-09T12:00:00Z
          format: date-time
          nullable: true
          type: string
      required:
      - createdAt
      - expiresAt
      - name
      - permissions
      - value
      type: object
    ApiKeyList:
      example:
        createdAt: 2024-03-14T12:00:00Z
        lastUsedAt: 2024-03-14T12:00:00Z
        permissions:
        - write:registries
        - write:registries
        name: My API Key
        value: bb_********************def
        userId: "123"
        expiresAt: 2024-03-14T12:00:00Z
      properties:
        name:
          description: The name of the API key
          example: My API Key
          type: string
        value:
          description: The masked API key value
          example: bb_********************def
          type: string
        createdAt:
          description: When the API key was created
          example: 2024-03-14T12:00:00Z
          format: date-time
          type: string
        permissions:
          description: The list of organization resource permissions assigned to the
            API key
          items:
            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
            type: string
          type: array
        lastUsedAt:
          description: When the API key was last used
          example: 2024-03-14T12:00:00Z
          format: date-time
          nullable: true
          type: string
        expiresAt:
          description: When the API key expires
          example: 2024-03-14T12:00:00Z
          format: date-time
          nullable: true
          type: string
        userId:
          description: The user ID of the user who created the API key
          example: "123"
          type: string
      required:
      - createdAt
      - expiresAt
      - lastUsedAt
      - name
      - permissions
      - userId
      - value
      type: object
    OrganizationRole:
      example:
        createdAt: 2000-01-23T04:56:07.000+00:00
        permissions:
        - write:registries
        - write:registries
        name: name
        isGlobal: true
        description: description
        id: id
        updatedAt: 2000-01-23T04:56:07.000+00:00
      properties:
        id:
          description: Role ID
          type: string
        name:
          description: Role name
          type: string
        description:
          description: Role description
          type: string
        permissions:
          description: Roles assigned to the user
          items:
            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
            type: string
          type: array
        isGlobal:
          description: Global role flag
          type: boolean
        createdAt:
          description: Creation timestamp
          format: date-time
          type: string
        updatedAt:
          description: Last update timestamp
          format: date-time
          type: string
      required:
      - createdAt
      - description
      - id
      - isGlobal
      - name
      - permissions
      - updatedAt
      type: object
    OrganizationInvitation:
      example:
        organizationId: organizationId
        createdAt: 2000-01-23T04:56:07.000+00:00
        invitedBy: invitedBy
        role: owner
        organizationName: organizationName
        assignedRoles:
        - createdAt: 2000-01-23T04:56:07.000+00:00
          permissions:
          - write:registries
          - write:registries
          name: name
          isGlobal: true
          description: description
          id: id
          updatedAt: 2000-01-23T04:56:07.000+00:00
        - createdAt: 2000-01-23T04:56:07.000+00:00
          permissions:
          - write:registries
          - write:registries
          name: name
          isGlobal: true
          description: description
          id: id
          updatedAt: 2000-01-23T04:56:07.000+00:00
        id: id
        email: email
        expiresAt: 2000-01-23T04:56:07.000+00:00
        status: pending
        updatedAt: 2000-01-23T04:56:07.000+00:00
      properties:
        id:
          description: Invitation ID
          type: string
        email:
          description: Email address of the invitee
          type: string
        invitedBy:
          description: Email address of the inviter
          type: string
        organizationId:
          description: Organization ID
          type: string
        organizationName:
          description: Organization name
          type: string
        expiresAt:
          description: Expiration date of the invitation
          format: date-time
          type: string
        status:
          description: Invitation status
          enum:
          - pending
          - accepted
          - declined
          - cancelled
          type: string
        role:
          description: Member role
          enum:
          - owner
          - member
          type: string
        assignedRoles:
          description: Assigned roles
          items:
            $ref: "#/components/schemas/OrganizationRole"
          type: array
        createdAt:
          description: Creation timestamp
          format: date-time
          type: string
        updatedAt:
          description: Last update timestamp
          format: date-time
          type: string
      required:
      - assignedRoles
      - createdAt
      - email
      - expiresAt
      - id
      - invitedBy
      - organizationId
      - organizationName
      - role
      - status
      - updatedAt
      type: object
    CreateOrganization:
      example:
        defaultRegionId: us
        name: My Organization
      properties:
        name:
          description: The name of organization
          example: My Organization
          type: string
        defaultRegionId:
          description: The ID of the default region for the organization
          example: us
          type: string
      required:
      - defaultRegionId
      - name
      type: object
    Organization:
      example:
        defaultRegionId: defaultRegionId
        sandboxCreateRateLimitTtlSeconds: 2.027123023002322
        suspensionReason: suspensionReason
        sandboxLifecycleRateLimit: 9.301444243932576
        suspendedAt: 2000-01-23T04:56:07.000+00:00
        personal: true
        suspensionCleanupGracePeriodHours: 0.8008281904610115
        authenticatedRateLimit: 2.3021358869347655
        suspended: true
        sandboxCreateRateLimit: 7.061401241503109
        sandboxLifecycleRateLimitTtlSeconds: 4.145608029883936
        createdAt: 2000-01-23T04:56:07.000+00:00
        maxCpuPerSandbox: 6.027456183070403
        sandboxLimitedNetworkEgress: true
        suspendedUntil: 2000-01-23T04:56:07.000+00:00
        maxDiskPerSandbox: 5.962133916683182
        createdBy: createdBy
        snapshotDeactivationTimeoutMinutes: 5.637376656633329
        name: name
        maxMemoryPerSandbox: 1.4658129805029452
        authenticatedRateLimitTtlSeconds: 3.616076749251911
        id: id
        experimentalConfig: "{}"
        updatedAt: 2000-01-23T04:56:07.000+00:00
      properties:
        id:
          description: Organization ID
          type: string
        name:
          description: Organization name
          type: string
        createdBy:
          description: User ID of the organization creator
          type: string
        personal:
          description: Personal organization flag
          type: boolean
        createdAt:
          description: Creation timestamp
          format: date-time
          type: string
        updatedAt:
          description: Last update timestamp
          format: date-time
          type: string
        suspended:
          description: Suspended flag
          type: boolean
        suspendedAt:
          description: Suspended at
          format: date-time
          type: string
        suspensionReason:
          description: Suspended reason
          type: string
        suspendedUntil:
          description: Suspended until
          format: date-time
          type: string
        suspensionCleanupGracePeriodHours:
          description: Suspension cleanup grace period hours
          type: number
        maxCpuPerSandbox:
          description: Max CPU per sandbox
          type: number
        maxMemoryPerSandbox:
          description: Max memory per sandbox
          type: number
        maxDiskPerSandbox:
          description: Max disk per sandbox
          type: number
        snapshotDeactivationTimeoutMinutes:
          default: 20160
          description: Time in minutes before an unused snapshot is deactivated
          type: number
        sandboxLimitedNetworkEgress:
          description: Sandbox default network block all
          type: boolean
        defaultRegionId:
          description: Default region ID
          type: string
        authenticatedRateLimit:
          description: Authenticated rate limit per minute
          nullable: true
          type: number
        sandboxCreateRateLimit:
          description: Sandbox create rate limit per minute
          nullable: true
          type: number
        sandboxLifecycleRateLimit:
          description: Sandbox lifecycle rate limit per minute
          nullable: true
          type: number
        experimentalConfig:
          description: Experimental configuration
          type: object
        authenticatedRateLimitTtlSeconds:
          description: Authenticated rate limit TTL in seconds
          nullable: true
          type: number
        sandboxCreateRateLimitTtlSeconds:
          description: Sandbox create rate limit TTL in seconds
          nullable: true
          type: number
        sandboxLifecycleRateLimitTtlSeconds:
          description: Sandbox lifecycle rate limit TTL in seconds
          nullable: true
          type: number
      required:
      - authenticatedRateLimit
      - authenticatedRateLimitTtlSeconds
      - createdAt
      - createdBy
      - experimentalConfig
      - id
      - maxCpuPerSandbox
      - maxDiskPerSandbox
      - maxMemoryPerSandbox
      - name
      - personal
      - sandboxCreateRateLimit
      - sandboxCreateRateLimitTtlSeconds
      - sandboxLifecycleRateLimit
      - sandboxLifecycleRateLimitTtlSeconds
      - sandboxLimitedNetworkEgress
      - snapshotDeactivationTimeoutMinutes
      - suspended
      - suspendedAt
      - suspendedUntil
      - suspensionCleanupGracePeriodHours
      - suspensionReason
      - updatedAt
      type: object
    UpdateOrganizationDefaultRegion:
      example:
        defaultRegionId: us
      properties:
        defaultRegionId:
          description: The ID of the default region for the organization
          example: us
          type: string
      required:
      - defaultRegionId
      type: object
    RegionUsageOverview:
      example:
        totalCpuQuota: 0.8008281904610115
        maxCpuPerSandbox: 7.061401241503109
        maxDiskPerSandbox: 3.616076749251911
        maxDiskPerNonEphemeralSandbox: 2.027123023002322
        regionId: regionId
        currentDiskUsage: 2.3021358869347655
        currentMemoryUsage: 5.962133916683182
        currentCpuUsage: 6.027456183070403
        maxMemoryPerSandbox: 9.301444243932576
        totalMemoryQuota: 1.4658129805029452
        totalDiskQuota: 5.637376656633329
      properties:
        regionId:
          type: string
        totalCpuQuota:
          type: number
        currentCpuUsage:
          type: number
        totalMemoryQuota:
          type: number
        currentMemoryUsage:
          type: number
        totalDiskQuota:
          type: number
        currentDiskUsage:
          type: number
        maxCpuPerSandbox:
          nullable: true
          type: number
        maxMemoryPerSandbox:
          nullable: true
          type: number
        maxDiskPerSandbox:
          nullable: true
          type: number
        maxDiskPerNonEphemeralSandbox:
          nullable: true
          type: number
      required:
      - currentCpuUsage
      - currentDiskUsage
      - currentMemoryUsage
      - maxCpuPerSandbox
      - maxDiskPerNonEphemeralSandbox
      - maxDiskPerSandbox
      - maxMemoryPerSandbox
      - regionId
      - totalCpuQuota
      - totalDiskQuota
      - totalMemoryQuota
      type: object
    OrganizationUsageOverview:
      example:
        totalSnapshotQuota: 4.145608029883936
        currentVolumeUsage: 1.0246457001441578
        totalVolumeQuota: 1.2315135367772556
        currentSnapshotUsage: 7.386281948385884
        regionUsage:
        - totalCpuQuota: 0.8008281904610115
          maxCpuPerSandbox: 7.061401241503109
          maxDiskPerSandbox: 3.616076749251911
          maxDiskPerNonEphemeralSandbox: 2.027123023002322
          regionId: regionId
          currentDiskUsage: 2.3021358869347655
          currentMemoryUsage: 5.962133916683182
          currentCpuUsage: 6.027456183070403
          maxMemoryPerSandbox: 9.301444243932576
          totalMemoryQuota: 1.4658129805029452
          totalDiskQuota: 5.637376656633329
        - totalCpuQuota: 0.8008281904610115
          maxCpuPerSandbox: 7.061401241503109
          maxDiskPerSandbox: 3.616076749251911
          maxDiskPerNonEphemeralSandbox: 2.027123023002322
          regionId: regionId
          currentDiskUsage: 2.3021358869347655
          currentMemoryUsage: 5.962133916683182
          currentCpuUsage: 6.027456183070403
          maxMemoryPerSandbox: 9.301444243932576
          totalMemoryQuota: 1.4658129805029452
          totalDiskQuota: 5.637376656633329
      properties:
        regionUsage:
          items:
            $ref: "#/components/schemas/RegionUsageOverview"
          type: array
        totalSnapshotQuota:
          type: number
        currentSnapshotUsage:
          type: number
        totalVolumeQuota:
          type: number
        currentVolumeUsage:
          type: number
      required:
      - currentSnapshotUsage
      - currentVolumeUsage
      - regionUsage
      - totalSnapshotQuota
      - totalVolumeQuota
      type: object
    UpdateOrganizationQuota:
      example:
        sandboxCreateRateLimitTtlSeconds: 4.145608029883936
        sandboxLifecycleRateLimit: 3.616076749251911
        volumeQuota: 2.3021358869347655
        maxSnapshotSize: 5.637376656633329
        authenticatedRateLimit: 7.061401241503109
        sandboxCreateRateLimit: 9.301444243932576
        snapshotQuota: 5.962133916683182
        sandboxLifecycleRateLimitTtlSeconds: 7.386281948385884
        maxCpuPerSandbox: 0.8008281904610115
        maxDiskPerSandbox: 1.4658129805029452
        snapshotDeactivationTimeoutMinutes: 1.2315135367772556
        maxMemoryPerSandbox: 6.027456183070403
        authenticatedRateLimitTtlSeconds: 2.027123023002322
      properties:
        maxCpuPerSandbox:
          nullable: true
          type: number
        maxMemoryPerSandbox:
          nullable: true
          type: number
        maxDiskPerSandbox:
          nullable: true
          type: number
        snapshotQuota:
          nullable: true
          type: number
        maxSnapshotSize:
          nullable: true
          type: number
        volumeQuota:
          nullable: true
          type: number
        authenticatedRateLimit:
          nullable: true
          type: number
        sandboxCreateRateLimit:
          nullable: true
          type: number
        sandboxLifecycleRateLimit:
          nullable: true
          type: number
        authenticatedRateLimitTtlSeconds:
          nullable: true
          type: number
        sandboxCreateRateLimitTtlSeconds:
          nullable: true
          type: number
        sandboxLifecycleRateLimitTtlSeconds:
          nullable: true
          type: number
        snapshotDeactivationTimeoutMinutes:
          description: Time in minutes before an unused snapshot is deactivated
          nullable: true
          type: number
      required:
      - authenticatedRateLimit
      - authenticatedRateLimitTtlSeconds
      - maxCpuPerSandbox
      - maxDiskPerSandbox
      - maxMemoryPerSandbox
      - maxSnapshotSize
      - sandboxCreateRateLimit
      - sandboxCreateRateLimitTtlSeconds
      - sandboxLifecycleRateLimit
      - sandboxLifecycleRateLimitTtlSeconds
      - snapshotDeactivationTimeoutMinutes
      - snapshotQuota
      - volumeQuota
      type: object
    UpdateOrganizationRegionQuota:
      example:
        totalCpuQuota: 0.8008281904610115
        maxCpuPerSandbox: 5.962133916683182
        maxDiskPerSandbox: 2.3021358869347655
        maxDiskPerNonEphemeralSandbox: 7.061401241503109
        maxMemoryPerSandbox: 5.637376656633329
        totalMemoryQuota: 6.027456183070403
        totalDiskQuota: 1.4658129805029452
      properties:
        totalCpuQuota:
          nullable: true
          type: number
        totalMemoryQuota:
          nullable: true
          type: number
        totalDiskQuota:
          nullable: true
          type: number
        maxCpuPerSandbox:
          nullable: true
          type: number
        maxMemoryPerSandbox:
          nullable: true
          type: number
        maxDiskPerSandbox:
          nullable: true
          type: number
        maxDiskPerNonEphemeralSandbox:
          nullable: true
          type: number
      required:
      - totalCpuQuota
      - totalDiskQuota
      - totalMemoryQuota
      type: object
    OrganizationSuspension:
      example:
        reason: reason
        until: 2000-01-23T04:56:07.000+00:00
        suspensionCleanupGracePeriodHours: 0.08008281904610115
      properties:
        reason:
          description: Suspension reason
          type: string
        until:
          description: Suspension until
          format: date-time
          type: string
        suspensionCleanupGracePeriodHours:
          description: Suspension cleanup grace period hours
          minimum: 0
          type: number
      required:
      - reason
      - until
      type: object
    OtelConfig:
      example:
        headers:
          x-api-key: my-api-key
        endpoint: endpoint
      properties:
        endpoint:
          description: Endpoint
          type: string
        headers:
          additionalProperties:
            type: string
          description: Headers
          example:
            x-api-key: my-api-key
          nullable: true
          type: object
      required:
      - endpoint
      type: object
    OrganizationSandboxDefaultLimitedNetworkEgress:
      example:
        sandboxDefaultLimitedNetworkEgress: true
      properties:
        sandboxDefaultLimitedNetworkEgress:
          description: Sandbox default limited network egress
          type: boolean
      required:
      - sandboxDefaultLimitedNetworkEgress
      type: object
    CreateOrganizationRole:
      example:
        permissions:
        - write:registries
        - write:registries
        name: Maintainer
        description: Can manage all resources
      properties:
        name:
          description: The name of the role
          example: Maintainer
          type: string
        description:
          description: The description of the role
          example: Can manage all resources
          type: string
        permissions:
          description: The list of permissions assigned to the role
          items:
            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
            type: string
          type: array
      required:
      - description
      - name
      - permissions
      type: object
    UpdateOrganizationRole:
      example:
        permissions:
        - write:registries
        - write:registries
        name: Maintainer
        description: Can manage all resources
      properties:
        name:
          description: The name of the role
          example: Maintainer
          type: string
        description:
          description: The description of the role
          example: Can manage all resources
          type: string
        permissions:
          description: The list of permissions assigned to the role
          items:
            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
            type: string
          type: array
      required:
      - description
      - name
      - permissions
      type: object
    OrganizationUser:
      example:
        organizationId: organizationId
        createdAt: 2000-01-23T04:56:07.000+00:00
        role: owner
        assignedRoles:
        - createdAt: 2000-01-23T04:56:07.000+00:00
          permissions:
          - write:registries
          - write:registries
          name: name
          isGlobal: true
          description: description
          id: id
          updatedAt: 2000-01-23T04:56:07.000+00:00
        - createdAt: 2000-01-23T04:56:07.000+00:00
          permissions:
          - write:registries
          - write:registries
          name: name
          isGlobal: true
          description: description
          id: id
          updatedAt: 2000-01-23T04:56:07.000+00:00
        name: name
        userId: userId
        email: email
        updatedAt: 2000-01-23T04:56:07.000+00:00
      properties:
        userId:
          description: User ID
          type: string
        organizationId:
          description: Organization ID
          type: string
        name:
          description: User name
          type: string
        email:
          description: User email
          type: string
        role:
          description: Member role
          enum:
          - owner
          - member
          type: string
        assignedRoles:
          description: Roles assigned to the user
          items:
            $ref: "#/components/schemas/OrganizationRole"
          type: array
        createdAt:
          description: Creation timestamp
          format: date-time
          type: string
        updatedAt:
          description: Last update timestamp
          format: date-time
          type: string
      required:
      - assignedRoles
      - createdAt
      - email
      - name
      - organizationId
      - role
      - updatedAt
      - userId
      type: object
    UpdateOrganizationMemberAccess:
      example:
        role: member
        assignedRoleIds:
        - assignedRoleIds
        - assignedRoleIds
      properties:
        role:
          default: member
          description: Organization member role
          enum:
          - owner
          - member
          type: string
        assignedRoleIds:
          default:
          - 00000000-0000-0000-0000-000000000001
          description: Array of assigned role IDs
          items:
            type: string
          type: array
      required:
      - assignedRoleIds
      - role
      type: object
    CreateOrganizationInvitation:
      example:
        role: member
        assignedRoleIds:
        - assignedRoleIds
        - assignedRoleIds
        email: mail@example.com
        expiresAt: 2021-12-31T23:59:59Z
      properties:
        email:
          description: Email address of the invitee
          example: mail@example.com
          type: string
        role:
          default: member
          description: Organization member role for the invitee
          enum:
          - owner
          - member
          type: string
        assignedRoleIds:
          default:
          - 00000000-0000-0000-0000-000000000001
          description: Array of assigned role IDs for the invitee
          items:
            type: string
          type: array
        expiresAt:
          description: Expiration date of the invitation
          example: 2021-12-31T23:59:59Z
          format: date-time
          type: string
      required:
      - assignedRoleIds
      - email
      - role
      type: object
    UpdateOrganizationInvitation:
      example:
        role: owner
        assignedRoleIds:
        - assignedRoleIds
        - assignedRoleIds
        expiresAt: 2021-12-31T23:59:59Z
      properties:
        role:
          description: Organization member role
          enum:
          - owner
          - member
          type: string
        assignedRoleIds:
          description: Array of role IDs
          items:
            type: string
          type: array
        expiresAt:
          description: Expiration date of the invitation
          example: 2021-12-31T23:59:59Z
          format: date-time
          type: string
      required:
      - assignedRoleIds
      - role
      type: object
    RegionType:
      description: The type of the region
      enum:
      - shared
      - dedicated
      - custom
      type: string
    Region:
      example:
        organizationId: 123e4567-e89b-12d3-a456-426614174000
        createdAt: 2023-01-01T00:00:00.000Z
        snapshotManagerUrl: http://snapshot-manager.example.com
        regionType: shared
        proxyUrl: https://proxy.example.com
        name: us-east-1
        sshGatewayUrl: http://ssh-gateway.example.com
        id: "123456789012"
        updatedAt: 2023-01-01T00:00:00.000Z
      properties:
        id:
          description: Region ID
          example: "123456789012"
          type: string
        name:
          description: Region name
          example: us-east-1
          type: string
        organizationId:
          description: Organization ID
          example: 123e4567-e89b-12d3-a456-426614174000
          nullable: true
          type: string
        regionType:
          allOf:
          - $ref: "#/components/schemas/RegionType"
          description: The type of the region
          example: shared
        createdAt:
          description: Creation timestamp
          example: 2023-01-01T00:00:00.000Z
          type: string
        updatedAt:
          description: Last update timestamp
          example: 2023-01-01T00:00:00.000Z
          type: string
        proxyUrl:
          description: Proxy URL for the region
          example: https://proxy.example.com
          nullable: true
          type: string
        sshGatewayUrl:
          description: SSH Gateway URL for the region
          example: http://ssh-gateway.example.com
          nullable: true
          type: string
        snapshotManagerUrl:
          description: Snapshot Manager URL for the region
          example: http://snapshot-manager.example.com
          nullable: true
          type: string
      required:
      - createdAt
      - id
      - name
      - regionType
      - updatedAt
      type: object
    CreateRegion:
      example:
        snapshotManagerUrl: https://snapshot-manager.example.com
        proxyUrl: https://proxy.example.com
        name: us-east-1
        sshGatewayUrl: ssh://ssh-gateway.example.com
      properties:
        name:
          description: Region name
          example: us-east-1
          type: string
        proxyUrl:
          description: Proxy URL for the region
          example: https://proxy.example.com
          nullable: true
          type: string
        sshGatewayUrl:
          description: SSH Gateway URL for the region
          example: ssh://ssh-gateway.example.com
          nullable: true
          type: string
        snapshotManagerUrl:
          description: Snapshot Manager URL for the region
          example: https://snapshot-manager.example.com
          nullable: true
          type: string
      required:
      - name
      type: object
    CreateRegionResponse:
      example:
        proxyApiKey: proxy-api-key-xyz
        snapshotManagerUsername: daytona
        snapshotManagerPassword: snapshotManagerPassword
        id: region_12345
        sshGatewayApiKey: ssh-gateway-api-key-abc
      properties:
        id:
          description: ID of the created region
          example: region_12345
          type: string
        proxyApiKey:
          description: Proxy API key for the region
          example: proxy-api-key-xyz
          nullable: true
          type: string
        sshGatewayApiKey:
          description: SSH Gateway API key for the region
          example: ssh-gateway-api-key-abc
          nullable: true
          type: string
        snapshotManagerUsername:
          description: Snapshot Manager username for the region
          example: daytona
          nullable: true
          type: string
        snapshotManagerPassword:
          description: Snapshot Manager password for the region
          nullable: true
          type: string
      required:
      - id
      type: object
    RegenerateApiKeyResponse:
      example:
        apiKey: api-key-xyz123
      properties:
        apiKey:
          description: The newly generated API key
          example: api-key-xyz123
          type: string
      required:
      - apiKey
      type: object
    UpdateRegion:
      example:
        snapshotManagerUrl: https://snapshot-manager.example.com
        proxyUrl: https://proxy.example.com
        sshGatewayUrl: ssh://ssh-gateway.example.com
      properties:
        proxyUrl:
          description: Proxy URL for the region
          example: https://proxy.example.com
          nullable: true
          type: string
        sshGatewayUrl:
          description: SSH Gateway URL for the region
          example: ssh://ssh-gateway.example.com
          nullable: true
          type: string
        snapshotManagerUrl:
          description: Snapshot Manager URL for the region
          example: https://snapshot-manager.example.com
          nullable: true
          type: string
      type: object
    SnapshotManagerCredentials:
      example:
        password: password
        username: daytona
      properties:
        username:
          description: Snapshot Manager username for the region
          example: daytona
          type: string
        password:
          description: Snapshot Manager password for the region
          type: string
      required:
      - password
      - username
      type: object
    UserPublicKey:
      example:
        name: name
        key: key
      properties:
        key:
          description: Public key
          type: string
        name:
          description: Key name
          type: string
      required:
      - key
      - name
      type: object
    User:
      example:
        createdAt: 2000-01-23T04:56:07.000+00:00
        publicKeys:
        - name: name
          key: key
        - name: name
          key: key
        name: name
        id: id
        email: email
      properties:
        id:
          description: User ID
          type: string
        name:
          description: User name
          type: string
        email:
          description: User email
          type: string
        publicKeys:
          description: User public keys
          items:
            $ref: "#/components/schemas/UserPublicKey"
          type: array
        createdAt:
          description: Creation timestamp
          format: date-time
          type: string
      required:
      - createdAt
      - email
      - id
      - name
      - publicKeys
      type: object
    AccountProvider:
      example:
        displayName: displayName
        name: name
      properties:
        name:
          type: string
        displayName:
          type: string
      required:
      - displayName
      - name
      type: object
    CreateLinkedAccount:
      example:
        provider: provider
        userId: userId
      properties:
        provider:
          description: The authentication provider of the secondary account
          type: string
        userId:
          description: The user ID of the secondary account
          type: string
      required:
      - provider
      - userId
      type: object
    SandboxState:
      description: The state of 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
      type: string
    SandboxDesiredState:
      description: The desired state of the sandbox
      enum:
      - destroyed
      - started
      - stopped
      - resized
      - archived
      type: string
    SandboxVolume:
      example:
        mountPath: /data
        volumeId: volume123
        subpath: users/alice
      properties:
        volumeId:
          description: The ID of the volume
          example: volume123
          type: string
        mountPath:
          description: The mount path for the volume
          example: /data
          type: string
        subpath:
          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
          type: string
      required:
      - mountPath
      - volumeId
      type: object
    BuildInfo:
      properties:
        dockerfileContent:
          description: The Dockerfile content used for the build
          example: |-
            FROM node:14
            WORKDIR /app
            COPY . .
            RUN npm install
            CMD ["npm", "start"]
          type: string
        contextHashes:
          description: The context hashes used for the build
          example:
          - hash1
          - hash2
          items:
            type: string
          type: array
        createdAt:
          description: The creation timestamp
          format: date-time
          type: string
        updatedAt:
          description: The last update timestamp
          format: date-time
          type: string
        snapshotRef:
          description: The snapshot reference
          example: daytonaio/sandbox:latest
          type: string
      required:
      - createdAt
      - snapshotRef
      - updatedAt
      type: object
    Sandbox:
      example:
        memory: 4
        buildInfo: ""
        toolboxProxyUrl: https://proxy.app.daytona.io/toolbox
        lastActivityAt: 2024-10-01T12:00:00Z
        autoStopInterval: 30
        organizationId: organization123
        createdAt: 2024-10-01T12:00:00Z
        networkBlockAll: false
        autoDeleteInterval: 30
        public: false
        errorReason: The sandbox is not running
        runnerId: runner123
        id: sandbox123
        state: creating
        class: small
        updatedAt: 2024-10-01T12:00:00Z
        desiredState: destroyed
        networkAllowList: "192.168.1.0/16,10.0.0.0/24"
        volumes:
        - mountPath: /data
          volumeId: volume123
          subpath: users/alice
        - mountPath: /data
          volumeId: volume123
          subpath: users/alice
        cpu: 2
        recoverable: true
        env:
          NODE_ENV: production
        gpu: 0
        daemonVersion: 1.0.0
        backupCreatedAt: 2024-10-01T12:00:00Z
        labels:
          daytona.io/public: "true"
        target: local
        disk: 10
        name: MySandbox
        backupState: None
        user: daytona
        autoArchiveInterval: 10080
        snapshot: daytonaio/sandbox:latest
      properties:
        id:
          description: The ID of the sandbox
          example: sandbox123
          type: string
        organizationId:
          description: The organization ID of the sandbox
          example: organization123
          type: string
        name:
          description: The name of the sandbox
          example: MySandbox
          type: string
        snapshot:
          description: The snapshot used for the sandbox
          example: daytonaio/sandbox:latest
          type: string
        user:
          description: The user associated with the project
          example: daytona
          type: string
        env:
          additionalProperties:
            type: string
          description: Environment variables for the sandbox
          example:
            NODE_ENV: production
          type: object
        labels:
          additionalProperties:
            type: string
          description: Labels for the sandbox
          example:
            daytona.io/public: "true"
          type: object
        public:
          description: Whether the sandbox http preview is public
          example: false
          type: boolean
        networkBlockAll:
          description: Whether to block all network access for the sandbox
          example: false
          type: boolean
        networkAllowList:
          description: Comma-separated list of allowed CIDR network addresses for
            the sandbox
          example: "192.168.1.0/16,10.0.0.0/24"
          type: string
        target:
          description: The target environment for the sandbox
          example: local
          type: string
        cpu:
          description: The CPU quota for the sandbox
          example: 2
          type: number
        gpu:
          description: The GPU quota for the sandbox
          example: 0
          type: number
        memory:
          description: The memory quota for the sandbox
          example: 4
          type: number
        disk:
          description: The disk quota for the sandbox
          example: 10
          type: number
        state:
          allOf:
          - $ref: "#/components/schemas/SandboxState"
          description: The state of the sandbox
          example: creating
        desiredState:
          allOf:
          - $ref: "#/components/schemas/SandboxDesiredState"
          description: The desired state of the sandbox
          example: destroyed
        errorReason:
          description: The error reason of the sandbox
          example: The sandbox is not running
          type: string
        recoverable:
          description: Whether the sandbox error is recoverable.
          example: true
          type: boolean
        backupState:
          description: The state of the backup
          enum:
          - None
          - Pending
          - InProgress
          - Completed
          - Error
          example: None
          type: string
        backupCreatedAt:
          description: The creation timestamp of the last backup
          example: 2024-10-01T12:00:00Z
          type: string
        autoStopInterval:
          description: Auto-stop interval in minutes (0 means disabled)
          example: 30
          type: number
        autoArchiveInterval:
          description: Auto-archive interval in minutes
          example: 10080
          type: number
        autoDeleteInterval:
          description: "Auto-delete interval in minutes (negative value means disabled,\
            \ 0 means delete immediately upon stopping)"
          example: 30
          type: number
        volumes:
          description: Array of volumes attached to the sandbox
          items:
            $ref: "#/components/schemas/SandboxVolume"
          type: array
        buildInfo:
          allOf:
          - $ref: "#/components/schemas/BuildInfo"
          description: Build information for the sandbox
        createdAt:
          description: The creation timestamp of the sandbox
          example: 2024-10-01T12:00:00Z
          type: string
        updatedAt:
          description: The last update timestamp of the sandbox
          example: 2024-10-01T12:00:00Z
          type: string
        lastActivityAt:
          description: The last activity timestamp of the sandbox
          example: 2024-10-01T12:00:00Z
          type: string
        class:
          deprecated: true
          description: The class of the sandbox
          enum:
          - small
          - medium
          - large
          example: small
          type: string
        daemonVersion:
          description: The version of the daemon running in the sandbox
          example: 1.0.0
          type: string
        runnerId:
          description: The runner ID of the sandbox
          example: runner123
          type: string
        toolboxProxyUrl:
          description: The toolbox proxy URL for the sandbox
          example: https://proxy.app.daytona.io/toolbox
          type: string
      required:
      - cpu
      - disk
      - env
      - gpu
      - id
      - labels
      - memory
      - name
      - networkBlockAll
      - organizationId
      - public
      - target
      - toolboxProxyUrl
      - user
      type: object
    PaginatedSandboxes:
      example:
        total: 0.8008281904610115
        totalPages: 1.4658129805029452
        page: 6.027456183070403
        items:
        - memory: 4
          buildInfo: ""
          toolboxProxyUrl: https://proxy.app.daytona.io/toolbox
          lastActivityAt: 2024-10-01T12:00:00Z
          autoStopInterval: 30
          organizationId: organization123
          createdAt: 2024-10-01T12:00:00Z
          networkBlockAll: false
          autoDeleteInterval: 30
          public: false
          errorReason: The sandbox is not running
          runnerId: runner123
          id: sandbox123
          state: creating
          class: small
          updatedAt: 2024-10-01T12:00:00Z
          desiredState: destroyed
          networkAllowList: "192.168.1.0/16,10.0.0.0/24"
          volumes:
          - mountPath: /data
            volumeId: volume123
            subpath: users/alice
          - mountPath: /data
            volumeId: volume123
            subpath: users/alice
          cpu: 2
          recoverable: true
          env:
            NODE_ENV: production
          gpu: 0
          daemonVersion: 1.0.0
          backupCreatedAt: 2024-10-01T12:00:00Z
          labels:
            daytona.io/public: "true"
          target: local
          disk: 10
          name: MySandbox
          backupState: None
          user: daytona
          autoArchiveInterval: 10080
          snapshot: daytonaio/sandbox:latest
        - memory: 4
          buildInfo: ""
          toolboxProxyUrl: https://proxy.app.daytona.io/toolbox
          lastActivityAt: 2024-10-01T12:00:00Z
          autoStopInterval: 30
          organizationId: organization123
          createdAt: 2024-10-01T12:00:00Z
          networkBlockAll: false
          autoDeleteInterval: 30
          public: false
          errorReason: The sandbox is not running
          runnerId: runner123
          id: sandbox123
          state: creating
          class: small
          updatedAt: 2024-10-01T12:00:00Z
          desiredState: destroyed
          networkAllowList: "192.168.1.0/16,10.0.0.0/24"
          volumes:
          - mountPath: /data
            volumeId: volume123
            subpath: users/alice
          - mountPath: /data
            volumeId: volume123
            subpath: users/alice
          cpu: 2
          recoverable: true
          env:
            NODE_ENV: production
          gpu: 0
          daemonVersion: 1.0.0
          backupCreatedAt: 2024-10-01T12:00:00Z
          labels:
            daytona.io/public: "true"
          target: local
          disk: 10
          name: MySandbox
          backupState: None
          user: daytona
          autoArchiveInterval: 10080
          snapshot: daytonaio/sandbox:latest
      properties:
        items:
          items:
            $ref: "#/components/schemas/Sandbox"
          type: array
        total:
          type: number
        page:
          type: number
        totalPages:
          type: number
      required:
      - items
      - page
      - total
      - totalPages
      type: object
    CreateBuildInfo:
      properties:
        dockerfileContent:
          description: The Dockerfile content used for the build
          example: |-
            FROM node:14
            WORKDIR /app
            COPY . .
            RUN npm install
            CMD ["npm", "start"]
          type: string
        contextHashes:
          description: The context hashes used for the build
          example:
          - hash1
          - hash2
          items:
            type: string
          type: array
      required:
      - dockerfileContent
      type: object
    CreateSandbox:
      example:
        memory: 1
        buildInfo: ""
        networkAllowList: "192.168.1.0/16,10.0.0.0/24"
        volumes:
        - mountPath: /data
          volumeId: volume123
          subpath: users/alice
        - mountPath: /data
          volumeId: volume123
          subpath: users/alice
        cpu: 2
        env:
          NODE_ENV: production
        gpu: 1
        autoStopInterval: 30
        labels:
          daytona.io/public: "true"
        target: us
        networkBlockAll: false
        disk: 3
        autoDeleteInterval: 30
        public: false
        name: MySandbox
        user: daytona
        class: small
        autoArchiveInterval: 10080
        snapshot: ubuntu-4vcpu-8ram-100gb
      properties:
        name:
          description: "The name of the sandbox. If not provided, the sandbox ID will\
            \ be used as the name"
          example: MySandbox
          type: string
        snapshot:
          description: The ID or name of the snapshot used for the sandbox
          example: ubuntu-4vcpu-8ram-100gb
          type: string
        user:
          description: The user associated with the project
          example: daytona
          type: string
        env:
          additionalProperties:
            type: string
          description: Environment variables for the sandbox
          example:
            NODE_ENV: production
          type: object
        labels:
          additionalProperties:
            type: string
          description: Labels for the sandbox
          example:
            daytona.io/public: "true"
          type: object
        public:
          description: Whether the sandbox http preview is publicly accessible
          example: false
          type: boolean
        networkBlockAll:
          description: Whether to block all network access for the sandbox
          example: false
          type: boolean
        networkAllowList:
          description: Comma-separated list of allowed CIDR network addresses for
            the sandbox
          example: "192.168.1.0/16,10.0.0.0/24"
          type: string
        class:
          description: The sandbox class type
          enum:
          - small
          - medium
          - large
          example: small
          type: string
        target:
          description: The target (region) where the sandbox will be created
          example: us
          type: string
        cpu:
          description: CPU cores allocated to the sandbox
          example: 2
          type: integer
        gpu:
          description: GPU units allocated to the sandbox
          example: 1
          type: integer
        memory:
          description: Memory allocated to the sandbox in GB
          example: 1
          type: integer
        disk:
          description: Disk space allocated to the sandbox in GB
          example: 3
          type: integer
        autoStopInterval:
          description: Auto-stop interval in minutes (0 means disabled)
          example: 30
          type: integer
        autoArchiveInterval:
          description: Auto-archive interval in minutes (0 means the maximum interval
            will be used)
          example: 10080
          type: integer
        autoDeleteInterval:
          description: "Auto-delete interval in minutes (negative value means disabled,\
            \ 0 means delete immediately upon stopping)"
          example: 30
          type: integer
        volumes:
          description: Array of volumes to attach to the sandbox
          items:
            $ref: "#/components/schemas/SandboxVolume"
          type: array
        buildInfo:
          allOf:
          - $ref: "#/components/schemas/CreateBuildInfo"
          description: Build information for the sandbox
      type: object
    ResizeSandbox:
      example:
        disk: 20
        memory: 4
        cpu: 2
      properties:
        cpu:
          description: "CPU cores to allocate to the sandbox (minimum: 1)"
          example: 2
          minimum: 1
          type: integer
        memory:
          description: "Memory in GB to allocate to the sandbox (minimum: 1)"
          example: 4
          minimum: 1
          type: integer
        disk:
          description: Disk space in GB to allocate to the sandbox (can only be increased)
          example: 20
          minimum: 1
          type: integer
      type: object
    SandboxLabels:
      example:
        labels:
          environment: dev
          team: backend
      properties:
        labels:
          additionalProperties:
            type: string
          description: Key-value pairs of labels
          example:
            environment: dev
            team: backend
          type: object
      required:
      - labels
      type: object
    UpdateSandboxStateDto:
      example:
        errorReason: Failed to pull snapshot image
        recoverable: true
        state: started
      properties:
        state:
          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
          example: started
          type: string
        errorReason:
          description: Optional error message when reporting an error state
          example: Failed to pull snapshot image
          type: string
        recoverable:
          description: Whether the sandbox is recoverable
          example: true
          type: boolean
      required:
      - state
      type: object
    CreateSandboxSnapshot:
      example:
        name: my-dev-env-v1
      properties:
        name:
          description: Name for the new snapshot
          example: my-dev-env-v1
          type: string
      required:
      - name
      type: object
    ForkSandbox:
      example:
        name: my-forked-sandbox
      properties:
        name:
          description: "The name for the forked sandbox. If not provided, a unique\
            \ name will be generated."
          example: my-forked-sandbox
          type: string
      type: object
    UpdateSandboxNetworkSettings:
      example:
        networkBlockAll: false
        networkAllowList: "192.168.1.0/16,10.0.0.0/24"
      properties:
        networkBlockAll:
          description: Whether to block all network access for the sandbox
          example: false
          type: boolean
        networkAllowList:
          description: Comma-separated list of allowed CIDR network addresses for
            the sandbox
          example: "192.168.1.0/16,10.0.0.0/24"
          type: string
      type: object
    PortPreviewUrl:
      example:
        sandboxId: "123456"
        url: "https://{port}-{sandboxId}.{proxyDomain}"
        token: ul67qtv-jl6wb9z5o3eii-ljqt9qed6l
      properties:
        sandboxId:
          description: ID of the sandbox
          example: "123456"
          type: string
        url:
          description: Preview url
          example: "https://{port}-{sandboxId}.{proxyDomain}"
          type: string
        token:
          description: Access token
          example: ul67qtv-jl6wb9z5o3eii-ljqt9qed6l
          type: string
      required:
      - sandboxId
      - token
      - url
      type: object
    SignedPortPreviewUrl:
      example:
        port: 3000
        sandboxId: "123456"
        url: "https://{port}-{token}.{proxyDomain}"
        token: jl6wb9z5o3eii
      properties:
        sandboxId:
          description: ID of the sandbox
          example: "123456"
          type: string
        port:
          description: Port number of the signed preview URL
          example: 3000
          type: integer
        token:
          description: Token of the signed preview URL
          example: jl6wb9z5o3eii
          type: string
        url:
          description: Signed preview url
          example: "https://{port}-{token}.{proxyDomain}"
          type: string
      required:
      - port
      - sandboxId
      - token
      - url
      type: object
    Url:
      example:
        url: url
      properties:
        url:
          description: URL response
          type: string
      required:
      - url
      type: object
    SshAccessDto:
      example:
        createdAt: 2025-01-01T11:00:00Z
        sshCommand: ssh -p 2222 token@localhost
        sandboxId: 123e4567-e89b-12d3-a456-426614174000
        id: 123e4567-e89b-12d3-a456-426614174000
        expiresAt: 2025-01-01T12:00:00Z
        token: abc123def456ghi789jkl012mno345pqr678stu901vwx234yz
        updatedAt: 2025-01-01T11:00:00Z
      properties:
        id:
          description: Unique identifier for the SSH access
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
        sandboxId:
          description: ID of the sandbox this SSH access is for
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
        token:
          description: SSH access token
          example: abc123def456ghi789jkl012mno345pqr678stu901vwx234yz
          type: string
        expiresAt:
          description: When the SSH access expires
          example: 2025-01-01T12:00:00Z
          format: date-time
          type: string
        createdAt:
          description: When the SSH access was created
          example: 2025-01-01T11:00:00Z
          format: date-time
          type: string
        updatedAt:
          description: When the SSH access was last updated
          example: 2025-01-01T11:00:00Z
          format: date-time
          type: string
        sshCommand:
          description: SSH command to connect to the sandbox
          example: ssh -p 2222 token@localhost
          type: string
      required:
      - createdAt
      - expiresAt
      - id
      - sandboxId
      - sshCommand
      - token
      - updatedAt
      type: object
    SshAccessValidationDto:
      example:
        valid: true
        sandboxId: 123e4567-e89b-12d3-a456-426614174000
      properties:
        valid:
          description: Whether the SSH access token is valid
          example: true
          type: boolean
        sandboxId:
          description: ID of the sandbox this SSH access is for
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
      required:
      - sandboxId
      - valid
      type: object
    ToolboxProxyUrl:
      example:
        url: https://proxy.app.daytona.io/toolbox
      properties:
        url:
          description: The toolbox proxy URL for the sandbox
          example: https://proxy.app.daytona.io/toolbox
          type: string
      required:
      - url
      type: object
    RegionQuota:
      example:
        organizationId: organizationId
        totalCpuQuota: 0.8008281904610115
        maxCpuPerSandbox: 5.962133916683182
        maxDiskPerSandbox: 2.3021358869347655
        maxDiskPerNonEphemeralSandbox: 7.061401241503109
        regionId: regionId
        maxMemoryPerSandbox: 5.637376656633329
        totalMemoryQuota: 6.027456183070403
        totalDiskQuota: 1.4658129805029452
      properties:
        organizationId:
          type: string
        regionId:
          type: string
        totalCpuQuota:
          type: number
        totalMemoryQuota:
          type: number
        totalDiskQuota:
          type: number
        maxCpuPerSandbox:
          nullable: true
          type: number
        maxMemoryPerSandbox:
          nullable: true
          type: number
        maxDiskPerSandbox:
          nullable: true
          type: number
        maxDiskPerNonEphemeralSandbox:
          nullable: true
          type: number
      required:
      - maxCpuPerSandbox
      - maxDiskPerNonEphemeralSandbox
      - maxDiskPerSandbox
      - maxMemoryPerSandbox
      - organizationId
      - regionId
      - totalCpuQuota
      - totalDiskQuota
      - totalMemoryQuota
      type: object
    CreateRunner:
      example:
        regionId: regionId
        name: name
      properties:
        regionId:
          type: string
        name:
          type: string
      required:
      - name
      - regionId
      type: object
    CreateRunnerResponse:
      example:
        apiKey: dtn_1234567890
        id: runner123
      properties:
        id:
          description: The ID of the runner
          example: runner123
          type: string
        apiKey:
          description: The API key for the runner
          example: dtn_1234567890
          type: string
      required:
      - apiKey
      - id
      type: object
    SandboxClass:
      description: The class of the runner
      enum:
      - small
      - medium
      - large
      type: string
    RunnerState:
      description: The state of the runner
      enum:
      - initializing
      - ready
      - disabled
      - decommissioned
      - unresponsive
      type: string
    RunnerClass:
      description: The class of the runner
      enum:
      - container
      - vm
      type: string
    RunnerFull:
      example:
        currentStartedSandboxes: 5
        appVersion: v0.0.0-dev
        memory: 16
        currentMemoryUsagePercentage: 68.2
        apiKey: dtn_1234567890
        availabilityScore: 85
        currentDiskUsagePercentage: 33.8
        currentCpuUsagePercentage: 45.6
        createdAt: 2023-10-01T12:00:00Z
        apiVersion: "0"
        apiUrl: https://api.runner1.example.com
        regionType: shared
        id: runner123
        state: initializing
        unschedulable: false
        class: small
        currentAllocatedDiskGiB: 50000
        currentAllocatedMemoryGiB: 8000
        gpuType: gpuType
        currentAllocatedCpu: 4000
        updatedAt: 2023-10-01T12:00:00Z
        proxyUrl: https://proxy.runner1.example.com
        cpu: 8
        gpu: 1
        currentSnapshotCount: 12
        version: "0"
        disk: 100
        domain: runner1.example.com
        name: runner1
        runnerClass: container
        region: us
        lastChecked: 2024-10-01T12:00:00Z
      properties:
        id:
          description: The ID of the runner
          example: runner123
          type: string
        domain:
          description: The domain of the runner
          example: runner1.example.com
          type: string
        apiUrl:
          description: The API URL of the runner
          example: https://api.runner1.example.com
          type: string
        proxyUrl:
          description: The proxy URL of the runner
          example: https://proxy.runner1.example.com
          type: string
        cpu:
          description: The CPU capacity of the runner
          example: 8
          type: number
        memory:
          description: The memory capacity of the runner in GiB
          example: 16
          type: number
        disk:
          description: The disk capacity of the runner in GiB
          example: 100
          type: number
        gpu:
          description: The GPU capacity of the runner
          example: 1
          type: number
        gpuType:
          description: The type of GPU
          type: string
        class:
          allOf:
          - $ref: "#/components/schemas/SandboxClass"
          description: The class of the runner
          example: small
        currentCpuUsagePercentage:
          description: Current CPU usage percentage
          example: 45.6
          type: number
        currentMemoryUsagePercentage:
          description: Current RAM usage percentage
          example: 68.2
          type: number
        currentDiskUsagePercentage:
          description: Current disk usage percentage
          example: 33.8
          type: number
        currentAllocatedCpu:
          description: Current allocated CPU
          example: 4000
          type: number
        currentAllocatedMemoryGiB:
          description: Current allocated memory in GiB
          example: 8000
          type: number
        currentAllocatedDiskGiB:
          description: Current allocated disk in GiB
          example: 50000
          type: number
        currentSnapshotCount:
          description: Current snapshot count
          example: 12
          type: number
        currentStartedSandboxes:
          description: Current number of started sandboxes
          example: 5
          type: number
        availabilityScore:
          description: Runner availability score
          example: 85
          type: number
        region:
          description: The region of the runner
          example: us
          type: string
        name:
          description: The name of the runner
          example: runner1
          type: string
        state:
          allOf:
          - $ref: "#/components/schemas/RunnerState"
          description: The state of the runner
          example: initializing
        lastChecked:
          description: The last time the runner was checked
          example: 2024-10-01T12:00:00Z
          type: string
        unschedulable:
          description: Whether the runner is unschedulable
          example: false
          type: boolean
        createdAt:
          description: The creation timestamp of the runner
          example: 2023-10-01T12:00:00Z
          type: string
        updatedAt:
          description: The last update timestamp of the runner
          example: 2023-10-01T12:00:00Z
          type: string
        version:
          deprecated: true
          description: The version of the runner (deprecated in favor of apiVersion)
          example: "0"
          type: string
        apiVersion:
          deprecated: true
          description: The api version of the runner
          example: "0"
          type: string
        runnerClass:
          allOf:
          - $ref: "#/components/schemas/RunnerClass"
          description: The class of the runner
          example: container
        appVersion:
          deprecated: true
          description: The app version of the runner
          example: v0.0.0-dev
          type: string
        apiKey:
          description: The API key for the runner
          example: dtn_1234567890
          type: string
        regionType:
          allOf:
          - $ref: "#/components/schemas/RegionType"
          description: The region type of the runner
          example: shared
      required:
      - apiKey
      - apiVersion
      - class
      - cpu
      - createdAt
      - disk
      - id
      - memory
      - name
      - region
      - runnerClass
      - state
      - unschedulable
      - updatedAt
      - version
      type: object
    RunnerSnapshotDto:
      example:
        runnerDomain: runner.example.com
        runnerId: 123e4567-e89b-12d3-a456-426614174000
        runnerSnapshotId: 123e4567-e89b-12d3-a456-426614174000
      properties:
        runnerSnapshotId:
          description: Runner snapshot ID
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
        runnerId:
          description: Runner ID
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
        runnerDomain:
          description: Runner domain
          example: runner.example.com
          type: string
      required:
      - runnerId
      - runnerSnapshotId
      type: object
    Runner:
      example:
        currentStartedSandboxes: 5
        appVersion: v0.0.0-dev
        memory: 16
        currentMemoryUsagePercentage: 68.2
        availabilityScore: 85
        currentDiskUsagePercentage: 33.8
        currentCpuUsagePercentage: 45.6
        createdAt: 2023-10-01T12:00:00Z
        apiVersion: "0"
        apiUrl: https://api.runner1.example.com
        id: runner123
        state: initializing
        unschedulable: false
        class: small
        currentAllocatedDiskGiB: 50000
        currentAllocatedMemoryGiB: 8000
        gpuType: gpuType
        currentAllocatedCpu: 4000
        updatedAt: 2023-10-01T12:00:00Z
        proxyUrl: https://proxy.runner1.example.com
        cpu: 8
        gpu: 1
        currentSnapshotCount: 12
        version: "0"
        disk: 100
        domain: runner1.example.com
        name: runner1
        runnerClass: container
        region: us
        lastChecked: 2024-10-01T12:00:00Z
      properties:
        id:
          description: The ID of the runner
          example: runner123
          type: string
        domain:
          description: The domain of the runner
          example: runner1.example.com
          type: string
        apiUrl:
          description: The API URL of the runner
          example: https://api.runner1.example.com
          type: string
        proxyUrl:
          description: The proxy URL of the runner
          example: https://proxy.runner1.example.com
          type: string
        cpu:
          description: The CPU capacity of the runner
          example: 8
          type: number
        memory:
          description: The memory capacity of the runner in GiB
          example: 16
          type: number
        disk:
          description: The disk capacity of the runner in GiB
          example: 100
          type: number
        gpu:
          description: The GPU capacity of the runner
          example: 1
          type: number
        gpuType:
          description: The type of GPU
          type: string
        class:
          allOf:
          - $ref: "#/components/schemas/SandboxClass"
          description: The class of the runner
          example: small
        currentCpuUsagePercentage:
          description: Current CPU usage percentage
          example: 45.6
          type: number
        currentMemoryUsagePercentage:
          description: Current RAM usage percentage
          example: 68.2
          type: number
        currentDiskUsagePercentage:
          description: Current disk usage percentage
          example: 33.8
          type: number
        currentAllocatedCpu:
          description: Current allocated CPU
          example: 4000
          type: number
        currentAllocatedMemoryGiB:
          description: Current allocated memory in GiB
          example: 8000
          type: number
        currentAllocatedDiskGiB:
          description: Current allocated disk in GiB
          example: 50000
          type: number
        currentSnapshotCount:
          description: Current snapshot count
          example: 12
          type: number
        currentStartedSandboxes:
          description: Current number of started sandboxes
          example: 5
          type: number
        availabilityScore:
          description: Runner availability score
          example: 85
          type: number
        region:
          description: The region of the runner
          example: us
          type: string
        name:
          description: The name of the runner
          example: runner1
          type: string
        state:
          allOf:
          - $ref: "#/components/schemas/RunnerState"
          description: The state of the runner
          example: initializing
        lastChecked:
          description: The last time the runner was checked
          example: 2024-10-01T12:00:00Z
          type: string
        unschedulable:
          description: Whether the runner is unschedulable
          example: false
          type: boolean
        createdAt:
          description: The creation timestamp of the runner
          example: 2023-10-01T12:00:00Z
          type: string
        updatedAt:
          description: The last update timestamp of the runner
          example: 2023-10-01T12:00:00Z
          type: string
        version:
          deprecated: true
          description: The version of the runner (deprecated in favor of apiVersion)
          example: "0"
          type: string
        apiVersion:
          deprecated: true
          description: The api version of the runner
          example: "0"
          type: string
        runnerClass:
          allOf:
          - $ref: "#/components/schemas/RunnerClass"
          description: The class of the runner
          example: container
        appVersion:
          deprecated: true
          description: The app version of the runner
          example: v0.0.0-dev
          type: string
      required:
      - apiVersion
      - class
      - cpu
      - createdAt
      - disk
      - id
      - memory
      - name
      - region
      - runnerClass
      - state
      - unschedulable
      - updatedAt
      - version
      type: object
    RunnerHealthMetrics:
      properties:
        currentCpuLoadAverage:
          description: Current CPU load average
          example: 0.98
          type: number
        currentCpuUsagePercentage:
          description: Current CPU usage percentage
          example: 45.5
          type: number
        currentMemoryUsagePercentage:
          description: Current memory usage percentage
          example: 60.2
          type: number
        currentDiskUsagePercentage:
          description: Current disk usage percentage
          example: 35.8
          type: number
        currentAllocatedCpu:
          description: Currently allocated CPU cores
          example: 8
          type: number
        currentAllocatedMemoryGiB:
          description: Currently allocated memory in GiB
          example: 16
          type: number
        currentAllocatedDiskGiB:
          description: Currently allocated disk in GiB
          example: 100
          type: number
        currentSnapshotCount:
          description: Number of snapshots currently stored
          example: 5
          type: number
        currentStartedSandboxes:
          description: Number of started sandboxes
          example: 10
          type: number
        cpu:
          description: Total CPU cores on the runner
          example: 8
          type: number
        memoryGiB:
          description: Total RAM in GiB on the runner
          example: 16
          type: number
        diskGiB:
          description: Total disk space in GiB on the runner
          example: 100
          type: number
      required:
      - cpu
      - currentAllocatedCpu
      - currentAllocatedDiskGiB
      - currentAllocatedMemoryGiB
      - currentCpuLoadAverage
      - currentCpuUsagePercentage
      - currentDiskUsagePercentage
      - currentMemoryUsagePercentage
      - currentSnapshotCount
      - currentStartedSandboxes
      - diskGiB
      - memoryGiB
      type: object
    RunnerServiceHealth:
      example:
        healthy: false
        errorReason: Cannot connect to the runner
        serviceName: runner
      properties:
        serviceName:
          description: Name of the service being checked
          example: runner
          type: string
        healthy:
          description: Whether the service is healthy
          example: false
          type: boolean
        errorReason:
          description: Error reason if the service is unhealthy
          example: Cannot connect to the runner
          type: string
      required:
      - healthy
      - serviceName
      type: object
    RunnerHealthcheck:
      example:
        appVersion: v0.0.0-dev
        apiUrl: http://api.daytona.example.com:8080
        proxyUrl: http://proxy.daytona.example.com:8080
        domain: runner-123.daytona.example.com
        serviceHealth:
        - healthy: false
          errorReason: Cannot connect to the runner
          serviceName: runner
        - healthy: false
          errorReason: Cannot connect to the runner
          serviceName: runner
        metrics: ""
      properties:
        metrics:
          allOf:
          - $ref: "#/components/schemas/RunnerHealthMetrics"
          description: Runner metrics
        serviceHealth:
          description: Health status of individual services on the runner
          items:
            $ref: "#/components/schemas/RunnerServiceHealth"
          type: array
        domain:
          description: Runner domain
          example: runner-123.daytona.example.com
          type: string
        proxyUrl:
          description: Runner proxy URL
          example: http://proxy.daytona.example.com:8080
          type: string
        apiUrl:
          description: Runner API URL
          example: http://api.daytona.example.com:8080
          type: string
        appVersion:
          description: Runner app version
          example: v0.0.0-dev
          type: string
      required:
      - appVersion
      type: object
    ProjectDirResponse:
      example:
        dir: dir
      properties:
        dir:
          type: string
      type: object
    UserHomeDirResponse:
      example:
        dir: dir
      properties:
        dir:
          type: string
      type: object
    WorkDirResponse:
      example:
        dir: dir
      properties:
        dir:
          type: string
      type: object
    FileInfo:
      example:
        mode: mode
        owner: owner
        size: 0.8008281904610115
        modTime: modTime
        permissions: permissions
        name: name
        isDir: true
        group: group
      properties:
        name:
          type: string
        isDir:
          type: boolean
        size:
          type: number
        modTime:
          type: string
        mode:
          type: string
        permissions:
          type: string
        owner:
          type: string
        group:
          type: string
      required:
      - group
      - isDir
      - modTime
      - mode
      - name
      - owner
      - permissions
      - size
      type: object
    DownloadFiles:
      example:
        paths:
        - paths
        - paths
      properties:
        paths:
          description: List of remote file paths to download
          items:
            type: string
          type: array
      required:
      - paths
      type: object
    Match:
      example:
        file: file
        line: 0.8008281904610115
        content: content
      properties:
        file:
          type: string
        line:
          type: number
        content:
          type: string
      required:
      - content
      - file
      - line
      type: object
    ReplaceRequest:
      example:
        newValue: newValue
        pattern: pattern
        files:
        - files
        - files
      properties:
        files:
          items:
            type: string
          type: array
        pattern:
          type: string
        newValue:
          type: string
      required:
      - files
      - newValue
      - pattern
      type: object
    ReplaceResult:
      example:
        file: file
        success: true
        error: error
      properties:
        file:
          type: string
        success:
          type: boolean
        error:
          type: string
      type: object
    SearchFilesResponse:
      example:
        files:
        - files
        - files
      properties:
        files:
          items:
            type: string
          type: array
      required:
      - files
      type: object
    UploadFile:
      properties:
        file:
          format: binary
          type: string
        path:
          type: string
      required:
      - file
      - path
      type: object
    GitAddRequest:
      example:
        path: path
        files:
        - files
        - files
      properties:
        path:
          type: string
        files:
          description: files to add (use . for all files)
          items:
            type: string
          type: array
      required:
      - files
      - path
      type: object
    ListBranchResponse:
      example:
        branches:
        - branches
        - branches
      properties:
        branches:
          items:
            type: string
          type: array
      required:
      - branches
      type: object
    GitBranchRequest:
      example:
        path: path
        name: name
      properties:
        path:
          type: string
        name:
          type: string
      required:
      - name
      - path
      type: object
    GitDeleteBranchRequest:
      example:
        path: path
        name: name
      properties:
        path:
          type: string
        name:
          type: string
      required:
      - name
      - path
      type: object
    GitCloneRequest:
      example:
        path: path
        password: password
        branch: branch
        commit_id: commit_id
        url: url
        username: username
      properties:
        url:
          type: string
        path:
          type: string
        username:
          type: string
        password:
          type: string
        branch:
          type: string
        commit_id:
          type: string
      required:
      - path
      - url
      type: object
    GitCommitRequest:
      example:
        path: path
        author: author
        message: message
        email: email
        allow_empty: false
      properties:
        path:
          type: string
        message:
          type: string
        author:
          type: string
        email:
          type: string
        allow_empty:
          default: false
          description: Allow creating an empty commit when no changes are staged
          type: boolean
      required:
      - author
      - email
      - message
      - path
      type: object
    GitCommitResponse:
      example:
        hash: hash
      properties:
        hash:
          type: string
      required:
      - hash
      type: object
    GitCommitInfo:
      example:
        author: author
        message: message
        hash: hash
        email: email
        timestamp: timestamp
      properties:
        hash:
          type: string
        message:
          type: string
        author:
          type: string
        email:
          type: string
        timestamp:
          type: string
      required:
      - author
      - email
      - hash
      - message
      - timestamp
      type: object
    GitRepoRequest:
      example:
        path: path
        password: password
        username: username
      properties:
        path:
          type: string
        username:
          type: string
        password:
          type: string
      required:
      - path
      type: object
    GitCheckoutRequest:
      example:
        path: path
        branch: branch
      properties:
        path:
          type: string
        branch:
          type: string
      required:
      - branch
      - path
      type: object
    FileStatus:
      example:
        extra: extra
        name: name
        staging: staging
        worktree: worktree
      properties:
        name:
          type: string
        staging:
          type: string
        worktree:
          type: string
        extra:
          type: string
      required:
      - extra
      - name
      - staging
      - worktree
      type: object
    GitStatus:
      example:
        behind: 6.027456183070403
        fileStatus:
        - extra: extra
          name: name
          staging: staging
          worktree: worktree
        - extra: extra
          name: name
          staging: staging
          worktree: worktree
        ahead: 0.8008281904610115
        branchPublished: true
        currentBranch: currentBranch
      properties:
        currentBranch:
          type: string
        fileStatus:
          items:
            $ref: "#/components/schemas/FileStatus"
          type: array
        ahead:
          type: number
        behind:
          type: number
        branchPublished:
          type: boolean
      required:
      - currentBranch
      - fileStatus
      type: object
    ExecuteRequest:
      example:
        cwd: cwd
        command: command
        timeout: 0.8008281904610115
      properties:
        command:
          type: string
        cwd:
          description: Current working directory
          type: string
        timeout:
          description: "Timeout in seconds, defaults to 10 seconds"
          type: number
      required:
      - command
      type: object
    ExecuteResponse:
      example:
        result: Command output here
        exitCode: 0
      properties:
        exitCode:
          description: Exit code
          example: 0
          type: number
        result:
          description: Command output
          example: Command output here
          type: string
      required:
      - exitCode
      - result
      type: object
    Command:
      example:
        exitCode: 0
        id: cmd-123
        command: ls -la
      properties:
        id:
          description: The ID of the command
          example: cmd-123
          type: string
        command:
          description: The command that was executed
          example: ls -la
          type: string
        exitCode:
          description: The exit code of the command
          example: 0
          type: number
      required:
      - command
      - id
      type: object
    Session:
      example:
        sessionId: session-123
        commands:
        - exitCode: 0
          id: cmd-123
          command: ls -la
        - exitCode: 0
          id: cmd-123
          command: ls -la
      properties:
        sessionId:
          description: The ID of the session
          example: session-123
          type: string
        commands:
          description: The list of commands executed in this session
          items:
            $ref: "#/components/schemas/Command"
          nullable: true
          type: array
      required:
      - commands
      - sessionId
      type: object
    CreateSessionRequest:
      example:
        sessionId: session-123
      properties:
        sessionId:
          description: The ID of the session
          example: session-123
          type: string
      required:
      - sessionId
      type: object
    SessionExecuteRequest:
      example:
        async: false
        command: ls -la
        runAsync: false
      properties:
        command:
          description: The command to execute
          example: ls -la
          type: string
        runAsync:
          description: Whether to execute the command asynchronously
          example: false
          type: boolean
        async:
          deprecated: true
          description: "Deprecated: Use runAsync instead. Whether to execute the command\
            \ asynchronously"
          example: false
          type: boolean
      required:
      - command
      type: object
    SessionExecuteResponse:
      example:
        output: |-
          total 20
          drwxr-xr-x  4 user group  128 Mar 15 10:30 .
        cmdId: cmd-123
        exitCode: 0
      properties:
        cmdId:
          description: The ID of the executed command
          example: cmd-123
          type: string
        output:
          description: The output of the executed command marked with stdout and stderr
            prefixes
          example: |-
            total 20
            drwxr-xr-x  4 user group  128 Mar 15 10:30 .
          type: string
        exitCode:
          description: The exit code of the executed command
          example: 0
          type: number
      type: object
    PtySessionInfo:
      example:
        cwd: /home/user
        createdAt: 2024-01-15T10:30:45Z
        lazyStart: false
        envs:
          TERM: xterm-256color
          PS1: '\u@daytona:\w$ '
        active: true
        id: pty-session-12345
        rows: 24
        cols: 80
      properties:
        id:
          description: The unique identifier for the PTY session
          example: pty-session-12345
          type: string
        cwd:
          description: "Starting directory for the PTY session, defaults to the sandbox's\
            \ working directory"
          example: /home/user
          type: string
        envs:
          description: Environment variables for the PTY session
          example:
            TERM: xterm-256color
            PS1: '\u@daytona:\w$ '
          type: object
        cols:
          description: Number of terminal columns
          example: 80
          type: number
        rows:
          description: Number of terminal rows
          example: 24
          type: number
        createdAt:
          description: When the PTY session was created
          example: 2024-01-15T10:30:45Z
          type: string
        active:
          description: Whether the PTY session is currently active
          example: true
          type: boolean
        lazyStart:
          default: false
          description: Whether the PTY session uses lazy start (only start when first
            client connects)
          example: false
          type: boolean
      required:
      - active
      - cols
      - createdAt
      - cwd
      - envs
      - id
      - lazyStart
      - rows
      type: object
    PtyListResponse:
      example:
        sessions:
        - cwd: /home/user
          createdAt: 2024-01-15T10:30:45Z
          lazyStart: false
          envs:
            TERM: xterm-256color
            PS1: '\u@daytona:\w$ '
          active: true
          id: pty-session-12345
          rows: 24
          cols: 80
        - cwd: /home/user
          createdAt: 2024-01-15T10:30:45Z
          lazyStart: false
          envs:
            TERM: xterm-256color
            PS1: '\u@daytona:\w$ '
          active: true
          id: pty-session-12345
          rows: 24
          cols: 80
      properties:
        sessions:
          description: List of active PTY sessions
          items:
            $ref: "#/components/schemas/PtySessionInfo"
          type: array
      required:
      - sessions
      type: object
    PtyCreateRequest:
      example:
        cwd: /home/user
        lazyStart: false
        envs:
          TERM: xterm-256color
          PS1: '\u@daytona:\w$ '
        id: pty-session-12345
        rows: 24
        cols: 80
      properties:
        id:
          description: The unique identifier for the PTY session
          example: pty-session-12345
          type: string
        cwd:
          description: "Starting directory for the PTY session, defaults to the sandbox's\
            \ working directory"
          example: /home/user
          type: string
        envs:
          description: Environment variables for the PTY session
          example:
            TERM: xterm-256color
            PS1: '\u@daytona:\w$ '
          type: object
        cols:
          description: Number of terminal columns
          example: 80
          type: number
        rows:
          description: Number of terminal rows
          example: 24
          type: number
        lazyStart:
          default: false
          description: Whether to start the PTY session lazily (only start when first
            client connects)
          example: false
          type: boolean
      required:
      - id
      type: object
    PtyCreateResponse:
      example:
        sessionId: pty-session-12345
      properties:
        sessionId:
          description: The unique identifier for the created PTY session
          example: pty-session-12345
          type: string
      required:
      - sessionId
      type: object
    PtyResizeRequest:
      example:
        rows: 24
        cols: 80
      properties:
        cols:
          description: Number of terminal columns
          example: 80
          type: number
        rows:
          description: Number of terminal rows
          example: 24
          type: number
      required:
      - cols
      - rows
      type: object
    Position:
      example:
        character: 6.027456183070403
        line: 0.8008281904610115
      properties:
        line:
          type: number
        character:
          type: number
      required:
      - character
      - line
      type: object
    CompletionContext:
      example:
        triggerCharacter: triggerCharacter
        triggerKind: 1.4658129805029452
      properties:
        triggerKind:
          type: number
        triggerCharacter:
          type: string
      required:
      - triggerKind
      type: object
    LspCompletionParams:
      example:
        pathToProject: pathToProject
        languageId: languageId
        context:
          triggerCharacter: triggerCharacter
          triggerKind: 1.4658129805029452
        position:
          character: 6.027456183070403
          line: 0.8008281904610115
        uri: uri
      properties:
        languageId:
          description: Language identifier
          type: string
        pathToProject:
          description: Path to the project
          type: string
        uri:
          description: Document URI
          type: string
        position:
          $ref: "#/components/schemas/Position"
        context:
          $ref: "#/components/schemas/CompletionContext"
      required:
      - languageId
      - pathToProject
      - position
      - uri
      type: object
    CompletionItem:
      example:
        insertText: insertText
        kind: 0.8008281904610115
        sortText: sortText
        documentation: "{}"
        label: label
        detail: detail
        filterText: filterText
      properties:
        label:
          type: string
        kind:
          type: number
        detail:
          type: string
        documentation:
          type: object
        sortText:
          type: string
        filterText:
          type: string
        insertText:
          type: string
      required:
      - label
      type: object
    CompletionList:
      example:
        items:
        - insertText: insertText
          kind: 0.8008281904610115
          sortText: sortText
          documentation: "{}"
          label: label
          detail: detail
          filterText: filterText
        - insertText: insertText
          kind: 0.8008281904610115
          sortText: sortText
          documentation: "{}"
          label: label
          detail: detail
          filterText: filterText
        isIncomplete: true
      properties:
        isIncomplete:
          type: boolean
        items:
          items:
            $ref: "#/components/schemas/CompletionItem"
          type: array
      required:
      - isIncomplete
      - items
      type: object
    LspDocumentRequest:
      example:
        pathToProject: pathToProject
        languageId: languageId
        uri: uri
      properties:
        languageId:
          description: Language identifier
          type: string
        pathToProject:
          description: Path to the project
          type: string
        uri:
          description: Document URI
          type: string
      required:
      - languageId
      - pathToProject
      - uri
      type: object
    Range:
      example:
        start:
          character: 6.027456183070403
          line: 0.8008281904610115
        end:
          character: 6.027456183070403
          line: 0.8008281904610115
      properties:
        start:
          $ref: "#/components/schemas/Position"
        end:
          $ref: "#/components/schemas/Position"
      required:
      - end
      - start
      type: object
    LspLocation:
      example:
        range:
          start:
            character: 6.027456183070403
            line: 0.8008281904610115
          end:
            character: 6.027456183070403
            line: 0.8008281904610115
        uri: uri
      properties:
        range:
          $ref: "#/components/schemas/Range"
        uri:
          type: string
      required:
      - range
      - uri
      type: object
    LspSymbol:
      example:
        kind: 0.8008281904610115
        name: name
        location:
          range:
            start:
              character: 6.027456183070403
              line: 0.8008281904610115
            end:
              character: 6.027456183070403
              line: 0.8008281904610115
          uri: uri
      properties:
        kind:
          type: number
        location:
          $ref: "#/components/schemas/LspLocation"
        name:
          type: string
      required:
      - kind
      - location
      - name
      type: object
    LspServerRequest:
      example:
        pathToProject: pathToProject
        languageId: languageId
      properties:
        languageId:
          description: Language identifier
          type: string
        pathToProject:
          description: Path to the project
          type: string
      required:
      - languageId
      - pathToProject
      type: object
    ComputerUseStartResponse:
      example:
        message: Computer use processes started successfully
        status:
          xvfb:
            running: true
            priority: 100
            autoRestart: true
            pid: 12345
          xfce4:
            running: true
            priority: 200
            autoRestart: true
            pid: 12346
          x11vnc:
            running: true
            priority: 300
            autoRestart: true
            pid: 12347
          novnc:
            running: true
            priority: 400
            autoRestart: true
            pid: 12348
      properties:
        message:
          description: A message indicating the result of starting computer use processes
          example: Computer use processes started successfully
          type: string
        status:
          description: Status information about all VNC desktop processes after starting
          example:
            xvfb:
              running: true
              priority: 100
              autoRestart: true
              pid: 12345
            xfce4:
              running: true
              priority: 200
              autoRestart: true
              pid: 12346
            x11vnc:
              running: true
              priority: 300
              autoRestart: true
              pid: 12347
            novnc:
              running: true
              priority: 400
              autoRestart: true
              pid: 12348
          type: object
      required:
      - message
      - status
      type: object
    ComputerUseStopResponse:
      example:
        message: Computer use processes stopped successfully
        status:
          xvfb:
            running: false
            priority: 100
            autoRestart: true
          xfce4:
            running: false
            priority: 200
            autoRestart: true
          x11vnc:
            running: false
            priority: 300
            autoRestart: true
          novnc:
            running: false
            priority: 400
            autoRestart: true
      properties:
        message:
          description: A message indicating the result of stopping computer use processes
          example: Computer use processes stopped successfully
          type: string
        status:
          description: Status information about all VNC desktop processes after stopping
          example:
            xvfb:
              running: false
              priority: 100
              autoRestart: true
            xfce4:
              running: false
              priority: 200
              autoRestart: true
            x11vnc:
              running: false
              priority: 300
              autoRestart: true
            novnc:
              running: false
              priority: 400
              autoRestart: true
          type: object
      required:
      - message
      - status
      type: object
    ComputerUseStatusResponse:
      example:
        status: active
      properties:
        status:
          description: "Status of computer use services (active, partial, inactive,\
            \ error)"
          enum:
          - active
          - partial
          - inactive
          - error
          example: active
          type: string
      required:
      - status
      type: object
    ProcessStatusResponse:
      example:
        running: true
        processName: xfce4
      properties:
        processName:
          description: The name of the VNC process being checked
          example: xfce4
          type: string
        running:
          description: Whether the specified VNC process is currently running
          example: true
          type: boolean
      required:
      - processName
      - running
      type: object
    ProcessRestartResponse:
      example:
        processName: xfce4
        message: Process xfce4 restarted successfully
      properties:
        message:
          description: A message indicating the result of restarting the process
          example: Process xfce4 restarted successfully
          type: string
        processName:
          description: The name of the VNC process that was restarted
          example: xfce4
          type: string
      required:
      - message
      - processName
      type: object
    ProcessLogsResponse:
      example:
        processName: novnc
        logs: "2024-01-15 10:30:45 [INFO] NoVNC server started on port 6080"
      properties:
        processName:
          description: The name of the VNC process whose logs were retrieved
          example: novnc
          type: string
        logs:
          description: The log output from the specified VNC process
          example: "2024-01-15 10:30:45 [INFO] NoVNC server started on port 6080"
          type: string
      required:
      - logs
      - processName
      type: object
    ProcessErrorsResponse:
      example:
        processName: x11vnc
        errors: "2024-01-15 10:30:45 [ERROR] Failed to bind to port 5901"
      properties:
        processName:
          description: The name of the VNC process whose error logs were retrieved
          example: x11vnc
          type: string
        errors:
          description: The error log output from the specified VNC process
          example: "2024-01-15 10:30:45 [ERROR] Failed to bind to port 5901"
          type: string
      required:
      - errors
      - processName
      type: object
    MousePosition:
      example:
        x: 100
        "y": 200
      properties:
        x:
          description: The X coordinate of the mouse cursor position
          example: 100
          type: number
        "y":
          description: The Y coordinate of the mouse cursor position
          example: 200
          type: number
      required:
      - x
      - "y"
      type: object
    MouseMoveRequest:
      example:
        x: 150
        "y": 250
      properties:
        x:
          description: The target X coordinate to move the mouse cursor to
          example: 150
          type: number
        "y":
          description: The target Y coordinate to move the mouse cursor to
          example: 250
          type: number
      required:
      - x
      - "y"
      type: object
    MouseMoveResponse:
      example:
        x: 150
        "y": 250
      properties:
        x:
          description: The actual X coordinate where the mouse cursor ended up
          example: 150
          type: number
        "y":
          description: The actual Y coordinate where the mouse cursor ended up
          example: 250
          type: number
      required:
      - x
      - "y"
      type: object
    MouseClickRequest:
      example:
        button: left
        double: false
        x: 100
        "y": 200
      properties:
        x:
          description: The X coordinate where to perform the mouse click
          example: 100
          type: number
        "y":
          description: The Y coordinate where to perform the mouse click
          example: 200
          type: number
        button:
          description: "The mouse button to click (left, right, middle). Defaults\
            \ to left"
          example: left
          type: string
        double:
          description: Whether to perform a double-click instead of a single click
          example: false
          type: boolean
      required:
      - x
      - "y"
      type: object
    MouseClickResponse:
      example:
        x: 100
        "y": 200
      properties:
        x:
          description: The actual X coordinate where the click occurred
          example: 100
          type: number
        "y":
          description: The actual Y coordinate where the click occurred
          example: 200
          type: number
      required:
      - x
      - "y"
      type: object
    MouseDragRequest:
      example:
        button: left
        endY: 400
        endX: 300
        startY: 200
        startX: 100
      properties:
        startX:
          description: The starting X coordinate for the drag operation
          example: 100
          type: number
        startY:
          description: The starting Y coordinate for the drag operation
          example: 200
          type: number
        endX:
          description: The ending X coordinate for the drag operation
          example: 300
          type: number
        endY:
          description: The ending Y coordinate for the drag operation
          example: 400
          type: number
        button:
          description: "The mouse button to use for dragging (left, right, middle).\
            \ Defaults to left"
          example: left
          type: string
      required:
      - endX
      - endY
      - startX
      - startY
      type: object
    MouseDragResponse:
      example:
        x: 300
        "y": 400
      properties:
        x:
          description: The actual X coordinate where the drag ended
          example: 300
          type: number
        "y":
          description: The actual Y coordinate where the drag ended
          example: 400
          type: number
      required:
      - x
      - "y"
      type: object
    MouseScrollRequest:
      example:
        amount: 3
        x: 100
        "y": 200
        direction: down
      properties:
        x:
          description: The X coordinate where to perform the scroll operation
          example: 100
          type: number
        "y":
          description: The Y coordinate where to perform the scroll operation
          example: 200
          type: number
        direction:
          description: "The scroll direction (up, down)"
          example: down
          type: string
        amount:
          description: The number of scroll units to scroll. Defaults to 1
          example: 3
          type: number
      required:
      - direction
      - x
      - "y"
      type: object
    MouseScrollResponse:
      example:
        success: true
      properties:
        success:
          description: Whether the mouse scroll operation was successful
          example: true
          type: boolean
      required:
      - success
      type: object
    KeyboardTypeRequest:
      example:
        delay: 100
        text: "Hello, World!"
      properties:
        text:
          description: The text to type using the keyboard
          example: "Hello, World!"
          type: string
        delay:
          description: Delay in milliseconds between keystrokes. Defaults to 0
          example: 100
          type: number
      required:
      - text
      type: object
    KeyboardPressRequest:
      example:
        modifiers:
        - ctrl
        - shift
        key: enter
      properties:
        key:
          description: "The key to press (e.g., a, b, c, enter, space, etc.)"
          example: enter
          type: string
        modifiers:
          description: "Array of modifier keys to press along with the main key (ctrl,\
            \ alt, shift, cmd)"
          example:
          - ctrl
          - shift
          items:
            type: string
          type: array
      required:
      - key
      type: object
    KeyboardHotkeyRequest:
      example:
        keys: ctrl+c
      properties:
        keys:
          description: "The hotkey combination to press (e.g., \"ctrl+c\", \"cmd+v\"\
            , \"alt+tab\")"
          example: ctrl+c
          type: string
      required:
      - keys
      type: object
    ScreenshotResponse:
      example:
        cursorPosition:
          x: 500
          "y": 300
        screenshot: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==
        sizeBytes: 24576
      properties:
        screenshot:
          description: Base64 encoded screenshot image data
          example: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==
          type: string
        cursorPosition:
          description: The current cursor position when the screenshot was taken
          example:
            x: 500
            "y": 300
          type: object
        sizeBytes:
          description: The size of the screenshot data in bytes
          example: 24576
          type: number
      required:
      - screenshot
      type: object
    RegionScreenshotResponse:
      example:
        cursorPosition:
          x: 500
          "y": 300
        screenshot: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==
        sizeBytes: 24576
      properties:
        screenshot:
          description: Base64 encoded screenshot image data of the specified region
          example: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==
          type: string
        cursorPosition:
          description: The current cursor position when the region screenshot was
            taken
          example:
            x: 500
            "y": 300
          type: object
        sizeBytes:
          description: The size of the screenshot data in bytes
          example: 24576
          type: number
      required:
      - screenshot
      type: object
    CompressedScreenshotResponse:
      example:
        cursorPosition:
          x: 250
          "y": 150
        screenshot: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==
        sizeBytes: 12288
      properties:
        screenshot:
          description: Base64 encoded compressed screenshot image data
          example: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==
          type: string
        cursorPosition:
          description: The current cursor position when the compressed screenshot
            was taken
          example:
            x: 250
            "y": 150
          type: object
        sizeBytes:
          description: The size of the compressed screenshot data in bytes
          example: 12288
          type: number
      required:
      - screenshot
      type: object
    DisplayInfoResponse:
      example:
        displays:
        - id: 0
          x: 0
          "y": 0
          width: 1920
          height: 1080
          is_active: true
      properties:
        displays:
          description: Array of display information for all connected displays
          example:
          - id: 0
            x: 0
            "y": 0
            width: 1920
            height: 1080
            is_active: true
          items:
            type: object
          type: array
      required:
      - displays
      type: object
    WindowsResponse:
      example:
        count: 5
        windows:
        - id: 12345
          title: Terminal
      properties:
        windows:
          description: Array of window information for all visible windows
          example:
          - id: 12345
            title: Terminal
          items:
            type: object
          type: array
        count:
          description: The total number of windows found
          example: 5
          type: number
      required:
      - count
      - windows
      type: object
    CreateSnapshot:
      example:
        disk: 3
        imageName: ubuntu:22.04
        memory: 1
        buildInfo: ""
        regionId: regionId
        entrypoint: sleep infinity
        name: ubuntu-4vcpu-8ram-100gb
        cpu: 1
        gpu: 0
      properties:
        name:
          description: The name of the snapshot
          example: ubuntu-4vcpu-8ram-100gb
          type: string
        imageName:
          description: The image name of the snapshot
          example: ubuntu:22.04
          type: string
        entrypoint:
          description: The entrypoint command for the snapshot
          example: sleep infinity
          items:
            type: string
          type: array
        cpu:
          description: CPU cores allocated to the resulting sandbox
          example: 1
          type: integer
        gpu:
          description: GPU units allocated to the resulting sandbox
          example: 0
          type: integer
        memory:
          description: Memory allocated to the resulting sandbox in GB
          example: 1
          type: integer
        disk:
          description: Disk space allocated to the sandbox in GB
          example: 3
          type: integer
        buildInfo:
          allOf:
          - $ref: "#/components/schemas/CreateBuildInfo"
          description: Build information for the snapshot
        regionId:
          description: ID of the region where the snapshot will be available. Defaults
            to organization default region if not specified.
          type: string
      required:
      - name
      type: object
    SnapshotState:
      enum:
      - building
      - pending
      - pulling
      - active
      - inactive
      - error
      - build_failed
      - removing
      type: string
    SnapshotDto:
      example:
        imageName: imageName
        buildInfo: ""
        cpu: 6.027456183070403
        regionIds:
        - regionIds
        - regionIds
        gpu: 1.4658129805029452
        organizationId: organizationId
        general: true
        createdAt: 2000-01-23T04:56:07.000+00:00
        disk: 5.637376656633329
        ref: daytonaio/sandbox:latest
        size: 0.8008281904610115
        mem: 5.962133916683182
        lastUsedAt: 2000-01-23T04:56:07.000+00:00
        entrypoint:
        - entrypoint
        - entrypoint
        errorReason: errorReason
        name: name
        id: id
        state: ""
        initialRunnerId: runner123
        updatedAt: 2000-01-23T04:56:07.000+00:00
      properties:
        id:
          type: string
        organizationId:
          type: string
        general:
          type: boolean
        name:
          type: string
        imageName:
          type: string
        state:
          allOf:
          - $ref: "#/components/schemas/SnapshotState"
        size:
          nullable: true
          type: number
        entrypoint:
          items:
            type: string
          nullable: true
          type: array
        cpu:
          type: number
        gpu:
          type: number
        mem:
          type: number
        disk:
          type: number
        errorReason:
          nullable: true
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        lastUsedAt:
          format: date-time
          nullable: true
          type: string
        buildInfo:
          allOf:
          - $ref: "#/components/schemas/BuildInfo"
          description: Build information for the snapshot
        regionIds:
          description: IDs of regions where the snapshot is available
          items:
            type: string
          type: array
        initialRunnerId:
          description: The initial runner ID of the snapshot
          example: runner123
          type: string
        ref:
          description: The snapshot reference
          example: daytonaio/sandbox:latest
          type: string
      required:
      - cpu
      - createdAt
      - disk
      - entrypoint
      - errorReason
      - general
      - gpu
      - id
      - lastUsedAt
      - mem
      - name
      - size
      - state
      - updatedAt
      type: object
    PaginatedSnapshots:
      example:
        total: 2.3021358869347655
        totalPages: 9.301444243932576
        page: 7.061401241503109
        items:
        - imageName: imageName
          buildInfo: ""
          cpu: 6.027456183070403
          regionIds:
          - regionIds
          - regionIds
          gpu: 1.4658129805029452
          organizationId: organizationId
          general: true
          createdAt: 2000-01-23T04:56:07.000+00:00
          disk: 5.637376656633329
          ref: daytonaio/sandbox:latest
          size: 0.8008281904610115
          mem: 5.962133916683182
          lastUsedAt: 2000-01-23T04:56:07.000+00:00
          entrypoint:
          - entrypoint
          - entrypoint
          errorReason: errorReason
          name: name
          id: id
          state: ""
          initialRunnerId: runner123
          updatedAt: 2000-01-23T04:56:07.000+00:00
        - imageName: imageName
          buildInfo: ""
          cpu: 6.027456183070403
          regionIds:
          - regionIds
          - regionIds
          gpu: 1.4658129805029452
          organizationId: organizationId
          general: true
          createdAt: 2000-01-23T04:56:07.000+00:00
          disk: 5.637376656633329
          ref: daytonaio/sandbox:latest
          size: 0.8008281904610115
          mem: 5.962133916683182
          lastUsedAt: 2000-01-23T04:56:07.000+00:00
          entrypoint:
          - entrypoint
          - entrypoint
          errorReason: errorReason
          name: name
          id: id
          state: ""
          initialRunnerId: runner123
          updatedAt: 2000-01-23T04:56:07.000+00:00
      properties:
        items:
          items:
            $ref: "#/components/schemas/SnapshotDto"
          type: array
        total:
          type: number
        page:
          type: number
        totalPages:
          type: number
      required:
      - items
      - page
      - total
      - totalPages
      type: object
    SandboxInfo:
      properties:
        created:
          description: The creation timestamp of the project
          example: 2023-10-01T12:00:00Z
          type: string
        name:
          default: ""
          deprecated: true
          description: "Deprecated: The name of the sandbox"
          example: MySandbox
          type: string
        providerMetadata:
          description: Additional metadata provided by the provider
          example: "{\"key\": \"value\"}"
          type: string
      required:
      - created
      - name
      type: object
    Workspace:
      example:
        memory: 4
        buildInfo: ""
        toolboxProxyUrl: https://proxy.app.daytona.io/toolbox
        lastActivityAt: 2024-10-01T12:00:00Z
        autoStopInterval: 30
        organizationId: organization123
        createdAt: 2024-10-01T12:00:00Z
        networkBlockAll: false
        autoDeleteInterval: 30
        snapshotState: None
        public: false
        errorReason: The sandbox is not running
        runnerId: runner123
        id: sandbox123
        state: creating
        class: small
        updatedAt: 2024-10-01T12:00:00Z
        info: ""
        desiredState: destroyed
        image: daytonaio/workspace:latest
        networkAllowList: "192.168.1.0/16,10.0.0.0/24"
        volumes:
        - mountPath: /data
          volumeId: volume123
          subpath: users/alice
        - mountPath: /data
          volumeId: volume123
          subpath: users/alice
        cpu: 2
        recoverable: true
        env:
          NODE_ENV: production
        snapshotCreatedAt: 2024-10-01T12:00:00Z
        gpu: 0
        daemonVersion: 1.0.0
        backupCreatedAt: 2024-10-01T12:00:00Z
        labels:
          daytona.io/public: "true"
        target: local
        disk: 10
        name: MySandbox
        backupState: None
        user: daytona
        autoArchiveInterval: 10080
        snapshot: daytonaio/sandbox:latest
      properties:
        id:
          description: The ID of the sandbox
          example: sandbox123
          type: string
        organizationId:
          description: The organization ID of the sandbox
          example: organization123
          type: string
        name:
          description: The name of the sandbox
          example: MySandbox
          type: string
        snapshot:
          description: The snapshot used for the sandbox
          example: daytonaio/sandbox:latest
          type: string
        user:
          description: The user associated with the project
          example: daytona
          type: string
        env:
          additionalProperties:
            type: string
          description: Environment variables for the sandbox
          example:
            NODE_ENV: production
          type: object
        labels:
          additionalProperties:
            type: string
          description: Labels for the sandbox
          example:
            daytona.io/public: "true"
          type: object
        public:
          description: Whether the sandbox http preview is public
          example: false
          type: boolean
        networkBlockAll:
          description: Whether to block all network access for the sandbox
          example: false
          type: boolean
        networkAllowList:
          description: Comma-separated list of allowed CIDR network addresses for
            the sandbox
          example: "192.168.1.0/16,10.0.0.0/24"
          type: string
        target:
          description: The target environment for the sandbox
          example: local
          type: string
        cpu:
          description: The CPU quota for the sandbox
          example: 2
          type: number
        gpu:
          description: The GPU quota for the sandbox
          example: 0
          type: number
        memory:
          description: The memory quota for the sandbox
          example: 4
          type: number
        disk:
          description: The disk quota for the sandbox
          example: 10
          type: number
        state:
          allOf:
          - $ref: "#/components/schemas/SandboxState"
          description: The state of the sandbox
          example: creating
        desiredState:
          allOf:
          - $ref: "#/components/schemas/SandboxDesiredState"
          description: The desired state of the sandbox
          example: destroyed
        errorReason:
          description: The error reason of the sandbox
          example: The sandbox is not running
          type: string
        recoverable:
          description: Whether the sandbox error is recoverable.
          example: true
          type: boolean
        backupState:
          description: The state of the backup
          enum:
          - None
          - Pending
          - InProgress
          - Completed
          - Error
          example: None
          type: string
        backupCreatedAt:
          description: The creation timestamp of the last backup
          example: 2024-10-01T12:00:00Z
          type: string
        autoStopInterval:
          description: Auto-stop interval in minutes (0 means disabled)
          example: 30
          type: number
        autoArchiveInterval:
          description: Auto-archive interval in minutes
          example: 10080
          type: number
        autoDeleteInterval:
          description: "Auto-delete interval in minutes (negative value means disabled,\
            \ 0 means delete immediately upon stopping)"
          example: 30
          type: number
        volumes:
          description: Array of volumes attached to the sandbox
          items:
            $ref: "#/components/schemas/SandboxVolume"
          type: array
        buildInfo:
          allOf:
          - $ref: "#/components/schemas/BuildInfo"
          description: Build information for the sandbox
        createdAt:
          description: The creation timestamp of the sandbox
          example: 2024-10-01T12:00:00Z
          type: string
        updatedAt:
          description: The last update timestamp of the sandbox
          example: 2024-10-01T12:00:00Z
          type: string
        lastActivityAt:
          description: The last activity timestamp of the sandbox
          example: 2024-10-01T12:00:00Z
          type: string
        class:
          deprecated: true
          description: The class of the sandbox
          enum:
          - small
          - medium
          - large
          example: small
          type: string
        daemonVersion:
          description: The version of the daemon running in the sandbox
          example: 1.0.0
          type: string
        runnerId:
          description: The runner ID of the sandbox
          example: runner123
          type: string
        toolboxProxyUrl:
          description: The toolbox proxy URL for the sandbox
          example: https://proxy.app.daytona.io/toolbox
          type: string
        image:
          description: The image used for the workspace
          example: daytonaio/workspace:latest
          type: string
        snapshotState:
          description: The state of the snapshot
          enum:
          - None
          - Pending
          - InProgress
          - Completed
          - Error
          example: None
          type: string
        snapshotCreatedAt:
          description: The creation timestamp of the last snapshot
          example: 2024-10-01T12:00:00Z
          type: string
        info:
          allOf:
          - $ref: "#/components/schemas/SandboxInfo"
          description: Additional information about the sandbox
      required:
      - cpu
      - disk
      - env
      - gpu
      - id
      - labels
      - memory
      - name
      - networkBlockAll
      - organizationId
      - public
      - target
      - toolboxProxyUrl
      - user
      type: object
    CreateWorkspace:
      example:
        image: daytonaio/workspace:latest
        memory: 1
        buildInfo: ""
        volumes:
        - mountPath: /data
          volumeId: volume123
          subpath: users/alice
        - mountPath: /data
          volumeId: volume123
          subpath: users/alice
        cpu: 2
        env:
          NODE_ENV: production
        gpu: 1
        autoStopInterval: 30
        labels:
          daytona.io/public: "true"
        target: eu
        disk: 3
        public: false
        user: daytona
        class: small
        autoArchiveInterval: 10080
      properties:
        image:
          description: The image used for the workspace
          example: daytonaio/workspace:latest
          type: string
        user:
          description: The user associated with the project
          example: daytona
          type: string
        env:
          additionalProperties:
            type: string
          description: Environment variables for the workspace
          example:
            NODE_ENV: production
          type: object
        labels:
          additionalProperties:
            type: string
          description: Labels for the workspace
          example:
            daytona.io/public: "true"
          type: object
        public:
          description: Whether the workspace http preview is publicly accessible
          example: false
          type: boolean
        class:
          description: The workspace class type
          enum:
          - small
          - medium
          - large
          example: small
          type: string
        target:
          description: The target (region) where the workspace will be created
          enum:
          - eu
          - us
          - asia
          example: eu
          type: string
        cpu:
          description: CPU cores allocated to the workspace
          example: 2
          type: integer
        gpu:
          description: GPU units allocated to the workspace
          example: 1
          type: integer
        memory:
          description: Memory allocated to the workspace in GB
          example: 1
          type: integer
        disk:
          description: Disk space allocated to the workspace in GB
          example: 3
          type: integer
        autoStopInterval:
          description: Auto-stop interval in minutes (0 means disabled)
          example: 30
          type: integer
        autoArchiveInterval:
          description: Auto-archive interval in minutes (0 means the maximum interval
            will be used)
          example: 10080
          type: integer
        volumes:
          description: Array of volumes to attach to the workspace
          items:
            $ref: "#/components/schemas/SandboxVolume"
          type: array
        buildInfo:
          allOf:
          - $ref: "#/components/schemas/CreateBuildInfo"
          description: Build information for the workspace
      type: object
    WorkspacePortPreviewUrl:
      example:
        url: https://123456-mysandbox.runner.com
        token: ul67qtv-jl6wb9z5o3eii-ljqt9qed6l
      properties:
        url:
          description: Preview url
          example: https://123456-mysandbox.runner.com
          type: string
        token:
          description: Access token
          example: ul67qtv-jl6wb9z5o3eii-ljqt9qed6l
          type: string
      required:
      - token
      - url
      type: object
    VolumeState:
      description: Volume state
      enum:
      - creating
      - ready
      - pending_create
      - pending_delete
      - deleting
      - deleted
      - error
      type: string
    VolumeDto:
      example:
        organizationId: 123e4567-e89b-12d3-a456-426614174000
        createdAt: 2023-01-01T00:00:00.000Z
        lastUsedAt: 2023-01-01T00:00:00.000Z
        errorReason: Error processing volume
        name: my-volume
        id: vol-12345678
        state: ready
        updatedAt: 2023-01-01T00:00:00.000Z
      properties:
        id:
          description: Volume ID
          example: vol-12345678
          type: string
        name:
          description: Volume name
          example: my-volume
          type: string
        organizationId:
          description: Organization ID
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
        state:
          allOf:
          - $ref: "#/components/schemas/VolumeState"
          description: Volume state
          example: ready
        createdAt:
          description: Creation timestamp
          example: 2023-01-01T00:00:00.000Z
          type: string
        updatedAt:
          description: Last update timestamp
          example: 2023-01-01T00:00:00.000Z
          type: string
        lastUsedAt:
          description: Last used timestamp
          example: 2023-01-01T00:00:00.000Z
          nullable: true
          type: string
        errorReason:
          description: The error reason of the volume
          example: Error processing volume
          nullable: true
          type: string
      required:
      - createdAt
      - errorReason
      - id
      - name
      - organizationId
      - state
      - updatedAt
      type: object
    CreateVolume:
      example:
        name: name
      properties:
        name:
          type: string
      required:
      - name
      type: object
    JobStatus:
      enum:
      - PENDING
      - IN_PROGRESS
      - COMPLETED
      - FAILED
      type: string
    JobType:
      description: The type of the job
      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
      - SNAPSHOT_SANDBOX
      - FORK_SANDBOX
      type: string
    Job:
      example:
        createdAt: 2024-10-01T12:00:00Z
        resourceId: sandbox123
        payload: payload
        errorMessage: Failed to create sandbox
        id: job123
        type: CREATE_SANDBOX
        traceContext:
          traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
        status: PENDING
        resourceType: SANDBOX
        updatedAt: 2024-10-01T12:00:00Z
      properties:
        id:
          description: The ID of the job
          example: job123
          type: string
        type:
          allOf:
          - $ref: "#/components/schemas/JobType"
          description: The type of the job
          example: CREATE_SANDBOX
        status:
          allOf:
          - $ref: "#/components/schemas/JobStatus"
          description: The status of the job
          example: PENDING
        resourceType:
          description: The type of resource this job operates on
          enum:
          - SANDBOX
          - SNAPSHOT
          - BACKUP
          example: SANDBOX
          type: string
        resourceId:
          description: "The ID of the resource this job operates on (sandboxId, snapshotRef,\
            \ etc.)"
          example: sandbox123
          type: string
        payload:
          description: Job-specific JSON-encoded payload data (operational metadata)
          type: string
        traceContext:
          additionalProperties: true
          description: OpenTelemetry trace context for distributed tracing (W3C Trace
            Context format)
          example:
            traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
          type: object
        errorMessage:
          description: Error message if the job failed
          example: Failed to create sandbox
          type: string
        createdAt:
          description: The creation timestamp of the job
          example: 2024-10-01T12:00:00Z
          type: string
        updatedAt:
          description: The last update timestamp of the job
          example: 2024-10-01T12:00:00Z
          type: string
      required:
      - createdAt
      - id
      - resourceId
      - resourceType
      - status
      - type
      type: object
    PaginatedJobs:
      example:
        total: 0.8008281904610115
        totalPages: 1.4658129805029452
        page: 6.027456183070403
        items:
        - createdAt: 2024-10-01T12:00:00Z
          resourceId: sandbox123
          payload: payload
          errorMessage: Failed to create sandbox
          id: job123
          type: CREATE_SANDBOX
          traceContext:
            traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
          status: PENDING
          resourceType: SANDBOX
          updatedAt: 2024-10-01T12:00:00Z
        - createdAt: 2024-10-01T12:00:00Z
          resourceId: sandbox123
          payload: payload
          errorMessage: Failed to create sandbox
          id: job123
          type: CREATE_SANDBOX
          traceContext:
            traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
          status: PENDING
          resourceType: SANDBOX
          updatedAt: 2024-10-01T12:00:00Z
      properties:
        items:
          items:
            $ref: "#/components/schemas/Job"
          type: array
        total:
          type: number
        page:
          type: number
        totalPages:
          type: number
      required:
      - items
      - page
      - total
      - totalPages
      type: object
    PollJobsResponse:
      example:
        jobs:
        - createdAt: 2024-10-01T12:00:00Z
          resourceId: sandbox123
          payload: payload
          errorMessage: Failed to create sandbox
          id: job123
          type: CREATE_SANDBOX
          traceContext:
            traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
          status: PENDING
          resourceType: SANDBOX
          updatedAt: 2024-10-01T12:00:00Z
        - createdAt: 2024-10-01T12:00:00Z
          resourceId: sandbox123
          payload: payload
          errorMessage: Failed to create sandbox
          id: job123
          type: CREATE_SANDBOX
          traceContext:
            traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
          status: PENDING
          resourceType: SANDBOX
          updatedAt: 2024-10-01T12:00:00Z
      properties:
        jobs:
          description: List of jobs
          items:
            $ref: "#/components/schemas/Job"
          type: array
      required:
      - jobs
      type: object
    UpdateJobStatus:
      example:
        resultMetadata: resultMetadata
        errorMessage: Failed to create sandbox
        status: IN_PROGRESS
      properties:
        status:
          allOf:
          - $ref: "#/components/schemas/JobStatus"
          description: The new status of the job
          example: IN_PROGRESS
        errorMessage:
          description: Error message if the job failed
          example: Failed to create sandbox
          type: string
        resultMetadata:
          description: Result metadata for the job
          type: string
      required:
      - status
      type: object
    CreateDockerRegistry:
      example:
        password: password
        name: name
        project: project
        url: url
        username: username
      properties:
        name:
          description: Registry name
          type: string
        url:
          description: Registry URL
          type: string
        username:
          description: Registry username
          type: string
        password:
          description: Registry password
          type: string
        project:
          description: Registry project
          type: string
      required:
      - name
      - password
      - url
      - username
      type: object
    DockerRegistry:
      example:
        registryType: internal
        createdAt: 2024-01-31T12:00:00Z
        name: My Docker Hub
        project: my-project
        id: 123e4567-e89b-12d3-a456-426614174000
        url: https://registry.hub.docker.com
        username: username
        updatedAt: 2024-01-31T12:00:00Z
      properties:
        id:
          description: Registry ID
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
        name:
          description: Registry name
          example: My Docker Hub
          type: string
        url:
          description: Registry URL
          example: https://registry.hub.docker.com
          type: string
        username:
          description: Registry username
          example: username
          type: string
        project:
          description: Registry project
          example: my-project
          type: string
        registryType:
          description: Registry type
          enum:
          - internal
          - organization
          - transient
          - backup
          example: internal
          type: string
        createdAt:
          description: Creation timestamp
          example: 2024-01-31T12:00:00Z
          format: date-time
          type: string
        updatedAt:
          description: Last update timestamp
          example: 2024-01-31T12:00:00Z
          format: date-time
          type: string
      required:
      - createdAt
      - id
      - name
      - project
      - registryType
      - updatedAt
      - url
      - username
      type: object
    RegistryPushAccessDto:
      example:
        registryUrl: registry.example.com
        registryId: 123e4567-e89b-12d3-a456-426614174000
        project: library
        secret: eyJhbGciOiJIUzI1NiIs...
        expiresAt: 2023-12-31T23:59:59Z
        username: temp-user-123
      properties:
        username:
          description: Temporary username for registry authentication
          example: temp-user-123
          type: string
        secret:
          description: Temporary secret for registry authentication
          example: eyJhbGciOiJIUzI1NiIs...
          type: string
        registryUrl:
          description: Registry URL
          example: registry.example.com
          type: string
        registryId:
          description: Registry ID
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
        project:
          description: Registry project ID
          example: library
          type: string
        expiresAt:
          description: Token expiration time in ISO format
          example: 2023-12-31T23:59:59Z
          type: string
      required:
      - expiresAt
      - project
      - registryId
      - registryUrl
      - secret
      - username
      type: object
    UpdateDockerRegistry:
      example:
        password: password
        name: name
        project: project
        url: url
        username: username
      properties:
        name:
          description: Registry name
          type: string
        url:
          description: Registry URL
          type: string
        username:
          description: Registry username
          type: string
        password:
          description: Registry password
          type: string
        project:
          description: Registry project
          type: string
      required:
      - name
      - url
      - username
      type: object
    AdminCreateRunner:
      example:
        diskGiB: 100
        apiVersion: "2"
        apiKey: apiKey
        apiUrl: https://api.runner1.example.com
        regionId: regionId
        proxyUrl: https://proxy.runner1.example.com
        memoryGiB: 16
        domain: runner1.example.com
        name: name
        cpu: 8
      properties:
        regionId:
          type: string
        name:
          type: string
        apiKey:
          type: string
        apiVersion:
          description: The api version of the runner to create
          example: "2"
          pattern: ^(0|2)$
          type: string
        domain:
          description: The domain of the runner
          example: runner1.example.com
          type: string
        apiUrl:
          description: The API URL of the runner
          example: https://api.runner1.example.com
          type: string
        proxyUrl:
          description: The proxy URL of the runner
          example: https://proxy.runner1.example.com
          type: string
        cpu:
          description: The CPU capacity of the runner
          example: 8
          type: number
        memoryGiB:
          description: The memory capacity of the runner in GiB
          example: 16
          type: number
        diskGiB:
          description: The disk capacity of the runner in GiB
          example: 100
          type: number
      required:
      - apiKey
      - apiVersion
      - name
      - regionId
      type: object
    CreateOrganizationQuota:
      example:
        snapshotQuota: 7.061401241503109
        totalCpuQuota: 0.8008281904610115
        maxCpuPerSandbox: 5.962133916683182
        maxDiskPerSandbox: 2.3021358869347655
        maxMemoryPerSandbox: 5.637376656633329
        volumeQuota: 3.616076749251911
        totalMemoryQuota: 6.027456183070403
        maxSnapshotSize: 9.301444243932576
        totalDiskQuota: 1.4658129805029452
      properties:
        totalCpuQuota:
          type: number
        totalMemoryQuota:
          type: number
        totalDiskQuota:
          type: number
        maxCpuPerSandbox:
          type: number
        maxMemoryPerSandbox:
          type: number
        maxDiskPerSandbox:
          type: number
        snapshotQuota:
          type: number
        maxSnapshotSize:
          type: number
        volumeQuota:
          type: number
      type: object
    CreateUser:
      example:
        emailVerified: true
        role: admin
        name: name
        personalOrganizationDefaultRegionId: personalOrganizationDefaultRegionId
        id: id
        personalOrganizationQuota:
          snapshotQuota: 7.061401241503109
          totalCpuQuota: 0.8008281904610115
          maxCpuPerSandbox: 5.962133916683182
          maxDiskPerSandbox: 2.3021358869347655
          maxMemoryPerSandbox: 5.637376656633329
          volumeQuota: 3.616076749251911
          totalMemoryQuota: 6.027456183070403
          maxSnapshotSize: 9.301444243932576
          totalDiskQuota: 1.4658129805029452
        email: email
      properties:
        id:
          type: string
        name:
          type: string
        email:
          type: string
        personalOrganizationQuota:
          $ref: "#/components/schemas/CreateOrganizationQuota"
        personalOrganizationDefaultRegionId:
          type: string
        role:
          enum:
          - admin
          - user
          type: string
        emailVerified:
          type: boolean
      required:
      - id
      - name
      type: object
    WebhookEvent:
      description: The type of event being sent
      enum:
      - sandbox.created
      - sandbox.state.updated
      - snapshot.created
      - snapshot.state.updated
      - snapshot.removed
      - volume.created
      - volume.state.updated
      type: string
    SendWebhookDto:
      example:
        eventId: evt_1234567890abcdef
        payload:
          id: sandbox-123
          name: My Sandbox
        eventType: sandbox.created
      properties:
        eventType:
          allOf:
          - $ref: "#/components/schemas/WebhookEvent"
          description: The type of event being sent
          example: sandbox.created
        payload:
          description: The payload data to send
          example:
            id: sandbox-123
            name: My Sandbox
          type: object
        eventId:
          description: Optional event ID for idempotency
          example: evt_1234567890abcdef
          type: string
      required:
      - eventType
      - payload
      type: object
    SetSnapshotGeneralStatusDto:
      example:
        general: true
      properties:
        general:
          description: Whether the snapshot is general
          example: true
          type: boolean
      required:
      - general
      type: object
    AuditLog:
      example:
        actorApiKeyPrefix: actorApiKeyPrefix
        metadata:
          key: ""
        targetId: targetId
        errorMessage: errorMessage
        ipAddress: ipAddress
        actorEmail: actorEmail
        targetType: targetType
        userAgent: userAgent
        source: source
        organizationId: organizationId
        createdAt: 2000-01-23T04:56:07.000+00:00
        actorId: actorId
        action: action
        id: id
        actorApiKeySuffix: actorApiKeySuffix
        statusCode: 0.8008281904610115
      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:
          additionalProperties: true
          type: object
        createdAt:
          format: date-time
          type: string
      required:
      - action
      - actorEmail
      - actorId
      - createdAt
      - id
      type: object
    PaginatedAuditLogs:
      example:
        total: 6.027456183070403
        nextToken: nextToken
        totalPages: 5.962133916683182
        page: 1.4658129805029452
        items:
        - actorApiKeyPrefix: actorApiKeyPrefix
          metadata:
            key: ""
          targetId: targetId
          errorMessage: errorMessage
          ipAddress: ipAddress
          actorEmail: actorEmail
          targetType: targetType
          userAgent: userAgent
          source: source
          organizationId: organizationId
          createdAt: 2000-01-23T04:56:07.000+00:00
          actorId: actorId
          action: action
          id: id
          actorApiKeySuffix: actorApiKeySuffix
          statusCode: 0.8008281904610115
        - actorApiKeyPrefix: actorApiKeyPrefix
          metadata:
            key: ""
          targetId: targetId
          errorMessage: errorMessage
          ipAddress: ipAddress
          actorEmail: actorEmail
          targetType: targetType
          userAgent: userAgent
          source: source
          organizationId: organizationId
          createdAt: 2000-01-23T04:56:07.000+00:00
          actorId: actorId
          action: action
          id: id
          actorApiKeySuffix: actorApiKeySuffix
          statusCode: 0.8008281904610115
      properties:
        items:
          items:
            $ref: "#/components/schemas/AuditLog"
          type: array
        total:
          type: number
        page:
          type: number
        totalPages:
          type: number
        nextToken:
          description: Token for next page in cursor-based pagination
          type: string
      required:
      - items
      - page
      - total
      - totalPages
      type: object
    WebhookAppPortalAccess:
      example:
        url: https://app.svix.com/app_1234567890
        token: appsk_...
      properties:
        token:
          description: The authentication token for the Svix consumer app portal
          example: appsk_...
          type: string
        url:
          description: The URL to the webhook app portal
          example: https://app.svix.com/app_1234567890
          type: string
      required:
      - token
      - url
      type: object
    WebhookInitializationStatus:
      example:
        organizationId: 123e4567-e89b-12d3-a456-426614174000
        createdAt: 2023-01-01T00:00:00.000Z
        lastError: Failed to create Svix application
        retryCount: 3
        svixApplicationId: app_1234567890
        updatedAt: 2023-01-01T00:00:00.000Z
      properties:
        organizationId:
          description: Organization ID
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
        svixApplicationId:
          description: The ID of the Svix application
          example: app_1234567890
          nullable: true
          type: string
        lastError:
          description: The error reason for the last initialization attempt
          example: Failed to create Svix application
          nullable: true
          type: string
        retryCount:
          description: The number of times the initialization has been attempted
          example: 3
          type: number
        createdAt:
          description: When the webhook initialization was created
          example: 2023-01-01T00:00:00.000Z
          type: string
        updatedAt:
          description: When the webhook initialization was last updated
          example: 2023-01-01T00:00:00.000Z
          type: string
      required:
      - createdAt
      - lastError
      - organizationId
      - retryCount
      - svixApplicationId
      - updatedAt
      type: object
    StorageAccessDto:
      example:
        organizationId: 123e4567-e89b-12d3-a456-426614174000
        bucket: daytona
        accessKey: temp-user-123
        sessionToken: eyJhbGciOiJIUzI1NiIs...
        secret: abchbGciOiJIUzI1NiIs...
        storageUrl: storage.example.com
      properties:
        accessKey:
          description: Access key for storage authentication
          example: temp-user-123
          type: string
        secret:
          description: Secret key for storage authentication
          example: abchbGciOiJIUzI1NiIs...
          type: string
        sessionToken:
          description: Session token for storage authentication
          example: eyJhbGciOiJIUzI1NiIs...
          type: string
        storageUrl:
          description: Storage URL
          example: storage.example.com
          type: string
        organizationId:
          description: Organization ID
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
        bucket:
          description: S3 bucket name
          example: daytona
          type: string
      required:
      - accessKey
      - bucket
      - organizationId
      - secret
      - sessionToken
      - storageUrl
      type: object
    LogEntry:
      example:
        traceId: traceId
        spanId: spanId
        severityText: severityText
        severityNumber: 0.8008281904610115
        logAttributes:
          key: logAttributes
        body: body
        serviceName: serviceName
        resourceAttributes:
          key: resourceAttributes
        timestamp: timestamp
      properties:
        timestamp:
          description: Timestamp of the log entry
          type: string
        body:
          description: Log message body
          type: string
        severityText:
          description: "Severity level text (e.g., INFO, WARN, ERROR)"
          type: string
        severityNumber:
          description: Severity level number
          type: number
        serviceName:
          description: Service name that generated the log
          type: string
        resourceAttributes:
          additionalProperties:
            type: string
          description: Resource attributes from OTEL
          type: object
        logAttributes:
          additionalProperties:
            type: string
          description: Log-specific attributes
          type: object
        traceId:
          description: Associated trace ID if available
          type: string
        spanId:
          description: Associated span ID if available
          type: string
      required:
      - body
      - logAttributes
      - resourceAttributes
      - serviceName
      - severityText
      - timestamp
      type: object
    PaginatedLogs:
      example:
        total: 6.027456183070403
        totalPages: 5.962133916683182
        page: 1.4658129805029452
        items:
        - traceId: traceId
          spanId: spanId
          severityText: severityText
          severityNumber: 0.8008281904610115
          logAttributes:
            key: logAttributes
          body: body
          serviceName: serviceName
          resourceAttributes:
            key: resourceAttributes
          timestamp: timestamp
        - traceId: traceId
          spanId: spanId
          severityText: severityText
          severityNumber: 0.8008281904610115
          logAttributes:
            key: logAttributes
          body: body
          serviceName: serviceName
          resourceAttributes:
            key: resourceAttributes
          timestamp: timestamp
      properties:
        items:
          description: List of log entries
          items:
            $ref: "#/components/schemas/LogEntry"
          type: array
        total:
          description: Total number of log entries matching the query
          type: number
        page:
          description: Current page number
          type: number
        totalPages:
          description: Total number of pages
          type: number
      required:
      - items
      - page
      - total
      - totalPages
      type: object
    TraceSummary:
      example:
        traceId: traceId
        spanCount: 6.027456183070403
        rootSpanName: rootSpanName
        startTime: startTime
        endTime: endTime
        durationMs: 0.8008281904610115
        statusCode: statusCode
      properties:
        traceId:
          description: Unique trace identifier
          type: string
        rootSpanName:
          description: Name of the root span
          type: string
        startTime:
          description: Trace start time
          type: string
        endTime:
          description: Trace end time
          type: string
        durationMs:
          description: Total duration in milliseconds
          type: number
        spanCount:
          description: Number of spans in this trace
          type: number
        statusCode:
          description: Status code of the trace
          type: string
      required:
      - durationMs
      - endTime
      - rootSpanName
      - spanCount
      - startTime
      - traceId
      type: object
    PaginatedTraces:
      example:
        total: 1.4658129805029452
        totalPages: 5.637376656633329
        page: 5.962133916683182
        items:
        - traceId: traceId
          spanCount: 6.027456183070403
          rootSpanName: rootSpanName
          startTime: startTime
          endTime: endTime
          durationMs: 0.8008281904610115
          statusCode: statusCode
        - traceId: traceId
          spanCount: 6.027456183070403
          rootSpanName: rootSpanName
          startTime: startTime
          endTime: endTime
          durationMs: 0.8008281904610115
          statusCode: statusCode
      properties:
        items:
          description: List of trace summaries
          items:
            $ref: "#/components/schemas/TraceSummary"
          type: array
        total:
          description: Total number of traces matching the query
          type: number
        page:
          description: Current page number
          type: number
        totalPages:
          description: Total number of pages
          type: number
      required:
      - items
      - page
      - total
      - totalPages
      type: object
    TraceSpan:
      example:
        traceId: traceId
        spanId: spanId
        spanAttributes:
          key: spanAttributes
        parentSpanId: parentSpanId
        durationNs: 0.8008281904610115
        statusMessage: statusMessage
        spanName: spanName
        timestamp: timestamp
        statusCode: statusCode
      properties:
        traceId:
          description: Trace identifier
          type: string
        spanId:
          description: Span identifier
          type: string
        parentSpanId:
          description: Parent span identifier
          type: string
        spanName:
          description: Span name
          type: string
        timestamp:
          description: Span start timestamp
          type: string
        durationNs:
          description: Span duration in nanoseconds
          type: number
        spanAttributes:
          additionalProperties:
            type: string
          description: Span attributes
          type: object
        statusCode:
          description: Status code of the span
          type: string
        statusMessage:
          description: Status message
          type: string
      required:
      - durationNs
      - spanAttributes
      - spanId
      - spanName
      - timestamp
      - traceId
      type: object
    MetricDataPoint:
      example:
        value: 0.8008281904610115
        timestamp: timestamp
      properties:
        timestamp:
          description: Timestamp of the data point
          type: string
        value:
          description: Value at this timestamp
          type: number
      required:
      - timestamp
      - value
      type: object
    MetricSeries:
      example:
        metricName: metricName
        dataPoints:
        - value: 0.8008281904610115
          timestamp: timestamp
        - value: 0.8008281904610115
          timestamp: timestamp
      properties:
        metricName:
          description: Name of the metric
          type: string
        dataPoints:
          description: Data points for this metric
          items:
            $ref: "#/components/schemas/MetricDataPoint"
          type: array
      required:
      - dataPoints
      - metricName
      type: object
    MetricsResponse:
      example:
        series:
        - metricName: metricName
          dataPoints:
          - value: 0.8008281904610115
            timestamp: timestamp
          - value: 0.8008281904610115
            timestamp: timestamp
        - metricName: metricName
          dataPoints:
          - value: 0.8008281904610115
            timestamp: timestamp
          - value: 0.8008281904610115
            timestamp: timestamp
      properties:
        series:
          description: List of metric series
          items:
            $ref: "#/components/schemas/MetricSeries"
          type: array
      required:
      - series
      type: object
    uploadFile_deprecated_request:
      properties:
        file:
          format: binary
          type: string
      type: object
    adminGetWebhookStatus_200_response:
      example:
        enabled: true
      properties:
        enabled:
          type: boolean
      type: object
    HealthController_check_200_response_info_value:
      additionalProperties: true
      properties:
        status:
          type: string
      required:
      - status
      type: object
    HealthController_check_200_response:
      example:
        details:
          database:
            status: up
        error: {}
        status: ok
        info:
          database:
            status: up
      properties:
        status:
          example: ok
          type: string
        info:
          additionalProperties:
            $ref: "#/components/schemas/HealthController_check_200_response_info_value"
          example:
            database:
              status: up
          nullable: true
          type: object
        error:
          additionalProperties:
            $ref: "#/components/schemas/HealthController_check_200_response_info_value"
          example: {}
          nullable: true
          type: object
        details:
          additionalProperties:
            $ref: "#/components/schemas/HealthController_check_200_response_info_value"
          example:
            database:
              status: up
          type: object
      type: object
    HealthController_check_503_response:
      example:
        details:
          database:
            status: up
          redis:
            status: down
            message: Could not connect
        error:
          redis:
            status: down
            message: Could not connect
        status: error
        info:
          database:
            status: up
      properties:
        status:
          example: error
          type: string
        info:
          additionalProperties:
            $ref: "#/components/schemas/HealthController_check_200_response_info_value"
          example:
            database:
              status: up
          nullable: true
          type: object
        error:
          additionalProperties:
            $ref: "#/components/schemas/HealthController_check_200_response_info_value"
          example:
            redis:
              status: down
              message: Could not connect
          nullable: true
          type: object
        details:
          additionalProperties:
            $ref: "#/components/schemas/HealthController_check_200_response_info_value"
          example:
            database:
              status: up
            redis:
              status: down
              message: Could not connect
          type: object
      type: object
  securitySchemes:
    bearer:
      bearerFormat: JWT
      description: API Key access
      scheme: bearer
      type: http
    oauth2:
      openIdConnectUrl: http://localhost:3000/.well-known/openid-configuration
      type: openIdConnect
