naftiko: 1.0.0-alpha2 info: label: Microsoft Azure Custom Vision Training Client — ProjectApi description: 'Microsoft Azure Custom Vision Training Client — ProjectApi. 20 operations. Lead operation: Microsoft Azure Get Your Projects. Self-contained Naftiko capability covering one Microsoft Azure business surface.' tags: - Microsoft Azure - ProjectApi created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: MICROSOFT_AZURE_API_KEY: MICROSOFT_AZURE_API_KEY capability: consumes: - type: http namespace: custom-vision-training-client-projectapi baseUri: https://southcentralus.api.cognitive.microsoft.com/customvision/v3.3/training description: Microsoft Azure Custom Vision Training Client — ProjectApi business capability. Self-contained, no shared references. resources: - name: projects path: /projects operations: - name: microsoftazuregetprojects method: GET description: Microsoft Azure Get Your Projects outputRawFormat: json outputParameters: - name: result type: object value: $. - name: microsoftazurecreateproject method: POST description: Microsoft Azure Create A Project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: query type: string description: Name of the project. required: true - name: description in: query type: string description: The description of the project. - name: domainId in: query type: string description: The id of the domain to use for this project. Defaults to General. - name: classificationType in: query type: string description: The type of classifier to create for this project. - name: targetExportPlatforms in: query type: array description: List of platforms the trained model is intending exporting to. - name: projects-import path: /projects/import operations: - name: microsoftazureimportproject method: POST description: Microsoft Azure Imports A Project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: token in: query type: string description: Token generated from the export project call. required: true - name: name in: query type: string description: Optional, name of the project to use instead of auto-generated name. - name: projects-projectId path: /projects/{projectId} operations: - name: microsoftazuregetproject method: GET description: Microsoft Azure Get A Specific Project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectId in: path type: string description: The id of the project to get. required: true - name: microsoftazuredeleteproject method: DELETE description: Microsoft Azure Delete A Specific Project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectId in: path type: string description: The project id. required: true - name: microsoftazureupdateproject method: PATCH description: Microsoft Azure Update A Specific Project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectId in: path type: string description: The id of the project to update. required: true - name: updatedProject in: body type: string description: The updated project model. required: true - name: projects-projectId-artifacts path: /projects/{projectId}/artifacts operations: - name: microsoftazuregetartifact method: GET description: Microsoft Azure Get Artifact Content From Blob Storage, Based On Artifact Relative Path In The Blob outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectId in: path type: string description: The project id. required: true - name: path in: query type: string description: The relative path for artifact. required: true - name: projects-projectId-export path: /projects/{projectId}/export operations: - name: microsoftazureexportproject method: GET description: Microsoft Azure Exports A Project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectId in: path type: string description: The project id of the project to export. required: true - name: projects-projectId-iterations path: /projects/{projectId}/iterations operations: - name: microsoftazuregetiterations method: GET description: Microsoft Azure Get Iterations For The Project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectId in: path type: string description: The project id. required: true - name: projects-projectId-iterations-iterationId path: /projects/{projectId}/iterations/{iterationId} operations: - name: microsoftazuregetiteration method: GET description: Microsoft Azure Get A Specific Iteration outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectId in: path type: string description: The id of the project the iteration belongs to. required: true - name: iterationId in: path type: string description: The id of the iteration to get. required: true - name: microsoftazuredeleteiteration method: DELETE description: Microsoft Azure Delete A Specific Iteration Of A Project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectId in: path type: string description: The project id. required: true - name: iterationId in: path type: string description: The iteration id. required: true - name: microsoftazureupdateiteration method: PATCH description: Microsoft Azure Update A Specific Iteration outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectId in: path type: string description: Project id. required: true - name: iterationId in: path type: string description: Iteration id. required: true - name: updatedIteration in: body type: string description: The updated iteration model. required: true - name: projects-projectId-iterations-iterationId-export path: /projects/{projectId}/iterations/{iterationId}/export operations: - name: microsoftazuregetexports method: GET description: Microsoft Azure Get The List Of Exports For A Specific Iteration outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectId in: path type: string description: The project id. required: true - name: iterationId in: path type: string description: The iteration id. required: true - name: microsoftazureexportiteration method: POST description: Microsoft Azure Export A Trained Iteration outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectId in: path type: string description: The project id. required: true - name: iterationId in: path type: string description: The iteration id. required: true - name: platform in: query type: string description: The target platform. required: true - name: flavor in: query type: string description: The flavor of the target platform. - name: projects-projectId-iterations-iterationId-performance path: /projects/{projectId}/iterations/{iterationId}/performance operations: - name: microsoftazuregetiterationperformance method: GET description: Microsoft Azure Get Detailed Performance Information About An Iteration outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectId in: path type: string description: The id of the project the iteration belongs to. required: true - name: iterationId in: path type: string description: The id of the iteration to get. required: true - name: threshold in: query type: number description: The threshold used to determine true predictions. - name: overlapThreshold in: query type: number description: If applicable, the bounding box overlap threshold used to determine true predictions. - name: projects-projectId-iterations-iterationId-performance-images path: /projects/{projectId}/iterations/{iterationId}/performance/images operations: - name: microsoftazuregetimageperformances method: GET description: Microsoft Azure Get Image With Its Prediction For A Given Project Iteration outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectId in: path type: string description: The project id. required: true - name: iterationId in: path type: string description: The iteration id. Defaults to workspace. required: true - name: tagIds in: query type: array description: A list of tags ids to filter the images. Defaults to all tagged images when null. Limited to 20. - name: orderBy in: query type: string description: The ordering. Defaults to newest. - name: take in: query type: integer description: Maximum number of images to return. Defaults to 50, limited to 256. - name: skip in: query type: integer description: Number of images to skip before beginning the image batch. Defaults to 0. - name: projects-projectId-iterations-iterationId-performance-images-count path: /projects/{projectId}/iterations/{iterationId}/performance/images/count operations: - name: microsoftazuregetimageperformancecount method: GET description: "Microsoft Azure Gets The Number Of Images Tagged With The Provided {tagids} That Have Prediction Results\ \ From\r" outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectId in: path type: string description: The project id. required: true - name: iterationId in: path type: string description: The iteration id. Defaults to workspace. required: true - name: tagIds in: query type: array description: A list of tags ids to filter the images to count. Defaults to all tags when null. - name: projects-projectId-iterations-iterationId-publish path: /projects/{projectId}/iterations/{iterationId}/publish operations: - name: microsoftazurepublishiteration method: POST description: Microsoft Azure Publish A Specific Iteration outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectId in: path type: string description: The project id. required: true - name: iterationId in: path type: string description: The iteration id. required: true - name: publishName in: query type: string description: The name to give the published iteration. required: true - name: predictionId in: query type: string description: The id of the prediction resource to publish to. required: true - name: overwrite in: query type: boolean description: 'Whether to overwrite the published model with the given name (default: false).' - name: microsoftazureunpublishiteration method: DELETE description: Microsoft Azure Unpublish A Specific Iteration outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectId in: path type: string description: The project id. required: true - name: iterationId in: path type: string description: The iteration id. required: true - name: projects-projectId-train path: /projects/{projectId}/train operations: - name: microsoftazuretrainproject method: POST description: Microsoft Azure Queues Project For Training outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectId in: path type: string description: The project id. required: true - name: trainingType in: query type: string description: 'The type of training to use to train the project (default: Regular).' - name: reservedBudgetInHours in: query type: integer description: The number of hours reserved as budget for training (if applicable). - name: forceTrain in: query type: boolean description: 'Whether to force train even if dataset and configuration does not change (default: false).' - name: notificationEmailAddress in: query type: string description: 'The email address to send notification to when training finishes (default: null).' - name: trainingParameters in: body type: string description: Additional training parameters passed in to control how the project is trained. exposes: - type: rest namespace: custom-vision-training-client-projectapi-rest port: 8080 description: REST adapter for Microsoft Azure Custom Vision Training Client — ProjectApi. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/projects name: projects description: REST surface for projects. operations: - method: GET name: microsoftazuregetprojects description: Microsoft Azure Get Your Projects call: custom-vision-training-client-projectapi.microsoftazuregetprojects outputParameters: - type: object mapping: $. - method: POST name: microsoftazurecreateproject description: Microsoft Azure Create A Project call: custom-vision-training-client-projectapi.microsoftazurecreateproject with: name: rest.name description: rest.description domainId: rest.domainId classificationType: rest.classificationType targetExportPlatforms: rest.targetExportPlatforms outputParameters: - type: object mapping: $. - path: /v1/projects/import name: projects-import description: REST surface for projects-import. operations: - method: POST name: microsoftazureimportproject description: Microsoft Azure Imports A Project call: custom-vision-training-client-projectapi.microsoftazureimportproject with: token: rest.token name: rest.name outputParameters: - type: object mapping: $. - path: /v1/projects/{projectid} name: projects-projectid description: REST surface for projects-projectId. operations: - method: GET name: microsoftazuregetproject description: Microsoft Azure Get A Specific Project call: custom-vision-training-client-projectapi.microsoftazuregetproject with: projectId: rest.projectId outputParameters: - type: object mapping: $. - method: DELETE name: microsoftazuredeleteproject description: Microsoft Azure Delete A Specific Project call: custom-vision-training-client-projectapi.microsoftazuredeleteproject with: projectId: rest.projectId outputParameters: - type: object mapping: $. - method: PATCH name: microsoftazureupdateproject description: Microsoft Azure Update A Specific Project call: custom-vision-training-client-projectapi.microsoftazureupdateproject with: projectId: rest.projectId updatedProject: rest.updatedProject outputParameters: - type: object mapping: $. - path: /v1/projects/{projectid}/artifacts name: projects-projectid-artifacts description: REST surface for projects-projectId-artifacts. operations: - method: GET name: microsoftazuregetartifact description: Microsoft Azure Get Artifact Content From Blob Storage, Based On Artifact Relative Path In The Blob call: custom-vision-training-client-projectapi.microsoftazuregetartifact with: projectId: rest.projectId path: rest.path outputParameters: - type: object mapping: $. - path: /v1/projects/{projectid}/export name: projects-projectid-export description: REST surface for projects-projectId-export. operations: - method: GET name: microsoftazureexportproject description: Microsoft Azure Exports A Project call: custom-vision-training-client-projectapi.microsoftazureexportproject with: projectId: rest.projectId outputParameters: - type: object mapping: $. - path: /v1/projects/{projectid}/iterations name: projects-projectid-iterations description: REST surface for projects-projectId-iterations. operations: - method: GET name: microsoftazuregetiterations description: Microsoft Azure Get Iterations For The Project call: custom-vision-training-client-projectapi.microsoftazuregetiterations with: projectId: rest.projectId outputParameters: - type: object mapping: $. - path: /v1/projects/{projectid}/iterations/{iterationid} name: projects-projectid-iterations-iterationid description: REST surface for projects-projectId-iterations-iterationId. operations: - method: GET name: microsoftazuregetiteration description: Microsoft Azure Get A Specific Iteration call: custom-vision-training-client-projectapi.microsoftazuregetiteration with: projectId: rest.projectId iterationId: rest.iterationId outputParameters: - type: object mapping: $. - method: DELETE name: microsoftazuredeleteiteration description: Microsoft Azure Delete A Specific Iteration Of A Project call: custom-vision-training-client-projectapi.microsoftazuredeleteiteration with: projectId: rest.projectId iterationId: rest.iterationId outputParameters: - type: object mapping: $. - method: PATCH name: microsoftazureupdateiteration description: Microsoft Azure Update A Specific Iteration call: custom-vision-training-client-projectapi.microsoftazureupdateiteration with: projectId: rest.projectId iterationId: rest.iterationId updatedIteration: rest.updatedIteration outputParameters: - type: object mapping: $. - path: /v1/projects/{projectid}/iterations/{iterationid}/export name: projects-projectid-iterations-iterationid-export description: REST surface for projects-projectId-iterations-iterationId-export. operations: - method: GET name: microsoftazuregetexports description: Microsoft Azure Get The List Of Exports For A Specific Iteration call: custom-vision-training-client-projectapi.microsoftazuregetexports with: projectId: rest.projectId iterationId: rest.iterationId outputParameters: - type: object mapping: $. - method: POST name: microsoftazureexportiteration description: Microsoft Azure Export A Trained Iteration call: custom-vision-training-client-projectapi.microsoftazureexportiteration with: projectId: rest.projectId iterationId: rest.iterationId platform: rest.platform flavor: rest.flavor outputParameters: - type: object mapping: $. - path: /v1/projects/{projectid}/iterations/{iterationid}/performance name: projects-projectid-iterations-iterationid-performance description: REST surface for projects-projectId-iterations-iterationId-performance. operations: - method: GET name: microsoftazuregetiterationperformance description: Microsoft Azure Get Detailed Performance Information About An Iteration call: custom-vision-training-client-projectapi.microsoftazuregetiterationperformance with: projectId: rest.projectId iterationId: rest.iterationId threshold: rest.threshold overlapThreshold: rest.overlapThreshold outputParameters: - type: object mapping: $. - path: /v1/projects/{projectid}/iterations/{iterationid}/performance/images name: projects-projectid-iterations-iterationid-performance-images description: REST surface for projects-projectId-iterations-iterationId-performance-images. operations: - method: GET name: microsoftazuregetimageperformances description: Microsoft Azure Get Image With Its Prediction For A Given Project Iteration call: custom-vision-training-client-projectapi.microsoftazuregetimageperformances with: projectId: rest.projectId iterationId: rest.iterationId tagIds: rest.tagIds orderBy: rest.orderBy take: rest.take skip: rest.skip outputParameters: - type: object mapping: $. - path: /v1/projects/{projectid}/iterations/{iterationid}/performance/images/count name: projects-projectid-iterations-iterationid-performance-images-count description: REST surface for projects-projectId-iterations-iterationId-performance-images-count. operations: - method: GET name: microsoftazuregetimageperformancecount description: "Microsoft Azure Gets The Number Of Images Tagged With The Provided {tagids} That Have Prediction Results\ \ From\r" call: custom-vision-training-client-projectapi.microsoftazuregetimageperformancecount with: projectId: rest.projectId iterationId: rest.iterationId tagIds: rest.tagIds outputParameters: - type: object mapping: $. - path: /v1/projects/{projectid}/iterations/{iterationid}/publish name: projects-projectid-iterations-iterationid-publish description: REST surface for projects-projectId-iterations-iterationId-publish. operations: - method: POST name: microsoftazurepublishiteration description: Microsoft Azure Publish A Specific Iteration call: custom-vision-training-client-projectapi.microsoftazurepublishiteration with: projectId: rest.projectId iterationId: rest.iterationId publishName: rest.publishName predictionId: rest.predictionId overwrite: rest.overwrite outputParameters: - type: object mapping: $. - method: DELETE name: microsoftazureunpublishiteration description: Microsoft Azure Unpublish A Specific Iteration call: custom-vision-training-client-projectapi.microsoftazureunpublishiteration with: projectId: rest.projectId iterationId: rest.iterationId outputParameters: - type: object mapping: $. - path: /v1/projects/{projectid}/train name: projects-projectid-train description: REST surface for projects-projectId-train. operations: - method: POST name: microsoftazuretrainproject description: Microsoft Azure Queues Project For Training call: custom-vision-training-client-projectapi.microsoftazuretrainproject with: projectId: rest.projectId trainingType: rest.trainingType reservedBudgetInHours: rest.reservedBudgetInHours forceTrain: rest.forceTrain notificationEmailAddress: rest.notificationEmailAddress trainingParameters: rest.trainingParameters outputParameters: - type: object mapping: $. - type: mcp namespace: custom-vision-training-client-projectapi-mcp port: 9090 transport: http description: MCP adapter for Microsoft Azure Custom Vision Training Client — ProjectApi. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: microsoft-azure-get-your-projects description: Microsoft Azure Get Your Projects hints: readOnly: true destructive: false idempotent: true call: custom-vision-training-client-projectapi.microsoftazuregetprojects outputParameters: - type: object mapping: $. - name: microsoft-azure-create-project description: Microsoft Azure Create A Project hints: readOnly: false destructive: false idempotent: false call: custom-vision-training-client-projectapi.microsoftazurecreateproject with: name: tools.name description: tools.description domainId: tools.domainId classificationType: tools.classificationType targetExportPlatforms: tools.targetExportPlatforms outputParameters: - type: object mapping: $. - name: microsoft-azure-imports-project description: Microsoft Azure Imports A Project hints: readOnly: false destructive: false idempotent: false call: custom-vision-training-client-projectapi.microsoftazureimportproject with: token: tools.token name: tools.name outputParameters: - type: object mapping: $. - name: microsoft-azure-get-specific-project description: Microsoft Azure Get A Specific Project hints: readOnly: true destructive: false idempotent: true call: custom-vision-training-client-projectapi.microsoftazuregetproject with: projectId: tools.projectId outputParameters: - type: object mapping: $. - name: microsoft-azure-delete-specific-project description: Microsoft Azure Delete A Specific Project hints: readOnly: false destructive: true idempotent: true call: custom-vision-training-client-projectapi.microsoftazuredeleteproject with: projectId: tools.projectId outputParameters: - type: object mapping: $. - name: microsoft-azure-update-specific-project description: Microsoft Azure Update A Specific Project hints: readOnly: false destructive: false idempotent: true call: custom-vision-training-client-projectapi.microsoftazureupdateproject with: projectId: tools.projectId updatedProject: tools.updatedProject outputParameters: - type: object mapping: $. - name: microsoft-azure-get-artifact-content description: Microsoft Azure Get Artifact Content From Blob Storage, Based On Artifact Relative Path In The Blob hints: readOnly: true destructive: false idempotent: true call: custom-vision-training-client-projectapi.microsoftazuregetartifact with: projectId: tools.projectId path: tools.path outputParameters: - type: object mapping: $. - name: microsoft-azure-exports-project description: Microsoft Azure Exports A Project hints: readOnly: true destructive: false idempotent: true call: custom-vision-training-client-projectapi.microsoftazureexportproject with: projectId: tools.projectId outputParameters: - type: object mapping: $. - name: microsoft-azure-get-iterations-project description: Microsoft Azure Get Iterations For The Project hints: readOnly: true destructive: false idempotent: true call: custom-vision-training-client-projectapi.microsoftazuregetiterations with: projectId: tools.projectId outputParameters: - type: object mapping: $. - name: microsoft-azure-get-specific-iteration description: Microsoft Azure Get A Specific Iteration hints: readOnly: true destructive: false idempotent: true call: custom-vision-training-client-projectapi.microsoftazuregetiteration with: projectId: tools.projectId iterationId: tools.iterationId outputParameters: - type: object mapping: $. - name: microsoft-azure-delete-specific-iteration description: Microsoft Azure Delete A Specific Iteration Of A Project hints: readOnly: false destructive: true idempotent: true call: custom-vision-training-client-projectapi.microsoftazuredeleteiteration with: projectId: tools.projectId iterationId: tools.iterationId outputParameters: - type: object mapping: $. - name: microsoft-azure-update-specific-iteration description: Microsoft Azure Update A Specific Iteration hints: readOnly: false destructive: false idempotent: true call: custom-vision-training-client-projectapi.microsoftazureupdateiteration with: projectId: tools.projectId iterationId: tools.iterationId updatedIteration: tools.updatedIteration outputParameters: - type: object mapping: $. - name: microsoft-azure-get-list-exports description: Microsoft Azure Get The List Of Exports For A Specific Iteration hints: readOnly: true destructive: false idempotent: true call: custom-vision-training-client-projectapi.microsoftazuregetexports with: projectId: tools.projectId iterationId: tools.iterationId outputParameters: - type: object mapping: $. - name: microsoft-azure-export-trained-iteration description: Microsoft Azure Export A Trained Iteration hints: readOnly: false destructive: false idempotent: false call: custom-vision-training-client-projectapi.microsoftazureexportiteration with: projectId: tools.projectId iterationId: tools.iterationId platform: tools.platform flavor: tools.flavor outputParameters: - type: object mapping: $. - name: microsoft-azure-get-detailed-performance description: Microsoft Azure Get Detailed Performance Information About An Iteration hints: readOnly: true destructive: false idempotent: true call: custom-vision-training-client-projectapi.microsoftazuregetiterationperformance with: projectId: tools.projectId iterationId: tools.iterationId threshold: tools.threshold overlapThreshold: tools.overlapThreshold outputParameters: - type: object mapping: $. - name: microsoft-azure-get-image-its description: Microsoft Azure Get Image With Its Prediction For A Given Project Iteration hints: readOnly: true destructive: false idempotent: true call: custom-vision-training-client-projectapi.microsoftazuregetimageperformances with: projectId: tools.projectId iterationId: tools.iterationId tagIds: tools.tagIds orderBy: tools.orderBy take: tools.take skip: tools.skip outputParameters: - type: object mapping: $. - name: microsoft-azure-gets-number-images description: "Microsoft Azure Gets The Number Of Images Tagged With The Provided {tagids} That Have Prediction Results\ \ From\r" hints: readOnly: true destructive: false idempotent: true call: custom-vision-training-client-projectapi.microsoftazuregetimageperformancecount with: projectId: tools.projectId iterationId: tools.iterationId tagIds: tools.tagIds outputParameters: - type: object mapping: $. - name: microsoft-azure-publish-specific-iteration description: Microsoft Azure Publish A Specific Iteration hints: readOnly: false destructive: false idempotent: false call: custom-vision-training-client-projectapi.microsoftazurepublishiteration with: projectId: tools.projectId iterationId: tools.iterationId publishName: tools.publishName predictionId: tools.predictionId overwrite: tools.overwrite outputParameters: - type: object mapping: $. - name: microsoft-azure-unpublish-specific-iteration description: Microsoft Azure Unpublish A Specific Iteration hints: readOnly: false destructive: true idempotent: true call: custom-vision-training-client-projectapi.microsoftazureunpublishiteration with: projectId: tools.projectId iterationId: tools.iterationId outputParameters: - type: object mapping: $. - name: microsoft-azure-queues-project-training description: Microsoft Azure Queues Project For Training hints: readOnly: false destructive: false idempotent: false call: custom-vision-training-client-projectapi.microsoftazuretrainproject with: projectId: tools.projectId trainingType: tools.trainingType reservedBudgetInHours: tools.reservedBudgetInHours forceTrain: tools.forceTrain notificationEmailAddress: tools.notificationEmailAddress trainingParameters: tools.trainingParameters outputParameters: - type: object mapping: $.