naftiko: 1.0.0-alpha2 info: label: AWS Migration Hub description: 'AWS Migration Hub. 17 operations. Lead operation: Amazon Migration Hub Associate Created Artifact. Self-contained Naftiko capability covering one Amazon Migration Hub business surface.' tags: - Amazon Migration Hub - AWS Migration Hub created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: AMAZON_MIGRATION_HUB_API_KEY: AMAZON_MIGRATION_HUB_API_KEY capability: consumes: - type: http namespace: amazon-migration-hub baseUri: http://mgh.{region}.amazonaws.com description: AWS Migration Hub business capability. Self-contained, no shared references. resources: - name: '#X-Amz-Target=AWSMigrationHub.AssociateCreatedArtifact' path: /#X-Amz-Target=AWSMigrationHub.AssociateCreatedArtifact operations: - name: associatecreatedartifact method: POST description: Amazon Migration Hub Associate Created Artifact outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Amz-Target in: header type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: '#X-Amz-Target=AWSMigrationHub.AssociateDiscoveredResource' path: /#X-Amz-Target=AWSMigrationHub.AssociateDiscoveredResource operations: - name: associatediscoveredresource method: POST description: Amazon Migration Hub Associate Discovered Resource outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Amz-Target in: header type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: '#X-Amz-Target=AWSMigrationHub.CreateProgressUpdateStream' path: /#X-Amz-Target=AWSMigrationHub.CreateProgressUpdateStream operations: - name: createprogressupdatestream method: POST description: Amazon Migration Hub Create Progress Update Stream outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Amz-Target in: header type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: '#X-Amz-Target=AWSMigrationHub.DeleteProgressUpdateStream' path: /#X-Amz-Target=AWSMigrationHub.DeleteProgressUpdateStream operations: - name: deleteprogressupdatestream method: POST description: Amazon Migration Hub Delete Progress Update Stream outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Amz-Target in: header type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: '#X-Amz-Target=AWSMigrationHub.DescribeApplicationState' path: /#X-Amz-Target=AWSMigrationHub.DescribeApplicationState operations: - name: describeapplicationstate method: POST description: Amazon Migration Hub Describe Application State outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Amz-Target in: header type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: '#X-Amz-Target=AWSMigrationHub.DescribeMigrationTask' path: /#X-Amz-Target=AWSMigrationHub.DescribeMigrationTask operations: - name: describemigrationtask method: POST description: Amazon Migration Hub Describe Migration Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Amz-Target in: header type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: '#X-Amz-Target=AWSMigrationHub.DisassociateCreatedArtifact' path: /#X-Amz-Target=AWSMigrationHub.DisassociateCreatedArtifact operations: - name: disassociatecreatedartifact method: POST description: Amazon Migration Hub Disassociate Created Artifact outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Amz-Target in: header type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: '#X-Amz-Target=AWSMigrationHub.DisassociateDiscoveredResource' path: /#X-Amz-Target=AWSMigrationHub.DisassociateDiscoveredResource operations: - name: disassociatediscoveredresource method: POST description: Amazon Migration Hub Disassociate Discovered Resource outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Amz-Target in: header type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: '#X-Amz-Target=AWSMigrationHub.ImportMigrationTask' path: /#X-Amz-Target=AWSMigrationHub.ImportMigrationTask operations: - name: importmigrationtask method: POST description: Amazon Migration Hub Import Migration Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Amz-Target in: header type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: '#X-Amz-Target=AWSMigrationHub.ListApplicationStates' path: /#X-Amz-Target=AWSMigrationHub.ListApplicationStates operations: - name: listapplicationstates method: POST description: Amazon Migration Hub List Application States outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: MaxResults in: query type: string description: Pagination limit - name: NextToken in: query type: string description: Pagination token - name: X-Amz-Target in: header type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: '#X-Amz-Target=AWSMigrationHub.ListCreatedArtifacts' path: /#X-Amz-Target=AWSMigrationHub.ListCreatedArtifacts operations: - name: listcreatedartifacts method: POST description: Amazon Migration Hub List Created Artifacts outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: MaxResults in: query type: string description: Pagination limit - name: NextToken in: query type: string description: Pagination token - name: X-Amz-Target in: header type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: '#X-Amz-Target=AWSMigrationHub.ListDiscoveredResources' path: /#X-Amz-Target=AWSMigrationHub.ListDiscoveredResources operations: - name: listdiscoveredresources method: POST description: Amazon Migration Hub List Discovered Resources outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: MaxResults in: query type: string description: Pagination limit - name: NextToken in: query type: string description: Pagination token - name: X-Amz-Target in: header type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: '#X-Amz-Target=AWSMigrationHub.ListMigrationTasks' path: /#X-Amz-Target=AWSMigrationHub.ListMigrationTasks operations: - name: listmigrationtasks method: POST description: Amazon Migration Hub List Migration Tasks outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: MaxResults in: query type: string description: Pagination limit - name: NextToken in: query type: string description: Pagination token - name: X-Amz-Target in: header type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: '#X-Amz-Target=AWSMigrationHub.ListProgressUpdateStreams' path: /#X-Amz-Target=AWSMigrationHub.ListProgressUpdateStreams operations: - name: listprogressupdatestreams method: POST description: Amazon Migration Hub List Progress Update Streams outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: MaxResults in: query type: string description: Pagination limit - name: NextToken in: query type: string description: Pagination token - name: X-Amz-Target in: header type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: '#X-Amz-Target=AWSMigrationHub.NotifyApplicationState' path: /#X-Amz-Target=AWSMigrationHub.NotifyApplicationState operations: - name: notifyapplicationstate method: POST description: Amazon Migration Hub Notify Application State outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Amz-Target in: header type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: '#X-Amz-Target=AWSMigrationHub.NotifyMigrationTaskState' path: /#X-Amz-Target=AWSMigrationHub.NotifyMigrationTaskState operations: - name: notifymigrationtaskstate method: POST description: Amazon Migration Hub Notify Migration Task State outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Amz-Target in: header type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: '#X-Amz-Target=AWSMigrationHub.PutResourceAttributes' path: /#X-Amz-Target=AWSMigrationHub.PutResourceAttributes operations: - name: putresourceattributes method: POST description: Amazon Migration Hub Put Resource Attributes outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Amz-Target in: header type: string required: true - name: body in: body type: object description: Request body (JSON). required: true authentication: type: apikey key: Authorization value: '{{env.AMAZON_MIGRATION_HUB_API_KEY}}' placement: header exposes: - type: rest namespace: amazon-migration-hub-rest port: 8080 description: REST adapter for AWS Migration Hub. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/x-amz-target-awsmigrationhub-associatecreatedartifact name: x-amz-target-awsmigrationhub-associatecreatedartifact description: 'REST surface for #X-Amz-Target=AWSMigrationHub.AssociateCreatedArtifact.' operations: - method: POST name: associatecreatedartifact description: Amazon Migration Hub Associate Created Artifact call: amazon-migration-hub.associatecreatedartifact with: X-Amz-Target: rest.X-Amz-Target body: rest.body outputParameters: - type: object mapping: $. - path: /v1/x-amz-target-awsmigrationhub-associatediscoveredresource name: x-amz-target-awsmigrationhub-associatediscoveredresource description: 'REST surface for #X-Amz-Target=AWSMigrationHub.AssociateDiscoveredResource.' operations: - method: POST name: associatediscoveredresource description: Amazon Migration Hub Associate Discovered Resource call: amazon-migration-hub.associatediscoveredresource with: X-Amz-Target: rest.X-Amz-Target body: rest.body outputParameters: - type: object mapping: $. - path: /v1/x-amz-target-awsmigrationhub-createprogressupdatestream name: x-amz-target-awsmigrationhub-createprogressupdatestream description: 'REST surface for #X-Amz-Target=AWSMigrationHub.CreateProgressUpdateStream.' operations: - method: POST name: createprogressupdatestream description: Amazon Migration Hub Create Progress Update Stream call: amazon-migration-hub.createprogressupdatestream with: X-Amz-Target: rest.X-Amz-Target body: rest.body outputParameters: - type: object mapping: $. - path: /v1/x-amz-target-awsmigrationhub-deleteprogressupdatestream name: x-amz-target-awsmigrationhub-deleteprogressupdatestream description: 'REST surface for #X-Amz-Target=AWSMigrationHub.DeleteProgressUpdateStream.' operations: - method: POST name: deleteprogressupdatestream description: Amazon Migration Hub Delete Progress Update Stream call: amazon-migration-hub.deleteprogressupdatestream with: X-Amz-Target: rest.X-Amz-Target body: rest.body outputParameters: - type: object mapping: $. - path: /v1/x-amz-target-awsmigrationhub-describeapplicationstate name: x-amz-target-awsmigrationhub-describeapplicationstate description: 'REST surface for #X-Amz-Target=AWSMigrationHub.DescribeApplicationState.' operations: - method: POST name: describeapplicationstate description: Amazon Migration Hub Describe Application State call: amazon-migration-hub.describeapplicationstate with: X-Amz-Target: rest.X-Amz-Target body: rest.body outputParameters: - type: object mapping: $. - path: /v1/x-amz-target-awsmigrationhub-describemigrationtask name: x-amz-target-awsmigrationhub-describemigrationtask description: 'REST surface for #X-Amz-Target=AWSMigrationHub.DescribeMigrationTask.' operations: - method: POST name: describemigrationtask description: Amazon Migration Hub Describe Migration Task call: amazon-migration-hub.describemigrationtask with: X-Amz-Target: rest.X-Amz-Target body: rest.body outputParameters: - type: object mapping: $. - path: /v1/x-amz-target-awsmigrationhub-disassociatecreatedartifact name: x-amz-target-awsmigrationhub-disassociatecreatedartifact description: 'REST surface for #X-Amz-Target=AWSMigrationHub.DisassociateCreatedArtifact.' operations: - method: POST name: disassociatecreatedartifact description: Amazon Migration Hub Disassociate Created Artifact call: amazon-migration-hub.disassociatecreatedartifact with: X-Amz-Target: rest.X-Amz-Target body: rest.body outputParameters: - type: object mapping: $. - path: /v1/x-amz-target-awsmigrationhub-disassociatediscoveredresource name: x-amz-target-awsmigrationhub-disassociatediscoveredresource description: 'REST surface for #X-Amz-Target=AWSMigrationHub.DisassociateDiscoveredResource.' operations: - method: POST name: disassociatediscoveredresource description: Amazon Migration Hub Disassociate Discovered Resource call: amazon-migration-hub.disassociatediscoveredresource with: X-Amz-Target: rest.X-Amz-Target body: rest.body outputParameters: - type: object mapping: $. - path: /v1/x-amz-target-awsmigrationhub-importmigrationtask name: x-amz-target-awsmigrationhub-importmigrationtask description: 'REST surface for #X-Amz-Target=AWSMigrationHub.ImportMigrationTask.' operations: - method: POST name: importmigrationtask description: Amazon Migration Hub Import Migration Task call: amazon-migration-hub.importmigrationtask with: X-Amz-Target: rest.X-Amz-Target body: rest.body outputParameters: - type: object mapping: $. - path: /v1/x-amz-target-awsmigrationhub-listapplicationstates name: x-amz-target-awsmigrationhub-listapplicationstates description: 'REST surface for #X-Amz-Target=AWSMigrationHub.ListApplicationStates.' operations: - method: POST name: listapplicationstates description: Amazon Migration Hub List Application States call: amazon-migration-hub.listapplicationstates with: MaxResults: rest.MaxResults NextToken: rest.NextToken X-Amz-Target: rest.X-Amz-Target body: rest.body outputParameters: - type: object mapping: $. - path: /v1/x-amz-target-awsmigrationhub-listcreatedartifacts name: x-amz-target-awsmigrationhub-listcreatedartifacts description: 'REST surface for #X-Amz-Target=AWSMigrationHub.ListCreatedArtifacts.' operations: - method: POST name: listcreatedartifacts description: Amazon Migration Hub List Created Artifacts call: amazon-migration-hub.listcreatedartifacts with: MaxResults: rest.MaxResults NextToken: rest.NextToken X-Amz-Target: rest.X-Amz-Target body: rest.body outputParameters: - type: object mapping: $. - path: /v1/x-amz-target-awsmigrationhub-listdiscoveredresources name: x-amz-target-awsmigrationhub-listdiscoveredresources description: 'REST surface for #X-Amz-Target=AWSMigrationHub.ListDiscoveredResources.' operations: - method: POST name: listdiscoveredresources description: Amazon Migration Hub List Discovered Resources call: amazon-migration-hub.listdiscoveredresources with: MaxResults: rest.MaxResults NextToken: rest.NextToken X-Amz-Target: rest.X-Amz-Target body: rest.body outputParameters: - type: object mapping: $. - path: /v1/x-amz-target-awsmigrationhub-listmigrationtasks name: x-amz-target-awsmigrationhub-listmigrationtasks description: 'REST surface for #X-Amz-Target=AWSMigrationHub.ListMigrationTasks.' operations: - method: POST name: listmigrationtasks description: Amazon Migration Hub List Migration Tasks call: amazon-migration-hub.listmigrationtasks with: MaxResults: rest.MaxResults NextToken: rest.NextToken X-Amz-Target: rest.X-Amz-Target body: rest.body outputParameters: - type: object mapping: $. - path: /v1/x-amz-target-awsmigrationhub-listprogressupdatestreams name: x-amz-target-awsmigrationhub-listprogressupdatestreams description: 'REST surface for #X-Amz-Target=AWSMigrationHub.ListProgressUpdateStreams.' operations: - method: POST name: listprogressupdatestreams description: Amazon Migration Hub List Progress Update Streams call: amazon-migration-hub.listprogressupdatestreams with: MaxResults: rest.MaxResults NextToken: rest.NextToken X-Amz-Target: rest.X-Amz-Target body: rest.body outputParameters: - type: object mapping: $. - path: /v1/x-amz-target-awsmigrationhub-notifyapplicationstate name: x-amz-target-awsmigrationhub-notifyapplicationstate description: 'REST surface for #X-Amz-Target=AWSMigrationHub.NotifyApplicationState.' operations: - method: POST name: notifyapplicationstate description: Amazon Migration Hub Notify Application State call: amazon-migration-hub.notifyapplicationstate with: X-Amz-Target: rest.X-Amz-Target body: rest.body outputParameters: - type: object mapping: $. - path: /v1/x-amz-target-awsmigrationhub-notifymigrationtaskstate name: x-amz-target-awsmigrationhub-notifymigrationtaskstate description: 'REST surface for #X-Amz-Target=AWSMigrationHub.NotifyMigrationTaskState.' operations: - method: POST name: notifymigrationtaskstate description: Amazon Migration Hub Notify Migration Task State call: amazon-migration-hub.notifymigrationtaskstate with: X-Amz-Target: rest.X-Amz-Target body: rest.body outputParameters: - type: object mapping: $. - path: /v1/x-amz-target-awsmigrationhub-putresourceattributes name: x-amz-target-awsmigrationhub-putresourceattributes description: 'REST surface for #X-Amz-Target=AWSMigrationHub.PutResourceAttributes.' operations: - method: POST name: putresourceattributes description: Amazon Migration Hub Put Resource Attributes call: amazon-migration-hub.putresourceattributes with: X-Amz-Target: rest.X-Amz-Target body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: amazon-migration-hub-mcp port: 9090 transport: http description: MCP adapter for AWS Migration Hub. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: amazon-migration-hub-associate-created description: Amazon Migration Hub Associate Created Artifact hints: readOnly: false destructive: false idempotent: false call: amazon-migration-hub.associatecreatedartifact with: X-Amz-Target: tools.X-Amz-Target body: tools.body outputParameters: - type: object mapping: $. - name: amazon-migration-hub-associate-discovered description: Amazon Migration Hub Associate Discovered Resource hints: readOnly: false destructive: false idempotent: false call: amazon-migration-hub.associatediscoveredresource with: X-Amz-Target: tools.X-Amz-Target body: tools.body outputParameters: - type: object mapping: $. - name: amazon-migration-hub-create-progress description: Amazon Migration Hub Create Progress Update Stream hints: readOnly: false destructive: false idempotent: false call: amazon-migration-hub.createprogressupdatestream with: X-Amz-Target: tools.X-Amz-Target body: tools.body outputParameters: - type: object mapping: $. - name: amazon-migration-hub-delete-progress description: Amazon Migration Hub Delete Progress Update Stream hints: readOnly: false destructive: false idempotent: false call: amazon-migration-hub.deleteprogressupdatestream with: X-Amz-Target: tools.X-Amz-Target body: tools.body outputParameters: - type: object mapping: $. - name: amazon-migration-hub-describe-application description: Amazon Migration Hub Describe Application State hints: readOnly: false destructive: false idempotent: false call: amazon-migration-hub.describeapplicationstate with: X-Amz-Target: tools.X-Amz-Target body: tools.body outputParameters: - type: object mapping: $. - name: amazon-migration-hub-describe-migration description: Amazon Migration Hub Describe Migration Task hints: readOnly: false destructive: false idempotent: false call: amazon-migration-hub.describemigrationtask with: X-Amz-Target: tools.X-Amz-Target body: tools.body outputParameters: - type: object mapping: $. - name: amazon-migration-hub-disassociate-created description: Amazon Migration Hub Disassociate Created Artifact hints: readOnly: false destructive: false idempotent: false call: amazon-migration-hub.disassociatecreatedartifact with: X-Amz-Target: tools.X-Amz-Target body: tools.body outputParameters: - type: object mapping: $. - name: amazon-migration-hub-disassociate-discovered description: Amazon Migration Hub Disassociate Discovered Resource hints: readOnly: false destructive: false idempotent: false call: amazon-migration-hub.disassociatediscoveredresource with: X-Amz-Target: tools.X-Amz-Target body: tools.body outputParameters: - type: object mapping: $. - name: amazon-migration-hub-import-migration description: Amazon Migration Hub Import Migration Task hints: readOnly: false destructive: false idempotent: false call: amazon-migration-hub.importmigrationtask with: X-Amz-Target: tools.X-Amz-Target body: tools.body outputParameters: - type: object mapping: $. - name: amazon-migration-hub-list-application description: Amazon Migration Hub List Application States hints: readOnly: true destructive: false idempotent: false call: amazon-migration-hub.listapplicationstates with: MaxResults: tools.MaxResults NextToken: tools.NextToken X-Amz-Target: tools.X-Amz-Target body: tools.body outputParameters: - type: object mapping: $. - name: amazon-migration-hub-list-created description: Amazon Migration Hub List Created Artifacts hints: readOnly: true destructive: false idempotent: false call: amazon-migration-hub.listcreatedartifacts with: MaxResults: tools.MaxResults NextToken: tools.NextToken X-Amz-Target: tools.X-Amz-Target body: tools.body outputParameters: - type: object mapping: $. - name: amazon-migration-hub-list-discovered description: Amazon Migration Hub List Discovered Resources hints: readOnly: true destructive: false idempotent: false call: amazon-migration-hub.listdiscoveredresources with: MaxResults: tools.MaxResults NextToken: tools.NextToken X-Amz-Target: tools.X-Amz-Target body: tools.body outputParameters: - type: object mapping: $. - name: amazon-migration-hub-list-migration description: Amazon Migration Hub List Migration Tasks hints: readOnly: true destructive: false idempotent: false call: amazon-migration-hub.listmigrationtasks with: MaxResults: tools.MaxResults NextToken: tools.NextToken X-Amz-Target: tools.X-Amz-Target body: tools.body outputParameters: - type: object mapping: $. - name: amazon-migration-hub-list-progress description: Amazon Migration Hub List Progress Update Streams hints: readOnly: true destructive: false idempotent: false call: amazon-migration-hub.listprogressupdatestreams with: MaxResults: tools.MaxResults NextToken: tools.NextToken X-Amz-Target: tools.X-Amz-Target body: tools.body outputParameters: - type: object mapping: $. - name: amazon-migration-hub-notify-application description: Amazon Migration Hub Notify Application State hints: readOnly: false destructive: false idempotent: false call: amazon-migration-hub.notifyapplicationstate with: X-Amz-Target: tools.X-Amz-Target body: tools.body outputParameters: - type: object mapping: $. - name: amazon-migration-hub-notify-migration description: Amazon Migration Hub Notify Migration Task State hints: readOnly: false destructive: false idempotent: false call: amazon-migration-hub.notifymigrationtaskstate with: X-Amz-Target: tools.X-Amz-Target body: tools.body outputParameters: - type: object mapping: $. - name: amazon-migration-hub-put-resource description: Amazon Migration Hub Put Resource Attributes hints: readOnly: false destructive: false idempotent: false call: amazon-migration-hub.putresourceattributes with: X-Amz-Target: tools.X-Amz-Target body: tools.body outputParameters: - type: object mapping: $.