naftiko: 1.0.0-alpha2 info: label: Azure Blob Storage REST API — Blobs description: 'Azure Blob Storage REST API — Blobs. 18 operations. Lead operation: Azure Blob Storage Put blob. Self-contained Naftiko capability covering one Azure Blob Storage business surface.' tags: - Azure Blob Storage - Blobs created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: AZURE_BLOB_STORAGE_API_KEY: AZURE_BLOB_STORAGE_API_KEY capability: consumes: - type: http namespace: rest-blobs baseUri: https://{accountName}.blob.core.windows.net description: Azure Blob Storage REST API — Blobs business capability. Self-contained, no shared references. resources: - name: container-blob path: /{container}/{blob} operations: - name: putblob method: PUT description: Azure Blob Storage Put blob outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: x-ms-blob-type in: header type: string description: The type of blob to create. required: true - name: Content-Length in: header type: integer description: The length of the request body in bytes. Required for page blobs (set to 0 with x-ms-blob-content-length for the actual size). - name: Content-Type in: header type: string description: The MIME content type of the blob. - name: x-ms-blob-content-type in: header type: string description: The content type to set for the blob. - name: x-ms-access-tier in: header type: string description: The tier to set on the blob. - name: x-ms-blob-content-length in: header type: integer description: Required for page blobs. Specifies the maximum size for the page blob, up to 8 TiB. Must be aligned to a 512-byte boundary. - name: body in: body type: object description: Request body (JSON). required: false - name: getblob method: GET description: Azure Blob Storage Get blob outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Range in: header type: string description: Return only the bytes of the blob in the specified range, for example bytes=0-1023. - name: snapshot in: query type: string description: The snapshot identifier. When specified, the operation returns the snapshot of the blob. - name: versionid in: query type: string description: The version ID. When specified, the operation returns the specified version of the blob. - name: getblobproperties method: HEAD description: Azure Blob Storage Get blob properties outputRawFormat: json outputParameters: - name: result type: object value: $. - name: deleteblob method: DELETE description: Azure Blob Storage Delete blob outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: x-ms-delete-snapshots in: header type: string description: Required if the blob has associated snapshots. Specifies whether to delete the blob and all snapshots (include) or only the snapshots (only). - name: snapshot in: query type: string description: The snapshot identifier. When specified, only the snapshot is deleted. - name: container-blob}?comp=copy path: /{container}/{blob}?comp=copy operations: - name: copyblob method: PUT description: Azure Blob Storage Copy blob outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: x-ms-copy-source in: header type: string description: URL of the source blob, up to 2 KiB in length. required: true - name: x-ms-access-tier in: header type: string description: The tier to set on the destination blob. - name: container-blob}?comp=copy©id={copyId path: /{container}/{blob}?comp=copy©id={copyId} operations: - name: abortcopyblob method: PUT description: Azure Blob Storage Abort copy blob outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: copyId in: query type: string description: The copy operation identifier returned by the Copy Blob response. required: true - name: x-ms-copy-action in: header type: string required: true - name: container-blob}?comp=immutabilityPolicies path: /{container}/{blob}?comp=immutabilityPolicies operations: - name: setblobimmutabilitypolicy method: PUT description: Azure Blob Storage Set blob immutability policy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: x-ms-immutability-policy-until-date in: header type: string description: The date until which the immutability policy is in effect. required: true - name: x-ms-immutability-policy-mode in: header type: string description: The mode of the immutability policy. required: true - name: deleteblobimmutabilitypolicy method: DELETE description: Azure Blob Storage Delete blob immutability policy outputRawFormat: json outputParameters: - name: result type: object value: $. - name: container-blob}?comp=lease path: /{container}/{blob}?comp=lease operations: - name: leaseblob method: PUT description: Azure Blob Storage Lease blob outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: x-ms-lease-action in: header type: string description: The lease action to perform. required: true - name: container-blob}?comp=legalhold path: /{container}/{blob}?comp=legalhold operations: - name: setbloblegalhold method: PUT description: Azure Blob Storage Set blob legal hold outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: x-ms-legal-hold in: header type: boolean description: Whether to set or clear the legal hold. required: true - name: container-blob}?comp=metadata path: /{container}/{blob}?comp=metadata operations: - name: getblobmetadata method: GET description: Azure Blob Storage Get blob metadata outputRawFormat: json outputParameters: - name: result type: object value: $. - name: setblobmetadata method: PUT description: Azure Blob Storage Set blob metadata outputRawFormat: json outputParameters: - name: result type: object value: $. - name: container-blob}?comp=properties path: /{container}/{blob}?comp=properties operations: - name: setblobhttpheaders method: PUT description: Azure Blob Storage Set blob HTTP headers outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: x-ms-blob-content-type in: header type: string description: The MIME content type of the blob. - name: x-ms-blob-content-encoding in: header type: string description: The content encoding of the blob. - name: x-ms-blob-content-language in: header type: string description: The content language of the blob. - name: x-ms-blob-cache-control in: header type: string description: The cache control directive for the blob. - name: x-ms-blob-content-disposition in: header type: string description: The content disposition of the blob. - name: container-blob}?comp=snapshot path: /{container}/{blob}?comp=snapshot operations: - name: snapshotblob method: PUT description: Azure Blob Storage Snapshot blob outputRawFormat: json outputParameters: - name: result type: object value: $. - name: container-blob}?comp=tags path: /{container}/{blob}?comp=tags operations: - name: getblobtags method: GET description: Azure Blob Storage Get blob tags outputRawFormat: json outputParameters: - name: result type: object value: $. - name: setblobtags method: PUT description: Azure Blob Storage Set blob tags outputRawFormat: json outputParameters: - name: result type: object value: $. - name: container-blob}?comp=tier path: /{container}/{blob}?comp=tier operations: - name: setblobtier method: PUT description: Azure Blob Storage Set blob tier outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: x-ms-access-tier in: header type: string description: The access tier to set for the blob. required: true - name: x-ms-rehydrate-priority in: header type: string description: Priority of rehydration when moving a blob out of the Archive tier. Standard priority may take up to 15 hours, High priority within 1 hour at a higher cost. - name: container-blob}?comp=undelete path: /{container}/{blob}?comp=undelete operations: - name: undeleteblob method: PUT description: Azure Blob Storage Undelete blob outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.AZURE_BLOB_STORAGE_API_KEY}}' exposes: - type: rest namespace: rest-blobs-rest port: 8080 description: REST adapter for Azure Blob Storage REST API — Blobs. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/{container}/{blob} name: container-blob description: REST surface for container-blob. operations: - method: PUT name: putblob description: Azure Blob Storage Put blob call: rest-blobs.putblob with: x-ms-blob-type: rest.x-ms-blob-type Content-Length: rest.Content-Length Content-Type: rest.Content-Type x-ms-blob-content-type: rest.x-ms-blob-content-type x-ms-access-tier: rest.x-ms-access-tier x-ms-blob-content-length: rest.x-ms-blob-content-length body: rest.body outputParameters: - type: object mapping: $. - method: GET name: getblob description: Azure Blob Storage Get blob call: rest-blobs.getblob with: Range: rest.Range snapshot: rest.snapshot versionid: rest.versionid outputParameters: - type: object mapping: $. - method: HEAD name: getblobproperties description: Azure Blob Storage Get blob properties call: rest-blobs.getblobproperties outputParameters: - type: object mapping: $. - method: DELETE name: deleteblob description: Azure Blob Storage Delete blob call: rest-blobs.deleteblob with: x-ms-delete-snapshots: rest.x-ms-delete-snapshots snapshot: rest.snapshot outputParameters: - type: object mapping: $. - path: /v1/{container}/blob-comp-copy name: container-blob-comp-copy description: REST surface for container-blob}?comp=copy. operations: - method: PUT name: copyblob description: Azure Blob Storage Copy blob call: rest-blobs.copyblob with: x-ms-copy-source: rest.x-ms-copy-source x-ms-access-tier: rest.x-ms-access-tier outputParameters: - type: object mapping: $. - path: /v1/{container}/{blob-comp-copy-copyid-copyid} name: container-blob-comp-copy-copyid-copyid description: REST surface for container-blob}?comp=copy©id={copyId. operations: - method: PUT name: abortcopyblob description: Azure Blob Storage Abort copy blob call: rest-blobs.abortcopyblob with: copyId: rest.copyId x-ms-copy-action: rest.x-ms-copy-action outputParameters: - type: object mapping: $. - path: /v1/{container}/blob-comp-immutabilitypolicies name: container-blob-comp-immutabilitypolicies description: REST surface for container-blob}?comp=immutabilityPolicies. operations: - method: PUT name: setblobimmutabilitypolicy description: Azure Blob Storage Set blob immutability policy call: rest-blobs.setblobimmutabilitypolicy with: x-ms-immutability-policy-until-date: rest.x-ms-immutability-policy-until-date x-ms-immutability-policy-mode: rest.x-ms-immutability-policy-mode outputParameters: - type: object mapping: $. - method: DELETE name: deleteblobimmutabilitypolicy description: Azure Blob Storage Delete blob immutability policy call: rest-blobs.deleteblobimmutabilitypolicy outputParameters: - type: object mapping: $. - path: /v1/{container}/blob-comp-lease name: container-blob-comp-lease description: REST surface for container-blob}?comp=lease. operations: - method: PUT name: leaseblob description: Azure Blob Storage Lease blob call: rest-blobs.leaseblob with: x-ms-lease-action: rest.x-ms-lease-action outputParameters: - type: object mapping: $. - path: /v1/{container}/blob-comp-legalhold name: container-blob-comp-legalhold description: REST surface for container-blob}?comp=legalhold. operations: - method: PUT name: setbloblegalhold description: Azure Blob Storage Set blob legal hold call: rest-blobs.setbloblegalhold with: x-ms-legal-hold: rest.x-ms-legal-hold outputParameters: - type: object mapping: $. - path: /v1/{container}/blob-comp-metadata name: container-blob-comp-metadata description: REST surface for container-blob}?comp=metadata. operations: - method: GET name: getblobmetadata description: Azure Blob Storage Get blob metadata call: rest-blobs.getblobmetadata outputParameters: - type: object mapping: $. - method: PUT name: setblobmetadata description: Azure Blob Storage Set blob metadata call: rest-blobs.setblobmetadata outputParameters: - type: object mapping: $. - path: /v1/{container}/blob-comp-properties name: container-blob-comp-properties description: REST surface for container-blob}?comp=properties. operations: - method: PUT name: setblobhttpheaders description: Azure Blob Storage Set blob HTTP headers call: rest-blobs.setblobhttpheaders with: x-ms-blob-content-type: rest.x-ms-blob-content-type x-ms-blob-content-encoding: rest.x-ms-blob-content-encoding x-ms-blob-content-language: rest.x-ms-blob-content-language x-ms-blob-cache-control: rest.x-ms-blob-cache-control x-ms-blob-content-disposition: rest.x-ms-blob-content-disposition outputParameters: - type: object mapping: $. - path: /v1/{container}/blob-comp-snapshot name: container-blob-comp-snapshot description: REST surface for container-blob}?comp=snapshot. operations: - method: PUT name: snapshotblob description: Azure Blob Storage Snapshot blob call: rest-blobs.snapshotblob outputParameters: - type: object mapping: $. - path: /v1/{container}/blob-comp-tags name: container-blob-comp-tags description: REST surface for container-blob}?comp=tags. operations: - method: GET name: getblobtags description: Azure Blob Storage Get blob tags call: rest-blobs.getblobtags outputParameters: - type: object mapping: $. - method: PUT name: setblobtags description: Azure Blob Storage Set blob tags call: rest-blobs.setblobtags outputParameters: - type: object mapping: $. - path: /v1/{container}/blob-comp-tier name: container-blob-comp-tier description: REST surface for container-blob}?comp=tier. operations: - method: PUT name: setblobtier description: Azure Blob Storage Set blob tier call: rest-blobs.setblobtier with: x-ms-access-tier: rest.x-ms-access-tier x-ms-rehydrate-priority: rest.x-ms-rehydrate-priority outputParameters: - type: object mapping: $. - path: /v1/{container}/blob-comp-undelete name: container-blob-comp-undelete description: REST surface for container-blob}?comp=undelete. operations: - method: PUT name: undeleteblob description: Azure Blob Storage Undelete blob call: rest-blobs.undeleteblob outputParameters: - type: object mapping: $. - type: mcp namespace: rest-blobs-mcp port: 9090 transport: http description: MCP adapter for Azure Blob Storage REST API — Blobs. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: azure-blob-storage-put-blob description: Azure Blob Storage Put blob hints: readOnly: false destructive: false idempotent: true call: rest-blobs.putblob with: x-ms-blob-type: tools.x-ms-blob-type Content-Length: tools.Content-Length Content-Type: tools.Content-Type x-ms-blob-content-type: tools.x-ms-blob-content-type x-ms-access-tier: tools.x-ms-access-tier x-ms-blob-content-length: tools.x-ms-blob-content-length body: tools.body outputParameters: - type: object mapping: $. - name: azure-blob-storage-get-blob description: Azure Blob Storage Get blob hints: readOnly: true destructive: false idempotent: true call: rest-blobs.getblob with: Range: tools.Range snapshot: tools.snapshot versionid: tools.versionid outputParameters: - type: object mapping: $. - name: azure-blob-storage-get-blob-2 description: Azure Blob Storage Get blob properties hints: readOnly: false destructive: false idempotent: false call: rest-blobs.getblobproperties outputParameters: - type: object mapping: $. - name: azure-blob-storage-delete-blob description: Azure Blob Storage Delete blob hints: readOnly: false destructive: true idempotent: true call: rest-blobs.deleteblob with: x-ms-delete-snapshots: tools.x-ms-delete-snapshots snapshot: tools.snapshot outputParameters: - type: object mapping: $. - name: azure-blob-storage-copy-blob description: Azure Blob Storage Copy blob hints: readOnly: false destructive: false idempotent: true call: rest-blobs.copyblob with: x-ms-copy-source: tools.x-ms-copy-source x-ms-access-tier: tools.x-ms-access-tier outputParameters: - type: object mapping: $. - name: azure-blob-storage-abort-copy description: Azure Blob Storage Abort copy blob hints: readOnly: false destructive: false idempotent: true call: rest-blobs.abortcopyblob with: copyId: tools.copyId x-ms-copy-action: tools.x-ms-copy-action outputParameters: - type: object mapping: $. - name: azure-blob-storage-set-blob description: Azure Blob Storage Set blob immutability policy hints: readOnly: false destructive: false idempotent: true call: rest-blobs.setblobimmutabilitypolicy with: x-ms-immutability-policy-until-date: tools.x-ms-immutability-policy-until-date x-ms-immutability-policy-mode: tools.x-ms-immutability-policy-mode outputParameters: - type: object mapping: $. - name: azure-blob-storage-delete-blob-2 description: Azure Blob Storage Delete blob immutability policy hints: readOnly: false destructive: true idempotent: true call: rest-blobs.deleteblobimmutabilitypolicy outputParameters: - type: object mapping: $. - name: azure-blob-storage-lease-blob description: Azure Blob Storage Lease blob hints: readOnly: false destructive: false idempotent: true call: rest-blobs.leaseblob with: x-ms-lease-action: tools.x-ms-lease-action outputParameters: - type: object mapping: $. - name: azure-blob-storage-set-blob-2 description: Azure Blob Storage Set blob legal hold hints: readOnly: false destructive: false idempotent: true call: rest-blobs.setbloblegalhold with: x-ms-legal-hold: tools.x-ms-legal-hold outputParameters: - type: object mapping: $. - name: azure-blob-storage-get-blob-3 description: Azure Blob Storage Get blob metadata hints: readOnly: true destructive: false idempotent: true call: rest-blobs.getblobmetadata outputParameters: - type: object mapping: $. - name: azure-blob-storage-set-blob-3 description: Azure Blob Storage Set blob metadata hints: readOnly: false destructive: false idempotent: true call: rest-blobs.setblobmetadata outputParameters: - type: object mapping: $. - name: azure-blob-storage-set-blob-4 description: Azure Blob Storage Set blob HTTP headers hints: readOnly: false destructive: false idempotent: true call: rest-blobs.setblobhttpheaders with: x-ms-blob-content-type: tools.x-ms-blob-content-type x-ms-blob-content-encoding: tools.x-ms-blob-content-encoding x-ms-blob-content-language: tools.x-ms-blob-content-language x-ms-blob-cache-control: tools.x-ms-blob-cache-control x-ms-blob-content-disposition: tools.x-ms-blob-content-disposition outputParameters: - type: object mapping: $. - name: azure-blob-storage-snapshot-blob description: Azure Blob Storage Snapshot blob hints: readOnly: false destructive: false idempotent: true call: rest-blobs.snapshotblob outputParameters: - type: object mapping: $. - name: azure-blob-storage-get-blob-4 description: Azure Blob Storage Get blob tags hints: readOnly: true destructive: false idempotent: true call: rest-blobs.getblobtags outputParameters: - type: object mapping: $. - name: azure-blob-storage-set-blob-5 description: Azure Blob Storage Set blob tags hints: readOnly: false destructive: false idempotent: true call: rest-blobs.setblobtags outputParameters: - type: object mapping: $. - name: azure-blob-storage-set-blob-6 description: Azure Blob Storage Set blob tier hints: readOnly: false destructive: false idempotent: true call: rest-blobs.setblobtier with: x-ms-access-tier: tools.x-ms-access-tier x-ms-rehydrate-priority: tools.x-ms-rehydrate-priority outputParameters: - type: object mapping: $. - name: azure-blob-storage-undelete-blob description: Azure Blob Storage Undelete blob hints: readOnly: false destructive: false idempotent: true call: rest-blobs.undeleteblob outputParameters: - type: object mapping: $.