openapi: 3.0.1
info:
  title: development
  version: "0.0"
paths:
  /config:
    get:
      operationId: findFont
      parameters:
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: findFont 200 response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
  /font/find:
    get:
      operationId: findFont_1
      parameters:
      - name: X-Session-Id
        in: header
        required: true
        schema:
          type: string
      - name: fontName
        in: query
        required: true
        explode: false
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: findFont_1 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /font/get:
    get:
      operationId: getAllFontNames
      parameters:
      - name: X-Session-Id
        in: header
        schema:
          type: string
          nullable: true
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: getAllFontNames 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FontNamesResponse"
  /font/get/{fontName}:
    get:
      operationId: getFont
      parameters:
      - name: X-Session-Id
        in: header
        required: true
        schema:
          type: string
      - name: fontName
        in: path
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: getFont 200 response
          content:
            font/ttf:
              schema:
                type: string
                format: binary
  /font/register:
    post:
      operationId: registerFont
      parameters:
      - name: X-Session-Id
        in: header
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                ttfFile:
                  type: string
                  format: binary
            encoding:
              ttfFile:
                contentType: application/octet-stream
                explode: false
        required: true
      responses:
        "200":
          description: registerFont 200 response
          content:
            application/json:
              schema:
                type: string
  /keys/anon:
    post:
      operationId: issueAnonymousKey
      parameters:
      - name: X-Fingerprint
        in: header
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: issueAnonymousKey 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiTokenCreateResponse"
  /me/tenant:
    get:
      operationId: getTenant
      parameters:
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: getTenant 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserTenantResponse"
  /me/tokens:
    get:
      operationId: listTokens
      parameters:
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: listTokens 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ApiTokenListResponse"
    post:
      operationId: createToken
      parameters:
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ApiTokenCreateRequest"
        required: true
      responses:
        "200":
          description: createToken 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiTokenCreateResponse"
  /me/tokens/{tokenId}:
    get:
      operationId: getToken
      parameters:
      - name: tokenId
        in: path
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: getToken 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiTokenListResponse"
    delete:
      operationId: revokeToken
      parameters:
      - name: tokenId
        in: path
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: revokeToken 200 response
  /me/tokens/{tokenId}/reveal:
    get:
      operationId: revealToken
      parameters:
      - name: tokenId
        in: path
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: revealToken 200 response
          content:
            application/json:
              schema:
                type: string
  /metrics/buffer-stats:
    get:
      operationId: getBufferStats
      parameters:
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: getBufferStats 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MetricsBuffer.BufferStats"
  /metrics/errors:
    get:
      operationId: getErrors
      parameters:
      - name: days
        in: query
        required: true
        explode: false
        schema:
          type: integer
          format: int32
          default: 30
      - name: limit
        in: query
        required: true
        explode: false
        schema:
          type: integer
          format: int32
          default: 100
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: getErrors 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsService.ErrorAnalytics"
  /metrics/event-types:
    get:
      operationId: getEventTypes
      parameters:
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: getEventTypes 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/AnalyticsService.EventTypeInfo"
  /metrics/jvm-stats:
    get:
      operationId: getJvmStats
      parameters:
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: getJvmStats 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JvmStatsService.JvmStats"
  /metrics/operations:
    get:
      operationId: getOperations
      parameters:
      - name: days
        in: query
        required: true
        explode: false
        schema:
          type: integer
          format: int32
          default: 30
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: getOperations 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/AnalyticsService.DailyOperationCount"
  /metrics/performance:
    get:
      operationId: getPerformance
      parameters:
      - name: days
        in: query
        required: true
        explode: false
        schema:
          type: integer
          format: int32
          default: 30
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: getPerformance 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/AnalyticsService.PerformanceMetric"
  /metrics/sessions:
    get:
      operationId: getSessions
      parameters:
      - name: days
        in: query
        required: true
        explode: false
        schema:
          type: integer
          format: int32
          default: 30
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: getSessions 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsService.SessionStats"
  /metrics/summary:
    get:
      operationId: getSummary
      parameters:
      - name: days
        in: query
        required: true
        explode: false
        schema:
          type: integer
          format: int32
          default: 30
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: getSummary 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsService.DashboardSummary"
  /metrics/summary/windows:
    get:
      operationId: getMultiWindowSummary
      parameters:
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: getMultiWindowSummary 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsService.MultiWindowSummary"
  /metrics/users:
    get:
      operationId: getUsers
      parameters:
      - name: days
        in: query
        required: true
        explode: false
        schema:
          type: integer
          format: int32
          default: 30
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: getUsers 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsService.UserStats"
  /payment/checkout-session:
    post:
      operationId: checkoutSession
      parameters:
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentController.CheckoutSessionRequest"
        required: true
      responses:
        "200":
          description: checkoutSession 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaymentController.CheckoutSessionResponse"
  /pdf/add:
    post:
      operationId: addObject
      parameters:
      - name: X-Session-Id
        in: header
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AddRequest"
        required: true
      responses:
        "200":
          description: addObject 200 response
          content:
            application/json:
              schema:
                type: boolean
  /pdf/delete:
    delete:
      operationId: deleteObject
      parameters:
      - name: X-Session-Id
        in: header
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DeleteRequest"
        required: true
      responses:
        "200":
          description: deleteObject 200 response
          content:
            application/json:
              schema:
                type: boolean
  /pdf/document/snapshot:
    get:
      operationId: getDocumentSnapshot
      parameters:
      - name: X-Session-Id
        in: header
        required: true
        schema:
          type: string
      - name: types
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: getDocumentSnapshot 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DocumentSnapshot"
  /pdf/find:
    post:
      operationId: findObject
      parameters:
      - name: X-Session-Id
        in: header
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FindRequest"
        required: true
      responses:
        "200":
          description: findObject 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ObjectRef"
  /pdf/modify:
    put:
      operationId: modifyObject
      parameters:
      - name: X-Session-Id
        in: header
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ModifyRequest"
        required: true
      responses:
        "200":
          description: modifyObject 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommandResult"
  /pdf/modify/formField:
    put:
      operationId: changeFormField
      parameters:
      - name: X-Session-Id
        in: header
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChangeFormFieldRequest"
        required: true
      responses:
        "200":
          description: changeFormField 200 response
          content:
            application/json:
              schema:
                type: boolean
  /pdf/move:
    put:
      operationId: moveObject
      parameters:
      - name: X-Session-Id
        in: header
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MoveRequest"
        required: true
      responses:
        "200":
          description: moveObject 200 response
          content:
            application/json:
              schema:
                type: boolean
  /pdf/page/add:
    post:
      operationId: addPage
      parameters:
      - name: X-Session-Id
        in: header
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AddPageRequest"
        required: true
      responses:
        "200":
          description: addPage 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PageRef"
  /pdf/page/delete:
    delete:
      operationId: deletePage
      parameters:
      - name: X-Session-Id
        in: header
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ObjectRef"
        required: true
      responses:
        "200":
          description: deletePage 200 response
          content:
            application/json:
              schema:
                type: boolean
  /pdf/page/find:
    post:
      operationId: findPage
      parameters:
      - name: X-Session-Id
        in: header
        required: true
        schema:
          type: string
      - name: pageIndex
        in: query
        explode: false
        schema:
          type: integer
          format: int32
          nullable: true
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: findPage 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PageRef"
  /pdf/page/modify:
    put:
      operationId: modifyPage
      parameters:
      - name: X-Session-Id
        in: header
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChangeFormFieldRequest"
        required: true
      responses:
        "200":
          description: modifyPage 200 response
          content:
            application/json:
              schema:
                type: boolean
  /pdf/page/move:
    put:
      operationId: movePage
      parameters:
      - name: X-Session-Id
        in: header
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PageMoveRequest"
        required: true
      responses:
        "200":
          description: movePage 200 response
          content:
            application/json:
              schema:
                type: boolean
  /pdf/page/{pageIndex}/snapshot:
    get:
      operationId: getPageSnapshot
      parameters:
      - name: X-Session-Id
        in: header
        required: true
        schema:
          type: string
      - name: pageIndex
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: types
        in: query
        explode: false
        schema:
          type: string
          nullable: true
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: getPageSnapshot 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PageSnapshot"
  /pdf/text/line:
    put:
      operationId: modifyTextLine
      parameters:
      - name: X-Session-Id
        in: header
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ModifyTextRequest"
        required: true
      responses:
        "200":
          description: modifyTextLine 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommandResult"
  /pdf/text/paragraph:
    put:
      operationId: modifyParagraph
      parameters:
      - name: X-Session-Id
        in: header
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ModifyTextRequest"
        required: true
      responses:
        "200":
          description: modifyParagraph 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CommandResult"
  /ping:
    get:
      operationId: index
      parameters:
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: index 200 response
          content:
            text/plain:
              schema:
                type: string
  /product:
    get:
      operationId: getProducts
      parameters:
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: getProducts 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Product"
  /product/{productId}:
    get:
      operationId: getProduct
      parameters:
      - name: productId
        in: path
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: getProduct 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Product"
  /session/create:
    post:
      summary: Creates a new session by uploading and processing a PDF document.
      description: "Creates a new session by uploading and processing a PDF document.\
        \ This operation validates the uploaded file, creates a unique session identifier,\
        \ processes the PDF structure for manipulation, and stores the session for\
        \ future operations. The PDF is analyzed to extract its internal structure\
        \ and prepare it for editing."
      operationId: createSession
      parameters:
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                pdf:
                  type: string
                  description: uploaded PDF file from the multipart request
                  format: binary
            encoding:
              pdf:
                contentType: application/octet-stream
                explode: false
        required: true
      responses:
        "200":
          description: HTTP response containing the generated session ID for subsequent
            operations
          content:
            application/json:
              schema:
                type: string
  /session/new:
    post:
      summary: Creates a new session with a blank PDF document.
      description: "Creates a new session with a blank PDF document. This operation\
        \ creates a new PDF with the specified page size, orientation, and page count,\
        \ then initializes a session for manipulation operations just like createSession."
      operationId: createBlankPdf
      parameters:
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      requestBody:
        description: "parameters for the blank PDF (page size, orientation, initial\
          \ page count)"
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateBlankPdfRequest"
        required: true
      responses:
        "200":
          description: HTTP response containing the generated session ID for subsequent
            operations
          content:
            application/json:
              schema:
                type: string
  /session/{sessionId}:
    delete:
      summary: Deletes an existing session and cleans up associated resources.
      description: Deletes an existing session and cleans up associated resources.
        This operation removes the session from the store and should also clean up
        temporary files and release any held resources.
      operationId: deleteSession
      parameters:
      - name: sessionId
        in: path
        description: unique identifier of the session to delete
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: HTTP response indicating whether the session was successfully
            deleted
          content:
            application/json:
              schema:
                type: boolean
  /session/{sessionId}/pdf:
    get:
      summary: Retrieves the current state of the PDF document from the specified
        session.
      description: "Retrieves the current state of the PDF document from the specified\
        \ session. This operation builds and streams the PDF with all applied modifications,\
        \ generating the final PDF output that reflects all changes made during the\
        \ session. The PDF is built asynchronously and streamed to avoid memory issues\
        \ with large files."
      operationId: getSessionPdf
      parameters:
      - name: sessionId
        in: path
        description: unique identifier of the session containing the PDF
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: HTTP response containing the streamed PDF file with all modifications
            applied
          content:
            application/pdf:
              schema:
                type: string
                format: binary
  /subscription:
    get:
      operationId: getSubscription
      parameters:
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: getSubscription 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Subscription"
  /subscription/activate-early-access-plan:
    post:
      operationId: activateEarlyAccessPlan
      parameters:
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: activateEarlyAccessPlan 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Subscription"
  /subscription/activate-free-plan:
    post:
      operationId: activateFreePlan
      parameters:
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: activateFreePlan 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Subscription"
  /test:
    get:
      operationId: test
      parameters:
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: test 200 response
          content:
            text/plain:
              schema:
                type: string
  /user:
    get:
      operationId: info
      parameters:
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: info 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Authentication"
  /version:
    get:
      operationId: getVersion
      parameters:
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: getVersion 200 response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VersionResponse"
  /xml:
    get:
      operationId: getSessionXml
      parameters:
      - name: X-Session-Id
        in: header
        required: true
        schema:
          type: string
      - name: v
        in: query
        description: API version
        schema:
          type: string
      - name: api-version
        in: query
        description: API version
        schema:
          type: string
      - name: X-API-VERSION
        in: header
        description: API version
        schema:
          type: string
      - name: Accept-Version
        in: header
        description: API version
        schema:
          type: string
      responses:
        "200":
          description: getSessionXml 200 response
          content:
            application/xml:
              schema:
                type: string
                format: binary
