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: $.