naftiko: 1.0.0-alpha2 info: label: MapMyFitness API — Workouts description: 'MapMyFitness API — Workouts. 5 operations. Lead operation: List Workouts. Self-contained Naftiko capability covering one Under Armour business surface.' tags: - Under Armour - Workouts created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: UNDER_ARMOUR_API_KEY: UNDER_ARMOUR_API_KEY capability: consumes: - type: http namespace: mapmyfitness-workouts baseUri: https://api.ua.com description: MapMyFitness API — Workouts business capability. Self-contained, no shared references. resources: - name: v7.1-workout path: /v7.1/workout/ operations: - name: listworkouts method: GET description: List Workouts outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: user in: query type: string description: User resource href or ID to filter workouts by required: true - name: activity_type in: query type: string description: Filter by activity type href or ID (supports multiple, comma-separated) - name: updated_before in: query type: string description: Filter workouts updated before this ISO 8601 datetime - name: updated_after in: query type: string description: Filter workouts updated after this ISO 8601 datetime - name: created_before in: query type: string description: Filter workouts created before this ISO 8601 datetime - name: created_after in: query type: string description: Filter workouts created after this ISO 8601 datetime - name: started_before in: query type: string description: Filter workouts started before this ISO 8601 datetime - name: started_after in: query type: string description: Filter workouts started after this ISO 8601 datetime - name: order_by in: query type: string description: Sort order — start_datetime or -start_datetime (descending) - name: limit in: query type: integer description: Number of results per page - name: offset in: query type: integer description: Pagination offset - name: createworkout method: POST description: Create Workout outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v7.1-workout-id path: /v7.1/workout/{id}/ operations: - name: getworkout method: GET description: Get Workout outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Workout ID required: true - name: field_set in: query type: string description: Include additional data — use time_series for GPS/metric samples - name: updateworkout method: PUT description: Update Workout outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Workout ID required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deleteworkout method: DELETE description: Delete Workout outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Workout ID required: true authentication: type: bearer token: '{{env.UNDER_ARMOUR_API_KEY}}' exposes: - type: rest namespace: mapmyfitness-workouts-rest port: 8080 description: REST adapter for MapMyFitness API — Workouts. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v7-1/workout name: v7-1-workout description: REST surface for v7.1-workout. operations: - method: GET name: listworkouts description: List Workouts call: mapmyfitness-workouts.listworkouts with: user: rest.user activity_type: rest.activity_type updated_before: rest.updated_before updated_after: rest.updated_after created_before: rest.created_before created_after: rest.created_after started_before: rest.started_before started_after: rest.started_after order_by: rest.order_by limit: rest.limit offset: rest.offset outputParameters: - type: object mapping: $. - method: POST name: createworkout description: Create Workout call: mapmyfitness-workouts.createworkout with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v7-1/workout/{id} name: v7-1-workout-id description: REST surface for v7.1-workout-id. operations: - method: GET name: getworkout description: Get Workout call: mapmyfitness-workouts.getworkout with: id: rest.id field_set: rest.field_set outputParameters: - type: object mapping: $. - method: PUT name: updateworkout description: Update Workout call: mapmyfitness-workouts.updateworkout with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteworkout description: Delete Workout call: mapmyfitness-workouts.deleteworkout with: id: rest.id outputParameters: - type: object mapping: $. - type: mcp namespace: mapmyfitness-workouts-mcp port: 9090 transport: http description: MCP adapter for MapMyFitness API — Workouts. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-workouts description: List Workouts hints: readOnly: true destructive: false idempotent: true call: mapmyfitness-workouts.listworkouts with: user: tools.user activity_type: tools.activity_type updated_before: tools.updated_before updated_after: tools.updated_after created_before: tools.created_before created_after: tools.created_after started_before: tools.started_before started_after: tools.started_after order_by: tools.order_by limit: tools.limit offset: tools.offset outputParameters: - type: object mapping: $. - name: create-workout description: Create Workout hints: readOnly: false destructive: false idempotent: false call: mapmyfitness-workouts.createworkout with: body: tools.body outputParameters: - type: object mapping: $. - name: get-workout description: Get Workout hints: readOnly: true destructive: false idempotent: true call: mapmyfitness-workouts.getworkout with: id: tools.id field_set: tools.field_set outputParameters: - type: object mapping: $. - name: update-workout description: Update Workout hints: readOnly: false destructive: false idempotent: true call: mapmyfitness-workouts.updateworkout with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: delete-workout description: Delete Workout hints: readOnly: false destructive: true idempotent: true call: mapmyfitness-workouts.deleteworkout with: id: tools.id outputParameters: - type: object mapping: $.