DoiT Cloud Diagrams API

Cloud Diagrams visualize your cloud infrastructure and resource relationships.

Operations 12

POST /clouddiagrams/v1/scheme/find Find diagrams #
GET /clouddiagrams/v1/scheme/stats Get diagrams with stats #
POST /clouddiagrams/v1/scheme/get Get diagram components #
POST /clouddiagrams/v1/scheme/search Search diagrams and components #
POST /clouddiagrams/v1/statussheet/{id}/get Get layer components #
GET /clouddiagrams/v1/statussheet/{id}/export-json Export diagram as JSON #
GET /clouddiagrams/v1/statussheet/{id}/costs Get diagram cost snapshot #
GET /clouddiagrams/v1/statussheet/{id}/snapshots List layer snapshots #
GET /clouddiagrams/v1/statussheet/{id}/snapshot Get a layer snapshot #
GET /clouddiagrams/v1/statussheet/{id}/resources/{rid}/relationships Get resource relationships #
GET /clouddiagrams/v1/activity List activity groups for a layer #
GET /clouddiagrams/v1/activity/node-activities List node activities #

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/doit-cloud-diagrams-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 email required.

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

OpenAPI Specification

doit-cloud-diagrams-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: DoiT Cloud Diagrams API
  description: Programmatic access to DoiT Platform
  version: v1
servers:
- url: https://api.doit.com
security:
- api_key: []
- tenantId: []
  api_key: []
tags:
- name: Cloud Diagrams
  description: Cloud Diagrams visualize your cloud infrastructure and resource relationships.
