{"openapi":"3.0.1","info":{"title":"HERE WeGo User Service","description":"The HERE WeGo user service manages user entitlements and it provides role-based access control (RBAC) to those entitlements.

Error Codes:

The following common error codes apply to all endpoints.

400 Bad Request

401 Unauthorized

403 Forbidden

404 Not Found

410 Gone

409 Conflict

500 Internal Server Error

","version":"1.0.4"},"servers":[{"url":"https://api.wego.hereapi.com/user-service","description":"Production environment for WeGo Pro"}],"tags":[{"name":"Feature Groups","description":"Endpoints for managing feature groups"},{"name":"Subscriptions","description":"Endpoints for managing subscriptions"},{"name":"User Tracking","description":"Endpoints for tracking users"}],"paths":{"/subscriptions/{subscriptionId}":{"put":{"tags":["Subscriptions"],"summary":"Update subscription by ID","description":"Endpoint to update an existing subscription's details.","operationId":"updateSubscriptionById","parameters":[{"name":"subscriptionId","in":"path","description":"Unique subscription id of the subscription to update","required":true,"schema":{"type":"string","format":"uuid"},"example":"d5c4d553-8272-4432-9b13-9135abee6d53"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionUpdatePublicRequestDto"},"example":{"zuoraSubscriptionId":"SUBSCRIPTION-f3f51e10-f22d-4df7-9c28-3367854bca66"}}},"required":true},"responses":{"204":{"description":"Subscription updated successfully"},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":400,"title":"Zuora Subscription error","correlationId":"2f2afe17-220e-4318-9299-954280d6b04f","code":"E400500","cause":"Zuora subscription 'SUBSCRIPTION-f3f51e10-f22d-4df7-9c28-3367854bca66' is not active","requestId":"REQ-ae47badf-66c2-4944-83f4-106f595cf975"}}}},"401":{"description":"Unauthorized - Invalid authorization token","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UnauthorizedErrorResponseDto"},{"$ref":"#/components/schemas/ErrorResponseDto"}]},"example":{"status":401,"title":"Unauthorized","correlationId":"a74fee73-f99c-4721-95a9-96e5c2615e63","code":"E401100","cause":"Unauthorized - Invalid Credentials","requestId":"REQ-t59f32eg-3181-52t6-13wc-6g7h9179u8c3"}}}},"403":{"description":"Forbidden - Access to the requested resource is forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":403,"title":"Access Denied","correlationId":"01ae70f6-d756-4352-b219-b7ee4820f184","code":"E403100","cause":"Not an admin user","requestId":"REQ-e48e44df-6290-43e4-85eb-8f8a8258e1d8"}}}},"404":{"description":"Subscription not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":404,"title":"Resource not found","correlationId":"c622ba3c-2b75-446c-a37b-6e871bce3edf","code":"E404100","cause":"Subscription key not found","requestId":"REQ-38f62707-746f-4071-ad3d-3c06d64785a7"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":500,"title":"Internal Server Error","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E500100","requestId":"REQ-38f62707-746f-4071-ad3d-3c06d64785a7"}}}}},"security":[{"Bearer":[]},{"apiKey":[]}]}},"/subscriptions/keys/{subscriptionKey}":{"get":{"tags":["Subscriptions"],"summary":"Get subscription details by subscription key","description":"Endpoint to retrieve subscription details by their unique Subscription Key.","operationId":"getSubscriptionByKey","parameters":[{"name":"subscriptionKey","in":"path","description":"Unique subscription key of the subscription to retrieve","required":true,"schema":{"type":"string"},"example":"SUBSCRIPTION-494ac3c6-3b17-4586-9662-4c7fb189ac7e"}],"responses":{"200":{"description":"Found the subscription","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionDetailsDto"},"example":{"id":"0e3ad78d-0de7-41e4-8391-2b2b4138560b","subscriptionKey":"SUBSCRIPTION-0e3ad78d-0de7-41e4-8391-2b2b4138560b","keyType":"SINGLE_DEVICE","organization":"Here","status":"ACTIVE","featureGroups":[{"id":"550e8400-e29b-41d4-a716-446655440000","name":"feature_group_name","description":"Test feature group description","createdAt":"2025-05-15T16:30:12Z","modifiedAt":"2025-05-15T16:40:12Z"}],"expirationTime":"2025-10-30T15:01:09Z"}}}},"400":{"description":"Invalid request body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":400,"title":"Invalid argument type","correlationId":"9fbfc01f-bebd-4d67-afa6-cb55129a978a","code":"E400104","cause":"Invalid argument type: subscriptionKey, expected String","requestId":"REQ-3988cb52-bb32-46be-b788-a502feede54e"}}}},"401":{"description":"Unauthorized - Invalid authorization token","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UnauthorizedErrorResponseDto"},{"$ref":"#/components/schemas/ErrorResponseDto"}]},"example":{"status":401,"title":"Unauthorized","correlationId":"a74fee73-f99c-4721-95a9-96e5c2615e63","code":"E401100","cause":"Unauthorized - Invalid Credentials","requestId":"REQ-t59f32eg-3181-52t6-13wc-6g7h9179u8c3"}}}},"403":{"description":"Forbidden - Access to the requested resource is forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":403,"title":"Access Denied","correlationId":"01ae70f6-d756-4352-b219-b7ee4820f184","code":"E403100","cause":"Not an admin user","requestId":"REQ-e48e44df-6290-43e4-85eb-8f8a8258e1d8"}}}},"404":{"description":"Subscription not found","content":{"application/json":{"example":{"status":404,"title":"Resource not found","correlationId":"2546e826-e2c5-4e47-a149-54561756ccd1","cause":"Unable to find com.here.wego.userservice.entity.SubscriptionEntity with id d5c4d553-8272-4432-9b13-9135abee6d54","code":"E404100","requestId":"REQ-4b61ab20-7819-422c-98d5-85d8f7eb5722"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":500,"title":"Internal Server Error","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E500100"}}}}},"security":[{"Bearer":[]},{"apiKey":[]}]},"put":{"tags":["Subscriptions"],"summary":"Update subscription by Subscription Key","description":"Endpoint to update an existing subscription's details.","operationId":"updateSubscriptionByKey","parameters":[{"name":"subscriptionKey","in":"path","description":"Unique subscription key of the subscription to update","required":true,"schema":{"type":"string"},"example":"d5c4d553-8272-4432-9b13-9135abee6d53"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionUpdatePublicRequestDto"},"example":{"zuoraSubscriptionId":"SUBSCRIPTION-f3f51e10-f22d-4df7-9c28-3367854bca66"}}},"required":true},"responses":{"204":{"description":"Subscription updated successfully"},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":400,"title":"Zuora Subscription error","correlationId":"2f2afe17-220e-4318-9299-954280d6b04f","code":"E400500","cause":"Zuora subscription 'SUBSCRIPTION-f3f51e10-f22d-4df7-9c28-3367854bca66' is not active","requestId":"REQ-ae47badf-66c2-4944-83f4-106f595cf975"}}}},"401":{"description":"Unauthorized - Invalid authorization token","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UnauthorizedErrorResponseDto"},{"$ref":"#/components/schemas/ErrorResponseDto"}]},"example":{"status":401,"title":"Unauthorized","correlationId":"a74fee73-f99c-4721-95a9-96e5c2615e63","code":"E401100","cause":"Unauthorized - Invalid Credentials","requestId":"REQ-t59f32eg-3181-52t6-13wc-6g7h9179u8c3"}}}},"403":{"description":"Forbidden - Access to the requested resource is forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":403,"title":"Access Denied","correlationId":"01ae70f6-d756-4352-b219-b7ee4820f184","code":"E403100","cause":"Not an admin user","requestId":"REQ-e48e44df-6290-43e4-85eb-8f8a8258e1d8"}}}},"404":{"description":"Subscription not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":404,"title":"Resource not found","correlationId":"c622ba3c-2b75-446c-a37b-6e871bce3edf","code":"E404100","cause":"Subscription key not found","requestId":"REQ-38f62707-746f-4071-ad3d-3c06d64785a7"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":500,"title":"Internal Server Error","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E500100","requestId":"REQ-38f62707-746f-4071-ad3d-3c06d64785a7"}}}}},"security":[{"Bearer":[]},{"apiKey":[]}]}},"/subscriptions":{"get":{"tags":["Subscriptions"],"summary":"Get active subscriptions","description":"Endpoint to get a paginated list of active subscriptions for an organization","operationId":"getActiveSubscriptions","parameters":[{"name":"page","in":"query","schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","schema":{"type":"integer","format":"int32","default":10}}],"responses":{"200":{"description":"Active subscriptions retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SubscriptionSummaryDto"}},"example":{"content":[{"id":"7a8f9b2c-ef1d-4c5e-96a7-b8c9d0e1f2a3","subscriptionKey":"SUBSCRIPTION-fafc5397-4044-48b8-9ff7-ae2a17c42238","keyType":"SINGLE_DEVICE"},{"id":"0e3ad78d-0de7-41e4-8391-2b2b4138560b","subscriptionKey":"SUBSCRIPTION-0e3ad78d-0de7-41e4-8391-2b2b4138560b","keyType":"SINGLE_DEVICE"}],"totalElements":2,"totalPages":1}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":400,"title":"Invalid argument type","correlationId":"2f2afe17-220e-4318-9299-954280d6b04f","code":"E400104","cause":"Invalid argument type: size, expected int","requestId":"REQ-ae47badf-66c2-4944-83f4-106f595cf975"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":500,"title":"Internal Server Error","code":"E500100","requestId":"REQ-38f62707-746f-4071-ad3d-3c06d64785a7","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69"}}}}},"security":[{"Bearer":[]},{"apiKey":[]}]},"post":{"tags":["Subscriptions"],"summary":"Create new subscription keys","description":"Endpoint to create new subscription keys","operationId":"createSubscriptionKeysPublic","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionCreateRequestDto"},"example":{"keyType":"SINGLE_DEVICE","numKeys":2,"expirationTime":"2024-05-30T23:59:59","featureGroups":[{"name":"Feature Group Name"},{"id":"321e4567-e89b-12d3-a456-426655440123"}]}}},"required":true},"responses":{"201":{"description":"Subscription keys created successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CreatedSubscriptionDto"}},"example":[{"id":"2550e4f5-547d-43ea-adf8-e3d3ff281583","subscriptionKey":"05e7fcb4-33d4-421d-b43c-447ca6c1364b"},{"id":"18a533ed-b2c3-467b-a56a-06e5d2e5a858","subscriptionKey":"82b5debe-969e-4a3a-836f-b416df5a4a6f"}]}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":400,"title":"Validation Error","correlationId":"2f2afe17-220e-4318-9299-954280d6b04f","code":"E400102","cause":"numKeys: Number of keys must be between 1 and 100","requestId":"REQ-ae47badf-66c2-4944-83f4-106f595cf975"}}}},"401":{"description":"Unauthorized - Invalid authorization token","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UnauthorizedErrorResponseDto"},{"$ref":"#/components/schemas/ErrorResponseDto"}]},"example":{"status":401,"title":"Unauthorized","correlationId":"a74fee73-f99c-4721-95a9-96e5c2615e63","code":"E401100","cause":"Unauthorized - Invalid Credentials","requestId":"REQ-t59f32eg-3181-52t6-13wc-6g7h9179u8c3"}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":404,"title":"Resource not found","correlationId":"c622ba3c-2b75-446c-a37b-6e871bce3edf","code":"E404100","cause":"Result must not be null","requestId":"REQ-38f62707-746f-4071-ad3d-3c06d64785a7"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":500,"title":"Internal Server Error","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E500100","requestId":"REQ-38f62707-746f-4071-ad3d-3c06d64785a7"}}}}},"security":[{"Bearer":[]},{"apiKey":[]}]}},"/subscriptions/{subscriptionId}/featureGroups/{featureGroupId}":{"post":{"tags":["Subscriptions"],"summary":"Add a feature group to a subscription","description":"Endpoint to add a feature group to a subscription.","operationId":"addFeatureGroupToSubscription","parameters":[{"name":"subscriptionId","in":"path","description":"ID of the subscription to which the feature group will be added","required":true,"schema":{"type":"string","format":"uuid"},"example":"2550e4f5-547d-43ea-adf8-e3d3ff281583"},{"name":"featureGroupId","in":"path","description":"ID of the feature group to add","required":true,"schema":{"type":"string","format":"uuid"},"example":"98c2d8a6-4371-4ac7-b712-43ff7349cbd9"}],"responses":{"204":{"description":"Feature group added successfully"},"400":{"description":"Invalid request body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":400,"title":"Invalid argument type","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E400104","cause":"Invalid argument type: subscriptionId, expected UUID","requestId":"REQ-749a88d3-2976-4459-ab99-a81bd94fe6b1"}}}},"401":{"description":"Unauthorized - Invalid authorization token","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UnauthorizedErrorResponseDto"},{"$ref":"#/components/schemas/ErrorResponseDto"}]},"example":{"status":401,"title":"Unauthorized","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E401100","cause":"Unauthorized - Invalid Credentials","requestId":"REQ-t59f32eg-3181-52t6-13wc-6g7h9179u8c3"}}}},"403":{"description":"Forbidden - Access to the requested resource is forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":403,"title":"Access Denied","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E403100","cause":"Not an admin user","requestId":"REQ-e48e44df-6290-43e4-85eb-8f8a8258e1d8"}}}},"404":{"description":"Subscription or feature group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":404,"title":"Resource not found","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E404100","cause":"Unable to find com.here.wego.userservice.entity.SubscriptionEntity with id 7c02dfe9-f23e-43ae-8300-19da0e631923","requestId":"REQ-f3a065d0-f868-45f5-8159-e72802e5baac"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":500,"title":"Internal Server Error","requestId":"REQ-42b7bee9-3997-4cf6-b099-9c5c8b1bdbbd","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E500100"}}}}},"security":[{"Bearer":[]},{"apiKey":[]}]},"delete":{"tags":["Subscriptions"],"summary":"Remove a feature group from a subscription","description":"Endpoint to remove a feature group from a subscription.","operationId":"removeFeatureGroupFromSubscription","parameters":[{"name":"subscriptionId","in":"path","description":"ID of the subscription from which the feature group will be removed","required":true,"schema":{"type":"string","format":"uuid"},"example":"2550e4f5-547d-43ea-adf8-e3d3ff281583"},{"name":"featureGroupId","in":"path","description":"ID of the feature group to remove","required":true,"schema":{"type":"string","format":"uuid"},"example":"98c2d8a6-4371-4ac7-b712-43ff7349cbd9"}],"responses":{"204":{"description":"Feature group removed successfully"},"400":{"description":"Invalid request body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":400,"title":"Invalid argument type","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E400104","cause":"Invalid argument type: subscriptionId, expected UUID","requestId":"REQ-749a88d3-2976-4459-ab99-a81bd94fe6b1"}}}},"401":{"description":"Unauthorized - Invalid authorization token","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UnauthorizedErrorResponseDto"},{"$ref":"#/components/schemas/ErrorResponseDto"}]},"example":{"status":401,"title":"Unauthorized","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E401100","cause":"Unauthorized - Invalid Credentials","requestId":"REQ-t59f32eg-3181-52t6-13wc-6g7h9179u8c3"}}}},"403":{"description":"Forbidden - Access to the requested resource is forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":403,"title":"Access Denied","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E403100","cause":"Not an admin user","requestId":"REQ-e48e44df-6290-43e4-85eb-8f8a8258e1d8"}}}},"404":{"description":"Subscription or feature group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":404,"title":"Resource not found","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E404100","cause":"Unable to find com.here.wego.userservice.entity.SubscriptionEntity with id 7c02dfe9-f23e-43ae-8300-19da0e631923","requestId":"REQ-f3a065d0-f868-45f5-8159-e72802e5baac"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":500,"title":"Internal Server Error","requestId":"REQ-42b7bee9-3997-4cf6-b099-9c5c8b1bdbbd","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E500100"}}}}},"security":[{"Bearer":[]},{"apiKey":[]}]}},"/subscriptions/keys/{subscriptionKey}/featureGroups/{featureGroupId}":{"post":{"tags":["Subscriptions"],"summary":"Add a feature group to a subscription","description":"Endpoint to add a feature group to a subscription.","operationId":"addFeatureGroupToSubscription_1","parameters":[{"name":"subscriptionKey","in":"path","description":"Unique Subscription Key of the subscription to which the feature group will be added","required":true,"schema":{"type":"string"},"example":"SUBSCRIPTION-550e4f5-547d-43ea-adf8-e3d3ff281583"},{"name":"featureGroupId","in":"path","description":"ID of the feature group to add","required":true,"schema":{"type":"string","format":"uuid"},"example":"98c2d8a6-4371-4ac7-b712-43ff7349cbd9"}],"responses":{"204":{"description":"Feature group added successfully"},"400":{"description":"Invalid request body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":400,"title":"Invalid argument type","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E400104","cause":"Invalid argument type: subscriptionId, expected UUID","requestId":"REQ-749a88d3-2976-4459-ab99-a81bd94fe6b1"}}}},"401":{"description":"Unauthorized - Invalid authorization token","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UnauthorizedErrorResponseDto"},{"$ref":"#/components/schemas/ErrorResponseDto"}]},"example":{"status":401,"title":"Unauthorized","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E401100","cause":"Unauthorized - Invalid Credentials","requestId":"REQ-t59f32eg-3181-52t6-13wc-6g7h9179u8c3"}}}},"403":{"description":"Forbidden - Access to the requested resource is forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":403,"title":"Access Denied","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E403100","cause":"Not an admin user","requestId":"REQ-e48e44df-6290-43e4-85eb-8f8a8258e1d8"}}}},"404":{"description":"Subscription or feature group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":404,"title":"Resource not found","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E404100","cause":"Unable to find com.here.wego.userservice.entity.SubscriptionEntity with id 7c02dfe9-f23e-43ae-8300-19da0e631923","requestId":"REQ-f3a065d0-f868-45f5-8159-e72802e5baac"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":500,"title":"Internal Server Error","requestId":"REQ-42b7bee9-3997-4cf6-b099-9c5c8b1bdbbd","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E500100"}}}}},"security":[{"Bearer":[]},{"apiKey":[]}]},"delete":{"tags":["Subscriptions"],"summary":"Remove a feature group from a subscription","description":"Endpoint to remove a feature group from a subscription.","operationId":"removeFeatureGroupFromSubscription_1","parameters":[{"name":"subscriptionKey","in":"path","description":"Subscription Key of the subscription from which the feature group will be removed","required":true,"schema":{"type":"string"},"example":"SUBSCRIPTION-2550e4f5-547d-43ea-adf8-e3d3ff281583"},{"name":"featureGroupId","in":"path","description":"ID of the feature group to remove","required":true,"schema":{"type":"string","format":"uuid"},"example":"98c2d8a6-4371-4ac7-b712-43ff7349cbd9"}],"responses":{"204":{"description":"Feature group removed successfully"},"400":{"description":"Invalid request body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":400,"title":"Invalid argument type","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E400104","cause":"Invalid argument type: featureGroupId, expected UUID","requestId":"REQ-749a88d3-2976-4459-ab99-a81bd94fe6b1"}}}},"401":{"description":"Unauthorized - Invalid authorization token","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UnauthorizedErrorResponseDto"},{"$ref":"#/components/schemas/ErrorResponseDto"}]},"example":{"status":401,"title":"Unauthorized","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E401100","cause":"Unauthorized - Invalid Credentials","requestId":"REQ-t59f32eg-3181-52t6-13wc-6g7h9179u8c3"}}}},"403":{"description":"Forbidden - Access to the requested resource is forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":403,"title":"Access Denied","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E403100","cause":"Not an admin user","requestId":"REQ-e48e44df-6290-43e4-85eb-8f8a8258e1d8"}}}},"404":{"description":"Subscription or feature group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":404,"title":"Resource not found","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E404100","cause":"Unable to find com.here.wego.userservice.entity.SubscriptionEntity with id 7c02dfe9-f23e-43ae-8300-19da0e631923","requestId":"REQ-f3a065d0-f868-45f5-8159-e72802e5baac"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":500,"title":"Internal Server Error","requestId":"REQ-42b7bee9-3997-4cf6-b099-9c5c8b1bdbbd","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E500100"}}}}},"security":[{"Bearer":[]},{"apiKey":[]}]}},"/subscriptions/keys/{subscriptionKey}/featureGroups/names/{featureGroupName}":{"post":{"tags":["Subscriptions"],"summary":"Add a feature group to a subscription","description":"Endpoint to add a feature group to a subscription.","operationId":"addFeatureGroupToSubscription_2","parameters":[{"name":"subscriptionKey","in":"path","description":"Unique Subscription Key of the subscription to which the feature group will be added","required":true,"schema":{"type":"string"},"example":"SUBSCRIPTION-2550e4f5-547d-43ea-adf8-e3d3ff281583"},{"name":"featureGroupName","in":"path","description":"Unique name of the feature group to add","required":true,"schema":{"type":"string"},"example":"TRUCK_FEATURE_GROUP"}],"responses":{"204":{"description":"Feature group added successfully"},"400":{"description":"Invalid request body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":400,"title":"Invalid argument type","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E400104","cause":"Invalid argument type: subscriptionId, expected UUID","requestId":"REQ-749a88d3-2976-4459-ab99-a81bd94fe6b1"}}}},"401":{"description":"Unauthorized - Invalid authorization token","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UnauthorizedErrorResponseDto"},{"$ref":"#/components/schemas/ErrorResponseDto"}]},"example":{"status":401,"title":"Unauthorized","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E401100","cause":"Unauthorized - Invalid Credentials","requestId":"REQ-t59f32eg-3181-52t6-13wc-6g7h9179u8c3"}}}},"403":{"description":"Forbidden - Access to the requested resource is forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":403,"title":"Access Denied","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E403100","cause":"Not an admin user","requestId":"REQ-e48e44df-6290-43e4-85eb-8f8a8258e1d8"}}}},"404":{"description":"Subscription or feature group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":404,"title":"Resource not found","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E404100","cause":"Unable to find com.here.wego.userservice.entity.SubscriptionEntity with id 7c02dfe9-f23e-43ae-8300-19da0e631923","requestId":"REQ-f3a065d0-f868-45f5-8159-e72802e5baac"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":500,"title":"Internal Server Error","requestId":"REQ-42b7bee9-3997-4cf6-b099-9c5c8b1bdbbd","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E500100"}}}}},"security":[{"Bearer":[]},{"apiKey":[]}]},"delete":{"tags":["Subscriptions"],"summary":"Remove a feature group from a subscription","description":"Endpoint to remove a feature group from a subscription.","operationId":"removeFeatureGroupFromSubscription_2","parameters":[{"name":"subscriptionKey","in":"path","description":"Subscription Key of the subscription from which the feature group will be removed","required":true,"schema":{"type":"string"},"example":"SUBSCRIPTION-2550e4f5-547d-43ea-adf8-e3d3ff281583"},{"name":"featureGroupName","in":"path","description":"Unique name of the feature group to remove","required":true,"schema":{"type":"string"},"example":"TRUCK_FEATURE_GROUP"}],"responses":{"204":{"description":"Feature group removed successfully"},"400":{"description":"Invalid request body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":400,"title":"Invalid argument type","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E400104","cause":"Invalid argument type: subscriptionId, expected UUID","requestId":"REQ-749a88d3-2976-4459-ab99-a81bd94fe6b1"}}}},"401":{"description":"Unauthorized - Invalid authorization token","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UnauthorizedErrorResponseDto"},{"$ref":"#/components/schemas/ErrorResponseDto"}]},"example":{"status":401,"title":"Unauthorized","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E401100","cause":"Unauthorized - Invalid Credentials","requestId":"REQ-t59f32eg-3181-52t6-13wc-6g7h9179u8c3"}}}},"403":{"description":"Forbidden - Access to the requested resource is forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":403,"title":"Access Denied","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E403100","cause":"Not an admin user","requestId":"REQ-e48e44df-6290-43e4-85eb-8f8a8258e1d8"}}}},"404":{"description":"Subscription or feature group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":404,"title":"Resource not found","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E404100","cause":"Unable to find com.here.wego.userservice.entity.SubscriptionEntity with id 7c02dfe9-f23e-43ae-8300-19da0e631923","requestId":"REQ-f3a065d0-f868-45f5-8159-e72802e5baac"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":500,"title":"Internal Server Error","requestId":"REQ-42b7bee9-3997-4cf6-b099-9c5c8b1bdbbd","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E500100"}}}}},"security":[{"Bearer":[]},{"apiKey":[]}]}},"/subscriptions/keys/{subscriptionKey}/deactivate":{"post":{"tags":["Subscriptions"],"summary":"Deactivate subscription devices","description":"Endpoint to deactivate devices associated with the given subscription","operationId":"deactivateDevices","parameters":[{"name":"subscriptionKey","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateSubscriptionDevicesRequestDto"},"example":{"devices":["device1","device2"]}}},"required":true},"responses":{"204":{"description":"Subscription devices deactivated successfully"},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":400,"title":"Validation Error","correlationId":"2f2afe17-220e-4318-9299-954280d6b04f","code":"E400102","cause":"devices: must not be empty","requestId":"REQ-ae47badf-66c2-4944-83f4-106f595cf975"}}}},"401":{"description":"Unauthorized - Invalid authorization token","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UnauthorizedErrorResponseDto"},{"$ref":"#/components/schemas/ErrorResponseDto"}]},"example":{"status":401,"title":"Unauthorized","correlationId":"a74fee73-f99c-4721-95a9-96e5c2615e63","code":"E401100","cause":"Unauthorized - Invalid Credentials","requestId":"REQ-t59f32eg-3181-52t6-13wc-6g7h9179u8c3"}}}},"403":{"description":"Forbidden - Access to the requested resource is forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":403,"title":"Access Denied","correlationId":"01ae70f6-d756-4352-b219-b7ee4820f184","code":"E403100","cause":"Not an admin user","requestId":"REQ-e48e44df-6290-43e4-85eb-8f8a8258e1d8"}}}},"404":{"description":"Subscription not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":404,"title":"Resource not found","correlationId":"c622ba3c-2b75-446c-a37b-6e871bce3edf","code":"E404100","cause":"Subscription key not found","requestId":"REQ-38f62707-746f-4071-ad3d-3c06d64785a7"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":500,"title":"Internal Server Error","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E500100","requestId":"REQ-38f62707-746f-4071-ad3d-3c06d64785a7"}}}}},"security":[{"Bearer":[]},{"apiKey":[]}]}},"/subscriptions/deactivate":{"post":{"tags":["Subscriptions"],"summary":"Deactivate subscription","description":"Endpoint to deactivate a subscription","operationId":"deactivateSubscription","parameters":[{"name":"x-subscription-key","in":"header","description":"The subscription key","required":true,"schema":{"type":"string"},"example":"b35eb927-0fea-4ff0-99fb-f71b85135807"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateSubscriptionRequestDto"},"example":{"status":"DELETED"}}},"required":true},"responses":{"204":{"description":"Subscription deactivated successfully"},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":400,"title":"Validation Error","correlationId":"2f2afe17-220e-4318-9299-954280d6b04f","code":"E400102","cause":"subscriptionKey: must not be blank","requestId":"REQ-ae47badf-66c2-4944-83f4-106f595cf975"}}}},"401":{"description":"Unauthorized - Invalid authorization token","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UnauthorizedErrorResponseDto"},{"$ref":"#/components/schemas/ErrorResponseDto"}]},"example":{"status":401,"title":"Unauthorized","correlationId":"a74fee73-f99c-4721-95a9-96e5c2615e63","code":"E401100","cause":"Unauthorized - Invalid Credentials","requestId":"REQ-t59f32eg-3181-52t6-13wc-6g7h9179u8c3"}}}},"403":{"description":"Forbidden - Access to the requested resource is forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":403,"title":"Access Denied","correlationId":"01ae70f6-d756-4352-b219-b7ee4820f184","code":"E403100","cause":"Not an admin user","requestId":"REQ-e48e44df-6290-43e4-85eb-8f8a8258e1d8"}}}},"404":{"description":"Subscription not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":404,"title":"Resource not found","correlationId":"c622ba3c-2b75-446c-a37b-6e871bce3edf","code":"E404100","cause":"Subscription key not found","requestId":"REQ-38f62707-746f-4071-ad3d-3c06d64785a7"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":500,"title":"Internal Server Error","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E500100","requestId":"REQ-38f62707-746f-4071-ad3d-3c06d64785a7"}}}}},"security":[{"Bearer":[]},{"apiKey":[]}]}},"/users/tracking/report":{"get":{"tags":["User Tracking"],"summary":"Get user tracking report","description":"Get tracking report for all users of an organization","operationId":"getOrganizationTrackingReport","responses":{"200":{"description":"Report generated successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserTrackingReportDto"}},"example":[{"email":"user@example.com","hereAccountUserId":"HERE-4e82b2a6-6c58-45d6-ab2d-774f75bb973c","deviceId":"42b3a3f6-8d2e-4c11-bafc-0a68f24e7dc9","currentLocation":{"lat":52,"lon":-1.5},"waypoints":[{"eta":"2024-01-11T11:38:15Z","lat":53,"lon":-2.5}],"modifiedAt":"2024-03-22T15:43:11Z"}]}}},"401":{"description":"Unauthorized - Invalid authorization token","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UnauthorizedErrorResponseDto"},{"$ref":"#/components/schemas/ErrorResponseDto"}]},"example":{"status":401,"title":"Unauthorized","correlationId":"a74fee73-f99c-4721-95a9-96e5c2615e63","code":"E401100","cause":"Unauthorized - Invalid Credentials","requestId":"REQ-t59f32eg-3181-52t6-13wc-6g7h9179u8c3"}}}},"403":{"description":"Forbidden - Access to the requested resource is forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":403,"title":"Access Denied","correlationId":"71827357-9de4-4a9d-8956-b8c161f7261a","code":"E403100","cause":"Not an admin user","requestId":"REQ-t59f32eg-3181-52t6-13wc-6g7h9179u8c3"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":500,"title":"Internal Server Error","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E500100","requestId":"REQ-8e912d12-63f8-4a7c-9209-96f1a720be5d"}}}}},"security":[{"Bearer":[]},{"apiKey":[]}]}},"/subscriptions/keys/{subscriptionKey}/devices":{"get":{"tags":["Subscriptions"],"summary":"Get subscription devices details by subscription key","description":"Endpoint to retrieve subscription devices by Subscription Key.","operationId":"getSubscriptionDevices","parameters":[{"name":"subscriptionKey","in":"path","description":"Unique subscription key of the subscription to retrieve","required":true,"schema":{"type":"string"},"example":"SUBSCRIPTION-494ac3c6-3b17-4586-9662-4c7fb189ac7e"}],"responses":{"200":{"description":"Found the subscription","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionDevicesDto"},"example":{"subscriptionStatus":"ACTIVE","devices":[{"deviceId":"device1","deviceStatus":"ACTIVE","lastActiveAt":"2025-01-31T12:30:13Z"}]}}}},"400":{"description":"Invalid request body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":400,"title":"Invalid argument type","correlationId":"9fbfc01f-bebd-4d67-afa6-cb55129a978a","code":"E400104","cause":"Invalid argument type: subscriptionKey, expected String","requestId":"REQ-3988cb52-bb32-46be-b788-a502feede54e"}}}},"401":{"description":"Unauthorized - Invalid authorization token","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UnauthorizedErrorResponseDto"},{"$ref":"#/components/schemas/ErrorResponseDto"}]},"example":{"status":401,"title":"Unauthorized","correlationId":"a74fee73-f99c-4721-95a9-96e5c2615e63","code":"E401100","cause":"Unauthorized - Invalid Credentials","requestId":"REQ-t59f32eg-3181-52t6-13wc-6g7h9179u8c3"}}}},"403":{"description":"Forbidden - Access to the requested resource is forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":403,"title":"Access Denied","correlationId":"01ae70f6-d756-4352-b219-b7ee4820f184","code":"E403100","cause":"Not an admin user","requestId":"REQ-e48e44df-6290-43e4-85eb-8f8a8258e1d8"}}}},"404":{"description":"Subscription not found","content":{"application/json":{"example":{"status":404,"title":"Resource not found","correlationId":"2546e826-e2c5-4e47-a149-54561756ccd1","cause":"Unable to find com.here.wego.userservice.entity.SubscriptionEntity with id d5c4d553-8272-4432-9b13-9135abee6d54","code":"E404100","requestId":"REQ-4b61ab20-7819-422c-98d5-85d8f7eb5722"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":500,"title":"Internal Server Error","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E500100"}}}}},"security":[{"Bearer":[]},{"apiKey":[]}]}},"/featureGroups":{"get":{"tags":["Feature Groups"],"summary":"Get paginated feature groups","description":"Endpoint to get a paginated list of feature groups sorted alphabetically by name.","operationId":"getFeatureGroups","parameters":[{"name":"page","in":"query","schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","schema":{"type":"integer","format":"int32","default":10}}],"responses":{"200":{"description":"List of feature groups","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageFeatureGroupDto"},"example":{"content":[{"id":"999ac3c6-3b17-3456-9662-4c7fb189aa8b","name":"Another Feature Group","description":"Another Feature Group Description","createdAt":"2022-05-24T18:41:50Z","modifiedAt":"2022-05-24T18:41:50Z"},{"id":"494ac3c6-3b17-4586-9662-4c7fb189ac7e","name":"New Feature Group","description":"Feature Group Description","createdAt":"2023-07-24T18:41:50Z","modifiedAt":"2023-07-24T18:41:50Z"},{"id":"2b38af71-56c6-4e43-b67a-ee8fdb78cfdc","name":"Test Feature Group","description":"Test Feature Group Description","createdAt":"2023-07-14T15:31:20Z","modifiedAt":"2023-07-14T15:31:20Z"}],"totalPages":1,"totalElements":3}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":400,"title":"Invalid argument type","correlationId":"4b5c8cfb-a13d-4cf9-a3cc-50f22c2a529e","code":"E400104","cause":"Invalid argument type: size, expected int","requestId":"REQ-ae47badf-66c2-4944-83f4-106f595cf975"}}}},"401":{"description":"Unauthorized - Invalid authorization token","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UnauthorizedErrorResponseDto"},{"$ref":"#/components/schemas/ErrorResponseDto"}]},"example":{"status":401,"title":"Unauthorized","correlationId":"a74fee73-f99c-4721-95a9-96e5c2615e63","code":"E401100","cause":"Unauthorized - Invalid Credentials","requestId":"REQ-t59f32eg-3181-52t6-13wc-6g7h9179u8c3"}}}},"403":{"description":"Forbidden - Access to the requested resource is forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":403,"title":"Access Denied","correlationId":"01ae70f6-d756-4352-b219-b7ee4820f184","code":"E403100","cause":"Not an admin user","requestId":"REQ-e48e44df-6290-43e4-85eb-8f8a8258e1d8"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":500,"title":"Internal Server Error","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E500100"}}}}},"security":[{"Bearer":[]},{"apiKey":[]}]}},"/featureGroups/{featureGroupId}/features":{"get":{"tags":["Feature Groups"],"summary":"Get feature group with its features","description":"Endpoint to get a feature group with its associated features.","operationId":"getFeatureGroupWithFeatures","parameters":[{"name":"featureGroupId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Feature group with features","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureGroupWithFeaturesDto"},"example":{"featureGroup":{"id":"a6b8fe28-39b3-4df1-8a6c-56d92c79fc97","name":"Test Feature Group","description":"Test Feature Group Description","createdAt":"2023-07-01T14:30:00Z","modifiedAt":"2023-07-01T14:35:10Z","features":[{"id":"d3f9c6ac-87b7-4d2e-9465-4d3a5c852b2a","name":"Test feature","description":"Test feature description","createdAt":"2023-07-03T13:30:00Z","modifiedAt":"2023-07-03T13:35:10Z"}]}}}}},"400":{"description":"Invalid argument type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":400,"title":"Invalid argument type","correlationId":"62bac32b-ba4b-4965-9155-5a0ffd9d3564","code":"E400104","cause":"Invalid argument type: featureGroupId, expected UUID"}}}},"404":{"description":"Feature group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":404,"title":"Not Found","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E404100","cause":"Feature group not found"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":500,"title":"Internal Server Error","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E500100"}}}}},"security":[{"Bearer":[]},{"apiKey":[]}]}},"/subscriptions/devices":{"delete":{"tags":["Subscriptions"],"summary":"Delete associated devices","description":"Endpoint to delete all devices associated with a given subscription key","operationId":"deleteAssociatedDevices","parameters":[{"name":"x-subscription-key","in":"header","description":"The subscription key","required":true,"schema":{"type":"string"},"example":"b35eb927-0fea-4ff0-99fb-f71b85135807"}],"responses":{"204":{"description":"Associated devices deleted successfully"},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":400,"title":"Validation Error","correlationId":"2f2afe17-220e-4318-9299-954280d6b04f","code":"E400102","cause":"subscriptionKey: must not be blank","requestId":"REQ-ae47badf-66c2-4944-83f4-106f595cf975"}}}},"401":{"description":"Unauthorized - Invalid authorization token","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UnauthorizedErrorResponseDto"},{"$ref":"#/components/schemas/ErrorResponseDto"}]},"example":{"status":401,"title":"Unauthorized","correlationId":"a74fee73-f99c-4721-95a9-96e5c2615e63","code":"E401100","cause":"Unauthorized - Invalid Credentials","requestId":"REQ-t59f32eg-3181-52t6-13wc-6g7h9179u8c3"}}}},"403":{"description":"Forbidden - Access to the requested resource is forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":403,"title":"Access Denied","correlationId":"01ae70f6-d756-4352-b219-b7ee4820f184","code":"E403100","cause":"Not an admin user","requestId":"REQ-e48e44df-6290-43e4-85eb-8f8a8258e1d8"}}}},"404":{"description":"Subscription not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":404,"title":"Resource not found","correlationId":"c622ba3c-2b75-446c-a37b-6e871bce3edf","code":"E404100","cause":"Subscription key not found","requestId":"REQ-38f62707-746f-4071-ad3d-3c06d64785a7"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDto"},"example":{"status":500,"title":"Internal Server Error","correlationId":"414ed0d4-5804-4173-a136-404ffed07c69","code":"E500100","requestId":"REQ-38f62707-746f-4071-ad3d-3c06d64785a7"}}}}},"security":[{"Bearer":[]},{"apiKey":[]}]}}},"components":{"schemas":{"SubscriptionUpdatePublicRequestDto":{"type":"object","properties":{"zuoraSubscriptionId":{"type":"string","description":"Zuora subscription ID","example":"A-S00001563"}}},"ErrorResponseDto":{"required":["correlationId","status","title"],"type":"object","properties":{"status":{"type":"integer","description":"The HTTP status code","format":"int32","example":400},"title":{"type":"string","description":"Human-readable error description","example":"Validation Error"},"correlationId":{"type":"string","description":"Auto-generated ID univocally identifying this request","example":"c5b92188-5eea-452a-a2e1-08c9a53bb5b9"},"code":{"type":"string","description":"Error code","example":"E500100"},"cause":{"type":"string","description":"Human-readable explanation for the error","example":"name: must not be blank"},"action":{"type":"string","description":"Human-readable action for the user","example":"null"},"requestId":{"type":"string","description":"Request identifier provided by the user via `x-request-id` header","example":"REQ-5a46fd9e-6244-4dba-bdef-5bc344338fac"}}},"UnauthorizedErrorResponseDto":{"required":["error","error_description"],"type":"object","properties":{"error":{"type":"string","description":"The error type indicating the request is unauthorized.","example":"Unauthorized"},"error_description":{"type":"string","description":"A description providing more details about the unauthorized error.","example":"No credentials found"}}},"FeatureGroupByIdRequestDto":{"required":["id"],"type":"object","allOf":[{"$ref":"#/components/schemas/FeatureGroupRequestDto"},{"type":"object","properties":{"id":{"type":"string","format":"uuid"}}}]},"FeatureGroupByNameRequestDto":{"required":["name"],"type":"object","allOf":[{"$ref":"#/components/schemas/FeatureGroupRequestDto"},{"type":"object","properties":{"name":{"type":"string"}}}]},"FeatureGroupRequestDto":{"type":"object","description":"An optional list of feature groups specified by either name or ID.","example":[{"name":"New Feature Group"},{"id":"123e4567-e89b-12d3-a456-426614174000"}]},"SubscriptionCreateRequestDto":{"required":["featureGroups","keyType","numKeys"],"type":"object","properties":{"keyType":{"type":"string","description":"The type of key to be generated.","example":"SINGLE_DEVICE","enum":["SINGLE_DEVICE","MULTI_DEVICE"]},"numKeys":{"maximum":100,"minimum":1,"type":"integer","description":"The number of keys to be generated.","format":"int32","example":2},"expirationTime":{"type":"string","description":"The expiration time of the generated keys.","format":"date-time"},"featureGroups":{"type":"array","description":"An optional list of feature groups specified by either name or ID.","example":[{"name":"New Feature Group"},{"id":"123e4567-e89b-12d3-a456-426614174000"}],"items":{"oneOf":[{"$ref":"#/components/schemas/FeatureGroupByIdRequestDto"},{"$ref":"#/components/schemas/FeatureGroupByNameRequestDto"}]}},"zuoraSubscriptionId":{"type":"string","description":"Zuora subscription ID","example":"A-S00001563"}}},"CreatedSubscriptionDto":{"required":["id","subscriptionKey"],"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the created subscription.","format":"uuid","example":"18a533ed-b2c3-467b-a56a-06e5d2e5a858"},"subscriptionKey":{"type":"string","description":"The subscription key.","example":"c6f11a00-6f08-46c7-8636-4977fde39476"}}},"DeactivateSubscriptionDevicesRequestDto":{"required":["devices"],"type":"object","properties":{"devices":{"type":"array","items":{"type":"string"}}}},"DeactivateSubscriptionRequestDto":{"type":"object","properties":{"status":{"type":"string","description":"The status to set for the deactivated subscription","default":"DELETED","enum":["INACTIVE","DELETED"]}}},"CurrentLocationResponseDto":{"required":["lat","lon"],"type":"object","properties":{"lat":{"type":"number","description":"The latitude of the current location.","format":"double","example":51},"lon":{"type":"number","description":"The longitude of the current location.","format":"double","example":-0.5}},"description":"The current location of the user."},"UserTrackingReportDto":{"required":["currentLocation","deviceId","modifiedAt","waypoints"],"type":"object","properties":{"email":{"type":"string","description":"The email address of the user.","example":"user@example.com"},"hereAccountUserId":{"type":"string","description":"The Here Account User identifier of the user.","example":"HERE-c6f11a00-6f08-46c7-8636-4977fde39476"},"subscriptionKey":{"type":"string","description":"Subscription key of a subscription associated with tracked device","example":"0676c48e-56b6-4bee-b317-f3fad499f4f8"},"deviceId":{"type":"string","description":"The device ID associated with the user location.","example":"b8dc5d44-2210-4d4f-b383-3dc6c7f8c52d"},"currentLocation":{"$ref":"#/components/schemas/CurrentLocationResponseDto"},"waypoints":{"type":"array","description":"The list of waypoints including each waypoint's location and ETA.","items":{"$ref":"#/components/schemas/WaypointDto"}},"modifiedAt":{"type":"string","description":"The date and time when the user location was last updated. This reflects the most recent change to the user's location or waypoints.","format":"date-time","example":"2024-03-21T14:42:35Z"}}},"WaypointDto":{"required":["eta","lat","lon"],"type":"object","properties":{"eta":{"type":"string","description":"The estimated time of arrival (ETA) at this waypoint.","format":"date-time","example":"2024-02-05T22:56:48Z"},"lat":{"type":"number","description":"The latitude of the waypoint.","format":"double","example":52},"lon":{"type":"number","description":"The longitude of the waypoint.","format":"double","example":-1}},"description":"The list of waypoints including each waypoint's location and ETA."},"SubscriptionSummaryDto":{"required":["id","keyType","subscriptionKey"],"type":"object","properties":{"id":{"type":"string","description":"The subscription unique ID.","format":"uuid","example":"0e3ad78d-0de7-41e4-8391-2b2b4138560b"},"subscriptionKey":{"type":"string","description":"The subscription key.","example":"SUBSCRIPTION-0e3ad78d-0de7-41e4-8391-2b2b4138560b"},"keyType":{"type":"string","description":"The type of a subscription.","example":"SINGLE_DEVICE","enum":["SINGLE_DEVICE","MULTI_DEVICE"]}}},"FeatureGroupDto":{"required":["createdAt","description","id","modifiedAt","name"],"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the feature group.","format":"uuid","example":"494ac3c6-3b17-4586-9662-4c7fb189ac7e"},"name":{"type":"string","description":"The name of the new feature group.","example":"New Feature Group"},"description":{"type":"string","description":"A brief description of the feature group.","example":"Feature Group Description"},"createdAt":{"type":"string","description":"The date and time when the feature group was created.","format":"date-time","example":"2023-07-24T18:41:50Z"},"modifiedAt":{"type":"string","description":"The date and time when the feature group was last modified.","format":"date-time","example":"2023-07-24T18:41:50Z"}}},"SubscriptionDetailsDto":{"required":["expirationTime","featureGroups","id","keyType","status","subscriptionKey"],"type":"object","properties":{"id":{"type":"string","description":"The subscription unique ID.","format":"uuid","example":"0e3ad78d-0de7-41e4-8391-2b2b4138560b"},"subscriptionKey":{"type":"string","description":"The subscription key.","example":"SUBSCRIPTION-0e3ad78d-0de7-41e4-8391-2b2b4138560b"},"keyType":{"type":"string","description":"The type of a subscription.","example":"SINGLE_DEVICE","enum":["SINGLE_DEVICE","MULTI_DEVICE"]},"status":{"type":"string","description":"The status of the subscription.","example":"ACTIVE","enum":["ACTIVE","INACTIVE","DELETED"]},"featureGroups":{"uniqueItems":true,"type":"array","description":"Set of feature groups assigned to this subscription.","example":[{"id":"550e8400-e29b-41d4-a716-446655440000","name":"feature_group_name","description":"Test feature group description","features":[{"id":"a1b2c3d4-e5f6-4321-8765-9876543210ab","name":"feature_name"}]}],"items":{"$ref":"#/components/schemas/FeatureGroupDto"}},"expirationTime":{"type":"string","description":"The expiration time of the subscription.","format":"date-time","example":"2024-05-30T23:59:59Z"},"zuoraSubscriptionId":{"type":"string","description":"Zuora subscription ID","example":"A-S00001563"}}},"SubscriptionDeviceDetailsDto":{"required":["deviceId","deviceStatus"],"type":"object","properties":{"deviceId":{"type":"string","description":"The device identifier.","example":"DEVICE-bb9d8e02-70dd-427f-99f6-89a8a0d503a5"},"deviceStatus":{"type":"string","description":"Device status","example":"ACTIVE","enum":["ACTIVE","INACTIVE","DELETED"]},"lastActiveAt":{"type":"string","description":"The date and time when the device was last active.","format":"date-time","example":"2025-02-03T16:44:12Z"}}},"SubscriptionDevicesDto":{"required":["devices","subscriptionStatus"],"type":"object","properties":{"subscriptionStatus":{"type":"string","description":"Subscription status.","example":"ACTIVE","enum":["ACTIVE","INACTIVE","DELETED"]},"devices":{"type":"array","items":{"$ref":"#/components/schemas/SubscriptionDeviceDetailsDto"}}}},"PageFeatureGroupDto":{"required":["content","totalElements","totalPages"],"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/FeatureGroupDto"}},"totalElements":{"type":"integer","description":"Total number of elements","format":"int64","example":2},"totalPages":{"type":"integer","description":"Total number of pages","format":"int32","example":1}}},"FeatureDto":{"required":["createdAt","description","id","modifiedAt","name"],"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the feature.","format":"uuid","example":"2550e4f5-547d-43ea-adf8-e3d3ff281583"},"name":{"type":"string","description":"The name of the new feature.","enum":["ALL_TRUCK_FEATURE","ASSISTANT_LANDING","ASSISTANT_NAVIGATION","CUSTOM_BRANDING","HIDE_NON_TRUCK_MODES","LIVE_TRACKING","ORGANIZATION_MANAGER","READ_MONTHLY_ACTIVE_DEVICES_REPORT","READ_TRACKING_REPORT","WIFI_ONLY_MAP_DOWNLOAD"]},"description":{"type":"string","description":"A brief description of the feature.","example":"Feature Description"},"createdAt":{"type":"string","description":"The date and time when the feature was created.","format":"date-time","example":"2023-07-24T17:29:03Z"},"modifiedAt":{"type":"string","description":"The date and time when the feature was last modified.","format":"date-time","example":"2023-07-24T17:29:03Z"}}},"FeatureGroupFeatureDto":{"required":["createdAt","description","features","id","modifiedAt","name"],"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the feature group.","format":"uuid","example":"878bb615-3fbd-415f-85cf-e496da3596cb"},"name":{"type":"string","description":"The name of the new feature group.","example":"New Feature Group"},"description":{"type":"string","description":"A brief description of the feature.","example":"Feature Group Description"},"createdAt":{"type":"string","description":"The date and time when the feature was created.","format":"date-time","example":"2023-07-24T18:41:50Z"},"modifiedAt":{"type":"string","description":"The date and time when the feature was last modified.","format":"date-time","example":"2023-07-24T18:41:50Z"},"features":{"uniqueItems":true,"type":"array","items":{"$ref":"#/components/schemas/FeatureDto"}}}},"FeatureGroupWithFeaturesDto":{"required":["featureGroup"],"type":"object","properties":{"featureGroup":{"$ref":"#/components/schemas/FeatureGroupFeatureDto"}}}},"securitySchemes":{"Bearer":{"type":"http","description":"Bearer Access Token issued to either the User or Client.","scheme":"bearer","bearerFormat":"JWT"},"apiKey":{"type":"apiKey","description":"API key from the HERE Platform Application","name":"apiKey","in":"query"}}}}