components:
  schemas:
    AddPageRequest:
      required:
      - orientation
      - pageIndex
      - pageSize
      type: object
      properties:
        pageIndex:
          type: integer
          format: int32
        orientation:
          $ref: "#/components/schemas/Orientation"
        pageSize:
          $ref: "#/components/schemas/PageSize"
    AddRequest:
      required:
      - object
      type: object
      properties:
        object:
          $ref: "#/components/schemas/PDFObject"
    AnalyticsService.DailyOperationCount:
      required:
      - avgDuration
      - count
      - date
      - eventType
      type: object
      properties:
        date:
          type: string
          format: date
        eventType:
          type: string
        count:
          type: integer
          format: int64
        avgDuration:
          type: number
          format: double
    AnalyticsService.DashboardSummary:
      required:
      - activeSessions
      - activeUsers
      - activeUsers24h
      - anonKeysIssued
      - apiRequests
      - apiTokensCreated
      - apiTokensValidated
      - avgCacheHitRate
      - avgDurationApiRequest
      - avgDurationDocumentGenerated
      - avgDurationDocumentParsed
      - avgDurationDocumentSaved
      - avgDurationFontRegistered
      - avgDurationFormFieldChanged
      - avgDurationImageAdded
      - avgDurationImageDeleted
      - avgDurationImageMoved
      - avgDurationMs
      - avgDurationObjectAdded
      - avgDurationObjectModified
      - avgDurationPageGenerated
      - avgDurationPageParsed
      - avgDurationParagraphAdded
      - avgDurationParagraphDeleted
      - avgDurationParagraphMoved
      - avgHeapUsagePercent
      - avgProcessCpuLoad
      - avgProcessingTimeMs
      - avgRoundTripMs
      - avgSystemCpuLoad
      - avgThreadCount
      - documentsGenerated
      - documentsParsed
      - documentsSaved
      - errorRatePercent
      - fontsRegistered
      - formFieldsChanged
      - http2xxSuccess
      - http4xxClientError
      - http5xxServerError
      - httpStatus200
      - httpStatus201
      - httpStatus204
      - httpStatus400
      - httpStatus401
      - httpStatus403
      - httpStatus404
      - httpStatus429
      - httpStatus500
      - httpStatus502
      - httpStatus503
      - imagesAdded
      - imagesDeleted
      - imagesMoved
      - objectsAdded
      - objectsDeleted
      - objectsModified
      - pagesDeleted
      - pagesGenerated
      - pagesMoved
      - pagesParsed
      - paragraphsAdded
      - paragraphsDeleted
      - paragraphsMoved
      - processingTimeRequests
      - roundTripRequests
      - servicePercentiles
      - sessionsCreated
      - sessionsDeleted
      - sessionsRetrieved
      - tenantsCreated
      - textOperations
      - totalErrors
      - totalEvents
      - totalGcCollections
      - totalGcTimeMs
      - totalSessions
      - totalUsers
      - usersCreated
      - vectorOperations
      type: object
      properties:
        documentsGenerated:
          type: integer
          format: int64
        documentsSaved:
          type: integer
          format: int64
        documentsParsed:
          type: integer
          format: int64
        pagesGenerated:
          type: integer
          format: int64
        pagesParsed:
          type: integer
          format: int64
        pagesDeleted:
          type: integer
          format: int64
        pagesMoved:
          type: integer
          format: int64
        objectsAdded:
          type: integer
          format: int64
        objectsModified:
          type: integer
          format: int64
        objectsDeleted:
          type: integer
          format: int64
        imagesAdded:
          type: integer
          format: int64
        imagesDeleted:
          type: integer
          format: int64
        imagesMoved:
          type: integer
          format: int64
        paragraphsAdded:
          type: integer
          format: int64
        paragraphsDeleted:
          type: integer
          format: int64
        paragraphsMoved:
          type: integer
          format: int64
        textOperations:
          type: integer
          format: int64
        vectorOperations:
          type: integer
          format: int64
        fontsRegistered:
          type: integer
          format: int64
        formFieldsChanged:
          type: integer
          format: int64
        sessionsCreated:
          type: integer
          format: int64
        sessionsDeleted:
          type: integer
          format: int64
        sessionsRetrieved:
          type: integer
          format: int64
        tenantsCreated:
          type: integer
          format: int64
        usersCreated:
          type: integer
          format: int64
        apiTokensCreated:
          type: integer
          format: int64
        apiTokensValidated:
          type: integer
          format: int64
        anonKeysIssued:
          type: integer
          format: int64
        apiRequests:
          type: integer
          format: int64
        roundTripRequests:
          type: integer
          format: int64
        avgRoundTripMs:
          type: number
          format: double
        processingTimeRequests:
          type: integer
          format: int64
        avgProcessingTimeMs:
          type: number
          format: double
        httpStatus200:
          type: integer
          format: int64
        httpStatus201:
          type: integer
          format: int64
        httpStatus204:
          type: integer
          format: int64
        httpStatus400:
          type: integer
          format: int64
        httpStatus401:
          type: integer
          format: int64
        httpStatus403:
          type: integer
          format: int64
        httpStatus404:
          type: integer
          format: int64
        httpStatus429:
          type: integer
          format: int64
        httpStatus500:
          type: integer
          format: int64
        httpStatus502:
          type: integer
          format: int64
        httpStatus503:
          type: integer
          format: int64
        http2xxSuccess:
          type: integer
          format: int64
        http4xxClientError:
          type: integer
          format: int64
        http5xxServerError:
          type: integer
          format: int64
        totalSessions:
          type: integer
          format: int64
        activeSessions:
          type: integer
          format: int64
        totalUsers:
          type: integer
          format: int64
        activeUsers:
          type: integer
          format: int64
        activeUsers24h:
          type: integer
          format: int64
        avgDurationDocumentGenerated:
          type: number
          format: double
        avgDurationDocumentSaved:
          type: number
          format: double
        avgDurationDocumentParsed:
          type: number
          format: double
        avgDurationPageGenerated:
          type: number
          format: double
        avgDurationPageParsed:
          type: number
          format: double
        avgDurationObjectAdded:
          type: number
          format: double
        avgDurationObjectModified:
          type: number
          format: double
        avgDurationImageAdded:
          type: number
          format: double
        avgDurationImageDeleted:
          type: number
          format: double
        avgDurationImageMoved:
          type: number
          format: double
        avgDurationParagraphAdded:
          type: number
          format: double
        avgDurationParagraphDeleted:
          type: number
          format: double
        avgDurationParagraphMoved:
          type: number
          format: double
        avgDurationFontRegistered:
          type: number
          format: double
        avgDurationFormFieldChanged:
          type: number
          format: double
        avgDurationApiRequest:
          type: number
          format: double
        avgDurationMs:
          type: number
          format: double
        totalErrors:
          type: integer
          format: int64
        errorRatePercent:
          type: number
          format: double
        totalEvents:
          type: integer
          format: int64
        avgHeapUsagePercent:
          type: number
          format: double
        avgProcessCpuLoad:
          type: number
          format: double
        avgSystemCpuLoad:
          type: number
          format: double
        avgThreadCount:
          type: number
          format: double
        avgCacheHitRate:
          type: number
          format: double
        totalGcCollections:
          type: integer
          format: int64
        totalGcTimeMs:
          type: integer
          format: int64
        servicePercentiles:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/AnalyticsService.ServicePercentiles"
    AnalyticsService.ErrorAnalytics:
      required:
      - recentErrors
      - trends
      type: object
      properties:
        trends:
          type: array
          items:
            $ref: "#/components/schemas/AnalyticsService.ErrorTrend"
        recentErrors:
          type: array
          items:
            $ref: "#/components/schemas/AnalyticsService.RecentError"
    AnalyticsService.ErrorTrend:
      required:
      - date
      - errorCount
      - errorRate
      - totalCount
      type: object
      properties:
        date:
          type: string
          format: date
        errorCount:
          type: integer
          format: int64
        totalCount:
          type: integer
          format: int64
        errorRate:
          type: number
          format: double
    AnalyticsService.EventTypeInfo:
      required:
      - eventType
      - latestEvent
      - totalCount
      type: object
      properties:
        eventType:
          type: string
        totalCount:
          type: integer
          format: int64
        latestEvent:
          type: string
          format: date-time
    AnalyticsService.MultiWindowSummary:
      required:
      - last1Day
      - last1Hour
      - last30Days
      - last7Days
      type: object
      properties:
        last1Hour:
          $ref: "#/components/schemas/AnalyticsService.DashboardSummary"
        last1Day:
          $ref: "#/components/schemas/AnalyticsService.DashboardSummary"
        last7Days:
          $ref: "#/components/schemas/AnalyticsService.DashboardSummary"
        last30Days:
          $ref: "#/components/schemas/AnalyticsService.DashboardSummary"
    AnalyticsService.PerformanceMetric:
      required:
      - avgMs
      - maxMs
      - minMs
      - operationCount
      - operationType
      - p50Ms
      - p95Ms
      - p99Ms
      type: object
      properties:
        operationType:
          type: string
        operationCount:
          type: integer
          format: int64
        avgMs:
          type: number
          format: double
        p50Ms:
          type: number
          format: double
        p95Ms:
          type: number
          format: double
        p99Ms:
          type: number
          format: double
        minMs:
          type: integer
          format: int32
        maxMs:
          type: integer
          format: int32
    AnalyticsService.RecentError:
      required:
      - errorMessage
      - eventType
      - operationType
      - sessionId
      - timestamp
      type: object
      properties:
        timestamp:
          type: string
          format: date-time
        eventType:
          type: string
        operationType:
          type: string
        errorMessage:
          type: string
        sessionId:
          type: string
    AnalyticsService.ServicePercentiles:
      required:
      - p50Ms
      - p90Ms
      - p95Ms
      - p99Ms
      type: object
      properties:
        p50Ms:
          type: number
          format: double
        p90Ms:
          type: number
          format: double
        p95Ms:
          type: number
          format: double
        p99Ms:
          type: number
          format: double
    AnalyticsService.SessionStats:
      required:
      - active1h
      - active24h
      - active7d
      - totalSessions
      type: object
      properties:
        totalSessions:
          type: integer
          format: int64
        active1h:
          type: integer
          format: int64
        active24h:
          type: integer
          format: int64
        active7d:
          type: integer
          format: int64
    AnalyticsService.UserStats:
      required:
      - active24h
      - active30d
      - active7d
      - totalUsers
      type: object
      properties:
        totalUsers:
          type: integer
          format: int64
        active24h:
          type: integer
          format: int64
        active7d:
          type: integer
          format: int64
        active30d:
          type: integer
          format: int64
    ApiTokenCreateRequest:
      required:
      - expiresAt
      - name
      type: object
      properties:
        name:
          type: string
        expiresAt:
          type: string
    ApiTokenCreateResponse:
      required:
      - metadata
      - token
      type: object
      properties:
        token:
          type: string
        metadata:
          $ref: "#/components/schemas/ApiTokenCreateResponse.ApiTokenMetadata"
    ApiTokenCreateResponse.ApiTokenMetadata:
      required:
      - createdAt
      - expiresAt
      - id
      - name
      - prefix
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        prefix:
          type: string
        createdAt:
          type: string
        expiresAt:
          type: string
    ApiTokenListResponse:
      required:
      - createdAt
      - expiresAt
      - id
      - lastUsedAt
      - name
      - prefix
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        prefix:
          type: string
        createdAt:
          type: string
        lastUsedAt:
          type: string
        expiresAt:
          type: string
    Authentication:
      required:
      - attributes
      - roles
      type: object
      allOf:
      - $ref: "#/components/schemas/Principal"
      - type: object
        properties:
          attributes:
            type: object
            additionalProperties:
              type: object
          roles:
            type: array
            items:
              type: string
    Bezier:
      required:
      - p0
      - p1
      - p2
      - p3
      type: object
      allOf:
      - $ref: "#/components/schemas/PathSegment"
      - $ref: "#/components/schemas/PDFObject"
      - type: object
        properties:
          p0:
            $ref: "#/components/schemas/Point"
          p1:
            $ref: "#/components/schemas/Point"
          p2:
            $ref: "#/components/schemas/Point"
          p3:
            $ref: "#/components/schemas/Point"
          objectType:
            $ref: "#/components/schemas/ObjectType"
    BoundingRect:
      required:
      - height
      - width
      - x
      - "y"
      type: object
      properties:
        origin:
          $ref: "#/components/schemas/Point"
        x:
          type: number
          format: double
        "y":
          type: number
          format: double
        width:
          type: number
          format: double
        height:
          type: number
          format: double
    ChangeFormFieldRequest:
      required:
      - ref
      - value
      type: object
      properties:
        ref:
          $ref: "#/components/schemas/ObjectRef"
        value:
          type: string
    Color:
      type: object
      properties:
        red:
          type: integer
          format: int32
        green:
          type: integer
          format: int32
        blue:
          type: integer
          format: int32
        alpha:
          type: integer
          format: int32
    CommandResult:
      required:
      - commandName
      - elementId
      - message
      - success
      - warning
      type: object
      properties:
        commandName:
          type: string
        elementId:
          type: string
        message:
          type: string
        success:
          type: boolean
        warning:
          type: string
    CreateBlankPdfRequest:
      required:
      - initialPageCount
      - orientation
      - pageSize
      type: object
      properties:
        pageSize:
          $ref: "#/components/schemas/PageSize"
        orientation:
          $ref: "#/components/schemas/Orientation"
        initialPageCount:
          type: integer
          format: int32
    DeleteRequest:
      required:
      - objectRef
      type: object
      properties:
        objectRef:
          $ref: "#/components/schemas/ObjectRef"
    DocumentFontInfoDto:
      required:
      - documentFontName
      - systemFontName
      type: object
      properties:
        documentFontName:
          type: string
        systemFontName:
          type: string
    DocumentSnapshot:
      required:
      - fonts
      - pageCount
      - pages
      type: object
      properties:
        pageCount:
          type: integer
          format: int32
        fonts:
          type: array
          items:
            $ref: "#/components/schemas/DocumentFontInfoDto"
        pages:
          type: array
          items:
            $ref: "#/components/schemas/PageSnapshot"
    FindRequest:
      required:
      - hint
      - objectType
      - position
      type: object
      properties:
        objectType:
          $ref: "#/components/schemas/ObjectType"
        position:
          $ref: "#/components/schemas/Position"
        hint:
          type: string
    Font:
      type: object
      properties:
        name:
          type: string
        size:
          type: number
          format: double
        embedded:
          type: boolean
    FontNamesResponse:
      required:
      - fontNames
      type: object
      properties:
        fontNames:
          type: array
          items:
            type: string
    FontType:
      type: string
      enum:
      - SYSTEM
      - STANDARD
      - EMBEDDED
    Form:
      type: object
      allOf:
      - $ref: "#/components/schemas/PDFObject"
      - type: object
        properties:
          name:
            type: string
          type:
            $ref: "#/components/schemas/Form.FormType"
          value:
            type: string
          size:
            $ref: "#/components/schemas/Size"
          font:
            $ref: "#/components/schemas/Font"
          objectType:
            $ref: "#/components/schemas/ObjectType"
    Form.FormType:
      type: string
      enum:
      - TEXT_FIELD
      - CHECKBOX
      - RADIO_BUTTON
      - DROPDOWN
      - BUTTON
    FormFieldRef:
      required:
      - name
      - value
      type: object
      allOf:
      - $ref: "#/components/schemas/ObjectRef"
      - type: object
        properties:
          name:
            type: string
          value:
            type: string
    Image:
      type: object
      allOf:
      - $ref: "#/components/schemas/PDFObject"
      - type: object
        properties:
          format:
            type: string
          size:
            $ref: "#/components/schemas/Size"
          data:
            type: string
            format: byte
          objectType:
            $ref: "#/components/schemas/ObjectType"
    JvmStatsService.BufferPoolStats:
      required:
      - count
      - name
      - totalCapacityBytes
      - usedBytes
      type: object
      properties:
        name:
          type: string
        count:
          type: integer
          format: int64
        usedBytes:
          type: integer
          format: int64
        totalCapacityBytes:
          type: integer
          format: int64
    JvmStatsService.CacheStats:
      required:
      - evictions
      - hitRatePercent
      - hits
      - loadFailures
      - loadSuccess
      - misses
      - name
      - size
      type: object
      properties:
        name:
          type: string
        size:
          type: integer
          format: int64
        hits:
          type: integer
          format: int64
        misses:
          type: integer
          format: int64
        hitRatePercent:
          type: number
          format: double
        loadSuccess:
          type: integer
          format: int64
        loadFailures:
          type: integer
          format: int64
        evictions:
          type: integer
          format: int64
    JvmStatsService.GcStats:
      required:
      - collectionCount
      - collectionTimeMs
      - name
      type: object
      properties:
        name:
          type: string
        collectionCount:
          type: integer
          format: int64
        collectionTimeMs:
          type: integer
          format: int64
    JvmStatsService.JvmStats:
      required:
      - bufferPools
      - caches
      - garbageCollectors
      - memory
      - memoryPools
      - operatingSystem
      - runtime
      - threads
      type: object
      properties:
        runtime:
          $ref: "#/components/schemas/JvmStatsService.RuntimeStats"
        memory:
          $ref: "#/components/schemas/JvmStatsService.MemoryStats"
        threads:
          $ref: "#/components/schemas/JvmStatsService.ThreadStats"
        garbageCollectors:
          type: array
          items:
            $ref: "#/components/schemas/JvmStatsService.GcStats"
        memoryPools:
          type: array
          items:
            $ref: "#/components/schemas/JvmStatsService.MemoryPoolStats"
        operatingSystem:
          $ref: "#/components/schemas/JvmStatsService.OsStats"
        bufferPools:
          type: array
          items:
            $ref: "#/components/schemas/JvmStatsService.BufferPoolStats"
        caches:
          type: array
          items:
            $ref: "#/components/schemas/JvmStatsService.CacheStats"
    JvmStatsService.MemoryPoolStats:
      required:
      - committedBytes
      - maxBytes
      - name
      - type
      - usagePercent
      - usedBytes
      type: object
      properties:
        name:
          type: string
        type:
          type: string
        usedBytes:
          type: integer
          format: int64
        committedBytes:
          type: integer
          format: int64
        maxBytes:
          type: integer
          format: int64
        usagePercent:
          type: number
          format: double
    JvmStatsService.MemoryStats:
      required:
      - heap
      - nonHeap
      type: object
      properties:
        heap:
          $ref: "#/components/schemas/JvmStatsService.MemoryUsageStats"
        nonHeap:
          $ref: "#/components/schemas/JvmStatsService.MemoryUsageStats"
    JvmStatsService.MemoryUsageStats:
      required:
      - committedBytes
      - maxBytes
      - usagePercent
      - usedBytes
      type: object
      properties:
        usedBytes:
          type: integer
          format: int64
        committedBytes:
          type: integer
          format: int64
        maxBytes:
          type: integer
          format: int64
        usagePercent:
          type: number
          format: double
    JvmStatsService.OsStats:
      required:
      - arch
      - availableProcessors
      - freeMemoryBytes
      - freeSwapBytes
      - memoryUsagePercent
      - name
      - processCpuPercent
      - systemCpuPercent
      - systemLoadAverage
      - totalMemoryBytes
      - totalSwapBytes
      - version
      type: object
      properties:
        name:
          type: string
        arch:
          type: string
        version:
          type: string
        availableProcessors:
          type: integer
          format: int32
        systemLoadAverage:
          type: number
          format: double
        processCpuPercent:
          type: number
          format: double
        systemCpuPercent:
          type: number
          format: double
        totalMemoryBytes:
          type: integer
          format: int64
        freeMemoryBytes:
          type: integer
          format: int64
        memoryUsagePercent:
          type: number
          format: double
        totalSwapBytes:
          type: integer
          format: int64
        freeSwapBytes:
          type: integer
          format: int64
    JvmStatsService.RuntimeStats:
      required:
      - startTimeMs
      - uptimeMs
      - vmName
      - vmVersion
      type: object
      properties:
        vmName:
          type: string
        vmVersion:
          type: string
        uptimeMs:
          type: integer
          format: int64
        startTimeMs:
          type: integer
          format: int64
    JvmStatsService.ThreadStats:
      required:
      - current
      - daemon
      - peak
      - totalStarted
      type: object
      properties:
        current:
          type: integer
          format: int32
        peak:
          type: integer
          format: int32
        daemon:
          type: integer
          format: int32
        totalStarted:
          type: integer
          format: int64
    Line:
      required:
      - p0
      - p1
      type: object
      allOf:
      - $ref: "#/components/schemas/PathSegment"
      - $ref: "#/components/schemas/PDFObject"
      - type: object
        properties:
          p1:
            $ref: "#/components/schemas/Point"
          p0:
            $ref: "#/components/schemas/Point"
          objectType:
            $ref: "#/components/schemas/ObjectType"
    MetricsBuffer.BufferStats:
      required:
      - configEnabled
      - currentBufferSize
      - operationallyEnabled
      - totalDropped
      - totalFlushed
      - totalPublished
      type: object
      properties:
        configEnabled:
          type: boolean
        operationallyEnabled:
          type: boolean
        totalPublished:
          type: integer
          format: int64
        totalFlushed:
          type: integer
          format: int64
        totalDropped:
          type: integer
          format: int64
        currentBufferSize:
          type: integer
          format: int32
    ModifyRequest:
      required:
      - newObject
      - ref
      type: object
      properties:
        ref:
          $ref: "#/components/schemas/ObjectRef"
        newObject:
          $ref: "#/components/schemas/PDFObject"
    ModifyTextRequest:
      required:
      - newTextLine
      - ref
      type: object
      properties:
        ref:
          $ref: "#/components/schemas/ObjectRef"
        newTextLine:
          type: string
    MoveRequest:
      required:
      - newPosition
      - objectRef
      type: object
      properties:
        objectRef:
          $ref: "#/components/schemas/ObjectRef"
        newPosition:
          $ref: "#/components/schemas/Position"
    ObjectRef:
      required:
      - internalId
      - position
      - type
      type: object
      properties:
        internalId:
          type: string
        position:
          $ref: "#/components/schemas/Position"
        type:
          $ref: "#/components/schemas/ObjectType"
      discriminator:
        propertyName: objectRefType
        mapping:
          CHECKBOX: "#/components/schemas/FormFieldRef"
          FORM_FIELD: "#/components/schemas/FormFieldRef"
          RADIO_BUTTON: "#/components/schemas/FormFieldRef"
          PARAGRAPH: "#/components/schemas/TextTypeObjectRef"
          TEXT_LINE: "#/components/schemas/TextTypeObjectRef"
          PAGE: "#/components/schemas/PageRef"
          TEXT_FIELD: "#/components/schemas/FormFieldRef"
      oneOf:
      - $ref: "#/components/schemas/TextTypeObjectRef"
      - $ref: "#/components/schemas/PageRef"
      - $ref: "#/components/schemas/FormFieldRef"
    ObjectType:
      type: string
      enum:
      - PDF
      - PAGE
      - TEXT_ELEMENT
      - PARAGRAPH
      - IMAGE
      - PATH
      - LINE
      - RECTANGLE
      - BEZIER
      - CLIPPING
      - FORM_X_OBJECT
      - FORM_FIELD
      - WORD
      - TEXT_LINE
      - TEXT_FIELD
      - RADIO_BUTTON
      - BUTTON
      - DROPDOWN
      - CHECKBOX
    Orientation:
      type: string
      enum:
      - PORTRAIT
      - LANDSCAPE
    PDFObject:
      type: object
      properties:
        id:
          type: string
        position:
          $ref: "#/components/schemas/Position"
        objectType:
          $ref: "#/components/schemas/ObjectType"
      discriminator:
        propertyName: type
        mapping:
          PATH: "#/components/schemas/Path"
          image: "#/components/schemas/Image"
          path: "#/components/schemas/Path"
          paragraph: "#/components/schemas/Paragraph"
          IMAGE: "#/components/schemas/Image"
          form: "#/components/schemas/Form"
          FORM: "#/components/schemas/Form"
          PARAGRAPH: "#/components/schemas/Paragraph"
          TEXT_LINE: "#/components/schemas/TextLine"
          textLine: "#/components/schemas/TextLine"
      oneOf:
      - $ref: "#/components/schemas/Image"
      - $ref: "#/components/schemas/Path"
      - $ref: "#/components/schemas/Form"
      - $ref: "#/components/schemas/Paragraph"
      - $ref: "#/components/schemas/TextLine"
    PageMoveRequest:
      required:
      - fromPageIndex
      - toPageIndex
      type: object
      properties:
        fromPageIndex:
          type: integer
          format: int32
        toPageIndex:
          type: integer
          format: int32
    PageRef:
      required:
      - orientation
      - pageSize
      type: object
      allOf:
      - $ref: "#/components/schemas/ObjectRef"
      - type: object
        properties:
          pageSize:
            $ref: "#/components/schemas/PageSize"
          orientation:
            $ref: "#/components/schemas/Orientation"
    PageSize:
      type: object
      properties:
        name:
          type: string
        width:
          type: number
          format: double
        height:
          type: number
          format: double
    PageSnapshot:
      required:
      - elements
      - fonts
      - pageRef
      type: object
      properties:
        pageRef:
          $ref: "#/components/schemas/PageRef"
        elements:
          type: array
          items:
            $ref: "#/components/schemas/ObjectRef"
        fonts:
          type: array
          items:
            $ref: "#/components/schemas/DocumentFontInfoDto"
    Paragraph:
      type: object
      allOf:
      - $ref: "#/components/schemas/PDFObject"
      - type: object
        properties:
          objectType:
            $ref: "#/components/schemas/ObjectType"
          lines:
            type: array
            items:
              $ref: "#/components/schemas/TextLine"
          lineSpacings:
            type: array
            items:
              type: number
              format: double
          font:
            $ref: "#/components/schemas/Font"
          text:
            type: string
    Path:
      type: object
      allOf:
      - $ref: "#/components/schemas/PDFObject"
      - type: object
        properties:
          pathSegments:
            type: array
            items:
              $ref: "#/components/schemas/PathSegment"
          evenOddFill:
            type: boolean
          objectType:
            $ref: "#/components/schemas/ObjectType"
    PathSegment:
      type: object
      properties:
        strokeColor:
          $ref: "#/components/schemas/Color"
        fillColor:
          $ref: "#/components/schemas/Color"
        dashArray:
          type: array
          items:
            type: number
            format: double
        dashPhase:
          type: number
          format: double
        strokeWidth:
          type: number
          format: double
      discriminator:
        propertyName: segmentType
        mapping:
          line: "#/components/schemas/Line"
          LINE: "#/components/schemas/Line"
          BEZIER: "#/components/schemas/Bezier"
          bezier: "#/components/schemas/Bezier"
      allOf:
      - $ref: "#/components/schemas/PDFObject"
      oneOf:
      - $ref: "#/components/schemas/Line"
      - $ref: "#/components/schemas/Bezier"
    PaymentController.CheckoutSessionRequest:
      required:
      - plan
      type: object
      properties:
        plan:
          type: string
    PaymentController.CheckoutSessionResponse:
      required:
      - url
      type: object
      properties:
        url:
          type: string
          format: url
    Point:
      required:
      - x
      - "y"
      type: object
      properties:
        x:
          type: number
          format: double
        "y":
          type: number
          format: double
    Position:
      type: object
      properties:
        textStartsWith:
          type: string
        name:
          type: string
        textPattern:
          type: string
        x:
          type: number
          format: double
        "y":
          type: number
          format: double
        pageIndex:
          type: integer
          format: int32
        shape:
          $ref: "#/components/schemas/Position.ShapeType"
        mode:
          $ref: "#/components/schemas/Position.PositionMode"
        boundingRect:
          $ref: "#/components/schemas/BoundingRect"
    Position.PositionMode:
      type: string
      enum:
      - INTERSECT
      - CONTAINS
    Position.ShapeType:
      type: string
      enum:
      - POINT
      - LINE
      - CIRCLE
      - RECT
    Principal:
      type: object
      properties:
        name:
          type: string
    Product:
      required:
      - description
      - id
      - isHidden
      - name
      - price
      - requiresContact
      - type
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        price:
          $ref: "#/components/schemas/RecurringPrice"
        type:
          $ref: "#/components/schemas/ProductType"
        requiresContact:
          type: boolean
        isHidden:
          type: boolean
    ProductType:
      type: string
      enum:
      - SAAS
    RecurringPrice:
      required:
      - currencyCode
      - discount
      - price
      - timeInterval
      type: object
      properties:
        currencyCode:
          type: string
        discount:
          type: number
          format: float
        price:
          type: integer
          format: int32
        timeInterval:
          $ref: "#/components/schemas/TimeInterval"
    Size:
      type: object
      properties:
        width:
          type: number
          format: double
        height:
          type: number
          format: double
        area:
          type: number
          format: double
    Subscription:
      required:
      - end
      - product
      - start
      type: object
      properties:
        start:
          type: string
          format: date-time
        end:
          type: string
          format: date-time
        product:
          $ref: "#/components/schemas/Product"
    TextElement:
      type: object
      allOf:
      - $ref: "#/components/schemas/PDFObject"
      - type: object
        properties:
          text:
            type: string
          font:
            $ref: "#/components/schemas/Font"
          color:
            $ref: "#/components/schemas/Color"
          objectType:
            $ref: "#/components/schemas/ObjectType"
          status:
            $ref: "#/components/schemas/TextStatus"
    TextLine:
      type: object
      allOf:
      - $ref: "#/components/schemas/PDFObject"
      - type: object
        properties:
          fontSize:
            type: number
            format: double
          fontName:
            type: string
          objectType:
            $ref: "#/components/schemas/ObjectType"
          textElements:
            type: array
            items:
              $ref: "#/components/schemas/TextElement"
          color:
            $ref: "#/components/schemas/Color"
          text:
            type: string
    TextStatus:
      required:
      - fontType
      type: object
      properties:
        modified:
          type: boolean
        encodable:
          type: boolean
        fontType:
          $ref: "#/components/schemas/FontType"
        fontInfoDto:
          $ref: "#/components/schemas/DocumentFontInfoDto"
        warning:
          type: string
    TextTypeObjectRef:
      required:
      - children
      - color
      - fontName
      - fontSize
      - lineSpacings
      - status
      - text
      type: object
      allOf:
      - $ref: "#/components/schemas/ObjectRef"
      - type: object
        properties:
          text:
            type: string
          fontName:
            type: string
          fontSize:
            type: number
            format: double
          lineSpacings:
            type: array
            items:
              type: number
              format: double
          children:
            type: array
            items:
              $ref: "#/components/schemas/TextTypeObjectRef"
          color:
            $ref: "#/components/schemas/Color"
          status:
            $ref: "#/components/schemas/TextStatus"
    TimeInterval:
      type: string
      enum:
      - DAY
      - WEEK
      - MONTH
      - YEAR
    UserTenantResponse:
      required:
      - planCode
      - role
      - status
      - tenantId
      - tenantName
      - tenantSlug
      type: object
      properties:
        tenantId:
          type: string
        tenantName:
          type: string
        tenantSlug:
          type: string
        role:
          type: string
        planCode:
          type: string
        status:
          type: string
    VersionResponse:
      required:
      - color
      - gitCommit
      type: object
      properties:
        gitCommit:
          type: string
        color:
          type: string
