naftiko: 1.0.0-alpha2 info: label: FactSet Vermilion API — Instances description: 'FactSet Vermilion API — Instances. 6 operations. Lead operation: Factset Generates a Report. Self-contained Naftiko capability covering one Factset business surface.' tags: - Factset - Instances created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: FACTSET_API_KEY: FACTSET_API_KEY capability: consumes: - type: http namespace: vermilion-instances baseUri: '' description: FactSet Vermilion API — Instances business capability. Self-contained, no shared references. resources: - name: v1-report-instances-generate path: /v1/report-instances/generate operations: - name: generatereport method: POST description: Factset Generates a Report outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v1-tenant-report-instances path: /v1/{tenant}/report-instances operations: - name: getallreportinstances method: GET description: Factset Gets a List of Report Instances outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: tenant in: path type: string description: The code of the tenancy required: true - name: reportDefinitionCode in: query type: string description: Acts as a filter for the retrieval process. Filters the report instances that match the report definition code - name: entityCodes in: query type: string description: 'A series of query parameters used to filter the report instances by entity code. E.g: entityCode=DATE&entityCode=SYSTEM_LANG' - name: entityKeys in: query type: string description: 'A series of query parameters used to filter the report instances by entity keys. E.g: entityKey=en-gb' - name: sectionFilter in: query type: string description: Acts as a filter for the retrieval process. Filters the report instances that match the section filter - name: outputFormat in: query type: string description: Acts as a filter for the retrieval process. Filters the report instances that match the output format - name: _sort in: query type: array description: The column to sort on. Append - to sort in descending order. If parameter is not given, sorting will be based on the report instance id in descending order - name: _paginationLimit in: query type: integer description: Non-negative maximum number of entries to return - name: _paginationOffset in: query type: integer description: Non-negative number of entries to skip - name: v1-tenant-report-instances-reportInstanceId path: /v1/{tenant}/report-instances/{reportInstanceId} operations: - name: cancelreport method: DELETE description: Factset Cancels a Report Generation outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: tenant in: path type: string description: The code of the tenancy required: true - name: reportInstanceId in: path type: string description: The id of the report instance required: true - name: getreportinstancebyid method: GET description: Factset Gets a Report Instance Based on the Id outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: reportInstanceId in: path type: string description: The ID of the report instance required: true - name: tenant in: path type: string description: The code of the tenancy required: true - name: v1-tenant-report-instances-reportInstanceId-logs path: /v1/{tenant}/report-instances/{reportInstanceId}/logs operations: - name: getreportgenerationlogs method: GET description: Factset Gets a List of Logs for the Report Instance Generation outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: tenant in: path type: string description: The code of the tenancy required: true - name: reportInstanceId in: path type: string description: Used to validate that report file name belongs to the report instance passed required: true - name: errorsOnly in: query type: string description: 'If the parameter is set to true the endpoint should return just errors and warnings E.g: errorsOnly=true' - name: _sort in: query type: array description: The column to sort on. Can add - to sort - name: _paginationLimit in: query type: integer description: Non-negative maximum number of entries to return - name: _paginationOffset in: query type: integer description: Non-negative number of entries to skip - name: v1-tenant-report-instances-reportInstanceId-results-reportFileName path: /v1/{tenant}/report-instances/{reportInstanceId}/results/{reportFileName} operations: - name: getreportfile method: GET description: Factset Gets the Generated File outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: tenant in: path type: string description: The code of the tenancy required: true - name: reportInstanceId in: path type: string description: Used to validate that report file name belongs to the report instance passed required: true - name: reportFileName in: path type: string description: 'The report file name that has to be retrieved. report file name. E.g: xyz.pdf' required: true authentication: type: bearer token: '{{env.FACTSET_API_KEY}}' exposes: - type: rest namespace: vermilion-instances-rest port: 8080 description: REST adapter for FactSet Vermilion API — Instances. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/report-instances/generate name: v1-report-instances-generate description: REST surface for v1-report-instances-generate. operations: - method: POST name: generatereport description: Factset Generates a Report call: vermilion-instances.generatereport with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/{tenant}/report-instances name: v1-tenant-report-instances description: REST surface for v1-tenant-report-instances. operations: - method: GET name: getallreportinstances description: Factset Gets a List of Report Instances call: vermilion-instances.getallreportinstances with: tenant: rest.tenant reportDefinitionCode: rest.reportDefinitionCode entityCodes: rest.entityCodes entityKeys: rest.entityKeys sectionFilter: rest.sectionFilter outputFormat: rest.outputFormat _sort: rest._sort _paginationLimit: rest._paginationLimit _paginationOffset: rest._paginationOffset outputParameters: - type: object mapping: $. - path: /v1/v1/{tenant}/report-instances/{reportinstanceid} name: v1-tenant-report-instances-reportinstanceid description: REST surface for v1-tenant-report-instances-reportInstanceId. operations: - method: DELETE name: cancelreport description: Factset Cancels a Report Generation call: vermilion-instances.cancelreport with: tenant: rest.tenant reportInstanceId: rest.reportInstanceId outputParameters: - type: object mapping: $. - method: GET name: getreportinstancebyid description: Factset Gets a Report Instance Based on the Id call: vermilion-instances.getreportinstancebyid with: reportInstanceId: rest.reportInstanceId tenant: rest.tenant outputParameters: - type: object mapping: $. - path: /v1/v1/{tenant}/report-instances/{reportinstanceid}/logs name: v1-tenant-report-instances-reportinstanceid-logs description: REST surface for v1-tenant-report-instances-reportInstanceId-logs. operations: - method: GET name: getreportgenerationlogs description: Factset Gets a List of Logs for the Report Instance Generation call: vermilion-instances.getreportgenerationlogs with: tenant: rest.tenant reportInstanceId: rest.reportInstanceId errorsOnly: rest.errorsOnly _sort: rest._sort _paginationLimit: rest._paginationLimit _paginationOffset: rest._paginationOffset outputParameters: - type: object mapping: $. - path: /v1/v1/{tenant}/report-instances/{reportinstanceid}/results/{reportfilename} name: v1-tenant-report-instances-reportinstanceid-results-reportfilename description: REST surface for v1-tenant-report-instances-reportInstanceId-results-reportFileName. operations: - method: GET name: getreportfile description: Factset Gets the Generated File call: vermilion-instances.getreportfile with: tenant: rest.tenant reportInstanceId: rest.reportInstanceId reportFileName: rest.reportFileName outputParameters: - type: object mapping: $. - type: mcp namespace: vermilion-instances-mcp port: 9090 transport: http description: MCP adapter for FactSet Vermilion API — Instances. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: factset-generates-report description: Factset Generates a Report hints: readOnly: false destructive: false idempotent: false call: vermilion-instances.generatereport with: body: tools.body outputParameters: - type: object mapping: $. - name: factset-gets-list-report-instances description: Factset Gets a List of Report Instances hints: readOnly: true destructive: false idempotent: true call: vermilion-instances.getallreportinstances with: tenant: tools.tenant reportDefinitionCode: tools.reportDefinitionCode entityCodes: tools.entityCodes entityKeys: tools.entityKeys sectionFilter: tools.sectionFilter outputFormat: tools.outputFormat _sort: tools._sort _paginationLimit: tools._paginationLimit _paginationOffset: tools._paginationOffset outputParameters: - type: object mapping: $. - name: factset-cancels-report-generation description: Factset Cancels a Report Generation hints: readOnly: false destructive: true idempotent: true call: vermilion-instances.cancelreport with: tenant: tools.tenant reportInstanceId: tools.reportInstanceId outputParameters: - type: object mapping: $. - name: factset-gets-report-instance-based description: Factset Gets a Report Instance Based on the Id hints: readOnly: true destructive: false idempotent: true call: vermilion-instances.getreportinstancebyid with: reportInstanceId: tools.reportInstanceId tenant: tools.tenant outputParameters: - type: object mapping: $. - name: factset-gets-list-logs-report description: Factset Gets a List of Logs for the Report Instance Generation hints: readOnly: true destructive: false idempotent: true call: vermilion-instances.getreportgenerationlogs with: tenant: tools.tenant reportInstanceId: tools.reportInstanceId errorsOnly: tools.errorsOnly _sort: tools._sort _paginationLimit: tools._paginationLimit _paginationOffset: tools._paginationOffset outputParameters: - type: object mapping: $. - name: factset-gets-generated-file description: Factset Gets the Generated File hints: readOnly: true destructive: false idempotent: true call: vermilion-instances.getreportfile with: tenant: tools.tenant reportInstanceId: tools.reportInstanceId reportFileName: tools.reportFileName outputParameters: - type: object mapping: $.