{"components":{"schemas":{"BaseQueryParamsSchema":{"properties":{"per_page":{"default":10,"description":"The number of items for each page","format":"int32","maximum":1000,"minimum":0,"nullable":true,"type":"integer"}},"type":"object"},"DeviceTokenSchema":{"properties":{"app_bundle_id":{"type":"string"},"app_version":{"type":"string"},"date_created":{"format":"date-time","readOnly":true,"type":"string"},"date_modified":{"format":"date-time","readOnly":true,"type":"string"},"device_name":{"type":"string"},"device_token":{"type":"string"},"failed_count":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"readOnly":true,"type":"integer"},"is_active":{"readOnly":true,"type":"boolean"},"last_failed_at":{"format":"date-time","readOnly":true,"type":"string"},"last_used_at":{"format":"date-time","readOnly":true,"type":"string"},"platform":{"enum":["ios","android"],"type":"string"},"push_service":{"enum":["apns","fcm"],"type":"string"},"system_domain_id":{"format":"uuid","readOnly":true,"type":"string"},"user_id":{"format":"uuid","readOnly":true,"type":"string"}},"required":["device_token","platform"],"type":"object"},"DeviceTokensQueryParamsSchema":{"properties":{"per_page":{"default":10,"description":"The number of items for each page","format":"int32","maximum":1000,"minimum":0,"nullable":true,"type":"integer"}},"type":"object"},"DeviceTokensSchema":{"properties":{"first_url":{"readOnly":true,"type":"string"},"last_url":{"readOnly":true,"type":"string"},"next_url":{"readOnly":true,"type":"string"},"objects":{"items":{"$ref":"#/components/schemas/DeviceTokenSchema"},"readOnly":true,"type":"array"},"page":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"readOnly":true,"type":"integer"},"pages":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"readOnly":true,"type":"integer"},"per_page":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"readOnly":true,"type":"integer"},"prev_url":{"readOnly":true,"type":"string"},"total":{"format":"int64","maximum":9223372036854775807,"minimum":-9223372036854775808,"readOnly":true,"type":"integer"}},"type":"object"},"ListObjectsSchema":{"properties":{"first_url":{"readOnly":true,"type":"string"},"last_url":{"readOnly":true,"type":"string"},"next_url":{"readOnly":true,"type":"string"},"page":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"readOnly":true,"type":"integer"},"pages":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"readOnly":true,"type":"integer"},"per_page":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"readOnly":true,"type":"integer"},"prev_url":{"readOnly":true,"type":"string"},"total":{"format":"int64","maximum":9223372036854775807,"minimum":-9223372036854775808,"readOnly":true,"type":"integer"}},"type":"object"},"NotificationSchema":{"properties":{"context":{"type":"object"},"date_created":{"format":"date-time","readOnly":true,"type":"string"},"date_modified":{"format":"date-time","readOnly":true,"type":"string"},"event_type":{"type":"string"},"exclude_users":{"items":{"format":"uuid","type":"string"},"nullable":true,"type":"array"},"id":{"format":"uuid","readOnly":true,"type":"string"},"message_long":{"type":"string"},"message_short":{"type":"string"},"object_id":{"format":"uuid","type":"string"},"object_type":{"type":"string"},"recipient_id":{"format":"uuid","type":"string"},"sender_id":{"format":"uuid","type":"string"},"share_id":{"format":"uuid","type":"string"},"share_user_id":{"format":"uuid","type":"string"},"status":{"enum":["QUEUED","SENT","READ"],"type":"string"},"sub_object_id":{"format":"uuid","type":"string"},"sub_object_type":{"type":"string"},"system_domain_id":{"format":"uuid","readOnly":true,"type":"string"},"user_id":{"format":"uuid","type":"string"}},"required":["event_type","message_long","message_short","object_id","object_type","recipient_id","sender_id"],"type":"object"},"NotificationSettingSchema":{"properties":{"enabled":{"type":"boolean"},"event_type":{"readOnly":true,"type":"string"},"object_type":{"readOnly":true,"type":"string"},"protocol":{"enum":["web","email","push"],"readOnly":true,"type":"string"},"recipient_id":{"format":"uuid","readOnly":true,"type":"string"},"settings":{"type":"object"},"sub_object_type":{"readOnly":true,"type":"string"},"system_domain_id":{"format":"uuid","readOnly":true,"type":"string"}},"required":["enabled","event_type","object_type"],"type":"object"},"NotificationSettingsSchema":{"properties":{"first_url":{"readOnly":true,"type":"string"},"last_url":{"readOnly":true,"type":"string"},"next_url":{"readOnly":true,"type":"string"},"objects":{"items":{"$ref":"#/components/schemas/NotificationSettingSchema"},"readOnly":true,"type":"array"},"page":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"readOnly":true,"type":"integer"},"pages":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"readOnly":true,"type":"integer"},"per_page":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"readOnly":true,"type":"integer"},"prev_url":{"readOnly":true,"type":"string"},"total":{"format":"int64","maximum":9223372036854775807,"minimum":-9223372036854775808,"readOnly":true,"type":"integer"}},"type":"object"},"NotificationsSchema":{"properties":{"first_url":{"readOnly":true,"type":"string"},"last_url":{"readOnly":true,"type":"string"},"next_url":{"readOnly":true,"type":"string"},"objects":{"items":{"$ref":"#/components/schemas/NotificationSchema"},"readOnly":true,"type":"array"},"page":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"readOnly":true,"type":"integer"},"pages":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"readOnly":true,"type":"integer"},"per_page":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"readOnly":true,"type":"integer"},"prev_url":{"readOnly":true,"type":"string"},"total":{"format":"int64","maximum":9223372036854775807,"minimum":-9223372036854775808,"readOnly":true,"type":"integer"}},"type":"object"},"SubscriptionSchema":{"properties":{"date_created":{"format":"date-time","readOnly":true,"type":"string"},"date_modified":{"format":"date-time","readOnly":true,"type":"string"},"event_type":{"type":"string"},"id":{"format":"uuid","readOnly":true,"type":"string"},"object_id":{"format":"uuid","type":"string"},"object_type":{"type":"string"},"sub_object_id":{"format":"uuid","type":"string"},"sub_object_type":{"type":"string"},"system_domain_id":{"format":"uuid","readOnly":true,"type":"string"},"user_id":{"format":"uuid","readOnly":true,"type":"string"}},"required":["object_type"],"type":"object"},"SubscriptionsSchema":{"properties":{"first_url":{"readOnly":true,"type":"string"},"last_url":{"readOnly":true,"type":"string"},"next_url":{"readOnly":true,"type":"string"},"objects":{"items":{"$ref":"#/components/schemas/SubscriptionSchema"},"readOnly":true,"type":"array"},"page":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"readOnly":true,"type":"integer"},"pages":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"readOnly":true,"type":"integer"},"per_page":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"readOnly":true,"type":"integer"},"prev_url":{"readOnly":true,"type":"string"},"total":{"format":"int64","maximum":9223372036854775807,"minimum":-9223372036854775808,"readOnly":true,"type":"integer"}},"type":"object"},"SystemNotificationSchema":{"properties":{"context":{"type":"object"},"date_created":{"format":"date-time","readOnly":true,"type":"string"},"date_modified":{"format":"date-time","readOnly":true,"type":"string"},"event_type":{"type":"string"},"exclude_users":{"items":{"format":"uuid","type":"string"},"nullable":true,"type":"array"},"id":{"format":"uuid","readOnly":true,"type":"string"},"message_long":{"type":"string"},"message_short":{"type":"string"},"object_id":{"format":"uuid","nullable":true,"type":"string"},"object_type":{"type":"string"},"recipient_id":{"format":"uuid","type":"string"},"sender_id":{"format":"uuid","type":"string"},"share_id":{"format":"uuid","type":"string"},"share_user_id":{"format":"uuid","type":"string"},"status":{"enum":["QUEUED","SENT","READ"],"nullable":true,"type":"string"},"sub_object_id":{"format":"uuid","type":"string"},"sub_object_type":{"type":"string"},"system_domain_id":{"format":"uuid","type":"string"},"user_id":{"format":"uuid","type":"string"}},"required":["event_type","message_long","message_short","object_type","recipient_id","sender_id","system_domain_id"],"type":"object"}}},"info":{"title":"Iconik Users Notifications","version":"2.0.0"},"openapi":"3.0.3","paths":{"/":{},"/ip/":{},"/livez/":{},"/readyz/":{},"/spec/":{},"/static/{filename}":{},"/v1/device_tokens/":{"post":{"description":"","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceTokenSchema"}}},"description":"body","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceTokenSchema"}}},"description":"Returns the updated device token (if token already exists)"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceTokenSchema"}}},"description":"Returns the created device token"},"400":{"description":"Bad request"},"401":{"description":"Token is invalid"},"403":{"description":"Only admin users can manage device tokens"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Register a new device token for push notifications"}},"/v1/notification_settings/":{"get":{"description":"\nRequired roles:\n - can_read_notification_settings\n","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"},{"description":"The number of items for each page","in":"query","name":"per_page","schema":{"default":10,"format":"int32","type":"integer"},"style":"form"},{"description":"ID of a last file set on previous page","in":"query","name":"last_id","schema":{"type":"string"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationSettingsSchema"}}},"description":"Returns a notification_setting"},"400":{"description":"Bad request"},"401":{"description":"Token is invalid"},"404":{"description":"Subscription does not exist"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Returns a particular notification_setting by id"}},"/v1/notification_settings/{object_type}/{sub_object_type}/{event_type}/{protocol}/":{"get":{"description":"\nRequired roles:\n - can_read_notification_settings\n","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"path","name":"object_type","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"path","name":"sub_object_type","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"path","name":"event_type","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"path","name":"protocol","required":true,"schema":{"type":"string"},"style":"simple"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationSettingSchema"}}},"description":"Returns a notification_setting"},"400":{"description":"Bad request"},"401":{"description":"Token is invalid"},"404":{"description":"NotificationSetting does not exist"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Returns a particular notification_setting by id"},"put":{"description":"","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"path","name":"object_type","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"path","name":"sub_object_type","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"path","name":"event_type","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"path","name":"protocol","required":true,"schema":{"type":"string"},"style":"simple"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationSettingSchema"}}},"description":"body","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationSettingSchema"}}},"description":"Returns a created notification_setting"},"400":{"description":"Bad request"},"401":{"description":"Token is invalid"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Create a new notification_setting"}},"/v1/notifications/":{"get":{"description":"\nRequired roles:\n - can_read_notifications\n","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"},{"description":"The number of items for each page","in":"query","name":"per_page","schema":{"default":10,"format":"int32","type":"integer"},"style":"form"},{"description":"ID of a last file set on previous page","in":"query","name":"last_id","schema":{"type":"string"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationsSchema"}}},"description":"Returns a notification"},"400":{"description":"Bad request"},"401":{"description":"Token is invalid"},"404":{"description":"Notification does not exist"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Returns a list of notifications"},"post":{"description":"","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationSchema"}}},"description":"body","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationSchema"}}},"description":"Returns a created notification"},"400":{"description":"Bad request"},"401":{"description":"Token is invalid"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Create a new notification"}},"/v1/notifications/all/read/":{"put":{"description":"\nRequired roles:\n - can_read_notifications\n","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"}],"responses":{"200":{"description":"Without body"},"400":{"description":"Bad request"},"401":{"description":"Token is invalid"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Update notification"}},"/v1/notifications/system/":{"post":{"description":"","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemNotificationSchema"}}},"description":"body","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationSchema"}}},"description":"Returns a created notification"},"400":{"description":"Bad request"},"401":{"description":"Token is invalid"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Create a new system notification"}},"/v1/notifications/{notification_id}/":{"delete":{"description":"\nRequired roles:\n - can_delete_notifications\n","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"path","name":"notification_id","required":true,"schema":{"type":"string"},"style":"simple"}],"responses":{"204":{"description":"Without body"},"400":{"description":"Bad request"},"401":{"description":"Token is invalid"},"404":{"description":"Notification does not exist"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Delete a particular notification by id"},"get":{"description":"\nRequired roles:\n - can_read_notifications\n","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"path","name":"notification_id","required":true,"schema":{"type":"string"},"style":"simple"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationSchema"}}},"description":"Returns a notification"},"400":{"description":"Bad request"},"401":{"description":"Token is invalid"},"404":{"description":"Notification does not exist"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Returns a particular notification by id"}},"/v1/notifications/{notification_id}/read/":{"put":{"description":"\nRequired roles:\n - can_read_notifications\n","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"path","name":"notification_id","required":true,"schema":{"type":"string"},"style":"simple"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationSchema"}}},"description":"Returns the updated notification"},"400":{"description":"Bad request"},"401":{"description":"Token is invalid"},"404":{"description":"Notification does not exist"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Mark a particular notification as read"}},"/v1/subscriptions/":{"get":{"description":"\nRequired roles:\n - can_read_subscriptions\n","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionSchema"}}},"description":"Returns a subscription"},"400":{"description":"Bad request"},"401":{"description":"Token is invalid"},"404":{"description":"Subscription does not exist"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Returns all user subscriptions"},"post":{"description":"","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionSchema"}}},"description":"body","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionSchema"}}},"description":"Returns a created subscription"},"400":{"description":"Bad request"},"401":{"description":"Token is invalid"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Create a new subscription"}},"/v1/subscriptions/{subscription_id}/":{"delete":{"description":"\nRequired roles:\n - can_write_subscriptions\n","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"path","name":"subscription_id","required":true,"schema":{"type":"string"},"style":"simple"}],"responses":{"204":{"description":"Without body"},"400":{"description":"Bad request"},"401":{"description":"Token is invalid"},"404":{"description":"Subscription does not exist"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Delete a particular subscription by id"},"get":{"description":"\nRequired roles:\n - can_read_subscriptions\n","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"path","name":"subscription_id","required":true,"schema":{"type":"string"},"style":"simple"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionSchema"}}},"description":"Returns a subscription"},"400":{"description":"Bad request"},"401":{"description":"Token is invalid"},"404":{"description":"Subscription does not exist"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Returns a particular subscription by id"}},"/v1/users/{user_id}/device_tokens/":{"delete":{"description":"","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"},{"description":"User ID (UUID v1)","in":"path","name":"user_id","required":true,"schema":{"type":"string"},"style":"simple"}],"responses":{"204":{"description":"All device tokens deleted successfully"},"401":{"description":"Token is invalid"},"403":{"description":"Only admin users can manage device tokens"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Unregister all device tokens for a user (e.g., on account deletion)"},"get":{"description":"","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"},{"description":"User ID (UUID v1)","in":"path","name":"user_id","required":true,"schema":{"type":"string"},"style":"simple"},{"description":"The number of items for each page","in":"query","name":"per_page","schema":{"default":10,"format":"int32","type":"integer"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceTokensSchema"}}},"description":"Returns a list of device tokens"},"400":{"description":"Bad request"},"401":{"description":"Token is invalid"},"403":{"description":"Only admin users can access device tokens"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Returns a list of device tokens for a user"},"post":{"description":"","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"},{"description":"User ID (UUID v1)","in":"path","name":"user_id","required":true,"schema":{"type":"string"},"style":"simple"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceTokenSchema"}}},"description":"body","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceTokenSchema"}}},"description":"Returns the updated device token (if token already exists)"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceTokenSchema"}}},"description":"Returns the created device token"},"400":{"description":"Bad request"},"401":{"description":"Token is invalid"},"403":{"description":"Only admin users can manage device tokens"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Register a new device token for push notifications"}},"/v1/users/{user_id}/device_tokens/{device_token}/":{"delete":{"description":"","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"},{"description":"User ID (UUID v1)","in":"path","name":"user_id","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"path","name":"device_token","required":true,"schema":{"type":"string"},"style":"simple"}],"responses":{"204":{"description":"Device token deleted successfully"},"401":{"description":"Token is invalid"},"403":{"description":"Only admin users can manage device tokens"},"404":{"description":"Device token does not exist"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Unregister a device token"},"get":{"description":"","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"},{"description":"User ID (UUID v1)","in":"path","name":"user_id","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"path","name":"device_token","required":true,"schema":{"type":"string"},"style":"simple"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceTokenSchema"}}},"description":"Returns a device token"},"400":{"description":"Bad request"},"401":{"description":"Token is invalid"},"403":{"description":"Only admin users can access device tokens"},"404":{"description":"Device token does not exist"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Returns a particular device token"},"patch":{"description":"","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"},{"description":"User ID (UUID v1)","in":"path","name":"user_id","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"path","name":"device_token","required":true,"schema":{"type":"string"},"style":"simple"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceTokenSchema"}}},"description":"body","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceTokenSchema"}}},"description":"Returns the updated device token"},"400":{"description":"Bad request"},"401":{"description":"Token is invalid"},"403":{"description":"Only admin users can manage device tokens"},"404":{"description":"Device token does not exist"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Update device token metadata"}},"/v1/{object_type}/{object_id}/subscriptions/":{"get":{"description":"\nRequired roles:\n - can_read_subscriptions\n","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"path","name":"object_type","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"path","name":"object_id","required":true,"schema":{"type":"string"},"style":"simple"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionsSchema"}}},"description":"Returns a list of subscriptions"},"400":{"description":"Bad request"},"401":{"description":"Token is invalid"},"404":{"description":"Subscription does not exist"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Returns user subscriptions for a specific object_type and object_id"}},"/v1/{object_type}/{object_id}/subscriptions/all/":{"delete":{"description":"\nRequired roles:\n - can_read_subscriptions\n","parameters":[{"in":"header","name":"App-ID","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"header","name":"Auth-Token","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"path","name":"object_type","required":true,"schema":{"type":"string"},"style":"simple"},{"in":"path","name":"object_id","required":true,"schema":{"type":"string"},"style":"simple"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionSchema"}}},"description":"Returns a subscription"},"400":{"description":"Bad request"},"401":{"description":"Token is invalid"},"404":{"description":"Subscription does not exist"},"default":{"content":{"application/json":{"examples":{"multiple":{"summary":"Example multiple messages.","value":{"errors":{"field1":"Error message for field1","field2":"Error message for field2"}}},"single":{"summary":"Example single message.","value":{"errors":["Example error message."]}}},"schema":{"oneOf":[{"properties":{"errors":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"errors":{"type":"object"}},"type":"object"}]}}},"description":"Error response"}},"summary":"Delete all user subscriptions for a specific object_type and object_id"}}},"servers":[{"url":"/API/users-notifications/"}]}
