{"components":{"schemas":{"BulkPushRequest_LTcyOTEzMTU1":{"properties":{"bulkpush_req":{"items":{"$ref":"#/components/schemas/Notification_PushTarget_LTIwOTk4MDA5"},"type":"array"}},"required":["bulkpush_req"],"type":"object"},"BulkPushResponse_LTIzMTI5MTE4":{"properties":{"bulkpush_resp":{"items":{"$ref":"#/components/schemas/Id_QueuedNotification_PushTarget_PushStatus_LTM4ODIwNTcz"},"type":"array"}},"required":["bulkpush_resp"],"type":"object"},"ConnId":{"type":"string"},"Id_QueuedNotification_PushTarget_PushStatus_LTM4ODIwNTcz":{"properties":{"notif_id":{"$ref":"#/components/schemas/UUID"},"status":{"$ref":"#/components/schemas/PushStatus_LTU3MDM0MDkx"},"target":{"$ref":"#/components/schemas/PushTarget_MjIxODE3Mjg5"}},"required":["notif_id","target","status"],"type":"object"},"KeyMap_Value_MzAxODEwOTgx":{"type":"object"},"Notification_MTkxOTI4OTQw":{"properties":{"id":{"$ref":"#/components/schemas/UUID"},"payload":{"items":{"type":"object"},"minItems":1,"type":"array"},"transient":{"type":"boolean"}},"required":["id","payload"],"type":"object"},"Notification_PushTarget_LTIwOTk4MDA5":{"properties":{"notification":{"$ref":"#/components/schemas/Notification_MTkxOTI4OTQw"},"targets":{"items":{"$ref":"#/components/schemas/PushTarget_MjIxODE3Mjg5"},"type":"array"}},"required":["notification","targets"],"type":"object"},"PushStatus_LTU3MDM0MDkx":{"enum":["push_status_ok","push_status_gone"],"type":"string"},"PushTarget_MjIxODE3Mjg5":{"properties":{"conn_id":{"$ref":"#/components/schemas/ConnId"},"user_id":{"$ref":"#/components/schemas/UUID"}},"required":["user_id","conn_id"],"type":"object"},"RawJson":{"description":"Any JSON as plain string. The object structure is not specified in this schema.","type":"object"},"UUID":{"example":"99db9768-04e3-4b5d-9268-831b6a25c4ab","format":"uuid","type":"string"}}},"info":{"description":"To have access to this *internal* endpoint, create a port forwarding to `cannon` into the Kubernetes cluster. E.g.:\n```\nkubectl port-forward -n wire service/cannon 9083:8080\n```\n**N.B.:** Execution via this UI won't work due to CORS issues. But, the proposed `curl` commands will.\n","title":"Wire-Server Internal API (cannon)","version":""},"openapi":"3.0.0","paths":{"/i/bulkpush":{"post":{"description":" [<a href=\"https://docs.wire.com/developer/developer/servant.html#named-and-internal-route-ids\">internal route ID:</a> \"bulk-push-notifications\"]\n\n","operationId":"bulk-push-notifications","requestBody":{"content":{"application/json;charset=utf-8":{"schema":{"$ref":"#/components/schemas/BulkPushRequest_LTcyOTEzMTU1"}}},"required":true},"responses":{"200":{"content":{"application/json;charset=utf-8":{"schema":{"$ref":"#/components/schemas/BulkPushResponse_LTIzMTI5MTE4"}}},"description":""}},"tags":["cannon"]}},"/i/presences/{uid}/{conn}":{"head":{"description":" [<a href=\"https://docs.wire.com/developer/developer/servant.html#named-and-internal-route-ids\">internal route ID:</a> \"check-presence\"]\n\n","operationId":"check-presence","parameters":[{"in":"path","name":"uid","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"conn","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Presence checked successfully."},"404":{"content":{"application/json":{"schema":{"example":{"code":404,"label":"not-found","message":"presence not registered"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["not-found"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"application/json;charset=utf-8":{"schema":{"example":{"code":404,"label":"not-found","message":"presence not registered"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["not-found"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"description":"`uid` or `conn` or presence not registered (label: `not-found`)"}},"tags":["cannon"]}},"/i/push/{user}/{conn}":{"post":{"description":" [<a href=\"https://docs.wire.com/developer/developer/servant.html#named-and-internal-route-ids\">internal route ID:</a> \"push-notification\"]\n\n","operationId":"push-notification","parameters":[{"in":"path","name":"user","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"conn","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json;charset=utf-8":{"schema":{"$ref":"#/components/schemas/RawJson"}}},"required":true},"responses":{"200":{"description":"Successfully pushed."},"410":{"content":{"application/json":{"schema":{"example":{"code":410,"label":"general","message":"client gone"},"properties":{"code":{"enum":[410],"type":"integer"},"label":{"enum":["general"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"application/json;charset=utf-8":{"schema":{"example":{"code":410,"label":"general","message":"client gone"},"properties":{"code":{"enum":[410],"type":"integer"},"label":{"enum":["general"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"description":"client gone (label: `general`)"}},"tags":["cannon"]}},"/i/status":{"get":{"description":" [<a href=\"https://docs.wire.com/developer/developer/servant.html#named-and-internal-route-ids\">internal route ID:</a> \"get-status\"]\n\n","operationId":"get-status","responses":{"200":{"description":"Service is alive."}},"tags":["cannon"]}}},"servers":[{"url":"http://localhost:9083"}]}