naftiko: 1.0.0-alpha2 info: label: 'SAM: Licenses — Licenses' description: 'SAM: Licenses — Licenses. 6 operations. Lead operation: Get Licenses. Self-contained Naftiko capability covering one Snow Software business surface.' tags: - Snow Software - Licenses created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SNOW_SOFTWARE_API_KEY: SNOW_SOFTWARE_API_KEY capability: consumes: - type: http namespace: licenses-licenses baseUri: https://{region}.snowsoftware.io description: 'SAM: Licenses — Licenses business capability. Self-contained, no shared references.' resources: - name: api-sam-v1-licenses path: /api/sam/v1/licenses operations: - name: getlicensecollection method: GET description: Get Licenses outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: filter in: query type: string description: For more information on the available operators and which data types those operators work on, see [Filter API call results](https://docs.snowsoftware.io/snow-at - name: page_number in: query type: integer description: The page number. - name: page_size in: query type: integer description: The maximum number of items in the response. - name: addlicense method: POST description: Add License outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: api-sam-v1-licenses-bulk-update path: /api/sam/v1/licenses/bulk-update operations: - name: bulkupdatelicenses method: POST description: Bulk Update Licenses outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: api-sam-v1-licenses-id path: /api/sam/v1/licenses/{id} operations: - name: getlicensebyid method: GET description: Get License outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The unique ID of the license. required: true - name: replacelicense method: PUT description: Replace License outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The unique ID of the license. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: deletelicense method: DELETE description: Delete License outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The unique ID of the license. required: true authentication: type: bearer token: '{{env.SNOW_SOFTWARE_API_KEY}}' exposes: - type: rest namespace: licenses-licenses-rest port: 8080 description: 'REST adapter for SAM: Licenses — Licenses. One Spectral-compliant resource per consumed operation, prefixed with /v1.' resources: - path: /v1/api/sam/v1/licenses name: api-sam-v1-licenses description: REST surface for api-sam-v1-licenses. operations: - method: GET name: getlicensecollection description: Get Licenses call: licenses-licenses.getlicensecollection with: filter: rest.filter page_number: rest.page_number page_size: rest.page_size outputParameters: - type: object mapping: $. - method: POST name: addlicense description: Add License call: licenses-licenses.addlicense with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/sam/v1/licenses/bulk-update name: api-sam-v1-licenses-bulk-update description: REST surface for api-sam-v1-licenses-bulk-update. operations: - method: POST name: bulkupdatelicenses description: Bulk Update Licenses call: licenses-licenses.bulkupdatelicenses with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/sam/v1/licenses/{id} name: api-sam-v1-licenses-id description: REST surface for api-sam-v1-licenses-id. operations: - method: GET name: getlicensebyid description: Get License call: licenses-licenses.getlicensebyid with: id: rest.id outputParameters: - type: object mapping: $. - method: PUT name: replacelicense description: Replace License call: licenses-licenses.replacelicense with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletelicense description: Delete License call: licenses-licenses.deletelicense with: id: rest.id outputParameters: - type: object mapping: $. - type: mcp namespace: licenses-licenses-mcp port: 9090 transport: http description: 'MCP adapter for SAM: Licenses — Licenses. One tool per consumed operation, routed inline through this capability''s consumes block.' tools: - name: get-licenses description: Get Licenses hints: readOnly: true destructive: false idempotent: true call: licenses-licenses.getlicensecollection with: filter: tools.filter page_number: tools.page_number page_size: tools.page_size outputParameters: - type: object mapping: $. - name: add-license description: Add License hints: readOnly: false destructive: false idempotent: false call: licenses-licenses.addlicense with: body: tools.body outputParameters: - type: object mapping: $. - name: bulk-update-licenses description: Bulk Update Licenses hints: readOnly: false destructive: false idempotent: false call: licenses-licenses.bulkupdatelicenses with: body: tools.body outputParameters: - type: object mapping: $. - name: get-license description: Get License hints: readOnly: true destructive: false idempotent: true call: licenses-licenses.getlicensebyid with: id: tools.id outputParameters: - type: object mapping: $. - name: replace-license description: Replace License hints: readOnly: false destructive: false idempotent: true call: licenses-licenses.replacelicense with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: delete-license description: Delete License hints: readOnly: false destructive: true idempotent: true call: licenses-licenses.deletelicense with: id: tools.id outputParameters: - type: object mapping: $.