Snowplow · Capability

Snowplow Console API — Data Structures

Snowplow Console API — Data Structures. 7 operations. Lead operation: List Data Structures. Self-contained Naftiko capability covering one Snowplow business surface.

Run with Naftiko SnowplowData Structures

What You Can Do

GET
Listdatastructures — List Data Structures
/v1/organizations/{organizationid}/data-structures/v1
POST
Deploydatastructure — Deploy Data Structure
/v1/organizations/{organizationid}/data-structures/v1/deployment-requests
POST
Validatedatastructure — Validate Data Structure
/v1/organizations/{organizationid}/data-structures/v1/validation-requests
GET
Getdatastructure — Get Data Structure
/v1/organizations/{organizationid}/data-structures/v1/{datastructurehash}
GET
Getdatastructuredeployments — Get Data Structure Deployments
/v1/organizations/{organizationid}/data-structures/v1/{datastructurehash}/deployments
PUT
Updatedatastructuremeta — Update Data Structure Metadata
/v1/organizations/{organizationid}/data-structures/v1/{datastructurehash}/meta
GET
Getdatastructureversion — Get Data Structure Version
/v1/organizations/{organizationid}/data-structures/v1/{datastructurehash}/versions/{versionnumber}

MCP Tools

list-data-structures

List Data Structures

read-only idempotent
deploy-data-structure

Deploy Data Structure

validate-data-structure

Validate Data Structure

read-only
get-data-structure

Get Data Structure

read-only idempotent
get-data-structure-deployments

Get Data Structure Deployments

read-only idempotent
update-data-structure-metadata

Update Data Structure Metadata

idempotent
get-data-structure-version

Get Data Structure Version

read-only idempotent

Capability Spec

