naftiko: 1.0.0-alpha2 info: label: Dog API — Images description: 'Dog API — Images. 6 operations. Lead operation: All images by breed. Self-contained Naftiko capability covering one Dog Api business surface.' tags: - Dog Api - Images created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: DOG_API_API_KEY: DOG_API_API_KEY capability: consumes: - type: http namespace: dog-images baseUri: https://dog.ceo/api description: Dog API — Images business capability. Self-contained, no shared references. resources: - name: breed-breed-images path: /breed/{breed}/images operations: - name: listimagesbybreed method: GET description: All images by breed outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: breed in: path type: string description: Breed name (e.g., hound, retriever). required: true - name: breed-breed-images-random path: /breed/{breed}/images/random operations: - name: randomimagebybreed method: GET description: Random image by breed outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: breed in: path type: string required: true - name: breed-breed-subBreed-images path: /breed/{breed}/{subBreed}/images operations: - name: listimagesbysubbreed method: GET description: All images by sub-breed outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: breed in: path type: string required: true - name: subBreed in: path type: string required: true - name: breed-breed-subBreed-images-random path: /breed/{breed}/{subBreed}/images/random operations: - name: randomimagebysubbreed method: GET description: Random image by sub-breed outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: breed in: path type: string required: true - name: subBreed in: path type: string required: true - name: breeds-image-random path: /breeds/image/random operations: - name: randomimage method: GET description: Random image from any breed outputRawFormat: json outputParameters: - name: result type: object value: $. - name: breeds-image-random-count path: /breeds/image/random/{count} operations: - name: randomimages method: GET description: Multiple random images from any breed outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: count in: path type: integer description: Number of random images to return (1-50). required: true exposes: - type: rest namespace: dog-images-rest port: 8080 description: REST adapter for Dog API — Images. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/breed/{breed}/images name: breed-breed-images description: REST surface for breed-breed-images. operations: - method: GET name: listimagesbybreed description: All images by breed call: dog-images.listimagesbybreed with: breed: rest.breed outputParameters: - type: object mapping: $. - path: /v1/breed/{breed}/images/random name: breed-breed-images-random description: REST surface for breed-breed-images-random. operations: - method: GET name: randomimagebybreed description: Random image by breed call: dog-images.randomimagebybreed with: breed: rest.breed outputParameters: - type: object mapping: $. - path: /v1/breed/{breed}/{subbreed}/images name: breed-breed-subbreed-images description: REST surface for breed-breed-subBreed-images. operations: - method: GET name: listimagesbysubbreed description: All images by sub-breed call: dog-images.listimagesbysubbreed with: breed: rest.breed subBreed: rest.subBreed outputParameters: - type: object mapping: $. - path: /v1/breed/{breed}/{subbreed}/images/random name: breed-breed-subbreed-images-random description: REST surface for breed-breed-subBreed-images-random. operations: - method: GET name: randomimagebysubbreed description: Random image by sub-breed call: dog-images.randomimagebysubbreed with: breed: rest.breed subBreed: rest.subBreed outputParameters: - type: object mapping: $. - path: /v1/breeds/image/random name: breeds-image-random description: REST surface for breeds-image-random. operations: - method: GET name: randomimage description: Random image from any breed call: dog-images.randomimage outputParameters: - type: object mapping: $. - path: /v1/breeds/image/random/{count} name: breeds-image-random-count description: REST surface for breeds-image-random-count. operations: - method: GET name: randomimages description: Multiple random images from any breed call: dog-images.randomimages with: count: rest.count outputParameters: - type: object mapping: $. - type: mcp namespace: dog-images-mcp port: 9090 transport: http description: MCP adapter for Dog API — Images. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: all-images-breed description: All images by breed hints: readOnly: true destructive: false idempotent: true call: dog-images.listimagesbybreed with: breed: tools.breed outputParameters: - type: object mapping: $. - name: random-image-breed description: Random image by breed hints: readOnly: true destructive: false idempotent: true call: dog-images.randomimagebybreed with: breed: tools.breed outputParameters: - type: object mapping: $. - name: all-images-sub-breed description: All images by sub-breed hints: readOnly: true destructive: false idempotent: true call: dog-images.listimagesbysubbreed with: breed: tools.breed subBreed: tools.subBreed outputParameters: - type: object mapping: $. - name: random-image-sub-breed description: Random image by sub-breed hints: readOnly: true destructive: false idempotent: true call: dog-images.randomimagebysubbreed with: breed: tools.breed subBreed: tools.subBreed outputParameters: - type: object mapping: $. - name: random-image-any-breed description: Random image from any breed hints: readOnly: true destructive: false idempotent: true call: dog-images.randomimage outputParameters: - type: object mapping: $. - name: multiple-random-images-any-breed description: Multiple random images from any breed hints: readOnly: true destructive: false idempotent: true call: dog-images.randomimages with: count: tools.count outputParameters: - type: object mapping: $.