paths:
  /clouddiagrams/v1/scheme/find:
    post:
      tags:
      - Cloud Diagrams
      summary: Find diagrams
      description: Returns diagram URLs matching the provided resource IDs.
      operationId: findCloudDiagrams
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FindCloudDiagramsRequest'
      responses:
        '200':
          description: OK - Diagram URLs matching the criteria returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FindCloudDiagramsResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
  /clouddiagrams/v1/scheme/stats:
    get:
      tags:
      - Cloud Diagrams
      summary: Get diagrams with stats
      description: Returns a list of all diagrams with activity stats for the given time period.
      operationId: getCloudDiagramsStats
      parameters:
      - name: start
        in: query
        required: true
        description: Start of the period.
        example: '2026-04-01T00:00:00Z'
        schema:
          type: string
          format: date-time
      - name: end
        in: query
        required: true
        description: End of the period.
        example: '2026-04-28T00:00:00Z'
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: OK - List of diagrams with stats returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CloudDiagramStats'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
  /clouddiagrams/v1/scheme/get:
    post:
      tags:
      - Cloud Diagrams
      summary: Get diagram components
      description: 'Returns diagram and layer data. When the request body is empty, returns all diagrams

        the caller has access to. When the body is populated, returns full diagram data including

        layer components projected to key display and cloud fields.'
      operationId: getCloudDiagramComponents
      parameters:
      - name: components
        in: query
        description: Include components in the layer response.
        schema:
          type: boolean
      - name: external
        in: query
        description: Include external (cross-diagram) components.
        schema:
          type: boolean
      - name: element
        in: query
        description: Include elements.
        schema:
          type: boolean
      - name: link
        in: query
        description: Include links.
        schema:
          type: boolean
      - name: group
        in: query
        description: Include groups.
        schema:
          type: boolean
      - name: note
        in: query
        description: Include notes.
        schema:
          type: boolean
      - name: combiner
        in: query
        description: Include combiners.
        schema:
          type: boolean
      - name: type
        in: query
        description: Filter diagrams by type.
        schema:
          type: array
          items:
            type: string
            enum:
            - application
            - infrastructure
            - network
            - template
      - name: node_type
        in: query
        description: Filter components by node type.
        schema:
          type: string
          enum:
          - app_component
          - app_group
          - app_link
          - attachment
          - group
          - host
          - link
          - service
      - name: alarms_count
        in: query
        description: Include alarm counts (default true).
        schema:
          type: boolean
      - name: issues_count
        in: query
        description: Include issue counts.
        schema:
          type: boolean
      - name: skip_empty
        in: query
        description: Omit diagrams that have no components.
        schema:
          type: boolean
      - name: exclude_default_vpc
        in: query
        description: Exclude the default VPC group (default true).
        schema:
          type: boolean
      - name: exclude_empty_subnets
        in: query
        description: Exclude empty subnet groups (default true).
        schema:
          type: boolean
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloudDiagramsGetRequest'
      responses:
        '200':
          description: OK - Diagram and component data returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudDiagramsGetResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
  /clouddiagrams/v1/scheme/search:
    post:
      tags:
      - Cloud Diagrams
      summary: Search diagrams and components
      description: 'Full-text search across diagram layers, components by name, and components

        by property values. Returns three result categories: diagram (matching layers), component

        (matching components by name), and prop (matching components by property values).'
      operationId: searchCloudDiagrams
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloudDiagramsSearchRequest'
      responses:
        '200':
          description: OK - Search results returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudDiagramsSearchResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
  /clouddiagrams/v1/statussheet/{id}/get:
    post:
      tags:
      - Cloud Diagrams
      summary: Get layer components
      description: 'Returns the specified components of a diagram layer. Provide at least one component

        type with one or more IDs in the request body (for example, `node` or `element`).'
      operationId: getStatussheetComponents
      parameters:
      - name: id
        in: path
        required: true
        description: Layer ID.
        schema:
          type: string
      - name: p
        in: query
        description: Space-separated projection fields for component documents.
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloudDiagramStatussheetGetRequest'
      responses:
        '200':
          description: OK - Layer components returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudDiagramStatussheetComponents'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403_resource_or_forbidden'
  /clouddiagrams/v1/statussheet/{id}/export-json:
    get:
      tags:
      - Cloud Diagrams
      summary: Export diagram as JSON
      description: 'Exports the full content of a diagram layer as a structured JSON document,

        including all components and export metadata.'
      operationId: exportCloudDiagramJson
      parameters:
      - name: id
        in: path
        required: true
        description: Layer ID.
        schema:
          type: string
      responses:
        '200':
          description: OK - Diagram exported as JSON.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudDiagramExportJsonResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403_resource_or_forbidden'
  /clouddiagrams/v1/statussheet/{id}/costs:
    get:
      tags:
      - Cloud Diagrams
      summary: Get diagram cost snapshot
      description: 'Returns a bounded cost snapshot for the specified diagram layer over a date window.

        The response composes the diagram''s total spend, period-over-period change, top

        resources by cost (capped at 5), top services by cost (capped at 5), and a trend

        series (most recent 12 buckets at the requested interval).'
      operationId: getCloudDiagramCostSnapshot
      parameters:
      - name: id
        in: path
        required: true
        description: Layer ID.
        schema:
          type: string
      - name: startDate
        in: query
        required: true
        description: Inclusive start of the cost window (ISO date, e.g. `2026-04-01`).
        schema:
          type: string
          format: date
      - name: endDate
        in: query
        required: true
        description: Inclusive end of the cost window (ISO date, e.g. `2026-04-28`).
        schema:
          type: string
          format: date
      - name: interval
        in: query
        required: false
        description: Bucket interval for the trend series. Defaults to `day` when omitted.
        schema:
          type: string
          enum:
          - day
          - week
          - month
      responses:
        '200':
          description: OK - Diagram cost snapshot returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudDiagramCostSnapshot'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403_resource_or_forbidden'
  /clouddiagrams/v1/statussheet/{id}/snapshots:
    get:
      tags:
      - Cloud Diagrams
      summary: List layer snapshots
      description: Returns the list of saved snapshots for the specified diagram layer.
      operationId: listCloudDiagramLayerSnapshots
      parameters:
      - name: id
        in: path
        required: true
        description: Layer ID.
        schema:
          type: string
      - name: offset
        in: query
        description: Number of snapshots to skip (default 0).
        schema:
          type: integer
          minimum: 0
      - name: limit
        in: query
        description: Maximum number of snapshots to return (default 10).
        schema:
          type: integer
          minimum: 1
      - name: sort
        in: query
        description: Sort expression (e.g. "-createdAt" for descending).
        schema:
          type: string
      responses:
        '200':
          description: OK - Snapshots returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CloudDiagramLayerSnapshot'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403_resource_or_forbidden'
  /clouddiagrams/v1/statussheet/{id}/snapshot:
    get:
      tags:
      - Cloud Diagrams
      summary: Get a layer snapshot
      description: Returns a single snapshot of the specified diagram layer identified by its ID.
      operationId: getCloudDiagramLayerSnapshot
      parameters:
      - name: id
        in: path
        required: true
        description: Layer ID.
        schema:
          type: string
      - name: snapshot_id
        in: query
        required: true
        description: Snapshot ID.
        schema:
          type: string
      responses:
        '200':
          description: OK - Snapshot returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudDiagramLayerSnapshot'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403_resource_or_forbidden'
  /clouddiagrams/v1/statussheet/{id}/resources/{rid}/relationships:
    get:
      tags:
      - Cloud Diagrams
      summary: Get resource relationships
      description: 'Walks the diagram graph from the anchor resource and returns related resources.

        Edge traversal walks the diagram''s link set (same-scheme guard, BFS, cycle-safe);

        group traversal walks the group membership set. The result list is capped at 200

        relations; `truncated` is `true` when the cap is hit. Read-only: does not mutate

        diagram state.'
      operationId: getCloudDiagramResourceRelationships
      parameters:
      - name: id
        in: path
        required: true
        description: Diagram (layer) ID.
        schema:
          type: string
      - name: rid
        in: path
        required: true
        description: Anchor resource ID — must exist as a node, element, or group on the diagram.
        schema:
          type: string
      - name: direction
        in: query
        description: Edge direction relative to the anchor. `both` returns upstream and downstream neighbours. Defaults to `both`.
        schema:
          type: string
          enum:
          - downstream
          - upstream
          - both
          default: both
      - name: depth
        in: query
        description: '`direct` returns one-hop neighbours; `transitive` runs a cycle-safe BFS to the

          connected component (still capped at 200 relations). Defaults to `direct`.'
        schema:
          type: string
          enum:
          - direct
          - transitive
          default: direct
      - name: kind
        in: query
        description: '`edges` walks the link graph; `group_members` walks group membership (children

          and parent groups); `both` merges the two and dedupes by id, preserving the

          smallest observed hop count. Defaults to `edges`.'
        schema:
          type: string
          enum:
          - edges
          - group_members
          - both
          default: edges
      responses:
        '200':
          description: OK - Related resources returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DiagramRelationshipsResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403_resource_or_forbidden'
        '404':
          $ref: '#/components/responses/404'
  /clouddiagrams/v1/activity:
    get:
      tags:
      - Cloud Diagrams
      summary: List activity groups for a layer
      description: 'Returns snapshot activity groups for the specified diagram layer,

        ordered by timestamp descending. Each group contains a snapshot reference

        and the individual activity records that belong to it.'
      operationId: listCloudDiagramActivityGroups
      parameters:
      - name: ss_id
        in: query
        required: true
        description: Layer ID.
        schema:
          type: string
      - name: limit
        in: query
        description: Maximum number of groups to return (default 10).
        schema:
          type: integer
          minimum: 1
      - name: offset
        in: query
        description: Number of groups to skip (default 0).
        schema:
          type: integer
          minimum: 0
      - name: tags
        in: query
        description: Filter by tags.
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: OK - Activity groups returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CloudDiagramSnapshotActivityGroup'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
  /clouddiagrams/v1/activity/node-activities:
    get:
      tags:
      - Cloud Diagrams
      summary: List node activities
      description: Returns individual activity records for the specified component node, ordered by timestamp descending.
      operationId: listCloudDiagramNodeActivities
      parameters:
      - name: ss_id
        in: query
        required: true
        description: Layer ID.
        schema:
          type: string
      - name: nodeId
        in: query
        required: true
        description: Node component ID.
        schema:
          type: string
      - name: limit
        in: query
        description: Maximum number of records to return (default 50).
        schema:
          type: integer
          minimum: 1
      - name: offset
        in: query
        description: Number of records to skip (default 0).
        schema:
          type: integer
          minimum: 0
      responses:
        '200':
          description: OK - Node activity records returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CloudDiagramNodeActivity'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
