---
openapi: 3.0.2
info:
  contact:
    url: https://support.mongodb.com/help
  description: OpenAPI specification for MongoDB Relational Migrator tool
  title: MongoDB Relational Migrator REST API
  version: 1.14.0
servers:
- url: http://127.0.0.1:8278/api/v1
paths:
  "/analysis/{projectId}/task":
    get:
      operationId: getAnalysisTask
      description: Get pre-migration analysis task by `projectId`.
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/analysis-task"
        '404':
          description: Not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
      tags:
      - Analysis
    post:
      operationId: createAnalysisTask
      description: Create a task for pre-migration analysis.
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/analysis-task-create-request"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/analysis-task"
        '433':
          description: Trouble connecting to SQL database with provided information
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
      tags:
      - Analysis
  "/analysis/{projectId}/task/cancel":
    post:
      operationId: cancelAnalysisTask
      description: Cancel a running pre-migration analysis task.
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/analysis-task"
        '404':
          description: Not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
        '498':
          description: Analysis task could not be cancelled
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
      tags:
      - Analysis
  "/analysis/{projectId}/report":
    get:
      operationId: getReport
      description: Get a pre-migration analysis report.
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/analysis-report"
        '404':
          description: Not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
      tags:
      - Analysis
  "/jobs":
    get:
      operationId: getJobs
      description: Get all migration jobs
      parameters:
      - name: sort
        in: query
        description: Order in which to retrieve the results
        required: false
        schema:
          type: string
          default: submittedAt,DESC
          pattern: "^\\w+,(DESC|ASC)$"
        example: submittedAt,DESC
      - name: limit
        in: query
        description: Limit the results
        required: false
        schema:
          type: integer
        example: 20
      - name: type
        in: query
        description: Filter jobs to only of a specific job type
        required: false
        schema:
          "$ref": "#/components/schemas/migration-jobs-get-type"
        example: IN_PROGRESS
      - name: projectId
        in: query
        description: Filter jobs by projectId
        required: false
        schema:
          "$ref": "#/components/schemas/id"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/migration-job-status"
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
      tags:
      - Job
    post:
      operationId: createJob
      description: Post a new migration job
      requestBody:
        required: true
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/post-migration-job-request"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/migration-job-status"
        '440':
          description: Invalid as connection string did not contain a database name
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
        '470':
          description: Migration job already running
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
        '471':
          description: Migration Job could not be started for error building the job
            context example - Mode not recognised or No mappings exist.
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
      tags:
      - Job
  "/jobs/{jobId}":
    get:
      operationId: getJob
      description: Get the status of a migration job by ID
      parameters:
      - name: jobId
        in: path
        description: Job ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/migration-job-status"
        '404':
          description: Not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
      tags:
      - Job
  "/jobs/{jobId}/pause":
    post:
      operationId: pauseJob
      description: Pause a running migration job
      parameters:
      - name: jobId
        in: path
        description: Job ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/migration-job-status"
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
        '404':
          description: Not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
      tags:
      - Job
  "/jobs/{jobId}/resume":
    post:
      operationId: resumeJob
      description: Resume a paused migration job
      parameters:
      - name: jobId
        in: path
        description: Job ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/migration-job-status"
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
        '404':
          description: Not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
      tags:
      - Job
  "/jobs/{jobId}/stop":
    post:
      operationId: stopJob
      description: Stop a running migration job
      parameters:
      - name: jobId
        in: path
        description: Job ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/migration-job-status"
        '404':
          description: Not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
      tags:
      - Job
  "/project":
    get:
      operationId: getProjects
      description: Get all projects
      parameters:
      - name: sort
        in: query
        description: Order in which to retrieve the results
        required: false
        schema:
          type: string
          default: lastModified,DESC
          pattern: "^\\w+,(DESC|ASC)$"
        example: lastModified,DESC
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/project-descriptor-summary"
      tags:
      - Project
  "/project/import":
    post:
      operationId: importProject
      description: Imports a project from an export file
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ProjectDescriptor"
        '485':
          description: Unknown issue occurred during project import
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
        '486':
          description: Field not found during project import
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
        '487':
          description: Project version invalid during import
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
      tags:
      - Project
  "/project/{projectId}/codegen/generate":
    post:
      operationId: generateCode
      description: Generates application code based on your project's mapping rules
        and schema transformations
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/codegen-request"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/codegen-response"
      tags:
      - Codegen
  "/project/{projectId}/codegen/metadata":
    get:
      operationId: getCodegenMetadata
      description: Gets the available languages and frameworks for code generation
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/codegen-metadata-response"
      tags:
      - Codegen
  "/project/{projectId}/export":
    get:
      operationId: exportProject
      description: Export an existing project
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/export-file"
      tags:
      - Project
  "/project/{projectId}/queries":
    get:
      operationId: getQueries
      description: Get a summary of all queries related to a project
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/query-descriptor-summary"
      tags:
      - Query
    post:
      operationId: createQuery
      description: Create a new adhoc query
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/adhoc-query-create-request"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/query-descriptor"
      tags:
      - Query
  "/project/{projectId}/queries/bulk-convert":
    delete:
      operationId: stopBulkQueryConversion
      description: Stop a running bulk query conversion job
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/bulk-query-conversion-info"
        '404':
          description: Not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
      tags:
      - Query
    get:
      operationId: getBulkQueryConversion
      description: Get the status of a bulk query conversion job
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/bulk-query-conversion-info"
        '404':
          description: Not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
      tags:
      - Query
    post:
      operationId: createBulkQueryConversion
      description: Create a bulk query conversion job
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/bulk-query-conversion-request"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/bulk-query-conversion-info"
        '497':
          description: Operation is not allowed when there are existing query conversions
            jobs
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
      tags:
      - Query
  "/project/{projectId}/queries/{queryId}":
    delete:
      operationId: deleteQuery
      description: Delete a query by id
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      - name: queryId
        in: path
        description: Query ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      responses:
        '204':
          description: OK
        '404':
          description: Not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
        '497':
          description: Operation is not allowed when there are existing query conversions
            jobs
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
      tags:
      - Query
    get:
      operationId: getQuery
      description: Get a query by id
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      - name: queryId
        in: path
        description: Query ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/query-details-response"
        '404':
          description: Not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
      tags:
      - Query
    post:
      operationId: convertQuery
      description: Convert a query
      parameters:
      - name: projectId
        in: path
        description: Project ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      - name: queryId
        in: path
        description: Query ID
        required: true
        schema:
          "$ref": "#/components/schemas/id"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/convert-query-request"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/query-descriptor"
        '404':
          description: Not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
        '492':
          description: No relevant mappings found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
        '497':
          description: Operation is not allowed when there are existing query conversions
            jobs
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error-response"
      tags:
      - Query
