naftiko: 1.0.0-alpha2 info: label: Endpoints — subpackage_timeTrackingShifts description: 'Endpoints — subpackage_timeTrackingShifts. 7 operations. Lead operation: Create shifts. Self-contained Naftiko capability covering one Deel business surface.' tags: - Deel - subpackage_timeTrackingShifts created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: DEEL_API_KEY: DEEL_API_KEY capability: consumes: - type: http namespace: platform-endpoints-subpackage-timetrackingshifts baseUri: https://api.letsdeel.com/rest/v2 description: Endpoints — subpackage_timeTrackingShifts business capability. Self-contained, no shared references. resources: - name: time_tracking-shifts path: /time_tracking/shifts operations: - name: createtimetrackingshifts method: POST description: Create shifts outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Authorization in: header type: string description: '## Authentication' required: true - name: body in: body type: object description: Request body (JSON). required: false - name: gettimetrackingshifts method: GET description: List of shifts outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: limit in: query type: string description: Maximum number of records to return. - name: offset in: query type: string description: Offset/index of record for the next page of records to return. - name: from_date in: query type: string description: Filter shifts from this date (YYYY-MM-DD). - name: to_date in: query type: string description: Filter shifts until this date (YYYY-MM-DD). - name: contract_id[] in: query type: array description: Filter shifts by one or more contract IDs. - name: Authorization in: header type: string description: '## Authentication' required: true - name: time_tracking-shifts-bulk-delete path: /time_tracking/shifts/bulk-delete operations: - name: deletemultipleshiftsbyexternalid method: POST description: Delete multiple shifts by External ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Authorization in: header type: string description: '## Authentication' required: true - name: body in: body type: object description: Request body (JSON). required: false - name: time_tracking-shifts-raw path: /time_tracking/shifts/raw operations: - name: createtimetrackingshiftsraw method: POST description: Create raw time tracking shifts outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Authorization in: header type: string description: '## Authentication' required: true - name: body in: body type: object description: Request body (JSON). required: false - name: time_tracking-shifts-external_id path: /time_tracking/shifts/{external_id} operations: - name: deletetimetrackingshiftbyexternalid method: DELETE description: Delete a Shift by External ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: external_id in: path type: string description: The unique external identifier of the shift to be deleted. required: true - name: Authorization in: header type: string description: '## Authentication' required: true - name: gettimetrackingshiftbyexternalid method: GET description: Get shift details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: external_id in: path type: string description: Unique identifier of the shift to retrieve. required: true - name: Authorization in: header type: string description: '## Authentication' required: true - name: updatetimetrackingshiftbyexternalid method: PATCH description: Update a shift outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: external_id in: path type: string description: Unique identifier of the shift to be updated. required: true - name: Authorization in: header type: string description: '## Authentication' required: true - name: body in: body type: object description: Request body (JSON). required: false authentication: type: bearer token: '{{env.DEEL_API_KEY}}' exposes: - type: rest namespace: platform-endpoints-subpackage-timetrackingshifts-rest port: 8080 description: REST adapter for Endpoints — subpackage_timeTrackingShifts. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/time-tracking/shifts name: time-tracking-shifts description: REST surface for time_tracking-shifts. operations: - method: POST name: createtimetrackingshifts description: Create shifts call: platform-endpoints-subpackage-timetrackingshifts.createtimetrackingshifts with: Authorization: rest.Authorization body: rest.body outputParameters: - type: object mapping: $. - method: GET name: gettimetrackingshifts description: List of shifts call: platform-endpoints-subpackage-timetrackingshifts.gettimetrackingshifts with: limit: rest.limit offset: rest.offset from_date: rest.from_date to_date: rest.to_date contract_id[]: rest.contract_id[] Authorization: rest.Authorization outputParameters: - type: object mapping: $. - path: /v1/time-tracking/shifts/bulk-delete name: time-tracking-shifts-bulk-delete description: REST surface for time_tracking-shifts-bulk-delete. operations: - method: POST name: deletemultipleshiftsbyexternalid description: Delete multiple shifts by External ID call: platform-endpoints-subpackage-timetrackingshifts.deletemultipleshiftsbyexternalid with: Authorization: rest.Authorization body: rest.body outputParameters: - type: object mapping: $. - path: /v1/time-tracking/shifts/raw name: time-tracking-shifts-raw description: REST surface for time_tracking-shifts-raw. operations: - method: POST name: createtimetrackingshiftsraw description: Create raw time tracking shifts call: platform-endpoints-subpackage-timetrackingshifts.createtimetrackingshiftsraw with: Authorization: rest.Authorization body: rest.body outputParameters: - type: object mapping: $. - path: /v1/time-tracking/shifts/{external-id} name: time-tracking-shifts-external-id description: REST surface for time_tracking-shifts-external_id. operations: - method: DELETE name: deletetimetrackingshiftbyexternalid description: Delete a Shift by External ID call: platform-endpoints-subpackage-timetrackingshifts.deletetimetrackingshiftbyexternalid with: external_id: rest.external_id Authorization: rest.Authorization outputParameters: - type: object mapping: $. - method: GET name: gettimetrackingshiftbyexternalid description: Get shift details call: platform-endpoints-subpackage-timetrackingshifts.gettimetrackingshiftbyexternalid with: external_id: rest.external_id Authorization: rest.Authorization outputParameters: - type: object mapping: $. - method: PATCH name: updatetimetrackingshiftbyexternalid description: Update a shift call: platform-endpoints-subpackage-timetrackingshifts.updatetimetrackingshiftbyexternalid with: external_id: rest.external_id Authorization: rest.Authorization body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: platform-endpoints-subpackage-timetrackingshifts-mcp port: 9090 transport: http description: MCP adapter for Endpoints — subpackage_timeTrackingShifts. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: create-shifts description: Create shifts hints: readOnly: false destructive: false idempotent: false call: platform-endpoints-subpackage-timetrackingshifts.createtimetrackingshifts with: Authorization: tools.Authorization body: tools.body outputParameters: - type: object mapping: $. - name: list-shifts description: List of shifts hints: readOnly: true destructive: false idempotent: true call: platform-endpoints-subpackage-timetrackingshifts.gettimetrackingshifts with: limit: tools.limit offset: tools.offset from_date: tools.from_date to_date: tools.to_date contract_id[]: tools.contract_id[] Authorization: tools.Authorization outputParameters: - type: object mapping: $. - name: delete-multiple-shifts-external-id description: Delete multiple shifts by External ID hints: readOnly: false destructive: false idempotent: false call: platform-endpoints-subpackage-timetrackingshifts.deletemultipleshiftsbyexternalid with: Authorization: tools.Authorization body: tools.body outputParameters: - type: object mapping: $. - name: create-raw-time-tracking-shifts description: Create raw time tracking shifts hints: readOnly: false destructive: false idempotent: false call: platform-endpoints-subpackage-timetrackingshifts.createtimetrackingshiftsraw with: Authorization: tools.Authorization body: tools.body outputParameters: - type: object mapping: $. - name: delete-shift-external-id description: Delete a Shift by External ID hints: readOnly: false destructive: true idempotent: true call: platform-endpoints-subpackage-timetrackingshifts.deletetimetrackingshiftbyexternalid with: external_id: tools.external_id Authorization: tools.Authorization outputParameters: - type: object mapping: $. - name: get-shift-details description: Get shift details hints: readOnly: true destructive: false idempotent: true call: platform-endpoints-subpackage-timetrackingshifts.gettimetrackingshiftbyexternalid with: external_id: tools.external_id Authorization: tools.Authorization outputParameters: - type: object mapping: $. - name: update-shift description: Update a shift hints: readOnly: false destructive: false idempotent: true call: platform-endpoints-subpackage-timetrackingshifts.updatetimetrackingshiftbyexternalid with: external_id: tools.external_id Authorization: tools.Authorization body: tools.body outputParameters: - type: object mapping: $.