console-data-structures.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Snowplow Console API — Data Structures
  description: 'Snowplow Console API — Data Structures. 7 operations. Lead operation: List Data Structures. Self-contained
    Naftiko capability covering one Snowplow business surface.'
  tags:
  - Snowplow
  - Data Structures
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    SNOWPLOW_API_KEY: SNOWPLOW_API_KEY
capability:
  consumes:
  - type: http
    namespace: console-data-structures
    baseUri: https://console.snowplowanalytics.com/api/msc/v1
    description: Snowplow Console API — Data Structures business capability. Self-contained, no shared references.
    resources:
    - name: organizations-organizationId-data-structures-v1
      path: /organizations/{organizationId}/data-structures/v1
      operations:
      - name: listdatastructures
        method: GET
        description: List Data Structures
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: vendor
          in: query
          type: string
          description: Filter by schema vendor namespace
        - name: name
          in: query
          type: string
          description: Filter by schema name
    - name: organizations-organizationId-data-structures-v1-deployment-requests
      path: /organizations/{organizationId}/data-structures/v1/deployment-requests
      operations:
      - name: deploydatastructure
        method: POST
        description: Deploy Data Structure
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: organizations-organizationId-data-structures-v1-validation-requests
      path: /organizations/{organizationId}/data-structures/v1/validation-requests
      operations:
      - name: validatedatastructure
        method: POST
        description: Validate Data Structure
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: organizations-organizationId-data-structures-v1-dataStructureHash
      path: /organizations/{organizationId}/data-structures/v1/{dataStructureHash}
      operations:
      - name: getdatastructure
        method: GET
        description: Get Data Structure
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: organizations-organizationId-data-structures-v1-dataStructureHash-deployments
      path: /organizations/{organizationId}/data-structures/v1/{dataStructureHash}/deployments
      operations:
      - name: getdatastructuredeployments
        method: GET
        description: Get Data Structure Deployments
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: organizations-organizationId-data-structures-v1-dataStructureHash-meta
      path: /organizations/{organizationId}/data-structures/v1/{dataStructureHash}/meta
      operations:
      - name: updatedatastructuremeta
        method: PUT
        description: Update Data Structure Metadata
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: organizations-organizationId-data-structures-v1-dataStructureHash-versions-versi
      path: /organizations/{organizationId}/data-structures/v1/{dataStructureHash}/versions/{versionNumber}
      operations:
      - name: getdatastructureversion
        method: GET
        description: Get Data Structure Version
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: versionNumber
          in: path
          type: string
          description: The version number (e.g., 1-0-0)
          required: true
    authentication:
      type: bearer
      token: '{{env.SNOWPLOW_API_KEY}}'
  exposes:
  - type: rest
    namespace: console-data-structures-rest
    port: 8080
    description: REST adapter for Snowplow Console API — Data Structures. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/organizations/{organizationid}/data-structures/v1
      name: organizations-organizationid-data-structures-v1
      description: REST surface for organizations-organizationId-data-structures-v1.
      operations:
      - method: GET
        name: listdatastructures
        description: List Data Structures
        call: console-data-structures.listdatastructures
        with:
          vendor: rest.vendor
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/organizations/{organizationid}/data-structures/v1/deployment-requests
      name: organizations-organizationid-data-structures-v1-deployment-requests
      description: REST surface for organizations-organizationId-data-structures-v1-deployment-requests.
      operations:
      - method: POST
        name: deploydatastructure
        description: Deploy Data Structure
        call: console-data-structures.deploydatastructure
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/organizations/{organizationid}/data-structures/v1/validation-requests
      name: organizations-organizationid-data-structures-v1-validation-requests
      description: REST surface for organizations-organizationId-data-structures-v1-validation-requests.
      operations:
      - method: POST
        name: validatedatastructure
        description: Validate Data Structure
        call: console-data-structures.validatedatastructure
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/organizations/{organizationid}/data-structures/v1/{datastructurehash}
      name: organizations-organizationid-data-structures-v1-datastructurehash
      description: REST surface for organizations-organizationId-data-structures-v1-dataStructureHash.
      operations:
      - method: GET
        name: getdatastructure
        description: Get Data Structure
        call: console-data-structures.getdatastructure
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/organizations/{organizationid}/data-structures/v1/{datastructurehash}/deployments
      name: organizations-organizationid-data-structures-v1-datastructurehash-deployments
      description: REST surface for organizations-organizationId-data-structures-v1-dataStructureHash-deployments.
      operations:
      - method: GET
        name: getdatastructuredeployments
        description: Get Data Structure Deployments
        call: console-data-structures.getdatastructuredeployments
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/organizations/{organizationid}/data-structures/v1/{datastructurehash}/meta
      name: organizations-organizationid-data-structures-v1-datastructurehash-meta
      description: REST surface for organizations-organizationId-data-structures-v1-dataStructureHash-meta.
      operations:
      - method: PUT
        name: updatedatastructuremeta
        description: Update Data Structure Metadata
        call: console-data-structures.updatedatastructuremeta
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/organizations/{organizationid}/data-structures/v1/{datastructurehash}/versions/{versionnumber}
      name: organizations-organizationid-data-structures-v1-datastructurehash-versions-versi
      description: REST surface for organizations-organizationId-data-structures-v1-dataStructureHash-versions-versi.
      operations:
      - method: GET
        name: getdatastructureversion
        description: Get Data Structure Version
        call: console-data-structures.getdatastructureversion
        with:
          versionNumber: rest.versionNumber
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: console-data-structures-mcp
    port: 9090
    transport: http
    description: MCP adapter for Snowplow Console API — Data Structures. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: list-data-structures
      description: List Data Structures
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: console-data-structures.listdatastructures
      with:
        vendor: tools.vendor
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: deploy-data-structure
      description: Deploy Data Structure
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: console-data-structures.deploydatastructure
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: validate-data-structure
      description: Validate Data Structure
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: console-data-structures.validatedatastructure
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-data-structure
      description: Get Data Structure
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: console-data-structures.getdatastructure
      outputParameters:
      - type: object
        mapping: $.
    - name: get-data-structure-deployments
      description: Get Data Structure Deployments
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: console-data-structures.getdatastructuredeployments
      outputParameters:
      - type: object
        mapping: $.
    - name: update-data-structure-metadata
      description: Update Data Structure Metadata
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: console-data-structures.updatedatastructuremeta
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-data-structure-version
      description: Get Data Structure Version
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: console-data-structures.getdatastructureversion
      with:
        versionNumber: tools.versionNumber
      outputParameters:
      - type: object
        mapping: $.