components:
  schemas:
    id:
      type: string
      pattern: "^[A-Za-z0-9\\-]+$"
    analysis-task:
      type: object
      properties:
        projectId:
          "$ref": "#/components/schemas/id"
        status:
          type: string
          enum:
          - RUNNING
          - FAILED
          - CANCELLED
          - COMPLETED
        submittedAt:
          type: string
          format: date-time
      additionalProperties: false
      required:
      - projectId
      - status
      - submittedAt
    error-response:
      type: object
      properties:
        jobId:
          "$ref": "#/components/schemas/id"
        message:
          type: string
        description:
          type: string
        timestamp:
          type: string
          format: date-time
      additionalProperties: false
      required:
      - message
      - timestamp
    analysis-task-create-request:
      type: object
      properties:
        jdbcConnectionDetails:
          "$ref": "#/components/schemas/jdbc-connection-details"
      additionalProperties: false
      required:
      - jdbcConnectionDetails
    analysis-report:
      type: object
      properties:
        id:
          "$ref": "#/components/schemas/id"
        projectId:
          "$ref": "#/components/schemas/id"
        generatedAt:
          type: string
          format: date-time
        preflightChecks:
          type: array
          items:
            "$ref": "#/components/schemas/analysis-report-preflight-checks"
        rules:
          type: array
          items:
            "$ref": "#/components/schemas/analysis-report-rules"
        dbMetrics:
          "$ref": "#/components/schemas/analysis-report-db-metrics"
        databaseMetadata:
          "$ref": "#/components/schemas/analysis-report-database-metadata"
        healthScore:
          type: number
        resolvedRules:
          type: array
          items:
            type: string
        takeaways:
          type: array
          items:
            "$ref": "#/components/schemas/analysis-report-confidence-takeaway"
        uniqueDboAlerts:
          "$ref": "#/components/schemas/analysis-report-rule-type-count-by-severity"
        detectionCountsByDboType:
          type: object
          additionalProperties:
            "$ref": "#/components/schemas/detection-category-counts"
        errors:
          type: array
          items:
            type: string
      additionalProperties: false
      required:
      - databaseMetadata
      - dbMetrics
      - detectionCountsByDboType
      - generatedAt
      - healthScore
      - id
      - projectId
      - resolvedRules
      - rules
      - takeaways
      - uniqueDboAlerts
    jdbc-connection-details:
      type: object
      properties:
        id:
          type: string
        type:
          "$ref": "#/components/schemas/database-type"
        url:
          type: string
        user:
          type: string
        password:
          type: string
        savePassword:
          type: boolean
          default: false
        existingConnectionId:
          type: string
        oraclePdbName:
          type: string
        isManualUri:
          type: boolean
          default: false
      additionalProperties: false
      required:
      - type
      - url
    migration-jobs-get-type:
      type: string
      enum:
      - IN_PROGRESS
    migration-job-status:
      type: object
      properties:
        id:
          "$ref": "#/components/schemas/id"
        projectId:
          "$ref": "#/components/schemas/id"
        status:
          type: string
          enum:
          - RUNNING
          - FAILED
          - CANCELLING
          - CANCELLED
          - COMPLETED
          - CLEANING_UP
        cdcStatus:
          type: string
          default: NOT_STARTED
          enum:
          - NOT_STARTED
          - RUNNING
          - COMPLETING
          - COMPLETED
          - FAILED
          - CANCELLED
          - PAUSED
        verificationJobId:
          type: string
        options:
          "$ref": "#/components/schemas/migration-job-descriptor-options"
        jdbcConnectionString:
          type: string
        mongoDbConnectionString:
          type: string
        atlasMetadata:
          "$ref": "#/components/schemas/migration_job_status_atlasMetadata"
        submittedAt:
          type: string
          format: date-time
        statistics:
          "$ref": "#/components/schemas/migration-job-statistics"
        cdcStatistics:
          "$ref": "#/components/schemas/cdc-job-statistics"
        jobUpdates:
          type: array
          items:
            "$ref": "#/components/schemas/job-update"
        failureError:
          "$ref": "#/components/schemas/failureError"
        metadata:
          "$ref": "#/components/schemas/migration_job_status_metadata"
        relationalTableFilters:
          "$ref": "#/components/schemas/relational-table-filters"
      additionalProperties: false
      required:
      - id
      - options
      - projectId
      - status
      - submittedAt
    post-migration-job-request:
      type: object
      properties:
        projectId:
          type: string
        jdbcConnectionDetails:
          "$ref": "#/components/schemas/jdbc-connection-details"
        mongodbConnectionDetails:
          "$ref": "#/components/schemas/mongodb-connection-details"
        options:
          "$ref": "#/components/schemas/migration-job-descriptor-options"
        verification:
          "$ref": "#/components/schemas/migration-verification"
        relationalTableFilters:
          "$ref": "#/components/schemas/relational-table-filters"
      additionalProperties: false
      required:
      - jdbcConnectionDetails
      - mongodbConnectionDetails
      - options
      - projectId
      - verification
    job-update:
      type: object
      properties:
        eventType:
          type: string
          enum:
          - ERROR
          - WARNING
          - INFO
        stage:
          type: string
          enum:
          - SNAPSHOTTING
          - STREAMING
          - VERIFICATION
        message:
          type: string
        details:
          type: string
        timestamp:
          type: string
          format: date-time
        stackTrace:
          type: string
        errorCode:
          type: string
        suggestion:
          type: string
        locationType:
          type: string
          enum:
          - TABLE
          - COLLECTION
        locationName:
          type: string
        fieldName:
          type: string
        key:
          type: object
          additionalProperties:
            type: string
        count:
          type: integer
          format: int64
        location:
          "$ref": "#/components/schemas/job_update_location"
      required:
      - eventType
      - message
      - timestamp
    project-descriptor-summary:
      type: object
      properties:
        id:
          "$ref": "#/components/schemas/id"
        jdbcId:
          "$ref": "#/components/schemas/id"
        mongodbId:
          "$ref": "#/components/schemas/id"
        name:
          type: string
          maxLength: 50
          minLength: 1
        type:
          "$ref": "#/components/schemas/database-type"
        lastModified:
          type: string
          format: date-time
      additionalProperties: false
      required:
      - id
      - name
      - type
    ProjectDescriptor:
      type: object
      allOf:
      - "$ref": "#/components/schemas/ProjectDescriptorBase"
      - properties:
          id:
            "$ref": "#/components/schemas/id"
        required:
        - id
        type: object
    ProjectDescriptorBase:
      type: object
      properties:
        name:
          "$ref": "#/components/schemas/ProjectName"
        type:
          "$ref": "#/components/schemas/database-type"
        lastModified:
          type: string
          format: date-time
        codeId:
          "$ref": "#/components/schemas/id"
        schemasId:
          "$ref": "#/components/schemas/id"
        jdbcId:
          "$ref": "#/components/schemas/id"
        mongodbId:
          "$ref": "#/components/schemas/id"
        content:
          "$ref": "#/components/schemas/ProjectDescriptorContent"
        connectionDetails:
          "$ref": "#/components/schemas/ProjectDescriptorBase_connectionDetails"
        isSampleProject:
          type: boolean
      additionalProperties: false
      required:
      - content
      - name
      - schemasId
      - type
    ProjectName:
      type: string
      maxLength: 50
      minLength: 1
    ProjectDescriptorContent:
      type: object
      properties:
        settings:
          "$ref": "#/components/schemas/migration-settings"
        collections:
          "$ref": "#/components/schemas/migration-collections"
        mappings:
          "$ref": "#/components/schemas/migration-mappings"
        relationships:
          "$ref": "#/components/schemas/migration-relationships"
        diagrams:
          "$ref": "#/components/schemas/project-diagrams"
        tables:
          "$ref": "#/components/schemas/project-tables"
      required:
      - collections
      - diagrams
      - mappings
      - relationships
      - schemas
      - settings
      - tables
    codegen-request:
      type: object
      properties:
        collections:
          description: MongoDB collections to include in generated code
          type: array
          items:
            type: string
        includeSupportFiles:
          description: Whether to include support files, if applicable for the selected
            language and framework
          type: boolean
        language:
          "$ref": "#/components/schemas/codegen-language-type"
        framework:
          "$ref": "#/components/schemas/codegen-framework-type"
      additionalProperties: false
      required:
      - collections
      - framework
      - includeSupportFiles
      - language
    codegen-response:
      type: object
      properties:
        language:
          "$ref": "#/components/schemas/codegen-language-type"
        framework:
          "$ref": "#/components/schemas/codegen-framework-type"
        files:
          type: array
          items:
            "$ref": "#/components/schemas/codegen_response_files_inner"
      additionalProperties: false
      required:
      - files
      - framework
      - language
    codegen-metadata-response:
      type: object
      properties:
        metadata:
          type: array
          items:
            "$ref": "#/components/schemas/codegen_metadata_response_metadata_inner"
      required:
      - metadata
    export-file:
      type: object
      properties:
        version:
          type: string
        project:
          "$ref": "#/components/schemas/ProjectDescriptor"
        schema:
          "$ref": "#/components/schemas/project-descriptor-schemas"
        queries:
          type: array
          items:
            "$ref": "#/components/schemas/query-descriptor"
      additionalProperties: false
      required:
      - project
      - schema
      - version
    migration-job-statistics-preview:
      type: object
      properties:
        totalTableCount:
          type: integer
        totalEvents:
          type: integer
          format: int64
        totalEventSize:
          type: integer
          format: int64
      additionalProperties: false
    query-descriptor-summary:
      type: object
      properties:
        id:
          type: string
        projectId:
          type: string
        name:
          type: string
        inputQuery:
          type: string
        lastModifiedAt:
          type: string
          format: date-time
        queryType:
          "$ref": "#/components/schemas/query-input-type"
        queryStatus:
          "$ref": "#/components/schemas/query-output-status"
        targetLanguage:
          "$ref": "#/components/schemas/convert-query-language-type"
      required:
      - id
      - inputQuery
      - projectId
      - queryStatus
      - queryType
    adhoc-query-create-request:
      type: object
      properties:
        inputQuery:
          type: string
      additionalProperties: false
    query-descriptor:
      type: object
      properties:
        id:
          type: string
        projectId:
          type: string
        input:
          "$ref": "#/components/schemas/query-input"
        output:
          "$ref": "#/components/schemas/query-output"
      required:
      - id
      - input
      - output
      - projectId
    bulk-query-conversion-info:
      type: object
      properties:
        pendingQueries:
          type: array
          items:
            type: string
        runningQueries:
          type: array
          items:
            type: string
        completedQueries:
          type: array
          items:
            type: string
        failedQueries:
          type: array
          items:
            type: string
      additionalProperties: false
      required:
      - completedQueries
      - failedQueries
      - pendingQueries
      - runningQueries
    bulk-query-conversion-request:
      type: object
      properties:
        language:
          "$ref": "#/components/schemas/convert-query-language-type"
        queries:
          type: array
          items:
            type: string
        attemptTypedEntities:
          type: boolean
      additionalProperties: false
      required:
      - language
      - queries
    query-details-response:
      type: object
      properties:
        query:
          "$ref": "#/components/schemas/query-descriptor"
        convertedRunResult:
          "$ref": "#/components/schemas/query-run-result"
        sourceRunResult:
          "$ref": "#/components/schemas/query-run-result-source"
      required:
      - query
    convert-query-request:
      type: object
      properties:
        language:
          "$ref": "#/components/schemas/convert-query-language-type"
        attemptTypedEntities:
          type: boolean
          default: false
      additionalProperties: false
      required:
      - language
    query-run-result-page:
      type: object
      properties:
        data:
          type: string
        pageNumber:
          type: integer
        pageSize:
          type: integer
        total:
          type: integer
        hasMore:
          type: boolean
      required:
      - data
      - hasMore
      - pageNumber
      - pageSize
      - total
    query-run-result:
      type: object
      properties:
        id:
          type: string
        projectId:
          type: string
        executionTimeMs:
          type: number
        result:
          "$ref": "#/components/schemas/query-run-result-page"
        error:
          type: string
        logs:
          "$ref": "#/components/schemas/query-run-logs"
      required:
      - id
      - projectId
    query-run-result-source:
      allOf:
      - "$ref": "#/components/schemas/query-run-result"
      - additionalProperties: false
        properties:
          fieldMetadataMap:
            type: object
            additionalProperties:
              "$ref": "#/components/schemas/query_run_result_source_allOf_fieldMetadataMap"
        type: object
    project-descriptor-schemas:
      type: object
      properties:
        id:
          type: string
        full:
          "$ref": "#/components/schemas/schema-descriptor"
        imported:
          "$ref": "#/components/schemas/schema-imported"
        all:
          "$ref": "#/components/schemas/schema-imported"
      additionalProperties: false
      required:
      - full
      - imported
    schema-descriptor:
      type: object
      properties:
        databases:
          type: object
          additionalProperties:
            "$ref": "#/components/schemas/database"
        metadata:
          "$ref": "#/components/schemas/schema_descriptor_metadata"
      additionalProperties: false
      required:
      - databases
    convert-query-language-type:
      type: string
      enum:
      - JAVA
      - CSHARP
      - JAVASCRIPT
    analysis-report-preflight-checks:
      type: object
      properties:
        name:
          type: string
        migrationMode:
          "$ref": "#/components/schemas/migration-mode"
        passed:
          type: boolean
      additionalProperties: false
      required:
      - migrationMode
      - name
      - passed
    analysis-report-rules:
      type: object
      properties:
        id:
          type: string
        dboType:
          "$ref": "#/components/schemas/rule_dbo_type"
        ruleType:
          "$ref": "#/components/schemas/rule_type"
        entityName:
          type: string
        detectionText:
          type: string
        difficulty:
          "$ref": "#/components/schemas/rule_difficulty"
        mitigationText:
          type: string
        category:
          "$ref": "#/components/schemas/rule_category"
        incompatibleFeatureType:
          "$ref": "#/components/schemas/incompatible-feature-type"
      additionalProperties: false
      required:
      - category
      - dboType
      - detectionText
      - difficulty
      - entityName
      - id
      - mitigationText
      - ruleType
    analysis-report-db-metrics:
      type: object
      properties:
        totalDbSize:
          type: integer
          format: int64
        readHeavyTables:
          type: array
          items:
            "$ref": "#/components/schemas/database-object-path"
        writeHeavyTables:
          type: array
          items:
            "$ref": "#/components/schemas/database-object-path"
        allTables:
          type: array
          items:
            "$ref": "#/components/schemas/table-analysis-description"
        allStoredProcedures:
          type: array
          items:
            "$ref": "#/components/schemas/stored-procedure-analysis-description"
        allTriggers:
          type: array
          items:
            "$ref": "#/components/schemas/trigger-analysis-description"
        allViews:
          type: array
          items:
            "$ref": "#/components/schemas/view-analysis-description"
      additionalProperties: false
      required:
      - allStoredProcedures
      - allTables
      - allTriggers
      - allViews
      - readHeavyTables
      - totalDbSize
      - writeHeavyTables
    analysis-report-database-metadata:
      type: object
      properties:
        databaseVersion:
          type: string
        connectionId:
          type: string
        connectionName:
          type: string
        connectionUrl:
          type: string
        databaseType:
          type: string
        connectionType:
          "$ref": "#/components/schemas/connection-type"
      required:
      - connectionId
      - databaseType
    analysis-report-confidence-takeaway:
      type: object
      properties:
        type:
          "$ref": "#/components/schemas/rule_category"
        value:
          type: number
      additionalProperties: false
      required:
      - type
      - value
    analysis-report-rule-type-count-by-severity:
      type: object
      properties:
        task:
          type: integer
        risk:
          type: integer
        notice:
          type: integer
        none:
          type: integer
      additionalProperties: false
      required:
      - none
      - notice
      - risk
      - task
    detection-category-counts:
      type: object
      properties:
        severityCountsByDetectionCategory:
          type: object
          additionalProperties:
            "$ref": "#/components/schemas/analysis-report-rule-type-count-by-severity"
      additionalProperties: false
      required:
      - countsByDetectionCategory
    mongodb-connection-details:
      type: object
      properties:
        id:
          type: string
        connectionString:
          type: string
        projectId:
          description: Atlas projectId
          type: string
        savePassword:
          type: boolean
          default: false
        projectName:
          description: Atlas project name
          type: string
        clusterName:
          description: Atlas cluster name
          type: string
        existingConnectionId:
          type: string
      additionalProperties: false
      required:
      - connectionString
    connection-type:
      type: string
      enum:
      - DEMO
      - QA
      - STAGING
      - DEVELOPMENT
      - PRODUCTION
      - NONE
    database-type:
      description: Database type or a custom database type. For example, `MYSQL`,
        `ORACLE`, `POSTGRESQL`, `SQL_SERVER`, `COCKROACHDB`, `DB2`, `SQLANYWHERE`,
        `SYBASE`, `SYBASEIQ`, or `YUGABYTE`.
      type: string
      example: ORACLE
    migration-job-descriptor-options:
      type: object
      properties:
        dropCollections:
          type: boolean
          default: false
        mode:
          "$ref": "#/components/schemas/migration-mode"
        errorHandling:
          type: string
          default: FAIL
          enum:
          - FAIL
          - WARN
          - SKIP
        errorTolerance:
          description: |
            The number of failures (on the record level) that should be tolerated before terminating the migration.
            The value is strictly greater than or equal to.
          type: integer
          minimum: 0
      additionalProperties: false
      required:
      - mode
    migration-job-statistics:
      allOf:
      - "$ref": "#/components/schemas/migration-job-statistics-details"
      - "$ref": "#/components/schemas/migration-job-statistics-preview"
    cdc-job-statistics:
      type: object
      properties:
        startedAt:
          type: string
          format: date-time
        lastEventTime:
          type: string
          format: date-time
        eventsInLastHour:
          type: integer
          format: int64
          default: 0
        eventsInLastMinute:
          type: integer
          format: int64
          default: 0
        totalEventsSeen:
          type: integer
          format: int64
          default: 0
      additionalProperties: false
    failureError:
      type: object
      properties:
        errorType:
          type: string
        message:
          type: string
        failureAt:
          type: string
          format: date-time
        setupError:
          type: boolean
          default: false
      additionalProperties: false
      required:
      - errorType
      - failureAt
      - message
      - setupError
    verification-status-enum:
      type: string
      enum:
      - VERIFYING
      - FAILED
      - CANCELLING
      - CANCELLED
      - VERIFIED
      - ABORTED
    relational-table-filters:
      description: An object where each key represents a schema name. Each schema
        contains tables you can apply table filters on.
      type: object
      example:
        schema_1_name:
          table_1_name:
            whereClause: id > 1000 AND id <= 2000
          table_2_name:
            whereClause: 'TRUE'
            rowCount: 10
      additionalProperties:
        additionalProperties:
          "$ref": "#/components/schemas/table-filter"
        description: An object where each key represents a table name within a schema.
        type: object
    migration-verification:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
      additionalProperties: false
      required:
      - enabled
    tableLocation:
      type: object
      properties:
        table:
          type: string
      required:
      - table
    collectionLocation:
      type: object
      properties:
        collection:
          type: string
      required:
      - collection
    documentLocation:
      type: object
      properties:
        collection:
          type: string
        document:
          type: string
      required:
      - collection
      - document
    ddl-connection-details:
      type: object
      properties:
        type:
          "$ref": "#/components/schemas/database-type"
      additionalProperties: false
      required:
      - type
    migration-settings:
      type: object
      properties:
        viewMode:
          type: string
          enum:
          - HORIZONTAL
          - VERTICAL
          - RELATIONAL
          - MONGODB
        shouldRecommendSchema:
          type: boolean
        casing:
          type: string
          enum:
          - CAMEL_CASE
          - TITLE_CASE
          - KEBAB_CASE
          - SNAKE_CASE
          - UPPER_SNAKE_CASE
        codegen:
          "$ref": "#/components/schemas/codegen-settings"
        keyHandling:
          type: string
          enum:
          - WRAPPED
          - SINGLE
          - GENERATED
      additionalProperties: false
      required:
      - keyHandling
    migration-collections:
      type: object
      additionalProperties:
        "$ref": "#/components/schemas/collection"
    migration-mappings:
      type: object
      additionalProperties:
        "$ref": "#/components/schemas/mapping"
    migration-relationships:
      type: object
      properties:
        tables:
          type: object
          additionalProperties:
            "$ref": "#/components/schemas/mapping-object"
        collections:
          type: object
          additionalProperties:
            "$ref": "#/components/schemas/mapping-object"
        mappings:
          type: object
          additionalProperties:
            "$ref": "#/components/schemas/mapping-relationship"
      additionalProperties: false
      required:
      - collections
      - mappings
      - tables
    project-diagrams:
      type: object
      properties:
        activeTab:
          type: string
        tabs:
          type: array
          items:
            "$ref": "#/components/schemas/project-diagram"
      additionalProperties: false
      required:
      - activeTab
      - tabs
    project-tables:
      type: object
      additionalProperties:
        "$ref": "#/components/schemas/project-table"
    codegen-language-type:
      type: string
      enum:
      - JAVA
      - CSHARP
      - JAVASCRIPT
      - JSON
      - PYTHON
    codegen-framework-type:
      type: string
      enum:
      - POJO
      - POCO
      - SPRING_DATA
      - PERSISTENCE_LAYER
      - MONGOOSE_SCHEMAS
      - NODE
      - MONGODB_JSON_SCHEMA
      - STANDARD_JSON_SCHEMA
      - JSON_EXAMPLE_SCHEMA
      - PYTHON_TYPED_DICT_CLASSES
    codegen-filetype-type:
      type: string
      enum:
      - ENTITY
      - REPOSITORY
      - SUPPORT
    query-input-type:
      type: string
      enum:
      - STORED_PROCEDURE
      - TRIGGER
      - VIEW
      - USER_QUERY
      - PACKAGE
    query-output-status:
      type: string
      enum:
      - NOT_STARTED
      - RUNNING
      - FAILED
      - COMPLETED
      - PENDING
    query-input:
      type: object
      properties:
        database:
          type: string
        schema:
          type: string
        name:
          type: string
        query:
          type: string
        createdAt:
          type: string
          format: date-time
        runScriptTemplate:
          type: string
        queryType:
          "$ref": "#/components/schemas/query-input-type"
      additionalProperties: false
      required:
      - name
      - query
      - queryType
    query-output:
      type: object
      properties:
        query:
          type: string
        status:
          "$ref": "#/components/schemas/query-output-status"
        lastModifiedAt:
          type: string
          format: date-time
        language:
          "$ref": "#/components/schemas/convert-query-language-type"
        attemptedTypedEntities:
          type: boolean
        usedTypedEntities:
          type: boolean
          default: false
        errorMessage:
          type: string
        modified:
          type: boolean
        runScriptTemplate:
          type: string
        functionName:
          type: string
      additionalProperties: false
      required:
      - query
      - status
    query-run-logs:
      type: object
      properties:
        stdout:
          type: string
        stderr:
          type: string
      required:
      - stderr
      - stdout
    relational-path:
      type: object
      properties:
        database:
          type: string
        schema:
          type: string
        table:
          type: string
      additionalProperties: false
      required:
      - database
      - schema
      - table
    schema-imported:
      type: object
      additionalProperties:
        additionalProperties:
          additionalProperties:
            type: object
          type: object
        type: object
    database:
      type: object
      properties:
        schemas:
          type: object
          additionalProperties:
            "$ref": "#/components/schemas/schema"
      additionalProperties: false
      required:
      - schemas
    migration-mode:
      type: string
      enum:
      - SNAPSHOT
      - CDC
      - CDC_ONLY
    rule_dbo_type:
      type: string
      enum:
      - TABLE
      - VIEW
      - ROUTINE
      - INDEX
      - TRIGGER
      - DATABASE
      - COLUMN
    rule_type:
      type: string
      enum:
      - TASK
      - RISK
      - NOTICE
    rule_difficulty:
      type: string
      enum:
      - HIGH
      - MEDIUM
      - LOW
    rule_category:
      type: string
      enum:
      - DATA_TYPE
      - UNSUPPORTED_FEATURE
      - PERFORMANCE
      - SCHEMA
    incompatible-feature-type:
      type: string
      enum:
      - ORACLE-PACKAGE
      - ROUTINE
      - TRIGGERS
      - MATERIALIZED-VIEWS
    database-object-path:
      type: object
      properties:
        database:
          type: string
        schema:
          type: string
        name:
          type: string
      additionalProperties: false
      required:
      - database
      - name
      - schema
    table-analysis-description:
      type: object
      properties:
        path:
          "$ref": "#/components/schemas/database-object-path"
        dataSize:
          type: integer
          format: int64
        rowCount:
          type: integer
          format: int64
        readCount:
          type: integer
          format: int64
        writeCount:
          type: integer
          format: int64
        readWriteClassification:
          "$ref": "#/components/schemas/read-write-classification"
        columns:
          type: object
          additionalProperties:
            "$ref": "#/components/schemas/column"
      additionalProperties: false
      required:
      - columns
      - dataSize
      - path
      - readCount
      - readWriteClassification
      - rowCount
      - writeCount
    stored-procedure-analysis-description:
      type: object
      properties:
        path:
          "$ref": "#/components/schemas/database-object-path"
        definition:
          type: string
      additionalProperties: false
      required:
      - definition
      - path
    trigger-analysis-description:
      type: object
      properties:
        path:
          "$ref": "#/components/schemas/database-object-path"
        definition:
          type: string
      additionalProperties: false
      required:
      - definition
      - path
    view-analysis-description:
      type: object
      properties:
        path:
          "$ref": "#/components/schemas/database-object-path"
        definition:
          type: string
      additionalProperties: false
      required:
      - definition
      - path
    migration-job-statistics-details:
      type: object
      properties:
        startedAt:
          type: string
          format: date-time
        elapsedSeconds:
          type: integer
          format: int64
        remainingTableCount:
          type: integer
        processingTables:
          type: array
          items:
            type: string
        totalEventsSeen:
          type: integer
          format: int64
          default: 0
        snapshotCompleted:
          type: boolean
          default: false
      additionalProperties: false
    table-filter:
      type: object
      properties:
        whereClause:
          description: Contents of the SQL WHERE clause to filter rows for the specified
            source table.
          type: string
        rowCount:
          description: Optional limit to the number of rows returned from the source
            table.
          type: integer
          format: int64
      additionalProperties: false
    codegen-settings:
      type: object
      properties:
        language:
          "$ref": "#/components/schemas/codegen-language-type"
        framework:
          "$ref": "#/components/schemas/codegen-framework-type"
        withSupportingFiles:
          type: boolean
        excludedCollections:
          type: array
          items:
            type: string
    collection:
      type: object
      properties:
        name:
          type: string
        type:
          type: string
          default: REGULAR
          enum:
          - REGULAR
          - TIME_SERIES
        timeSeriesOptions:
          "$ref": "#/components/schemas/time-series-options"
      additionalProperties: false
      required:
      - name
    mapping:
      type: object
      properties:
        settings:
          "$ref": "#/components/schemas/mapping-settings"
        fields:
          type: object
          additionalProperties:
            "$ref": "#/components/schemas/field-mapping"
        calculatedFields:
          type: object
          additionalProperties:
            "$ref": "#/components/schemas/calculated-field-mapping"
        collectionId:
          type: string
        table:
          type: string
      additionalProperties: false
      required:
      - calculatedFields
      - collectionId
      - fields
      - settings
      - table
    mapping-object:
      type: object
      properties:
        mappings:
          "$ref": "#/components/schemas/mapping-array"
      additionalProperties: false
      required:
      - mappings
    mapping-relationship:
      type: object
      properties:
        children:
          "$ref": "#/components/schemas/mapping-array"
      additionalProperties: false
      required:
      - children
    project-diagram:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        notes:
          type: string
        relational:
          "$ref": "#/components/schemas/project-diagram-view"
        collection:
          "$ref": "#/components/schemas/project-diagram-view"
      required:
      - collection
      - id
      - name
      - relational
    project-table:
      type: object
      properties:
        path:
          "$ref": "#/components/schemas/relational-path"
      additionalProperties: false
      required:
      - path
    schema:
      type: object
      properties:
        tables:
          type: object
          additionalProperties:
            "$ref": "#/components/schemas/table"
        views:
          type: object
          additionalProperties:
            "$ref": "#/components/schemas/schema-object"
        routines:
          type: object
          additionalProperties:
            "$ref": "#/components/schemas/schema-object"
        triggers:
          type: object
          additionalProperties:
            "$ref": "#/components/schemas/schema-object"
        packages:
          type: object
          additionalProperties:
            "$ref": "#/components/schemas/schema-object"
      additionalProperties: false
      required:
      - tables
    read-write-classification:
      type: string
      enum:
      - READ_HEAVY
      - WRITE_HEAVY
      - READ_AND_WRITE_HEAVY
      - NONE
    column:
      type: object
      properties:
        type:
          "$ref": "#/components/schemas/column-type"
        ordinalPosition:
          type: integer
          minimum: 1
        primaryKey:
          "$ref": "#/components/schemas/primary-key"
        foreignKey:
          "$ref": "#/components/schemas/foreign-key"
        nullable:
          type: boolean
        autoIncremented:
          type: boolean
        generated:
          type: boolean
        hidden:
          type: boolean
        indexed:
          type: boolean
        uniqueIndexed:
          type: boolean
      additionalProperties: false
      required:
      - autoIncremented
      - generated
      - hidden
      - indexed
      - nullable
      - ordinalPosition
      - type
      - uniqueIndexed
    time-series-options:
      type: object
      properties:
        timeField:
          type: string
        metaField:
          type: string
        expireAfterSeconds:
          type: number
        granularity:
          type: string
          enum:
          - SECONDS
          - MINUTES
          - HOURS
      required:
      - granularity
      - timeField
    mapping-settings:
      type: object
      properties:
        type:
          "$ref": "#/components/schemas/mapping-type"
        notes:
          type: string
        embeddedPath:
          type: string
        primitive:
          type: boolean
        arrayConditions:
          "$ref": "#/components/schemas/mapping-array-conditions"
        foreignKeyName:
          type: string
        ruleFilter:
          type: string
      additionalProperties: false
      required:
      - type
    field-mapping:
      type: object
      properties:
        target:
          "$ref": "#/components/schemas/target-field-mapping"
        source:
          "$ref": "#/components/schemas/source-field-mapping"
      required:
      - source
      - target
    calculated-field-mapping:
      type: object
      properties:
        name:
          type: string
        isNullExcluded:
          type: boolean
          default: false
        type:
          "$ref": "#/components/schemas/migration-field-type"
        expression:
          type: string
      additionalProperties: false
      required:
      - expression
      - name
    mapping-array:
      type: array
      items:
        "$ref": "#/components/schemas/id"
    project-diagram-view:
      type: object
      properties:
        nodes:
          type: array
          items:
            "$ref": "#/components/schemas/project-diagrams-node"
        edges:
          type: array
          items:
            "$ref": "#/components/schemas/project-diagrams-edge"
      required:
      - edges
      - nodes
    table:
      type: object
      properties:
        type:
          type: string
          enum:
          - TABLE
          - VIEW
        size:
          type: integer
          format: int64
        columns:
          type: object
          additionalProperties:
            "$ref": "#/components/schemas/column"
        uniqueIndexes:
          type: object
          additionalProperties:
            items:
              type: string
            type: array
        nonUniqueIndexes:
          type: object
          additionalProperties:
            items:
              type: string
            type: array
        filter:
          "$ref": "#/components/schemas/table-filter"
      additionalProperties: false
      required:
      - columns
      - type
    schema-object:
      type: object
      properties:
        included:
          type: boolean
        name:
          type: string
        definition:
          type: string
      additionalProperties: false
      required:
      - definition
      - included
      - name
    column-type:
      type: object
      properties:
        databaseSpecificType:
          type: string
        precision:
          type: integer
        scale:
          type: integer
      additionalProperties: false
      required:
      - databaseSpecificType
    primary-key:
      type: object
      properties:
        name:
          type: string
      additionalProperties: false
      required:
      - name
    foreign-key:
      type: object
      properties:
        name:
          type: string
        schema:
          type: string
        table:
          type: string
        column:
          type: string
        cardinality:
          type: string
          enum:
          - UNKNOWN
          - ZERO_TO_ONE
          - ONE_TO_ONE
          - ZERO_TO_MANY
        synthetic:
          type: boolean
      additionalProperties: false
      required:
      - name
    mapping-type:
      type: string
      enum:
      - NEW_DOCUMENT
      - EMBEDDED_DOCUMENT
      - EMBEDDED_DOCUMENT_ARRAY
    mapping-array-conditions:
      type: object
      properties:
        sortBy:
          type: string
        order:
          "$ref": "#/components/schemas/sorting-order-type"
        limit:
          type: integer
          format: int32
      additionalProperties: false
      required:
      - order
      - sortBy
    target-field-mapping:
      type: object
      properties:
        name:
          type: string
        included:
          type: boolean
        isNullExcluded:
          type: boolean
          default: false
        type:
          "$ref": "#/components/schemas/migration-field-type"
      additionalProperties: false
      required:
      - included
      - name
      - type
    source-field-mapping:
      type: object
      properties:
        name:
          type: string
        databaseSpecificType:
          type: string
        isPrimaryKey:
          type: boolean
          default: false
      additionalProperties: false
      required:
      - databaseSpecificType
      - name
    migration-field-type:
      type: string
      enum:
      - AUTO
      - STRING
      - INTEGER
      - BOOL
      - DOUBLE
      - LONG
      - DECIMAL
      - ARRAY
      - DATE
      - TIMESTAMP
      - OBJECT
      - OBJECT_ID
      - BIN_DATA
      - MIN_KEY
      - MAX_KEY
      - JAVASCRIPT
      - REGEX
      - 'NULL'
    project-diagrams-node:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
        position:
          "$ref": "#/components/schemas/project_diagrams_node_position"
        width:
          type: number
        height:
          type: number
        hidden:
          type: boolean
      additionalProperties: false
      required:
      - hidden
      - id
      - position
      - type
    project-diagrams-edge:
      type: object
      properties:
        id:
          type: string
        source:
          type: string
        target:
          type: string
        markerStart:
          type: string
          enum:
          - START_ONE
          - START_ONE_OR_MANY
        markerEnd:
          type: string
          enum:
          - END_ONE
          - END_MANY
          - END_ONE_OR_MANY
      additionalProperties: false
      required:
      - id
      - source
      - target
    sorting-order-type:
      type: string
      enum:
      - ASC
      - DESC
    migration_job_status_atlasMetadata:
      type: object
      properties:
        mongoDbProjectName:
          type: string
        mongoDbProjectId:
          type: string
        mongoDbClusterName:
          type: string
    migration_job_status_metadata:
      type: object
      properties:
        telemetryUserId:
          type: string
        verificationRequested:
          type: boolean
          default: false
        verificationStatus:
          "$ref": "#/components/schemas/verification-status-enum"
      additionalProperties: false
    job_update_location:
      oneOf:
      - "$ref": "#/components/schemas/tableLocation"
      - "$ref": "#/components/schemas/collectionLocation"
      - "$ref": "#/components/schemas/documentLocation"
    ProjectDescriptorBase_connectionDetails:
      type: object
      properties:
        ddl:
          "$ref": "#/components/schemas/ddl-connection-details"
    codegen_response_files_inner:
      type: object
      properties:
        name:
          type: string
        filetype:
          "$ref": "#/components/schemas/codegen-filetype-type"
        code:
          type: string
      required:
      - code
      - filetype
      - name
    codegen_metadata_response_metadata_inner_frameworks_inner:
      type: object
      properties:
        hasSupportFiles:
          type: boolean
        framework:
          "$ref": "#/components/schemas/codegen-framework-type"
      required:
      - framework
      - hasSupportFiles
    codegen_metadata_response_metadata_inner:
      type: object
      properties:
        language:
          "$ref": "#/components/schemas/codegen-language-type"
        frameworks:
          type: array
          items:
            "$ref": "#/components/schemas/codegen_metadata_response_metadata_inner_frameworks_inner"
      required:
      - frameworks
      - language
    query_run_result_source_allOf_fieldMetadataMap:
      type: object
      properties:
        columnType:
          type: string
        columnIndex:
          type: integer
      required:
      - columnIndex
      - columnType
    schema_descriptor_metadata:
      type: object
      properties:
        databaseType:
          "$ref": "#/components/schemas/database-type"
        databaseVersion:
          type: string
    project_diagrams_node_position:
      type: object
      properties:
        x:
          type: number
        "y":
          type: number
      required:
      - x
      - "y"
tags:
- description: Generates an analysis report for an application before migration
  name: Analysis
- description: Code generation based on project mappings
  name: Codegen
- description: Data migration
  name: Job
- description: Captures relational schemas and mappings
  name: Project
- description: Query conversion
  name: Query
