naftiko: 1.0.0-alpha2 info: label: Toyota Telematics API — Vehicles description: 'Toyota Telematics API — Vehicles. 9 operations. Lead operation: List Fleet Vehicles. Self-contained Naftiko capability covering one Toyota business surface.' tags: - Toyota - Vehicles created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: TOYOTA_API_KEY: TOYOTA_API_KEY capability: consumes: - type: http namespace: telematics-vehicles baseUri: https://api.eig.toyota.com/telematics/v1 description: Toyota Telematics API — Vehicles business capability. Self-contained, no shared references. resources: - name: fleet-fleetId-vehicles path: /fleet/{fleetId}/vehicles operations: - name: listfleetvehicles method: GET description: List Fleet Vehicles outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: fleetId in: path type: string description: Fleet identifier required: true - name: status in: query type: string description: Filter by status - name: page in: query type: integer - name: limit in: query type: integer - name: fleet-fleetId-vehicles-enroll path: /fleet/{fleetId}/vehicles/enroll operations: - name: enrollvehicle method: POST description: Enroll Vehicle outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: fleetId in: path type: string description: Fleet identifier required: true - name: body in: body type: object description: Request body (JSON). required: true - name: vehicles path: /vehicles operations: - name: listvehicles method: GET description: List Vehicles outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: fleetId in: query type: string description: Filter vehicles by fleet identifier - name: status in: query type: string description: Filter by telematics enrollment status - name: page in: query type: integer - name: limit in: query type: integer - name: vehicles-vin path: /vehicles/{vin} operations: - name: getvehicle method: GET description: Get Vehicle outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: vin in: path type: string description: 17-character Vehicle Identification Number (VIN) required: true - name: vehicles-vin-health path: /vehicles/{vin}/health operations: - name: getvehiclehealth method: GET description: Get Vehicle Health outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: vin in: path type: string description: Vehicle Identification Number required: true - name: vehicles-vin-location path: /vehicles/{vin}/location operations: - name: getvehiclelocation method: GET description: Get Vehicle Location outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: vin in: path type: string description: Vehicle Identification Number required: true - name: vehicles-vin-subscriptions path: /vehicles/{vin}/subscriptions operations: - name: getvehiclesubscriptions method: GET description: Get Vehicle Subscriptions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: vin in: path type: string description: Vehicle Identification Number required: true - name: vehicles-vin-telemetry path: /vehicles/{vin}/telemetry operations: - name: getvehicletelemetry method: GET description: Get Vehicle Telemetry outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: vin in: path type: string description: Vehicle Identification Number required: true - name: vehicles-vin-trips path: /vehicles/{vin}/trips operations: - name: getvehicletrips method: GET description: Get Vehicle Trips outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: vin in: path type: string description: Vehicle Identification Number required: true - name: fromDate in: query type: string description: Start date for trip history required: true - name: toDate in: query type: string description: End date for trip history required: true - name: limit in: query type: integer description: Maximum number of trips to return - name: offset in: query type: integer description: Pagination offset - name: includeRoute in: query type: boolean description: Include GPS route coordinates for each trip authentication: type: bearer token: '{{env.TOYOTA_API_KEY}}' exposes: - type: rest namespace: telematics-vehicles-rest port: 8080 description: REST adapter for Toyota Telematics API — Vehicles. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/fleet/{fleetid}/vehicles name: fleet-fleetid-vehicles description: REST surface for fleet-fleetId-vehicles. operations: - method: GET name: listfleetvehicles description: List Fleet Vehicles call: telematics-vehicles.listfleetvehicles with: fleetId: rest.fleetId status: rest.status page: rest.page limit: rest.limit outputParameters: - type: object mapping: $. - path: /v1/fleet/{fleetid}/vehicles/enroll name: fleet-fleetid-vehicles-enroll description: REST surface for fleet-fleetId-vehicles-enroll. operations: - method: POST name: enrollvehicle description: Enroll Vehicle call: telematics-vehicles.enrollvehicle with: fleetId: rest.fleetId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/vehicles name: vehicles description: REST surface for vehicles. operations: - method: GET name: listvehicles description: List Vehicles call: telematics-vehicles.listvehicles with: fleetId: rest.fleetId status: rest.status page: rest.page limit: rest.limit outputParameters: - type: object mapping: $. - path: /v1/vehicles/{vin} name: vehicles-vin description: REST surface for vehicles-vin. operations: - method: GET name: getvehicle description: Get Vehicle call: telematics-vehicles.getvehicle with: vin: rest.vin outputParameters: - type: object mapping: $. - path: /v1/vehicles/{vin}/health name: vehicles-vin-health description: REST surface for vehicles-vin-health. operations: - method: GET name: getvehiclehealth description: Get Vehicle Health call: telematics-vehicles.getvehiclehealth with: vin: rest.vin outputParameters: - type: object mapping: $. - path: /v1/vehicles/{vin}/location name: vehicles-vin-location description: REST surface for vehicles-vin-location. operations: - method: GET name: getvehiclelocation description: Get Vehicle Location call: telematics-vehicles.getvehiclelocation with: vin: rest.vin outputParameters: - type: object mapping: $. - path: /v1/vehicles/{vin}/subscriptions name: vehicles-vin-subscriptions description: REST surface for vehicles-vin-subscriptions. operations: - method: GET name: getvehiclesubscriptions description: Get Vehicle Subscriptions call: telematics-vehicles.getvehiclesubscriptions with: vin: rest.vin outputParameters: - type: object mapping: $. - path: /v1/vehicles/{vin}/telemetry name: vehicles-vin-telemetry description: REST surface for vehicles-vin-telemetry. operations: - method: GET name: getvehicletelemetry description: Get Vehicle Telemetry call: telematics-vehicles.getvehicletelemetry with: vin: rest.vin outputParameters: - type: object mapping: $. - path: /v1/vehicles/{vin}/trips name: vehicles-vin-trips description: REST surface for vehicles-vin-trips. operations: - method: GET name: getvehicletrips description: Get Vehicle Trips call: telematics-vehicles.getvehicletrips with: vin: rest.vin fromDate: rest.fromDate toDate: rest.toDate limit: rest.limit offset: rest.offset includeRoute: rest.includeRoute outputParameters: - type: object mapping: $. - type: mcp namespace: telematics-vehicles-mcp port: 9090 transport: http description: MCP adapter for Toyota Telematics API — Vehicles. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-fleet-vehicles description: List Fleet Vehicles hints: readOnly: true destructive: false idempotent: true call: telematics-vehicles.listfleetvehicles with: fleetId: tools.fleetId status: tools.status page: tools.page limit: tools.limit outputParameters: - type: object mapping: $. - name: enroll-vehicle description: Enroll Vehicle hints: readOnly: false destructive: false idempotent: false call: telematics-vehicles.enrollvehicle with: fleetId: tools.fleetId body: tools.body outputParameters: - type: object mapping: $. - name: list-vehicles description: List Vehicles hints: readOnly: true destructive: false idempotent: true call: telematics-vehicles.listvehicles with: fleetId: tools.fleetId status: tools.status page: tools.page limit: tools.limit outputParameters: - type: object mapping: $. - name: get-vehicle description: Get Vehicle hints: readOnly: true destructive: false idempotent: true call: telematics-vehicles.getvehicle with: vin: tools.vin outputParameters: - type: object mapping: $. - name: get-vehicle-health description: Get Vehicle Health hints: readOnly: true destructive: false idempotent: true call: telematics-vehicles.getvehiclehealth with: vin: tools.vin outputParameters: - type: object mapping: $. - name: get-vehicle-location description: Get Vehicle Location hints: readOnly: true destructive: false idempotent: true call: telematics-vehicles.getvehiclelocation with: vin: tools.vin outputParameters: - type: object mapping: $. - name: get-vehicle-subscriptions description: Get Vehicle Subscriptions hints: readOnly: true destructive: false idempotent: true call: telematics-vehicles.getvehiclesubscriptions with: vin: tools.vin outputParameters: - type: object mapping: $. - name: get-vehicle-telemetry description: Get Vehicle Telemetry hints: readOnly: true destructive: false idempotent: true call: telematics-vehicles.getvehicletelemetry with: vin: tools.vin outputParameters: - type: object mapping: $. - name: get-vehicle-trips description: Get Vehicle Trips hints: readOnly: true destructive: false idempotent: true call: telematics-vehicles.getvehicletrips with: vin: tools.vin fromDate: tools.fromDate toDate: tools.toDate limit: tools.limit offset: tools.offset includeRoute: tools.includeRoute outputParameters: - type: object mapping: $.