NCI MoDaC API

The NCI Model and Data Clearinghouse (MoDaC) API provides programmatic access to cancer research data, computational models, and associated tools hosted in MoDaC. Developers can search, retrieve metadata, and download model/data artifacts produced by NCI-funded research programs.

Operations 37

PUT /api/v2/registration #
GET /api/v2/dataObject/** #
PUT /api/v2/dataObject/** #
GET /api/collection/** #
PUT /api/collection/** #
POST /uploadtask #
POST /predictionAccessGroups #
POST /performInferencing #
POST /performInferencing/performModelAnalysis #
POST /metaDataPermissionsList #
POST /emailNotifications/subscribe #
POST /downloadtask #
POST /downloadsync #
POST /downloadfiles/download #
POST /download #
POST /deletePredictions #
POST /deleteCollection #
POST /delete/datafile #
POST /collection #
POST /api/v2/download #
POST /api/v2/dataObject/**/download #
POST /api/v2/collection/**/download #
POST /api/models/evaluate/** #
GET /api/model/evaluate/** #
POST /api/model/evaluate/** #
POST /api/dataObject/query #
POST /api/dataObject/**/syncDownload #
POST /api/dataObject/**/generateDownloadRequestURL #
POST /api/collection/query #
POST /addbulk #
POST /addDatafile #
POST /addCollection #
GET /api/v2/registration/** #
GET /api/download/** #
GET /api/dataObject/download/** #
GET /api/collection/download/** #
GET /api/authenticate #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/modac-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cancer-gov-modac-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: MoDaC API
  description: MoDaC API is a set of public rest API to access datasets stored in the repository
  x-apis-io-source: https://modac.cancer.gov/v3/api-docs
  x-apis-io-harvested: '2026-09-05'
  x-apis-io-method: searched
servers:
- url: https://modac.cancer.gov
  description: Production host (resolved from the URL this specification was served from; the published document
    carries 'http://localhost:8080')
paths:
  /api/v2/registration:
    put:
      tags:
      - rest-api-common-controller
      operationId: bulkRegistration
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HpcBulkDataObjectRegistrationRequestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
  /api/v2/dataObject/**:
    get:
      tags:
      - rest-api-common-controller
      operationId: getDataObject
      parameters:
      - name: includeAcl
        in: query
        required: false
        schema:
          type: boolean
      - name: excludeParentMetadata
        in: query
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
            application/octet-stream:
              schema:
                type: object
    put:
      tags:
      - rest-api-common-controller
      operationId: registerDataObject
      requestBody:
        content:
          application/json:
            schema:
              required:
              - dataObjectRegistration
              type: object
              properties:
                dataObjectRegistration:
                  $ref: '#/components/schemas/HpcDataObjectRegistrationRequestDTO'
                dataObject:
                  type: string
                  format: binary
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: integer
                format: int32
  /api/collection/**:
    get:
      tags:
      - rest-api-common-controller
      operationId: getCollection
      parameters:
      - name: list
        in: query
        required: false
        schema:
          type: boolean
      - name: includeAcl
        in: query
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
            application/octet-stream:
              schema:
                type: object
    put:
      tags:
      - rest-api-common-controller
      operationId: registerCollection
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HpcCollectionRegistrationDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: integer
                format: int32
  /uploadtask:
    post:
      tags:
      - doe-retry-uploadtask-controller
      operationId: retryUpload
      parameters:
      - name: taskId
        in: query
        required: true
        schema:
          type: string
      - name: taskName
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
  /predictionAccessGroups:
    post:
      tags:
      - asset-details-controller
      operationId: savePredictionAccessGroups
      parameters:
      - name: predCollId
        in: query
        required: true
        schema:
          type: string
      - name: predCollPath
        in: query
        required: true
        schema:
          type: string
      - name: selectedGrps[]
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
      - name: isPublic
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
  /performInferencing:
    post:
      tags:
      - perform-inferencing-controller
      operationId: performInfer
      requestBody:
        content:
          application/json:
            schema:
              required:
              - uploadTestInferFile
              - uploadTestOutputFile
              type: object
              properties:
                uploadTestInferFile:
                  type: string
                  format: binary
                uploadTestOutputFile:
                  type: string
                  format: binary
                inference:
                  $ref: '#/components/schemas/InferencingTaskModel'
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
  /performInferencing/performModelAnalysis:
    post:
      tags:
      - perform-inferencing-controller
      operationId: performModelAnalysis
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InferencingTaskModel'
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
  /metaDataPermissionsList:
    post:
      tags:
      - home-controller
      operationId: savePermissionsList
      parameters:
      - name: collectionId
        in: query
        required: true
        schema:
          type: string
      - name: path
        in: query
        required: true
        schema:
          type: string
      - name: selectedPermissions[]
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
  /emailNotifications/subscribe:
    post:
      tags:
      - release-notes-notifications-controller
      operationId: sendEmailUpdates
      parameters:
      - name: emailAddress
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
  /downloadtask:
    post:
      tags:
      - doe-retry-download-task-controller
      operationId: retryDownload
      parameters:
      - name: taskName
        in: query
        required: true
        schema:
          type: string
      - name: taskId
        in: query
        required: true
        schema:
          type: string
      - name: taskType
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
  /downloadsync:
    post:
      tags:
      - doe-sync-download-controller
      operationId: download
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DoeDownloadDatafile'
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
  /downloadfiles/download:
    post:
      tags:
      - doe-download-files-controller
      operationId: download_1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DoeDownloadDatafile_Public'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/AjaxResponseBody_Public'
  /download:
    post:
      tags:
      - doe-download-controller
      operationId: download_2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DoeDownloadDatafile_Public'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/AjaxResponseBody_Public'
  /deletePredictions:
    post:
      tags:
      - delete-predictions-controller
      operationId: deletePredictions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeletePredictionsModel'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
  /deleteCollection:
    post:
      tags:
      - delete-collection-controller
      operationId: deletCollection
      parameters:
      - name: collPath
        in: query
        required: true
        schema:
          type: string
      - name: collectionType
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
  /delete/datafile:
    post:
      tags:
      - delete-data-file-controller
      operationId: deleteObject
      parameters:
      - name: deletepath
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
  /collection:
    post:
      tags:
      - doe-collection-controller
      operationId: updateCollection
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DoeCollectionModel'
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
  /api/v2/download:
    post:
      tags:
      - rest-api-common-controller
      operationId: downloadDataObjectsOrCollections
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HpcBulkDataObjectDownloadRequestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
  /api/v2/dataObject/**/download:
    post:
      tags:
      - rest-api-common-controller
      operationId: syncAndasynchronousDownload
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HpcDownloadRequestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
  /api/v2/collection/**/download:
    post:
      tags:
      - rest-api-common-controller
      operationId: collectionDownload
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HpcDownloadRequestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
  /api/models/evaluate/**:
    post:
      tags:
      - rest-api-common-controller
      operationId: performModelEvaluationForReferenceDatasets
      requestBody:
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/ModelPath'
          application/json:
            schema:
              $ref: '#/components/schemas/ModelPath'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/xml:
              schema:
                type: object
            application/json:
              schema:
                type: object
  /api/model/evaluate/**:
    get:
      tags:
      - rest-api-common-controller
      operationId: getStatusByTaskId
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
            application/octet-stream:
              schema:
                type: object
    post:
      tags:
      - rest-api-common-controller
      operationId: performModelEvaluationForDatasets
      parameters:
      - name: type
        in: query
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                referenceDataset:
                  $ref: '#/components/schemas/ReferenceDataset'
                inputFile:
                  type: string
                  format: binary
                outcomeFile:
                  type: string
                  format: binary
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
  /api/dataObject/query:
    post:
      tags:
      - rest-api-common-controller
      operationId: queryDataObjects
      parameters:
      - name: returnParent
        in: query
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/HpcCompoundMetadataQueryDTO'
          application/json:
            schema:
              $ref: '#/components/schemas/HpcCompoundMetadataQueryDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/xml:
              schema:
                type: object
            application/json:
              schema:
                type: object
  /api/dataObject/**/syncDownload:
    post:
      tags:
      - rest-api-common-controller
      operationId: synchronousDownload
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
  /api/dataObject/**/generateDownloadRequestURL:
    post:
      tags:
      - rest-api-common-controller
      operationId: generateDownloadRequestURL
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
  /api/collection/query:
    post:
      tags:
      - rest-api-common-controller
      operationId: queryCollections
      requestBody:
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/HpcCompoundMetadataQueryDTO'
          application/json:
            schema:
              $ref: '#/components/schemas/HpcCompoundMetadataQueryDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/xml:
              schema:
                type: object
            application/json:
              schema:
                type: object
  /addbulk:
    post:
      tags:
      - doe-create-bulk-datafile-controller
      operationId: createDatafile
      parameters:
      - name: isFormBulkAssetUpload
        in: query
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                doeDataFileModel:
                  $ref: '#/components/schemas/DoeDatafileModel'
                doeMetadataFile:
                  type: string
                  format: binary
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
  /addDatafile:
    post:
      tags:
      - doe-create-datafile-controller
      operationId: createDatafile_1
      parameters:
      - name: dataFilePath
        in: query
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              required:
              - doeDataFile
              type: object
              properties:
                doeDataFileModel:
                  $ref: '#/components/schemas/DoeDatafileModel'
                doeDataFile:
                  type: string
                  format: binary
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
  /addCollection:
    post:
      tags:
      - doe-create-collection-controller
      operationId: createCollection
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DoeCollectionModel'
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
  /api/v2/registration/**:
    get:
      tags:
      - rest-api-common-controller
      operationId: getDataObjectsRegistrationStatus
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
  /api/download/**:
    get:
      tags:
      - rest-api-common-controller
      operationId: getDataObjectsOrCollectionsDownloadStatus
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
  /api/dataObject/download/**:
    get:
      tags:
      - rest-api-common-controller
      operationId: getDataObjectDownloadStatus
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
  /api/collection/download/**:
    get:
      tags:
      - rest-api-common-controller
      operationId: getCollectionDownloadStatus
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
  /api/authenticate:
    get:
      tags:
      - rest-api-common-controller
      operationId: authenticate
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
components:
  schemas:
    HpcBulkDataObjectRegistrationRequestDTO:
      type: object
      properties:
        dataObjectRegistrationItems:
          type: array
          items:
            $ref: '#/components/schemas/HpcDataObjectRegistrationItemDTO'
        directoryScanRegistrationItems:
          type: array
          items:
            $ref: '#/components/schemas/HpcDirectoryScanRegistrationItemDTO'
        dryRun:
          type: boolean
        uiURL:
          type: string
    HpcBulkMetadataEntries:
      type: object
      properties:
        defaultCollectionMetadataEntries:
          type: array
          items:
            $ref: '#/components/schemas/HpcMetadataEntry'
        pathsMetadataEntries:
          type: array
          items:
            $ref: '#/components/schemas/HpcBulkMetadataEntry'
    HpcBulkMetadataEntry:
      type: object
      properties:
        path:
          type: string
        pathMetadataEntries:
          type: array
          items:
            $ref: '#/components/schemas/HpcMetadataEntry'
    HpcDataObjectRegistrationItemDTO:
      type: object
      properties:
        path:
          type: string
        globusUploadSource:
          $ref: '#/components/schemas/HpcUploadSource'
        s3UploadSource:
          $ref: '#/components/schemas/HpcStreamingUploadSource'
        googleDriveUploadSource:
          $ref: '#/components/schemas/HpcStreamingUploadSource'
        googleCloudStorageUploadSource:
          $ref: '#/components/schemas/HpcStreamingUploadSource'
        fileSystemUploadSource:
          $ref: '#/components/schemas/HpcUploadSource'
        archiveLinkSource:
          $ref: '#/components/schemas/HpcUploadSource'
        linkSourcePath:
          type: string
        callerObjectId:
          type: string
        dataObjectMetadataEntries:
          type: array
          items:
            $ref: '#/components/schemas/HpcMetadataEntry'
        createParentCollections:
          type: boolean
        parentCollectionsBulkMetadataEntries:
          $ref: '#/components/schemas/HpcBulkMetadataEntries'
        s3ArchiveConfigurationId:
          type: string
    HpcDirectoryScanPathMap:
      type: object
      properties:
        fromPath:
          type: string
        toPath:
          type: string
        regexPathMap:
          type: boolean
    HpcDirectoryScanRegistrationItemDTO:
      type: object
      properties:
        basePath:
          type: string
        globusScanDirectory:
          $ref: '#/components/schemas/HpcScanDirectory'
        s3ScanDirectory:
          $ref: '#/components/schemas/HpcS3ScanDirectory'
        googleDriveScanDirectory:
          $ref: '#/components/schemas/HpcGoogleScanDirectory'
        googleCloudStorageScanDirectory:
          $ref: '#/components/schemas/HpcGoogleScanDirectory'
        fileSystemScanDirectory:
          $ref: '#/components/schemas/HpcScanDirectory'
        s3ArchiveScanDirectory:
          $ref: '#/components/schemas/HpcScanDirectory'
        posixArchiveScanDirectory:
          $ref: '#/components/schemas/HpcScanDirectory'
        callerObjectId:
          type: string
        includePatterns:
          type: array
          items:
            type: string
        excludePatterns:
          type: array
          items:
            type: string
        patternType:
          type: string
          enum:
          - SIMPLE
          - REGEX
        bulkMetadataEntries:
          $ref: '#/components/schemas/HpcBulkMetadataEntries'
        pathMap:
          $ref: '#/components/schemas/HpcDirectoryScanPathMap'
        s3ArchiveConfigurationId:
          type: string
    HpcFileLocation:
      type: object
      properties:
        fileContainerId:
          type: string
        fileContainerName:
          type: string
        fileId:
          type: string
    HpcGoogleScanDirectory:
      type: object
      properties:
        directoryLocation:
          $ref: '#/components/schemas/HpcFileLocation'
        accessToken:
          type: string
    HpcMetadataEntry:
      type: object
      properties:
        attribute:
          type: string
        value:
          type: string
        unit:
          type: string
        level:
          type: integer
          format: int32
        levelLabel:
          type: string
        collectionId:
          type: integer
          format: int32
        dateFormat:
          type: string
    HpcS3Account:
      type: object
      properties:
        accessKey:
          type: string
        secretKey:
          type: string
        region:
          type: string
        url:
          type: string
        pathStyleAccessEnabled:
          type: boolean
    HpcS3ScanDirectory:
      type: object
      properties:
        directoryLocation:
          $ref: '#/components/schemas/HpcFileLocation'
        account:
          $ref: '#/components/schemas/HpcS3Account'
    HpcScanDirectory:
      type: object
      properties:
        directoryLocation:
          $ref: '#/components/schemas/HpcFileLocation'
    HpcStreamingUploadSource:
      type: object
      properties:
        sourceLocation:
          $ref: '#/components/schemas/HpcFileLocation'
        account:
          $ref: '#/components/schemas/HpcS3Account'
        accessToken:
          type: string
        sourceURL:
          type: string
        sourceSize:
          type: integer
          format: int64
        sourceInputStream:
          type: object
    HpcUploadSource:
      type: object
      properties:
        sourceLocation:
          $ref: '#/components/schemas/HpcFileLocation'
    HpcDataObjectRegistrationRequestDTO:
      type: object
      properties:
        globusUploadSource:
          $ref: '#/components/schemas/HpcUploadSource'
        s3UploadSource:
          $ref: '#/components/schemas/HpcStreamingUploadSource'
        googleDriveUploadSource:
          $ref: '#/components/schemas/HpcStreamingUploadSource'
        googleCloudStorageUploadSource:
          $ref: '#/components/schemas/HpcStreamingUploadSource'
        fileSystemUploadSource:
          $ref: '#/components/schemas/HpcUploadSource'
        archiveLinkSource:
          $ref: '#/components/schemas/HpcUploadSource'
        generateUploadRequestURL:
          type: boolean
        extractMetadata:
          type: boolean
        editMetadata:
          type: boolean
        uploadParts:
          type: integer
          format: int32
        uploadCompletion:
          type: boolean
        linkSourcePath:
          type: string
        callerObjectId:
          type: string
        metadataEntries:
          type: array
          items:
            $ref: '#/components/schemas/HpcMetadataEntry'
        extractedMetadataEntries:
          type: array
          items:
            $ref: '#/components/schemas/HpcMetadataEntry'
        createParentCollections:
          type: boolean
        parentCollectionsBulkMetadataEntries:
          $ref: '#/components/schemas/HpcBulkMetadataEntries'
        checksum:
          type: string
        s3ArchiveConfigurationId:
          type: string
    HpcCollectionRegistrationDTO:
      type: object
      properties:
        metadataEntries:
          type: array
          items:
            $ref: '#/components/schemas/HpcMetadataEntry'
        createParentCollections:
          type: boolean
        parentCollectionsBulkMetadataEntries:
          $ref: '#/components/schemas/HpcBulkMetadataEntries'
        linkSourcePath:
          type: string
    InferencingTaskModel:
      type: object
      properties:
        taskId:
          type: string
        userId:
          type: string
        resultPath:
          type: string
        assetPath:
          type: string
        testInputPath:
          type: string
        modelPath:
          type: string
        uploadFrom:
          type: string
        outcomeFileName:
          type: string
        applicableModelNamesList:
          type: string
        outcomeFilePath:
          type: string
        isReferenceAsset:
          type: boolean
        referenceDatasetList:
          type: string
    DoeDownloadDatafile:
      type: object
      properties:
        endPointName:
          type: string
        endPointLocation:
          type: string
        destinationPath:
          type: string
        downloadFileName:
          type: string
        bucketName:
          type: string
        s3Path:
          type: string
        accessKey:
          type: string
        secretKey:
          type: string
        region:
          type: string
        searchType:
          type: string
        downloadType:
          type: string
        selectedPaths:
          type: string
        drivePath:
          type: string
        googleCloudPath:
          type: string
        googleCloudBucketName:
          type: string
        downloadToDestination:
          type: string
    DoeDownloadDatafile_Public:
      type: object
      properties:
        endPointName:
          type: string
        endPointLocation:
          type: string
        destinationPath:
          type: string
        downloadFileName:
          type: string
        bucketName:
          type: string
        s3Path:
          type: string
        accessKey:
          type: string
        secretKey:
          type: string
        region:
          type: string
        searchType:
          type: string
        downloadType:
          type: string
        selectedPaths:
          type: string
        drivePath:
          type: string
        googleCloudPath:
          type: string
        googleCloudBucketName:
          type: string
        downloadToDestination:
          type: string
    AjaxResponseBody_Public:
      type: object
      properties:
        message:
          type: string
        code:
          type: string
    DeletePredictionsModel:
      type: object
      properties:
        deletepaths:
          type: string
        taskId:
          type: string
        predCollectionPath:
          type: string
    DoeCollectionModel:
      type: object
      properties:
        path:
          type: string
        collection:
          $ref: '#/components/schemas/HpcCollection'
        selfMetadataEntries:
          type: array
          items:
            $ref: '#/components/schemas/DoeMetadataAttrEntry'
        parentMetadataEntries:
          type: array
          items:
            $ref: '#/components/schemas/DoeMetadataAttrEntry'
        attributes:
          type: object
          additionalProperties:
            type: string
        defaultValue:
          type: string
        validValues:
          type: array
          items:
            type: string
        dataObject:
          type: string
          writeOnly: true
    DoeMetadataAttrEntry:
      type: object
      properties:
        attrName:
          type: string
        attrValue:
          type: string
        attrUnit:
          type: string
        systemAttr:
          type: boolean
        validValues:
          type: array
          items:
            $ref: '#/components/schemas/KeyValueBean'
        defaultValue:
          type: string
        description:
          type: string
        mandatory:
          type: boolean
        displayName:
          type: string
        isEditable:
          type: boolean
        displayOrder:
          type: integer
          format: int32
        controllerAttribute:
          type: boolean
        isVisible:
          type: boolean
        isVisibleOnUplaodPage:
          type: boolean
        isVisibleForReviewCommiteeMember:
          type: boolean
        controllerAttrName:
          type: string
        controllerAttrValue:
          type: string
    HpcCollection:
      type: object
      properties:
        collectionId:
          type: integer
          format: int32
        collectionName:
          type: string
        absolutePath:
          type: string
        collectionParentName:
          type: string
        collectionOwnerName:
          type: string
        collectionOwnerZone:
          type: string
        collectionMapId:
          type: string
        collectionInheritance:
          type: string
        comments:
          type: string
        info1:
          type: string
        info2:
          type: string
        createdAt:
          type: string
          format: date-time
        specColType:
          type: string
        isSoftlink:
          type: boolean
        subCollections:
          type: array
          items:
            $ref: '#/components/schemas/HpcCollectionListingEntry'
        dataObjects:
          type: array
          items:
            $ref: '#/components/schemas/HpcCollectionListingEntry'
        subCollectionsTotalRecords:
          type: integer
          format: int32
        dataObjectsTotalRecords:
          type: integer
          format: int32
    HpcCollectionListingEntry:
      type: object
      properties:
        id:
          type: integer
          format: int32
        path:
          type: string
        dataSize:
          type: integer
          format: int64
        createdAt:
          type: string
          format: date-time
        isSoftlink:
          type: boolean
    KeyValueBean:
      type: object
      properties:
        key:
          type: string
        value:
          type: string
        displayName:
          type: string
        displayOrder:
          type: integer
          format: int32
    HpcAsperaAccount:
      type: object
      properties:
        user:
          type: string
        host:
          type: string
        password:
          type: string
    HpcAsperaDownloadDestination:
      type: object
      properties:
        destinationLocation:
          $ref: '#/components/sche

# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cancer-gov/refs/heads/main/openapi/cancer-gov-modac-openapi.yml