components:
  responses:
    '400':
      description: Bad Request - The server cannot process the request, often due to a malformed request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    '401':
      description: Unauthorized - Invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    '403':
      description: Forbidden - The client is not authorized to perform the request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    403_resource_or_forbidden:
      description: 'Forbidden - Either the resource does not exist, or the caller is not authorized to access it. These two cases are deliberately indistinguishable to avoid information disclosure: the access guard runs before any existence check, so callers receive 403 (not 404) for unknown IDs on this endpoint. Used by Cloud Diagrams routes keyed by a path-param resource id (e.g. `/clouddiagrams/v1/statussheet/{id}/...`).'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    '404':
      description: Not Found - The requested resource does not exist.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    DiagramRelationshipsResponse:
      type: object
      required:
      - anchor
      - direction
      - depth
      - kind
      - relations
      - truncated
      description: The response payload for the resource relationships endpoint.
      properties:
        anchor:
          $ref: '#/components/schemas/DiagramRelationshipsAnchor'
        direction:
          type: string
          enum:
          - downstream
          - upstream
          - both
        depth:
          type: string
          enum:
          - direct
          - transitive
        kind:
          type: string
          enum:
          - edges
          - group_members
          - both
        relations:
          type: array
          items:
            $ref: '#/components/schemas/DiagramRelationship'
          description: Resources related to the anchor (capped at 200).
        truncated:
          type: boolean
          description: True when the relation list was capped at 200 entries.
    CloudDiagramsSearchResponse:
      type: object
      description: Search results grouped into three categories.
      properties:
        scheme:
          type: array
          description: Diagram layers (cloud accounts) matching the query.
          items:
            $ref: '#/components/schemas/CloudDiagramSchemeSearchItem'
        component:
          type: array
          description: Components matching the query by name.
          items:
            $ref: '#/components/schemas/CloudDiagramComponentSearchItem'
        prop:
          type: array
          description: Components matching the query by property values.
          items:
            $ref: '#/components/schemas/CloudDiagramComponentSearchItem'
    CloudDiagramStatussheetComponents:
      type: object
      description: Component collections of a diagram layer, keyed by component ID.
      properties:
        node:
          type: object
          description: Map of node ID to node component.
          additionalProperties:
            $ref: '#/components/schemas/CloudDiagramNode'
        element:
          type: object
          description: Map of element ID to element component.
          additionalProperties:
            $ref: '#/components/schemas/CloudDiagramElement'
        group:
          type: object
          description: Map of group ID to group component.
          additionalProperties:
            $ref: '#/components/schemas/CloudDiagramGroup'
        link:
          type: object
          description: Map of link ID to link component.
          additionalProperties:
            $ref: '#/components/schemas/CloudDiagramLink'
        attachment:
          type: object
          description: Map of attachment ID to attachment component.
          additionalProperties:
            $ref: '#/components/schemas/CloudDiagramAttachment'
        combiner:
          type: object
          description: Map of combiner ID to combiner component.
          additionalProperties:
            $ref: '#/components/schemas/CloudDiagramCombiner'
        note:
          type: object
          description: Map of note ID to note component.
          additionalProperties:
            $ref: '#/components/schemas/CloudDiagramNote'
    CloudDiagramNote:
      type: object
      required:
      - _id
      description: A text note placed on the diagram.
      properties:
        _id:
          type: string
          description: Note ID.
        text:
          type: string
          description: Note text content.
        color:
          type: string
          description: Note background color.
        font_size:
          type: number
          description: Note font size.
    CloudDiagramGroupItem:
      type: object
      required:
      - _id
      - type
      description: Reference to a component contained within a group.
      properties:
        _id:
          type: string
          description: Component ID.
        type:
          type: string
          enum:
          - attachment
          - combiner
          - element
          - group
          - link
          - node
          - note
          - scheme
          - statussheet
          description: Component type.
    CloudDiagramAttachment:
      type: object
      required:
      - _id
      description: An attachment component added to a group.
      properties:
        _id:
          type: string
          description: Attachment ID.
        name:
          type: string
          description: Component name.
        props:
          type: object
          additionalProperties: true
          description: Custom component properties (key-value pairs).
        cld_id:
          type: string
          description: Cloud resource ID (set on cloud-imported components).
        cld_type:
          type: string
          enum:
          - AWS
          - GCP
          - AZURE
          description: Cloud account type.
        cld_sync:
          type: boolean
          description: Whether this component is synced with cloud.
        cld_account:
          type: string
          description: Cloud account ID.
        tags:
          type: array
          description: Tags assigned to the component.
          items:
            type: string
        color:
          type: string
          description: Attachment color.
        icon:
          type: string
          description: Attachment icon identifier.
        group:
          type: string
          description: Parent group ID.
        issues:
          type: array
          description: Issues associated with this attachment.
          items:
            $ref: '#/components/schemas/CloudDiagramIssue'
    DiagramRelationshipsAnchor:
      type: object
      required:
      - id
      - type
      - name
      description: The anchor resource the traversal started from.
      properties:
        id:
          type: string
          description: Anchor resource ID (matches the `rid` path parameter).
        type:
          type: string
          enum:
          - node
          - element
          - group
          description: Component bucket the anchor lives in.
        name:
          type: string
          description: Human-readable resource name.
        serviceType:
          type: string
          description: Cloud service type when available (e.g. `Amazon RDS`, `GCP Cloud SQL`).
    CloudDiagramLink:
      type: object
      required:
      - _id
      - origin
      - destination
      description: A link component connecting two nodes or groups.
      properties:
        _id:
          type: string
          description: Link ID.
        name:
          type: string
          description: Component name.
        props:
          type: object
          additionalProperties: true
          description: Custom component properties (key-value pairs).
        cld_id:
          type: string
          description: Cloud resource ID (set on cloud-imported components).
        cld_type:
          type: string
          enum:
          - AWS
          - GCP
          - AZURE
          description: Cloud account type.
        cld_sync:
          type: boolean
          description: Whether this component is synced with cloud.
        cld_account:
          type: string
          description: Cloud account ID.
        tags:
          type: array
          description: Tags assigned to the component.
          items:
            type: string
        connection_type:
          type: string
          enum:
          - normal
          - tunnel
          - private
          - VPN
          - VPC Peering
          - Network Connectivity Center
          - Private Service Connect
          - Private Google Access
          - Serverless VPC
          - Serverless VPC Access Connector
          - Cross Cloud Interconnect
          - Partner Interconnect
          - Dedicated Interconnect
          description: Link connection type.
        origin:
          $ref: '#/components/schemas/CloudDiagramComponentRef'
        destination:
          $ref: '#/components/schemas/CloudDiagramComponentRef'
        owner_ss_id:
          type: string
          description: Owner layer ID for cross-diagram links.
        issues:
          type: array
          description: Issues associated with this link.
          items:
            $ref: '#/components/schemas/CloudDiagramIssue'
    CloudDiagramsSearchRequest:
      type: object
      required:
      - query
      description: Request body for searching diagrams and components.
      properties:
        query:
          type: string
          description: Search query string.
        ss_id:
          type: string
          description: Limit search to components within this layer.
        from:
          type: integer
          minimum: 0
          description: Pagination offset (default 0).
        size:
          type: integer
          minimum: 1
          description: Maximum number of results per category (default 20).
    CloudDiagramCostTrendBucket:
      type: object
      required:
      - bucketStart
      - amount
      description: A single bucket in the trend series.
      properties:
        bucketStart:
          type: string
          description: Inclusive start of this bucket. ISO date for `day` and `month`; week label for `week`.
        amount:
          type: number
          description: Total cost for this bucket.
    CloudDiagramExportJsonResponse:
      type: object
      required:
      - metadata
      description: Full diagram export as a structured JSON document.
      properties:
        statussheet:
          type: object
          description: Diagram-level metadata (excluding internal IDs).
          additionalProperties: true
        metadata:
          $ref: '#/components/schemas/CloudDiagramExportJsonMetadata'
        nodes:
          type: array
          description: Exported nodes.
          items:
            $ref: '#/components/schemas/CloudDiagramNode'
        elements:
          type: array
          description: Exported elements.
          items:
            $ref: '#/components/schemas/CloudDiagramElement'
        groups:
          type: array
          description: Exported groups.
          items:
            $ref: '#/components/schemas/CloudDiagramGroup'
        attachments:
          type: array
          description: Exported attachments.
          items:
            $ref: '#/components/schemas/CloudDiagramAttachment'
        links:
          type: array
          description: Exported links.
          items:
            $ref: '#/components/schemas/CloudDiagramLink'
        combiners:
          type: array
          description: Exported combiners.
          items:
            $ref: '#/components/schemas/CloudDiagramCombiner'
        notes:
          type: array
          description: Exported notes.
          items:
            $ref: '#/components/schemas/CloudDiagramNote'
    CloudDiagramSchemeResult:
      type: object
      required:
      - _id
      - name
      - type
      - statussheet
      description: A diagram with its connected cloud accounts.
      properties:
        _id:
          type: string
          description: Diagram ID.
        name:
          type: string
          description: Diagram name.
        color:
          type: string
          description: Diagram color.
        type:
          type: string
          enum:
          - application
          - infrastructure
          - network
          - template
          description: Diagram type.
        statussheet:
          type: array
          description: Connected cloud accounts (layers).
          items:
            $ref: '#/components/schemas/CloudDiagramSchemeStatussheetInfo'
    FindCloudDiagramsResponse:
      type: array
      description: List of diagram URLs matching the criteria.
      items:
        type: object
        required:
        - diagramUrl
        - imageUrl
        properties:
          diagramUrl:
            type: string
            format: uri
            description: URL to the diagram viewer.
          imageUrl:
            type: string
            format: uri
            description: URL to the diagram image.
    CloudDiagramStatussheetData:
      type: object
      required:
      - statussheet
      description: A layer entry with projected metadata and component collections.
      properties:
        statussheet:
          $ref: '#/components/schemas/CloudDiagramStatussheetMeta'
        node:
          type: object
          description: Map of node ID to node component.
          additionalProperties:
            $ref: '#/components/schemas/CloudDiagramNode'
        element:
          type: object
          description: Map of element ID to element component.
          additionalProperties:
            $ref: '#/components/schemas/CloudDiagramElement'
        group:
          type: object
          description: Map of group ID to group component.
          additionalProperties:
            $ref: '#/components/schemas/CloudDiagramGroup'

# --- truncated at 32 KB (61 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/doit/refs/heads/main/openapi/doit-cloud-diagrams-api-openapi.yml