{"basePath":"/v0","definitions":{"ASCII":{"example":"aGVsbG8","type":"string"},"Access":{"description":"How users can join conversations","enum":["private","invite","link","code"],"type":"string"},"AccessRoleLegacy":{"description":"Which users can join conversations (deprecated, use `access_role_v2` instead).Maps to `access_role_v2` as follows:`private` => `[]` - nobody can be invited to this conversation (e.g. it's a 1:1 conversation)`team` => `[team_member]` - team-only conversation`activated` => `[team_member, non_team_member, service]` - conversation for users who have activated email, phone or SSO and services`non_activated` => `[team_member, non_team_member, service, guest]` - all allowed, no checksMaps from `access_role_v2` as follows:`[]` => `private` - nobody can be invited to this conversation (e.g. it's a 1:1 conversation)`[team_member]` => `team` - team-only conversation`[team_member, non_team_member, service]` => `activated` - conversation for users who have activated email, phone or SSO and services`[team_member, non_team_member, service, guest]` => `non_activated` - all allowed, no checks.All other configurations of `access_role_v2` are mapped to the smallest superset containing all given access roles.","enum":["private","team","activated","non_activated"],"type":"string"},"AccessRoleV2":{"description":"Which users/services can join conversations.This replaces the deprecated field `access_role`and allows for a more fine grained configuration of access rolesin particular a separation of guest and services access.","enum":["team_member","non_team_member","guest","service"],"type":"string"},"Action":{"enum":["add_conversation_member","remove_conversation_member","modify_conversation_name","modify_conversation_message_timer","modify_conversation_receipt_mode","modify_conversation_access","modify_other_conversation_member","leave_conversation","delete_conversation"],"type":"string"},"AllFeatureConfigs":{},"Alpha":{"enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRO","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STD","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UZS","VEF","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","XXX","YER","ZAR","ZMW","ZWL"],"type":"string"},"ApproveLegalHoldForUserRequest":{"properties":{"password":{"maxLength":1024,"minLength":6,"type":"string"}},"type":"object"},"Asset":{"properties":{"domain":{"$ref":"#/definitions/Domain"},"expires":{"$ref":"#/definitions/UTCTime"},"key":{"$ref":"#/definitions/AssetKey"},"token":{"$ref":"#/definitions/ASCII"}},"required":["key","domain"],"type":"object"},"AssetKey":{"example":"3-1-47de4580-ae51-4650-acbb-d10c028cb0ac","type":"string"},"AssetSize":{"enum":["preview","complete"],"type":"string"},"AssetSource":{},"AssetType":{"enum":["image"],"type":"string"},"AuthnRequest":{"properties":{"iD":{"$ref":"#/definitions/ID"},"issueInstant":{"$ref":"#/definitions/Time"},"issuer":{"type":"string"},"nameIDPolicy":{"$ref":"#/definitions/NameIdPolicy"}},"required":["iD","issueInstant","issuer"],"type":"object"},"Base64ByteString":{"type":"string"},"BindingNewTeamUser":{"properties":{"currency":{"$ref":"#/definitions/Alpha"},"icon":{"$ref":"#/definitions/Icon"},"icon_key":{"maxLength":256,"minLength":1,"type":"string"},"members":{},"name":{"maxLength":256,"minLength":1,"type":"string"}},"required":["name","icon"],"type":"object"},"Client":{"properties":{"capabilities":{"$ref":"#/definitions/ClientCapabilityList"},"class":{"$ref":"#/definitions/ClientClass"},"cookie":{"type":"string"},"id":{"$ref":"#/definitions/ClientId"},"label":{"type":"string"},"location":{"$ref":"#/definitions/Location"},"mls_public_keys":{"additionalProperties":{"type":"string"},"type":"object"},"model":{"type":"string"},"time":{"$ref":"#/definitions/UTCTime"},"type":{"$ref":"#/definitions/ClientType"}},"required":["id","type","time"],"type":"object"},"ClientCapability":{"enum":["legalhold-implicit-consent"],"type":"string"},"ClientCapabilityList":{"properties":{"capabilities":{"description":"Hints provided by the client for the backend so it can behave in a backwards-compatible way.","items":{"$ref":"#/definitions/ClientCapability"},"type":"array"}},"required":["capabilities"],"type":"object"},"ClientClass":{"enum":["phone","tablet","desktop","legalhold"],"type":"string"},"ClientId":{"type":"string"},"ClientMismatch":{"properties":{"deleted":{"$ref":"#/definitions/UserClients"},"missing":{"$ref":"#/definitions/UserClients"},"redundant":{"$ref":"#/definitions/UserClients"},"time":{"$ref":"#/definitions/UTCTime"}},"required":["time","missing","redundant","deleted"],"type":"object"},"ClientPrekey":{"properties":{"client":{"$ref":"#/definitions/ClientId"},"prekey":{"$ref":"#/definitions/Prekey"}},"required":["client","prekey"],"type":"object"},"ClientType":{"enum":["temporary","permanent","legalhold"],"type":"string"},"Connect":{"properties":{"email":{"type":"string"},"message":{"type":"string"},"name":{"type":"string"},"qualified_recipient":{"$ref":"#/definitions/Qualified_UserId"},"recipient":{"$ref":"#/definitions/UUID"}},"required":["qualified_recipient"],"type":"object"},"ConnectionRequest":{"properties":{"name":{"description":"Name of the (pending) conversation being initiated (1 - 256) characters)","maxLength":256,"minLength":1,"type":"string"},"user":{"$ref":"#/definitions/UUID"}},"required":["user","name"],"type":"object"},"ConnectionUpdate":{"properties":{"status":{"$ref":"#/definitions/Relation"}},"required":["status"],"type":"object"},"Connections_Page":{"properties":{"connections":{"items":{"$ref":"#/definitions/UserConnection"},"type":"array"},"has_more":{"type":"boolean"},"paging_state":{"$ref":"#/definitions/Connections_PagingState"}},"required":["connections","has_more","paging_state"],"type":"object"},"Connections_PagingState":{"type":"string"},"Contact":{"description":"Contact discovered through search","properties":{"accent_id":{"maximum":9223372036854776000,"minimum":-9223372036854776000,"type":"integer"},"handle":{"type":"string"},"id":{"$ref":"#/definitions/UUID"},"name":{"type":"string"},"qualified_id":{"$ref":"#/definitions/Qualified_UserId"},"team":{"$ref":"#/definitions/UUID"}},"required":["qualified_id","name"],"type":"object"},"ConvMembers":{"description":"Users of a conversation","properties":{"others":{"description":"All other current users of this conversation","items":{"$ref":"#/definitions/OtherMember"},"type":"array"},"self":{"$ref":"#/definitions/Member"}},"required":["self","others"],"type":"object"},"ConvTeamInfo":{"description":"Team information of this conversation","properties":{"managed":{"description":"(Not parsed any more) Whether this is a managed team conversation"},"teamid":{"$ref":"#/definitions/UUID"}},"required":["teamid","managed"],"type":"object"},"ConvType":{"enum":[0,1,2,3],"type":"integer"},"Conversation":{"description":"A conversation object as returned from the server","properties":{"access":{"items":{"$ref":"#/definitions/Access"},"type":"array"},"access_role":{"$ref":"#/definitions/AccessRoleLegacy"},"access_role_v2":{"items":{"$ref":"#/definitions/AccessRoleV2"},"type":"array"},"creator":{"$ref":"#/definitions/UUID"},"epoch":{"description":"The epoch number of the corresponding MLS group","format":"int64","maximum":18446744073709552000,"minimum":0,"type":"integer"},"group_id":{"$ref":"#/definitions/GroupId"},"id":{"$ref":"#/definitions/UUID"},"last_event":{"type":"string"},"last_event_time":{"type":"string"},"members":{"$ref":"#/definitions/ConvMembers"},"message_timer":{"description":"Per-conversation message timer (can be null)","format":"int64","maximum":9223372036854776000,"minimum":-9223372036854776000,"type":"integer"},"name":{"type":"string"},"protocol":{"$ref":"#/definitions/Protocol"},"qualified_id":{"$ref":"#/definitions/Qualified_ConvId"},"receipt_mode":{"description":"Conversation receipt mode","format":"int32","maximum":2147483647,"minimum":-2147483648,"type":"integer"},"team":{"$ref":"#/definitions/UUID"},"type":{"$ref":"#/definitions/ConvType"}},"required":["qualified_id","type","creator","access","members","group_id","epoch"],"type":"object"},"ConversationAccessData":{"properties":{"access":{"items":{"$ref":"#/definitions/Access"},"type":"array"},"access_role":{"$ref":"#/definitions/AccessRoleLegacy"},"access_role_v2":{"items":{"$ref":"#/definitions/AccessRoleV2"},"type":"array"}},"required":["access"],"type":"object"},"ConversationCode":{"description":"Contains conversation properties to update","properties":{"code":{"$ref":"#/definitions/ASCII"},"key":{"$ref":"#/definitions/ASCII"},"uri":{"$ref":"#/definitions/HttpsUrl"}},"required":["key","code"],"type":"object"},"ConversationCoverView":{"description":"Limited view of Conversation.","properties":{"id":{"$ref":"#/definitions/UUID"},"name":{"type":"string"}},"required":["id"],"type":"object"},"ConversationIds_Page":{"properties":{"has_more":{"type":"boolean"},"paging_state":{"$ref":"#/definitions/ConversationIds_PagingState"},"qualified_conversations":{"items":{"$ref":"#/definitions/Qualified_ConvId"},"type":"array"}},"required":["qualified_conversations","has_more","paging_state"],"type":"object"},"ConversationIds_PagingState":{"type":"string"},"ConversationList":{"description":"Object holding a list of conversations","properties":{"conversations":{"items":{"$ref":"#/definitions/Conversation"},"type":"array"},"has_more":{"description":"Indicator that the server has more conversations than returned","type":"boolean"}}},"ConversationMessageTimerUpdate":{"description":"Contains conversation properties to update","properties":{"message_timer":{"format":"int64","maximum":9223372036854776000,"minimum":-9223372036854776000,"type":"integer"}},"type":"object"},"ConversationReceiptModeUpdate":{"description":"Contains conversation receipt mode to update to. Receipt mode tells clients whether certain types of receipts should be sent in the given conversation or not. How this value is interpreted is up to clients.","properties":{"receipt_mode":{"description":"Conversation receipt mode","format":"int32","maximum":2147483647,"minimum":-2147483648,"type":"integer"}},"required":["receipt_mode"],"type":"object"},"ConversationRename":{"properties":{"name":{"description":"The new conversation name","type":"string"}},"required":["name"],"type":"object"},"ConversationRole":{"properties":{"actions":{"description":"The set of actions allowed for this role","items":{"$ref":"#/definitions/Action"},"type":"array"},"conversation_role":{"$ref":"#/definitions/RoleName"}}},"ConversationRolesList":{"properties":{"conversation_roles":{"items":{"$ref":"#/definitions/ConversationRole"},"type":"array"}},"required":["conversation_roles"],"type":"object"},"ConversationsResponse":{"description":"Response object for getting metadata of a list of conversations","properties":{"failed":{"description":"The server failed to fetch these conversations, most likely due to network issues while contacting a remote server","items":{"$ref":"#/definitions/Qualified_ConvId"},"type":"array"},"found":{"items":{"$ref":"#/definitions/Conversation"},"type":"array"},"not_found":{"description":"These conversations either don't exist or are deleted.","items":{"$ref":"#/definitions/Qualified_ConvId"},"type":"array"}},"required":["found","not_found","failed"],"type":"object"},"CreateScimToken":{"properties":{"description":{"type":"string"},"password":{"type":"string"},"verification_code":{"type":"string"}},"required":["description"],"type":"object"},"CreateScimTokenResponse":{"properties":{"info":{"$ref":"#/definitions/ScimTokenInfo"},"token":{"description":"Authentication token","type":"string"}},"required":["token","info"],"type":"object"},"CustomBackend":{"description":"Description of a custom backend","properties":{"config_json_url":{"$ref":"#/definitions/HttpsUrl"},"webapp_welcome_url":{"$ref":"#/definitions/HttpsUrl"}},"required":["config_json_url","webapp_welcome_url"],"type":"object"},"DeleteClient":{"properties":{"password":{"description":"The password of the authenticated user for verification. The password is not required for deleting temporary clients.","maxLength":1024,"minLength":6,"type":"string"}},"type":"object"},"DeleteUser":{"properties":{"password":{"maxLength":1024,"minLength":6,"type":"string"}},"type":"object"},"DeletionCodeTimeout":{"properties":{"expires_in":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"type":"integer"}},"required":["expires_in"],"type":"object"},"DisableLegalHoldForUserRequest":{"properties":{"password":{"maxLength":1024,"minLength":6,"type":"string"}},"type":"object"},"Domain":{"example":"example.com","type":"string"},"Email":{"type":"string"},"EmailUpdate":{"properties":{"email":{"$ref":"#/definitions/Email"}},"required":["email"],"type":"object"},"Event":{"properties":{"conversation":{"$ref":"#/definitions/UUID"},"data":{"description":"Encrypted message of a conversation","properties":{"access":{"items":{"$ref":"#/definitions/Access"},"type":"array"},"access_role":{"$ref":"#/definitions/AccessRoleLegacy"},"access_role_v2":{"items":{"$ref":"#/definitions/AccessRoleV2"},"type":"array"},"code":{"$ref":"#/definitions/ASCII"},"conversation_role":{"$ref":"#/definitions/RoleName"},"creator":{"$ref":"#/definitions/UUID"},"data":{"description":"Extra (symmetric) data (i.e. ciphertext, Base64 in JSON) that is common with all other recipients.","type":"string"},"email":{"type":"string"},"epoch":{"description":"The epoch number of the corresponding MLS group","format":"int64","maximum":18446744073709552000,"minimum":0,"type":"integer"},"group_id":{"$ref":"#/definitions/GroupId"},"hidden":{"type":"boolean"},"hidden_ref":{"type":"string"},"id":{"$ref":"#/definitions/UUID"},"key":{"$ref":"#/definitions/ASCII"},"last_event":{"type":"string"},"last_event_time":{"type":"string"},"members":{"$ref":"#/definitions/ConvMembers"},"message":{"type":"string"},"message_timer":{"description":"Per-conversation message timer (can be null)","format":"int64","maximum":9223372036854776000,"minimum":-9223372036854776000,"type":"integer"},"name":{"type":"string"},"otr_archived":{"type":"boolean"},"otr_archived_ref":{"type":"string"},"otr_muted_ref":{"type":"string"},"otr_muted_status":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"type":"integer"},"protocol":{"$ref":"#/definitions/Protocol"},"qualified_id":{"$ref":"#/definitions/Qualified_ConvId"},"qualified_recipient":{"$ref":"#/definitions/Qualified_UserId"},"qualified_target":{"$ref":"#/definitions/Qualified_UserId"},"qualified_user_ids":{"items":{"$ref":"#/definitions/Qualified_UserId"},"type":"array"},"receipt_mode":{"description":"Conversation receipt mode","format":"int32","maximum":2147483647,"minimum":-2147483648,"type":"integer"},"recipient":{"$ref":"#/definitions/ClientId"},"sender":{"$ref":"#/definitions/ClientId"},"status":{"$ref":"#/definitions/TypingStatus"},"target":{"$ref":"#/definitions/UUID"},"team":{"$ref":"#/definitions/UUID"},"text":{"description":"The ciphertext for the recipient (Base64 in JSON)","type":"string"},"type":{"$ref":"#/definitions/ConvType"},"uri":{"$ref":"#/definitions/HttpsUrl"},"user_ids":{"description":"Deprecated, use qualified_user_ids","items":{"$ref":"#/definitions/UUID"},"type":"array"},"users":{"items":{"$ref":"#/definitions/SimpleMember"},"type":"array"}},"required":["users","qualified_user_ids","user_ids","qualified_target","name","access","key","code","qualified_id","type","creator","members","group_id","epoch","qualified_recipient","receipt_mode","sender","recipient","text","status"],"type":"object"},"from":{"$ref":"#/definitions/UUID"},"qualified_conversation":{"$ref":"#/definitions/Qualified_ConvId"},"qualified_from":{"$ref":"#/definitions/Qualified_UserId"},"time":{"$ref":"#/definitions/UTCTime"},"type":{"$ref":"#/definitions/EventType"}},"required":["type","data","qualified_conversation","qualified_from","time"],"type":"object"},"EventType":{"enum":["conversation.member-join","conversation.member-leave","conversation.member-update","conversation.rename","conversation.access-update","conversation.receipt-mode-update","conversation.message-timer-update","conversation.code-update","conversation.code-delete","conversation.create","conversation.delete","conversation.connect-request","conversation.typing","conversation.otr-message-add","conversation.mls-message-add","conversation.mls-welcome"],"type":"string"},"FederatedUserSearchPolicy":{"description":"Search policy that was applied when searching for users","enum":["no_search","exact_handle_search","full_search"],"type":"string"},"Fingerprint":{"example":"ioy3GeIjgQRsobf2EKGO3O8mq/FofFxHRqy0T4ERIZ8=","type":"string"},"FormRedirect":{"properties":{"uri":{"type":"string"},"xml":{"$ref":"#/definitions/AuthnRequest"}},"type":"object"},"GetPaginated_Connections":{"description":"A request to list some or all of a user's Connections, including remote ones","properties":{"paging_state":{"$ref":"#/definitions/Connections_PagingState"},"size":{"description":"optional, must be <= 500, defaults to 100.","format":"int32","maximum":500,"minimum":1,"type":"integer"}},"type":"object"},"GetPaginated_ConversationIds":{"description":"A request to list some or all of a user's ConversationIds, including remote ones","properties":{"paging_state":{"$ref":"#/definitions/ConversationIds_PagingState"},"size":{"description":"optional, must be <= 1000, defaults to 1000.","format":"int32","maximum":1000,"minimum":1,"type":"integer"}},"type":"object"},"GroupId":{"description":"An MLS group identifier (at most 256 bytes long)","type":"string"},"Handle":{"type":"string"},"HandleUpdate":{"properties":{"handle":{"type":"string"}},"required":["handle"],"type":"object"},"HttpsUrl":{"example":"https://example.com","type":"string"},"ID":{"properties":{"iD":{"$ref":"#/definitions/XmlText"}},"required":["iD"],"type":"object"},"Icon":{"type":"string"},"Id":{"properties":{"id":{"$ref":"#/definitions/ClientId"}},"required":["id"],"type":"object"},"IdPConfig":{"properties":{"extraInfo":{"$ref":"#/definitions/WireIdP"},"id":{"$ref":"#/definitions/UUID"},"metadata":{"$ref":"#/definitions/IdPMetadata"}},"required":["id","metadata","extraInfo"],"type":"object"},"IdPList":{"properties":{"providers":{"items":{"$ref":"#/definitions/IdPConfig"},"type":"array"}},"required":["providers"],"type":"object"},"IdPMetadata":{"properties":{"certAuthnResponse":{"items":{"type":"string"},"minItems":1,"type":"array"},"issuer":{"type":"string"},"requestURI":{"type":"string"}},"required":["issuer","requestURI","certAuthnResponse"],"type":"object"},"IdPMetadataInfo":{"maxProperties":1,"minProperties":1,"properties":{"value":{"type":"string"}},"type":"object"},"Invite":{"properties":{"conversation_role":{"$ref":"#/definitions/RoleName"},"users":{"items":{"$ref":"#/definitions/UUID"},"minItems":1,"type":"array"}},"required":["users"],"type":"object"},"InviteQualified":{"properties":{"conversation_role":{"$ref":"#/definitions/RoleName"},"qualified_users":{"items":{"$ref":"#/definitions/Qualified_UserId"},"minItems":1,"type":"array"}},"required":["qualified_users"],"type":"object"},"KeyPackage":{"example":"a2V5IHBhY2thZ2UgZGF0YQo=","type":"string"},"KeyPackageBundle":{"properties":{"key_packages":{"items":{"$ref":"#/definitions/KeyPackageBundleEntry"},"type":"array"}},"required":["key_packages"],"type":"object"},"KeyPackageBundleEntry":{"properties":{"client":{"$ref":"#/definitions/ClientId"},"domain":{"$ref":"#/definitions/Domain"},"key_package":{"$ref":"#/definitions/KeyPackage"},"key_package_ref":{"$ref":"#/definitions/KeyPackageRef"},"user":{"$ref":"#/definitions/UUID"}},"required":["domain","user","client","key_package_ref","key_package"],"type":"object"},"KeyPackageRef":{"type":"string"},"KeyPackageUpload":{"properties":{"key_packages":{"items":{"$ref":"#/definitions/KeyPackage"},"type":"array"}},"required":["key_packages"],"type":"object"},"LHServiceStatus":{"enum":["configured","not_configured","disabled"],"type":"string"},"LimitedQualifiedUserIdList":{"properties":{"qualified_users":{"items":{"$ref":"#/definitions/Qualified_UserId"},"type":"array"}},"required":["qualified_users"],"type":"object"},"ListConversations":{"description":"A request to list some of a user's conversations, including remote ones. Maximum 1000 qualified conversation IDs","properties":{"qualified_ids":{"items":{"$ref":"#/definitions/Qualified_ConvId"},"maxItems":1000,"minItems":1,"type":"array"}},"required":["qualified_ids"],"type":"object"},"ListUsersQuery":{"description":"exactly one of qualified_ids or qualified_handles must be provided.","example":{"qualified_ids":[{"domain":"example.com","id":"00000000-0000-0000-0000-000000000000"}]},"properties":{"qualified_handles":{"items":{"$ref":"#/definitions/Qualified_Handle"},"type":"array"},"qualified_ids":{"items":{"$ref":"#/definitions/Qualified_UserId"},"type":"array"}},"type":"object"},"Locale":{"type":"string"},"LocaleUpdate":{"properties":{"locale":{"$ref":"#/definitions/Locale"}},"required":["locale"],"type":"object"},"Location":{"properties":{"lat":{"format":"double","type":"number"},"lon":{"format":"double","type":"number"}},"required":["lat","lon"],"type":"object"},"LockStatusValue":{"enum":["locked","unlocked"],"type":"string"},"MLSMessage":{"description":"This object can only be parsed in TLS format. Please refer to the MLS specification for details."},"ManagedBy":{"enum":["wire","scim"],"type":"string"},"Member":{"description":"The user ID of the requestor","properties":{"conversation_role":{"$ref":"#/definitions/RoleName"},"hidden":{"type":"boolean"},"hidden_ref":{"type":"string"},"id":{"$ref":"#/definitions/UUID"},"otr_archived":{"type":"boolean"},"otr_archived_ref":{"type":"string"},"otr_muted_ref":{"type":"string"},"otr_muted_status":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"type":"integer"},"qualified_id":{"$ref":"#/definitions/Qualified_UserId"},"service":{"$ref":"#/definitions/ServiceRef"},"status":{},"status_ref":{},"status_time":{}},"required":["qualified_id"],"type":"object"},"MemberUpdate":{"properties":{"hidden":{"type":"boolean"},"hidden_ref":{"type":"string"},"otr_archived":{"type":"boolean"},"otr_archived_ref":{"type":"string"},"otr_muted_ref":{"type":"string"},"otr_muted_status":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"type":"integer"}},"type":"object"},"MemberUpdateData":{"properties":{"conversation_role":{"$ref":"#/definitions/RoleName"},"hidden":{"type":"boolean"},"hidden_ref":{"type":"string"},"otr_archived":{"type":"boolean"},"otr_archived_ref":{"type":"string"},"otr_muted_ref":{"type":"string"},"otr_muted_status":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"type":"integer"},"qualified_target":{"$ref":"#/definitions/Qualified_UserId"},"target":{"$ref":"#/definitions/UUID"}},"required":["qualified_target"],"type":"object"},"MessageSendingStatus":{"properties":{"deleted":{"$ref":"#/definitions/QualifiedUserClients"},"failed_to_send":{"$ref":"#/definitions/QualifiedUserClients"},"missing":{"$ref":"#/definitions/QualifiedUserClients"},"redundant":{"$ref":"#/definitions/QualifiedUserClients"},"time":{"$ref":"#/definitions/UTCTime"}},"required":["time","missing","redundant","deleted","failed_to_send"],"type":"object"},"NameIDFormat":{"enum":["NameIDFUnspecified","NameIDFEmail","NameIDFX509","NameIDFWindows","NameIDFKerberos","NameIDFEntity","NameIDFPersistent","NameIDFTransient"],"type":"string"},"NameIdPolicy":{"properties":{"allowCreate":{"type":"boolean"},"format":{"$ref":"#/definitions/NameIDFormat"},"spNameQualifier":{"$ref":"#/definitions/XmlText"}},"required":["format","allowCreate"],"type":"object"},"NewAssetToken":{"properties":{"token":{"$ref":"#/definitions/ASCII"}},"required":["token"],"type":"object"},"NewClient":{"properties":{"capabilities":{"description":"Hints provided by the client for the backend so it can behave in a backwards-compatible way.","items":{"$ref":"#/definitions/ClientCapability"},"type":"array"},"class":{"$ref":"#/definitions/ClientClass"},"cookie":{"description":"The cookie label, i.e. the label used when logging in.","type":"string"},"label":{"type":"string"},"lastkey":{"$ref":"#/definitions/Prekey"},"mls_public_keys":{"additionalProperties":{"type":"string"},"type":"object"},"model":{"type":"string"},"password":{"description":"The password of the authenticated user for verification. Note: Required for registration of the 2nd, 3rd, ... client.","maxLength":1024,"minLength":6,"type":"string"},"prekeys":{"description":"Prekeys for other clients to establish OTR sessions.","items":{"$ref":"#/definitions/Prekey"},"type":"array"},"type":{"$ref":"#/definitions/ClientType"},"verification_code":{"$ref":"#/definitions/ASCII"}},"required":["prekeys","lastkey","type"],"type":"object"},"NewConv":{"description":"JSON object to create a new conversation. When using 'qualified_users' (preferred), you can omit 'users'","properties":{"access":{"items":{"$ref":"#/definitions/Access"},"type":"array"},"access_role":{"$ref":"#/definitions/AccessRoleLegacy"},"access_role_v2":{"items":{"$ref":"#/definitions/AccessRoleV2"},"type":"array"},"conversation_role":{"$ref":"#/definitions/RoleName"},"message_timer":{"description":"Per-conversation message timer","format":"int64","maximum":9223372036854776000,"minimum":-9223372036854776000,"type":"integer"},"name":{"maxLength":256,"minLength":1,"type":"string"},"protocol":{"$ref":"#/definitions/Protocol"},"qualified_users":{"description":"List of qualified user IDs (excluding the requestor) to be part of this conversation","items":{"$ref":"#/definitions/Qualified_UserId"},"type":"array"},"receipt_mode":{"description":"Conversation receipt mode","format":"int32","maximum":2147483647,"minimum":-2147483648,"type":"integer"},"team":{"$ref":"#/definitions/ConvTeamInfo"},"users":{"description":"List of user IDs (excluding the requestor) to be part of this conversation (deprecated)","items":{"$ref":"#/definitions/UUID"},"type":"array"}},"type":"object"},"NewLegalHoldService":{"properties":{"auth_token":{"$ref":"#/definitions/ASCII"},"base_url":{"$ref":"#/definitions/HttpsUrl"},"public_key":{"$ref":"#/definitions/ServiceKeyPEM"}},"required":["base_url","public_key","auth_token"],"type":"object"},"NewUser":{"properties":{"accent_id":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"type":"integer"},"assets":{"items":{"$ref":"#/definitions/UserAsset"},"type":"array"},"email":{"$ref":"#/definitions/Email"},"email_code":{"$ref":"#/definitions/ASCII"},"expires_in":{"maximum":604800,"minimum":1,"type":"integer"},"invitation_code":{"$ref":"#/definitions/ASCII"},"label":{"type":"string"},"locale":{"$ref":"#/definitions/Locale"},"managed_by":{"$ref":"#/definitions/ManagedBy"},"name":{"maxLength":128,"minLength":1,"type":"string"},"password":{"maxLength":1024,"minLength":6,"type":"string"},"phone":{"$ref":"#/definitions/PhoneNumber"},"phone_code":{"$ref":"#/definitions/ASCII"},"picture":{"$ref":"#/definitions/Pict"},"sso_id":{"$ref":"#/definitions/UserSSOId"},"team":{"$ref":"#/definitions/BindingNewTeamUser"},"team_code":{"$ref":"#/definitions/ASCII"},"team_id":{"$ref":"#/definitions/UUID"},"uuid":{"$ref":"#/definitions/UUID"}},"required":["name"],"type":"object"},"NonBindingNewTeam":{"properties":{"icon":{"$ref":"#/definitions/Icon"},"icon_key":{"maxLength":256,"minLength":1,"type":"string"},"members":{"items":{"$ref":"#/definitions/TeamMember"},"maxItems":127,"minItems":1,"type":"array"},"name":{"maxLength":256,"minLength":1,"type":"string"}},"required":["name","icon"],"type":"object"},"Object":{},"OtherMember":{"properties":{"conversation_role":{"$ref":"#/definitions/RoleName"},"id":{"$ref":"#/definitions/UUID"},"qualified_id":{"$ref":"#/definitions/Qualified_UserId"},"service":{"$ref":"#/definitions/ServiceRef"},"status":{"description":"deprecated","maximum":9223372036854776000,"minimum":-9223372036854776000,"type":"integer"}},"required":["qualified_id"],"type":"object"},"OtherMemberUpdate":{"description":"Update user properties of other members relative to a conversation","properties":{"conversation_role":{"$ref":"#/definitions/RoleName"}},"type":"object"},"OtrMessage":{"description":"Encrypted message of a conversation","properties":{"data":{"description":"Extra (symmetric) data (i.e. ciphertext, Base64 in JSON) that is common with all other recipients.","type":"string"},"recipient":{"$ref":"#/definitions/ClientId"},"sender":{"$ref":"#/definitions/ClientId"},"text":{"description":"The ciphertext for the recipient (Base64 in JSON)","type":"string"}},"required":["sender","recipient","text"],"type":"object"},"OwnKeyPackages":{"properties":{"count":{"maximum":9223372036854776000,"minimum":-9223372036854776000,"type":"integer"}},"required":["count"],"type":"object"},"PasswordChange":{"description":"Data to change a password. The old password is required if a password already exists.","properties":{"new_password":{"maxLength":1024,"minLength":6,"type":"string"},"old_password":{"maxLength":1024,"minLength":6,"type":"string"}},"required":["new_password"],"type":"object"},"Permissions":{"properties":{"copy":{"format":"int64","maximum":18446744073709552000,"minimum":0,"type":"integer"},"self":{"format":"int64","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["self","copy"],"type":"object"},"PhoneNumber":{"description":"E.164 phone number","type":"string"},"PhoneUpdate":{"properties":{"phone":{"$ref":"#/definitions/PhoneNumber"}},"required":["phone"],"type":"object"},"Pict":{"items":{"type":"object"},"maxItems":10,"minItems":0,"type":"array"},"Prekey":{"properties":{"id":{"maximum":65535,"minimum":0,"type":"integer"},"key":{"type":"string"}},"required":["id","key"],"type":"object"},"PrekeyBundle":{"properties":{"clients":{"items":{"$ref":"#/definitions/ClientPrekey"},"type":"array"},"user":{"$ref":"#/definitions/UUID"}},"required":["user","clients"],"type":"object"},"Priority":{"enum":["low","high"],"type":"string"},"PropertyKeysAndValues":{"type":"object"},"PropertyValue":{"description":"An arbitrary JSON value for a property"},"Protocol":{"enum":["proteus","mls"],"type":"string"},"PubClient":{"properties":{"class":{"$ref":"#/definitions/ClientClass"},"id":{"$ref":"#/definitions/ClientId"}},"required":["id"],"type":"object"},"QualifiedNewOtrMessage":{"description":"This object can only be parsed from Protobuf.\nThe specification for the protobuf types is here: \nhttps://github.com/wireapp/generic-message-proto/blob/master/proto/otr.proto."},"QualifiedUserClientPrekeyMap":{"additionalProperties":{"$ref":"#/definitions/UserClientPrekeyMap"},"type":"object"},"QualifiedUserClients":{"additionalProperties":{"additionalProperties":{"items":{"$ref":"#/definitions/ClientId"},"type":"array"},"type":"object"},"description":"Clients that the message /should/ have been encrypted for, but wasn't.","example":{"domain1.example.com":{"000600d0-000b-9c1a-000d-a4130002c221":["60f85e4b15ad3786","6e323ab31554353b"]}},"type":"object"},"QualifiedUserIdList":{"properties":{"qualified_user_ids":{"items":{"$ref":"#/definitions/Qualified_UserId"},"type":"array"},"user_ids":{"description":"Deprecated, use qualified_user_ids","items":{"$ref":"#/definitions/UUID"},"type":"array"}},"required":["qualified_user_ids","user_ids"],"type":"object"},"QualifiedUserMap_Set_PubClient":{"additionalProperties":{"$ref":"#/definitions/UserMap_Set_PubClient"},"description":"Map of Domain to (UserMap (Set_PubClient)).","example":{"domain1.example.com":{"000600d0-000b-9c1a-000d-a4130002c221":[{"class":"legalhold","id":"d0"}]}},"type":"object"},"Qualified_ConvId":{"properties":{"domain":{"$ref":"#/definitions/Domain"},"id":{"$ref":"#/definitions/UUID"}},"required":["domain","id"],"type":"object"},"Qualified_Handle":{"properties":{"domain":{"$ref":"#/definitions/Domain"},"handle":{"$ref":"#/definitions/Handle"}},"required":["domain","handle"],"type":"object"},"Qualified_UserId":{"properties":{"domain":{"$ref":"#/definitions/Domain"},"id":{"$ref":"#/definitions/UUID"}},"required":["domain","id"],"type":"object"},"Relation":{"enum":["accepted","blocked","pending","ignored","sent","cancelled","missing-legalhold-consent"],"type":"string"},"RemoveLegalHoldSettingsRequest":{"properties":{"password":{"maxLength":1024,"minLength":6,"type":"string"}},"type":"object"},"RoleName":{"description":"Role name, between 2 and 128 chars, 'wire_' prefix is reserved for roles designed by Wire (i.e., no custom roles can have the same prefix)","type":"string"},"ScimTokenInfo":{"properties":{"created_at":{"$ref":"#/definitions/UTCTime"},"description":{"type":"string"},"id":{"$ref":"#/definitions/UUID"},"idp":{"$ref":"#/definitions/UUID"},"team":{"$ref":"#/definitions/UUID"}},"required":["team","id","created_at","description"],"type":"object"},"ScimTokenList":{"properties":{"tokens":{"items":{"$ref":"#/definitions/ScimTokenInfo"},"type":"array"}},"required":["tokens"],"type":"object"},"SearchResult":{"properties":{"documents":{"description":"List of contacts found","items":{"$ref":"#/definitions/Contact"},"type":"array"},"found":{"description":"Total number of hits","maximum":9223372036854776000,"minimum":-9223372036854776000,"type":"integer"},"returned":{"description":"Total number of hits returned","maximum":9223372036854776000,"minimum":-9223372036854776000,"type":"integer"},"search_policy":{"$ref":"#/definitions/FederatedUserSearchPolicy"},"took":{"description":"Search time in ms","maximum":9223372036854776000,"minimum":-9223372036854776000,"type":"integer"}},"required":["found","returned","took","documents","search_policy"],"type":"object"},"SendVerificationCode":{"properties":{"action":{"$ref":"#/definitions/VerificationAction"},"email":{"$ref":"#/definitions/Email"}},"required":["action","email"],"type":"object"},"ServiceKeyPEM":{"example":"-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu+Kg/PHHU3atXrUbKnw0\nG06FliXcNt3lMwl2os5twEDcPPFw/feGiAKymxp+7JqZDrseS5D9THGrW+OQRIPH\nWvUBdiLfGrZqJO223DB6D8K2Su/odmnjZJ2z23rhXoEArTplu+Dg9K+c2LVeXTKV\nVPOaOzgtAB21XKRiQ4ermqgi3/njr03rXyq/qNkuNd6tNcg+HAfGxfGvvCSYBfiS\nbUKr/BeArYRcjzr/h5m1In6fG/if9GEI6m8dxHT9JbY53wiksowy6ajCuqskIFg8\n7X883H+LA/d6X5CTiPv1VMxXdBUiGPuC9IT/6CNQ1/LFt0P37ax58+LGYlaFo7la\nnQIDAQAB\n-----END PUBLIC KEY-----\n","type":"string"},"ServiceRef":{"properties":{"id":{"$ref":"#/definitions/UUID"},"provider":{"$ref":"#/definitions/UUID"}},"required":["id","provider"],"type":"object"},"SimpleMember":{"properties":{"conversation_role":{"$ref":"#/definitions/RoleName"},"id":{"$ref":"#/definitions/UUID"},"qualified_id":{"$ref":"#/definitions/Qualified_UserId"}},"required":["qualified_id"],"type":"object"},"SimpleMembers":{"properties":{"user_ids":{"description":"deprecated","items":{"$ref":"#/definitions/UUID"},"type":"array"},"users":{"items":{"$ref":"#/definitions/SimpleMember"},"type":"array"}},"required":["users"],"type":"object"},"SsoSettings":{"properties":{"default_sso_code":{"$ref":"#/definitions/UUID"}},"type":"object"},"Team":{"properties":{"binding":{"$ref":"#/definitions/TeamBinding"},"creator":{"$ref":"#/definitions/UUID"},"icon":{"$ref":"#/definitions/Icon"},"icon_key":{"type":"string"},"id":{"$ref":"#/definitions/UUID"},"name":{"type":"string"}},"required":["id","creator","name","icon"],"type":"object"},"TeamBinding":{"enum":[true,false],"type":"boolean"},"TeamConversation":{"description":"team conversation data","properties":{"conversation":{"$ref":"#/definitions/UUID"}}},"TeamConversationList":{"description":"team conversation list","properties":{"conversations":{"items":{"$ref":"#/definitions/TeamConversation"},"type":"array"}}},"TeamDeleteData":{"properties":{"password":{"maxLength":1024,"minLength":6,"type":"string"},"verification_code":{"$ref":"#/definitions/ASCII"}},"type":"object"},"TeamFeatureAppLockConfig":{"properties":{"enforceAppLock":{"type":"boolean"},"inactivityTimeoutSecs":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"type":"integer"}},"required":["enforceAppLock","inactivityTimeoutSecs"],"type":"object"},"TeamFeatureClassifiedDomainsConfig":{"properties":{"domains":{"items":{"$ref":"#/definitions/Domain"},"type":"array"}},"required":["domains"],"type":"object"},"TeamFeatureSelfDeletingMessagesConfig":{"properties":{"enforcedTimeoutSeconds":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"type":"integer"}},"required":["enforcedTimeoutSeconds"],"type":"object"},"TeamFeatureStatusNoConfig":{"properties":{"status":{"$ref":"#/definitions/TeamFeatureStatusValue"}},"required":["status"],"type":"object"},"TeamFeatureStatusNoConfigAndLockStatus":{"properties":{"lockStatus":{"$ref":"#/definitions/LockStatusValue"},"status":{"$ref":"#/definitions/TeamFeatureStatusValue"}},"required":["status","lockStatus"],"type":"object"},"TeamFeatureStatusValue":{"enum":["enabled","disabled"],"type":"string"},"TeamFeatureStatusWithConfig":{"properties":{"config":{"$ref":"#/definitions/TeamFeatureClassifiedDomainsConfig"},"status":{"$ref":"#/definitions/TeamFeatureStatusValue"}},"required":["status","config"],"type":"object"},"TeamFeatureStatusWithConfigAndLockStatus":{"properties":{"config":{"$ref":"#/definitions/TeamFeatureSelfDeletingMessagesConfig"},"lockStatus":{"$ref":"#/definitions/LockStatusValue"},"status":{"$ref":"#/definitions/TeamFeatureStatusValue"}},"required":["status","config","lockStatus"],"type":"object"},"TeamList":{"properties":{"has_more":{"type":"boolean"},"teams":{"items":{"$ref":"#/definitions/Team"},"type":"array"}},"required":["teams","has_more"],"type":"object"},"TeamMember":{"properties":{"created_at":{"$ref":"#/definitions/UTCTime"},"created_by":{"$ref":"#/definitions/UUID"},"legalhold_status":{"$ref":"#/definitions/UserLegalHoldStatus"},"permissions":{"$ref":"#/definitions/Permissions"},"user":{"$ref":"#/definitions/UUID"}},"required":["user","permissions"],"type":"object"},"TeamSearchVisibility":{"description":"value of visibility","enum":["standard","no-name-outside-team"],"type":"string"},"TeamSearchVisibilityView":{"description":"Search visibility value for the team","properties":{"search_visibility":{"$ref":"#/definitions/TeamSearchVisibility"}},"required":["search_visibility"],"type":"object"},"TeamUpdateData":{"properties":{"icon":{"$ref":"#/definitions/Icon"},"icon_key":{"maxLength":256,"minLength":1,"type":"string"},"name":{"maxLength":256,"minLength":1,"type":"string"}},"type":"object"},"Time":{"properties":{"time":{"$ref":"#/definitions/UTCTime"}},"required":["time"],"type":"object"},"TypingData":{"properties":{"status":{"$ref":"#/definitions/TypingStatus"}},"required":["status"],"type":"object"},"TypingStatus":{"enum":["started","stopped"],"type":"string"},"UTCTime":{"example":"2021-05-12T10:52:02.671Z","format":"yyyy-mm-ddThh:MM:ss.qqq","type":"string"},"UUID":{"example":"99db9768-04e3-4b5d-9268-831b6a25c4ab","format":"uuid","type":"string"},"UpdateClient":{"properties":{"capabilities":{"description":"Hints provided by the client for the backend so it can behave in a backwards-compatible way.","items":{"$ref":"#/definitions/ClientCapability"},"type":"array"},"label":{"description":"A new name for this client.","type":"string"},"lastkey":{"$ref":"#/definitions/Prekey"},"mls_public_keys":{"additionalProperties":{"type":"string"},"type":"object"},"prekeys":{"description":"New prekeys for other clients to establish OTR sessions.","items":{"$ref":"#/definitions/Prekey"},"type":"array"}},"type":"object"},"User":{"properties":{"accent_id":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"type":"integer"},"assets":{"items":{"$ref":"#/definitions/UserAsset"},"type":"array"},"deleted":{"type":"boolean"},"email":{"$ref":"#/definitions/Email"},"expires_at":{"$ref":"#/definitions/UTCTime"},"handle":{"$ref":"#/definitions/Handle"},"id":{"$ref":"#/definitions/UUID"},"locale":{"$ref":"#/definitions/Locale"},"managed_by":{"$ref":"#/definitions/ManagedBy"},"name":{"maxLength":128,"minLength":1,"type":"string"},"phone":{"$ref":"#/definitions/PhoneNumber"},"picture":{"$ref":"#/definitions/Pict"},"qualified_id":{"$ref":"#/definitions/Qualified_UserId"},"service":{"$ref":"#/definitions/ServiceRef"},"sso_id":{"$ref":"#/definitions/UserSSOId"},"team":{"$ref":"#/definitions/UUID"}},"required":["id","qualified_id","name","accent_id","locale"],"type":"object"},"UserAsset":{"properties":{"key":{"$ref":"#/definitions/AssetKey"},"size":{"$ref":"#/definitions/AssetSize"},"type":{"$ref":"#/definitions/AssetType"}},"required":["key","type"],"type":"object"},"UserClientMap":{"additionalProperties":{"additionalProperties":{"type":"string"},"type":"object"},"type":"object"},"UserClientPrekeyMap":{"additionalProperties":{"additionalProperties":{"properties":{"id":{"maximum":65535,"minimum":0,"type":"integer"},"key":{"type":"string"}},"required":["id","key"],"type":"object"},"type":"object"},"example":{"000600d0-000b-9c1a-000d-a4130002c221":{"44901fb0712e588f":{"id":1,"key":"pQABAQECoQBYIOjl7hw0D8YRNq..."}}},"type":"object"},"UserClients":{"additionalProperties":{"items":{"$ref":"#/definitions/ClientId"},"type":"array"},"description":"Map of user id to list of client ids.","example":{"000600d0-000b-9c1a-000d-a4130002c221":["60f85e4b15ad3786","6e323ab31554353b"]},"type":"object"},"UserConnection":{"properties":{"conversation":{"$ref":"#/definitions/UUID"},"from":{"$ref":"#/definitions/UUID"},"last_update":{"$ref":"#/definitions/UTCTime"},"qualified_conversation":{"$ref":"#/definitions/Qualified_ConvId"},"qualified_to":{"$ref":"#/definitions/Qualified_UserId"},"status":{"$ref":"#/definitions/Relation"},"to":{"$ref":"#/definitions/UUID"}},"required":["from","qualified_to","status","last_update"],"type":"object"},"UserConnectionList":{"properties":{"connections":{"items":{"$ref":"#/definitions/UserConnection"},"type":"array"},"has_more":{"description":"Indicator that the server has more connections than returned.","type":"boolean"}},"required":["connections","has_more"],"type":"object"},"UserHandleInfo":{"properties":{"qualified_user":{"$ref":"#/definitions/Qualified_UserId"},"user":{"$ref":"#/definitions/UUID"}},"required":["qualified_user"],"type":"object"},"UserLegalHoldStatus":{"description":"states whether a user is under legal hold, or whether legal hold is pending approval.","enum":["enabled","pending","disabled","no_consent"],"type":"string"},"UserLegalHoldStatusResponse":{"properties":{"client":{"$ref":"#/definitions/Id"},"last_prekey":{"$ref":"#/definitions/Prekey"},"status":{"$ref":"#/definitions/UserLegalHoldStatus"}},"required":["status"],"type":"object"},"UserMap_Set_PubClient":{"additionalProperties":{"items":{"$ref":"#/definitions/PubClient"},"type":"array","uniqueItems":true},"description":"Map of UserId to (Set PubClient)","example":{"000600d0-000b-9c1a-000d-a4130002c221":[{"class":"legalhold","id":"d0"}]},"type":"object"},"UserProfile":{"properties":{"accent_id":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"type":"integer"},"assets":{"items":{"$ref":"#/definitions/UserAsset"},"type":"array"},"deleted":{"type":"boolean"},"email":{"$ref":"#/definitions/Email"},"expires_at":{"$ref":"#/definitions/UTCTime"},"handle":{"$ref":"#/definitions/Handle"},"id":{"$ref":"#/definitions/UUID"},"legalhold_status":{"$ref":"#/definitions/UserLegalHoldStatus"},"name":{"maxLength":128,"minLength":1,"type":"string"},"picture":{"$ref":"#/definitions/Pict"},"qualified_id":{"$ref":"#/definitions/Qualified_UserId"},"service":{"$ref":"#/definitions/ServiceRef"},"team":{"$ref":"#/definitions/UUID"}},"required":["qualified_id","name","accent_id","legalhold_status"],"type":"object"},"UserSSOId":{"properties":{"scim_external_id":{"type":"string"},"subject":{"type":"string"},"tenant":{"type":"string"}},"type":"object"},"UserUpdate":{"properties":{"accent_id":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"type":"integer"},"assets":{"items":{"$ref":"#/definitions/UserAsset"},"type":"array"},"name":{"maxLength":128,"minLength":1,"type":"string"},"picture":{"$ref":"#/definitions/Pict"}},"type":"object"},"VerificationAction":{"enum":["create_scim_token","login","delete_team"],"type":"string"},"Version":{"enum":[0,1],"type":"integer"},"VersionInfo":{"example":{"domain":"example.com","federation":false,"supported":[0,1]},"properties":{"domain":{"$ref":"#/definitions/Domain"},"federation":{"type":"boolean"},"supported":{"items":{"$ref":"#/definitions/Version"},"type":"array"}},"required":["supported","federation","domain"],"type":"object"},"ViewLegalHoldService":{"properties":{"settings":{"$ref":"#/definitions/ViewLegalHoldServiceInfo"},"status":{"$ref":"#/definitions/LHServiceStatus"}},"required":["status"],"type":"object"},"ViewLegalHoldServiceInfo":{"properties":{"auth_token":{"$ref":"#/definitions/ASCII"},"base_url":{"$ref":"#/definitions/HttpsUrl"},"fingerprint":{"$ref":"#/definitions/Fingerprint"},"public_key":{"$ref":"#/definitions/ServiceKeyPEM"},"team_id":{"$ref":"#/definitions/UUID"}},"required":["team_id","base_url","fingerprint","auth_token","public_key"],"type":"object"},"Welcome":{"description":"This object can only be parsed in TLS format. Please refer to the MLS specification for details."},"WireIdP":{"properties":{"apiVersion":{"$ref":"#/definitions/WireIdPAPIVersion"},"oldIssuers":{"items":{"type":"string"},"type":"array"},"replacedBy":{"$ref":"#/definitions/UUID"},"team":{"$ref":"#/definitions/UUID"}},"required":["team","oldIssuers"],"type":"object"},"WireIdPAPIVersion":{"enum":["WireIdPAPIV1","WireIdPAPIV2"],"type":"string"},"XmlText":{"properties":{"fromXmlText":{"type":"string"}},"required":["fromXmlText"],"type":"object"},"new-otr-message":{"properties":{"data":{"type":"string"},"native_priority":{"$ref":"#/definitions/Priority"},"native_push":{"type":"boolean"},"recipients":{"$ref":"#/definitions/UserClientMap"},"report_missing":{"items":{"$ref":"#/definitions/UUID"},"type":"array"},"sender":{"$ref":"#/definitions/ClientId"},"transient":{"type":"boolean"}},"required":["sender","recipients"],"type":"object"}},"info":{"description":"## General\n\n**NOTE**: only a few endpoints are visible here at the moment, more will come as we migrate them to Swagger 2.0. In the meantime please also look at the old swagger docs link for the not-yet-migrated endpoints. See https://docs.wire.com/understand/api-client-perspective/swagger.html for the old endpoints.\n\n## SSO Endpoints\n\n### Overview\n\n`/sso/metadata` will be requested by the IdPs to learn how to talk to wire.\n\n`/sso/initiate-login`, `/sso/finalize-login` are for the SAML authentication handshake performed by a user in order to log into wire.  They are not exactly standard in their details: they may return HTML or XML; redirect to error URLs instead of throwing errors, etc.\n\n`/identity-providers` end-points are for use in the team settings page when IdPs are registered.  They talk json.\n\n\n### Configuring IdPs\n\nIdPs usually allow you to copy the metadata into your clipboard.  That should contain all the details you need to post the idp in your team under `/identity-providers`.  (Team id is derived from the authorization credentials of the request.)\n\n#### okta.com\n\nOkta will ask you to provide two URLs when you set it up for talking to wireapp:\n\n1. The `Single sign on URL`.  This is the end-point that accepts the user's credentials after successful authentication against the IdP.  Choose `/sso/finalize-login` with schema and hostname of the wire server you are configuring.\n\n2. The `Audience URI`.  You can find this in the metadata returned by the `/sso/metadata` end-point.  It is the contents of the `md:OrganizationURL` element.\n\n#### centrify.com\n\nCentrify allows you to upload the metadata xml document that you get from the `/sso/metadata` end-point.  You can also enter the metadata url and have centrify retrieve the xml, but to guarantee integrity of the setup, the metadata should be copied from the team settings page and pasted into the centrify setup page without any URL indirections.\n\n## Federation errors\n\nEndpoints involving federated calls to other domains can return some extra failure responses, common to all endpoints. Instead of listing them as possible responses for each endpoint, we document them here.\n\nFor errors that are more likely to be transient, we suggest clients to retry whatever request resulted in the error. Transient errors are indicated explicitly below.\n\n**Note**: when a failure occurs as a result of making a federated RPC to another backend, the error response contains the following extra fields:\n\n - `domain`: the target backend of the RPC that failed;\n - `path`: the path of the RPC that failed.\n\n### Domain errors\n\nErrors in this category result from trying to communicate with a backend that is considered non-existent or invalid. They can result from invalid user input or client issues, but they can also be a symptom of misconfiguration in one or multiple backends. These errors have a 4xx status code.\n\n - **Remote backend not found** (status: 422, label: `invalid-domain`): This backend attempted to contact a backend which does not exist or is not properly configured. For the most part, clients can consider this error equivalent to a domain not existing, although it should be noted that certain mistakes in the DNS configuration on a remote backend can lead to the backend not being recognized, and hence to this error. It is therefore not advisable to take any destructive action upon encountering this error, such as deleting remote users from conversations.\n - **Federation denied locally** (status: 400, label: `federation-denied`): This backend attempted an RPC to a non-whitelisted backend. Similar considerations as for the previous error apply.\n - **Federation not enabled** (status: 400, label: `federation-not-enabled`): Federation has not been configured for this backend. This will happen if a federation-aware client tries to talk to a backend for which federation is disabled, or if federation was disabled on the backend after reaching a federation-specific state (e.g. conversations with remote users). There is no way to cleanly recover from these errors at this point.\n\n### Local federation errors\n\nAn error in this category likely indicates an issue with the configuration of federation on the local backend. Possibly transient errors are indicated explicitly below. All these errors have a 500 status code.\n\n - **Federation unavailable** (status: 500, label: `federation-not-available`): Federation is configured for this backend, but the local federator cannot be reached. This can be transient, so clients should retry the request.\n - **Federation not implemented** (status: 500, label: `federation-not-implemented`): Federated behaviour for a certain endpoint is not yet implemented.\n - **Federator discovery failed** (status: 400, label: `discovery-failure`): A DNS error occurred during discovery of a remote backend. This can be transient, so clients should retry the request.\n - **Local federation error** (status: 500, label: `federation-local-error`): An error occurred in the communication between this backend and its local federator. These errors are most likely caused by bugs in the backend, and should be reported as such.\n\n### Remote federation errors\n\nErrors in this category are returned in case of communication issues between the local backend and a remote one, or if the remote side encountered an error while processing an RPC. Some errors in this category might be caused by incorrect client behaviour, wrong user input, or incorrect certificate configuration. Possibly transient errors are indicated explicitly. We use non-standard 5xx status codes for these errors.\n\n - **HTTP2 error** (status: 533, label: `federation-http2-error`): The current federator encountered an error when making an HTTP2 request to a remote one.  Check the error message for more details.\n - **Connection refused** (status: 521, label: `federation-connection-refused`): The local federator could not connect to a remote one. This could be transient, so clients should retry the request.\n - **TLS failure**: (status: 525, label: `federation-tls-error`): An error occurred during the TLS handshake between the local federator and a remote one. This is most likely due to an issue with the certificate on the remote end.\n - **Remote federation error** (status: 533, label: `federation-remote-error`): The remote backend could not process a request coming from this backend. Check the error message for more details.\n\n### Backend compatibility errors\n\nAn error in this category will be returned when this backend makes an invalid or unsupported RPC to another backend. This can indicate some incompatibility between backends or a backend bug. These errors are unlikely to be transient, so retrying requests is *not* advised.\n\n - **Version mismatch** (status: 531, label: `federation-version-mismatch`): A remote backend is running an unsupported version of the federator.\n - **Invalid content type** (status: 533, label: `federation-invalid-content-type`): An RPC to another backend returned with an invalid content type.\n - **Unsupported content type** (status: 533, label: `federation-unsupported-content-type`): An RPC to another backend returned with an unsupported content type.\n","title":"Wire-Server API","version":"0"},"paths":{"/api-version":{"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/VersionInfo"}}}}},"/assets/v3":{"post":{"consumes":["multipart/mixed"],"parameters":[{"description":"A body with content type `multipart/mixed body`. The first section's content type should be `application/json`. The second section's content type should be always be `application/octet-stream`. Other content types will be ignored by the server.","in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/AssetSource"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"201":{"description":"Asset posted","headers":{"Location":{"description":"Asset location","format":"url","type":"string"}},"schema":{"$ref":"#/definitions/Asset"}},"400":{"description":"Invalid `body`\n\nInvalid content length (label: `invalid-length`)"},"413":{"description":"Asset too large (label: `client-error`)","schema":{"example":{"code":413,"label":"client-error","message":"Asset too large"},"properties":{"code":{"enum":[413],"type":"integer"},"label":{"enum":["client-error"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Upload an asset"}},"/assets/v3/{key}":{"delete":{"parameters":[{"in":"path","name":"key","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Asset deleted"},"403":{"description":"Unauthorised operation (label: `unauthorised`)","schema":{"example":{"code":403,"label":"unauthorised","message":"Unauthorised operation"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["unauthorised"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`key` not found\n\nAsset not found (label: `not-found`)"}},"summary":"Delete an asset"},"get":{"parameters":[{"in":"path","name":"key","required":true,"type":"string"},{"in":"header","name":"Asset-Token","required":false,"type":"string"},{"in":"query","name":"asset_token","required":false,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"302":{"description":"Asset found","headers":{"Location":{"description":"Asset location","format":"url","type":"string"}}},"400":{"description":"Invalid `asset_token` or `Asset-Token`"},"404":{"description":"`key` or Asset not found (label: `not-found`)","schema":{"example":{"code":404,"label":"not-found","message":"Asset not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["not-found"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Download an asset"}},"/assets/v3/{key}/token":{"delete":{"description":"**Note**: deleting the token makes the asset public.","parameters":[{"in":"path","name":"key","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Asset token deleted"},"404":{"description":"`key` not found"}},"summary":"Delete an asset token"},"post":{"parameters":[{"in":"path","name":"key","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/NewAssetToken"}},"403":{"description":"Unauthorised operation (label: `unauthorised`)","schema":{"example":{"code":403,"label":"unauthorised","message":"Unauthorised operation"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["unauthorised"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`key` not found\n\nAsset not found (label: `not-found`)"}},"summary":"Renew an asset token"}},"/assets/v4/{key_domain}/{key}":{"delete":{"description":"**Note**: only local assets can be deleted.","parameters":[{"in":"path","name":"key_domain","required":true,"type":"string"},{"in":"path","name":"key","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Asset deleted"},"403":{"description":"Unauthorised operation (label: `unauthorised`)","schema":{"example":{"code":403,"label":"unauthorised","message":"Unauthorised operation"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["unauthorised"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`key_domain` or `key` not found\n\nAsset not found (label: `not-found`)"}},"summary":"Delete an asset"},"get":{"description":"**Note**: local assets result in a redirect, while remote assets are streamed directly.","parameters":[{"in":"path","name":"key_domain","required":true,"type":"string"},{"in":"path","name":"key","required":true,"type":"string"},{"in":"header","name":"Asset-Token","required":false,"type":"string"},{"in":"query","name":"asset_token","required":false,"type":"string"}],"responses":{"200":{"description":"Asset returned directly with content type `application/octet-stream`"},"302":{"description":"Asset found","headers":{"Location":{"description":"Asset location","format":"url","type":"string"}}},"400":{"description":"Invalid `asset_token` or `Asset-Token`"},"404":{"description":"`key_domain` or `key` or Asset not found (label: `not-found`)","schema":{"example":{"code":404,"label":"not-found","message":"Asset not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["not-found"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Download an asset"}},"/assets/{id}":{"get":{"parameters":[{"format":"uuid","in":"query","name":"conv_id","required":true,"type":"string"},{"format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"302":{"description":"Asset found","headers":{"Location":{"description":"Asset location","format":"url","type":"string"}}},"400":{"description":"Invalid `conv_id`"},"404":{"description":"`id` or Asset not found (label: `not-found`)","schema":{"example":{"code":404,"label":"not-found","message":"Asset not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["not-found"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}}}},"/await":{"get":{"externalDocs":{"description":"RFC 6455","url":"https://datatracker.ietf.org/doc/html/rfc6455"},"parameters":[{"description":"Client ID","in":"query","name":"client","required":false,"type":"string"}],"responses":{"101":{"description":"Connection upgraded."},"400":{"description":"Invalid `client`"},"426":{"description":"Upgrade required."}},"summary":"Establish websocket connection"}},"/bot/assets":{"post":{"consumes":["multipart/mixed"],"parameters":[{"description":"A body with content type `multipart/mixed body`. The first section's content type should be `application/json`. The second section's content type should be always be `application/octet-stream`. Other content types will be ignored by the server.","in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/AssetSource"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"201":{"description":"Asset posted","headers":{"Location":{"description":"Asset location","format":"url","type":"string"}},"schema":{"$ref":"#/definitions/Asset"}},"400":{"description":"Invalid `body`\n\nInvalid content length (label: `invalid-length`)"},"413":{"description":"Asset too large (label: `client-error`)","schema":{"example":{"code":413,"label":"client-error","message":"Asset too large"},"properties":{"code":{"enum":[413],"type":"integer"},"label":{"enum":["client-error"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Upload an asset"}},"/bot/assets/{key}":{"delete":{"parameters":[{"in":"path","name":"key","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Asset deleted"},"403":{"description":"Unauthorised operation (label: `unauthorised`)","schema":{"example":{"code":403,"label":"unauthorised","message":"Unauthorised operation"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["unauthorised"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`key` not found\n\nAsset not found (label: `not-found`)"}},"summary":"Delete an asset"},"get":{"parameters":[{"in":"path","name":"key","required":true,"type":"string"},{"in":"header","name":"Asset-Token","required":false,"type":"string"},{"in":"query","name":"asset_token","required":false,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"302":{"description":"Asset found","headers":{"Location":{"description":"Asset location","format":"url","type":"string"}}},"400":{"description":"Invalid `asset_token` or `Asset-Token`"},"404":{"description":"`key` or Asset not found (label: `not-found`)","schema":{"example":{"code":404,"label":"not-found","message":"Asset not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["not-found"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Download an asset"}},"/bot/messages":{"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"query","name":"ignore_missing","required":false,"type":"string"},{"in":"query","name":"report_missing","required":false,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/new-otr-message"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"201":{"description":"Message sent","schema":{"$ref":"#/definitions/ClientMismatch"}},"400":{"description":"Invalid `body` or `report_missing` or `ignore_missing`"},"403":{"description":"Unknown Client (label: `unknown-client`)\n\nFailed to connect to a user or to invite a user to a group because somebody is under legalhold and somebody else has not granted consent (label: `missing-legalhold-consent`)","schema":{"example":{"code":403,"label":"unknown-client","message":"Unknown Client"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["unknown-client","missing-legalhold-consent"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"Conversation not found (label: `no-conversation`)\n\nConversation not found (label: `no-conversation`)","schema":{"example":{"code":404,"label":"no-conversation","message":"Conversation not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-conversation"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"412":{"description":"Missing clients","schema":{"$ref":"#/definitions/ClientMismatch"}}}}},"/broadcast/otr/messages":{"post":{"consumes":["application/json;charset=utf-8","application/x-protobuf"],"description":"This endpoint ensures that the list of clients is correct and only sends the message if the list is correct.\nTo override this, the endpoint accepts two query params:\n- `ignore_missing`: Can be 'true' 'false' or a comma separated list of user IDs.\n  - When 'true' all missing clients are ignored.\n  - When 'false' all missing clients are reported.\n  - When comma separated list of user-ids, only clients for listed users are ignored.\n- `report_missing`: Can be 'true' 'false' or a comma separated list of user IDs.\n  - When 'true' all missing clients are reported.\n  - When 'false' all missing clients are ignored.\n  - When comma separated list of user-ids, only clients for listed users are reported.\n\nApart from these, the request body also accepts `report_missing` which can only be a list of user ids and behaves the same way as the query parameter.\n\nAll three of these should be considered mutually exclusive. The server however does not error if more than one is specified, it reads them in this order of precedence:\n- `report_missing` in the request body has highest precedence.\n- `ignore_missing` in the query param is the next.\n- `report_missing` in the query param has the lowest precedence.\n\nThis endpoint can lead to OtrMessageAdd event being sent to the recipients.\n\n**NOTE:** The protobuf definitions of the request body can be found at https://github.com/wireapp/generic-message-proto/blob/master/proto/otr.proto.","parameters":[{"in":"query","name":"ignore_missing","required":false,"type":"string"},{"in":"query","name":"report_missing","required":false,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/new-otr-message"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"201":{"description":"Message sent","schema":{"$ref":"#/definitions/ClientMismatch"}},"400":{"description":"Invalid `body` or `report_missing` or `ignore_missing`\n\nToo many users to fan out the broadcast event to (label: `too-many-users-to-broadcast`)"},"403":{"description":"Unknown Client (label: `unknown-client`)\n\nFailed to connect to a user or to invite a user to a group because somebody is under legalhold and somebody else has not granted consent (label: `missing-legalhold-consent`)","schema":{"example":{"code":403,"label":"unknown-client","message":"Unknown Client"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["unknown-client","missing-legalhold-consent"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"Conversation not found (label: `no-conversation`)\n\nNot a member of a binding team (label: `non-binding-team`)\n\nTeam not found (label: `no-team`)","schema":{"example":{"code":404,"label":"no-conversation","message":"Conversation not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-conversation","non-binding-team","no-team"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"412":{"description":"Missing clients","schema":{"$ref":"#/definitions/ClientMismatch"}}},"summary":"Broadcast an encrypted message to all team members and all contacts (accepts JSON or Protobuf)"}},"/broadcast/proteus/messages":{"post":{"consumes":["application/x-protobuf"],"description":"This endpoint ensures that the list of clients is correct and only sends the message if the list is correct.\nTo override this, the endpoint accepts `client_mismatch_strategy` in the body. It can have these values:\n- `report_all`: When set, the message is not sent if any clients are missing. The missing clients are reported in the response.\n- `ignore_all`: When set, no checks about missing clients are carried out.\n- `report_only`: Takes a list of qualified UserIDs. If any clients of the listed users are missing, the message is not sent. The missing clients are reported in the response.\n- `ignore_only`: Takes a list of qualified UserIDs. If any clients of the non-listed users are missing, the message is not sent. The missing clients are reported in the response.\n\nThe sending of messages in a federated conversation could theoretically fail partially. To make this case unlikely, the backend first gets a list of clients from all the involved backends and then tries to send a message. So, if any backend is down, the message is not propagated to anyone. But the actual message fan out to multiple backends could still fail partially. This type of failure is reported as a 201, the clients for which the message sending failed are part of the response body.\n\nThis endpoint can lead to OtrMessageAdd event being sent to the recipients.\n\n**NOTE:** The protobuf definitions of the request body can be found at https://github.com/wireapp/generic-message-proto/blob/master/proto/otr.proto.","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/QualifiedNewOtrMessage"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"201":{"description":"Message sent","schema":{"$ref":"#/definitions/MessageSendingStatus"}},"400":{"description":"Invalid `body`\n\nToo many users to fan out the broadcast event to (label: `too-many-users-to-broadcast`)"},"403":{"description":"Unknown Client (label: `unknown-client`)\n\nFailed to connect to a user or to invite a user to a group because somebody is under legalhold and somebody else has not granted consent (label: `missing-legalhold-consent`)","schema":{"example":{"code":403,"label":"unknown-client","message":"Unknown Client"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["unknown-client","missing-legalhold-consent"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"Conversation not found (label: `no-conversation`)\n\nNot a member of a binding team (label: `non-binding-team`)\n\nTeam not found (label: `no-team`)","schema":{"example":{"code":404,"label":"no-conversation","message":"Conversation not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-conversation","non-binding-team","no-team"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"412":{"description":"Missing clients","schema":{"$ref":"#/definitions/MessageSendingStatus"}}},"summary":"Post an encrypted message to all team members and all contacts (accepts only Protobuf)"}},"/clients":{"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"items":{"$ref":"#/definitions/Client"},"type":"array"}}},"summary":"List the registered clients"},"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"header","name":"X-Forwarded-For","required":false,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/NewClient"}}],"produces":["application/json;charset=utf-8"],"responses":{"201":{"description":"","headers":{"Location":{"type":"string"}},"schema":{"$ref":"#/definitions/Client"}},"400":{"description":"Invalid `body` or `X-Forwarded-For`\n\nMalformed prekeys uploaded (label: `bad-request`)"},"403":{"description":"Code authentication is required (label: `code-authentication-required`)\n\nCode authentication failed (label: `code-authentication-failed`)\n\nRe-authentication via password required (label: `missing-auth`)\n\nToo many clients (label: `too-many-clients`)","schema":{"example":{"code":403,"label":"code-authentication-required","message":"Code authentication is required"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["code-authentication-required","code-authentication-failed","missing-auth","too-many-clients"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Register a new client"}},"/clients/{client}":{"delete":{"consumes":["application/json;charset=utf-8"],"parameters":[{"description":"ClientId","in":"path","name":"client","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/DeleteClient"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Client deleted"},"400":{"description":"Invalid `body`"},"404":{"description":"`client` not found"}},"summary":"Delete an existing client"},"get":{"parameters":[{"description":"ClientId","in":"path","name":"client","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Client found","schema":{"$ref":"#/definitions/Client"}},"404":{"description":"`client` or Client not found(**Note**: This error has an empty body for legacy reasons)"}},"summary":"Get a registered client by ID"},"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"description":"ClientId","in":"path","name":"client","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/UpdateClient"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Client updated"},"400":{"description":"Invalid `body`\n\nMalformed prekeys uploaded (label: `bad-request`)"},"404":{"description":"`client` not found"}},"summary":"Update a registered client"}},"/clients/{client}/capabilities":{"get":{"parameters":[{"description":"ClientId","in":"path","name":"client","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/ClientCapabilityList"}},"404":{"description":"`client` not found"}},"summary":"Read back what the client has been posting about itself"}},"/clients/{client}/prekeys":{"get":{"parameters":[{"description":"ClientId","in":"path","name":"client","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"items":{"maximum":65535,"minimum":0,"type":"integer"},"type":"array"}},"404":{"description":"`client` not found"}},"summary":"List the remaining prekey IDs of a client"}},"/connections":{"get":{"parameters":[{"description":"User ID to start from when paginating","format":"uuid","in":"query","name":"start","required":false,"type":"string"},{"description":"Number of results to return (default 100, max 500)","format":"int32","in":"query","maximum":500,"minimum":1,"name":"size","required":false,"type":"integer"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/UserConnectionList"}},"400":{"description":"Invalid `size` or `start`"}},"summary":"List the local connections to other users (deprecated)"},"post":{"consumes":["application/json;charset=utf-8"],"description":"You can have no more than 1000 connections in accepted or sent state","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ConnectionRequest"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Connection existed","schema":{"$ref":"#/definitions/UserConnection"}},"201":{"description":"Connection was created","schema":{"$ref":"#/definitions/UserConnection"}},"400":{"description":"Invalid `body`\n\nInvalid user (label: `invalid-user`)"},"403":{"description":"The user has no verified identity (email or phone number) (label: `no-identity`)\n\nToo many sent/accepted connections (label: `connection-limit`)\n\nFailed to connect to a user or to invite a user to a group because somebody is under legalhold and somebody else has not granted consent (label: `missing-legalhold-consent`)","schema":{"example":{"code":403,"label":"no-identity","message":"The user has no verified identity (email or phone number)"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-identity","connection-limit","missing-legalhold-consent"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Create a connection to another user (deprecated)"}},"/connections/{uid_domain}/{uid}":{"get":{"parameters":[{"in":"path","name":"uid_domain","required":true,"type":"string"},{"description":"User Id","format":"uuid","in":"path","name":"uid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Connection found","schema":{"$ref":"#/definitions/UserConnection"}},"404":{"description":"`uid_domain` or `uid` or Connection not found(**Note**: This error has an empty body for legacy reasons)"}},"summary":"Get an existing connection to another user (local or remote)"},"post":{"description":"You can have no more than 1000 connections in accepted or sent state","parameters":[{"in":"path","name":"uid_domain","required":true,"type":"string"},{"description":"User Id","format":"uuid","in":"path","name":"uid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Connection existed","schema":{"$ref":"#/definitions/UserConnection"}},"201":{"description":"Connection was created","schema":{"$ref":"#/definitions/UserConnection"}},"400":{"description":"Invalid user (label: `invalid-user`)","schema":{"example":{"code":400,"label":"invalid-user","message":"Invalid user"},"properties":{"code":{"enum":[400],"type":"integer"},"label":{"enum":["invalid-user"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"403":{"description":"The user has no verified identity (email or phone number) (label: `no-identity`)\n\nToo many sent/accepted connections (label: `connection-limit`)\n\nFailed to connect to a user or to invite a user to a group because somebody is under legalhold and somebody else has not granted consent (label: `missing-legalhold-consent`)","schema":{"example":{"code":403,"label":"no-identity","message":"The user has no verified identity (email or phone number)"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-identity","connection-limit","missing-legalhold-consent"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`uid_domain` or `uid` not found"}},"summary":"Create a connection to another user"},"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"path","name":"uid_domain","required":true,"type":"string"},{"description":"User Id","format":"uuid","in":"path","name":"uid","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ConnectionUpdate"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Connection updated","schema":{"$ref":"#/definitions/UserConnection"}},"204":{"description":"Connection unchanged"},"400":{"description":"Invalid `body`\n\nInvalid user (label: `invalid-user`)"},"403":{"description":"The user has no verified identity (email or phone number) (label: `no-identity`)\n\nInvalid status transition (label: `bad-conn-update`)\n\nUsers are not connected (label: `not-connected`)\n\nToo many sent/accepted connections (label: `connection-limit`)\n\nFailed to connect to a user or to invite a user to a group because somebody is under legalhold and somebody else has not granted consent (label: `missing-legalhold-consent`)","schema":{"example":{"code":403,"label":"no-identity","message":"The user has no verified identity (email or phone number)"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-identity","bad-conn-update","not-connected","connection-limit","missing-legalhold-consent"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`uid_domain` or `uid` not found"}},"summary":"Update a connection to another user (deprecatd)"}},"/connections/{uid}":{"get":{"parameters":[{"description":"User Id","format":"uuid","in":"path","name":"uid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Connection found","schema":{"$ref":"#/definitions/UserConnection"}},"404":{"description":"`uid` or Connection not found(**Note**: This error has an empty body for legacy reasons)"}},"summary":"Get an existing connection to another user (deprecated)"},"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"description":"User Id","format":"uuid","in":"path","name":"uid","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ConnectionUpdate"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Connection updated","schema":{"$ref":"#/definitions/UserConnection"}},"204":{"description":"Connection unchanged"},"400":{"description":"Invalid `body`\n\nInvalid user (label: `invalid-user`)"},"403":{"description":"The user has no verified identity (email or phone number) (label: `no-identity`)\n\nInvalid status transition (label: `bad-conn-update`)\n\nUsers are not connected (label: `not-connected`)\n\nToo many sent/accepted connections (label: `connection-limit`)\n\nFailed to connect to a user or to invite a user to a group because somebody is under legalhold and somebody else has not granted consent (label: `missing-legalhold-consent`)","schema":{"example":{"code":403,"label":"no-identity","message":"The user has no verified identity (email or phone number)"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-identity","bad-conn-update","not-connected","connection-limit","missing-legalhold-consent"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`uid` not found"}},"summary":"Update a connection to another user (deprecated)"}},"/conversations":{"get":{"description":"Will not return remote conversations.\n\nUse `POST /conversations/list-ids` followed by `POST /conversations/list/v2` instead.","parameters":[{"collectionFormat":"csv","description":"Mutually exclusive with 'start' (at most 32 IDs per request)","in":"query","items":{"format":"uuid","type":"string"},"maxItems":32,"minItems":1,"name":"ids","required":false,"type":"array"},{"description":"Conversation ID to start from (exclusive)","format":"uuid","in":"query","name":"start","required":false,"type":"string"},{"description":"Maximum number of conversations to return","format":"int32","in":"query","maximum":500,"minimum":1,"name":"size","required":false,"type":"integer"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/ConversationList"}},"400":{"description":"Invalid `size` or `start` or `ids`"}},"summary":"Get all *local* conversations."},"post":{"consumes":["application/json;charset=utf-8"],"description":"This returns 201 when a new conversation is created, and 200 when the conversation already existed","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/NewConv"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Conversation existed","headers":{"Location":{"description":"Conversation ID","format":"uuid","type":"string"}},"schema":{"$ref":"#/definitions/Conversation"}},"201":{"description":"Conversation created","headers":{"Location":{"description":"Conversation ID","format":"uuid","type":"string"}},"schema":{"$ref":"#/definitions/Conversation"}},"400":{"description":"Invalid `body`\n\nAttempting to add group members outside MLS (label: `non-empty-member-list`)"},"403":{"description":"Failed to connect to a user or to invite a user to a group because somebody is under legalhold and somebody else has not granted consent (label: `missing-legalhold-consent`)\n\nInsufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)\n\nUsers are not connected (label: `not-connected`)\n\nConversation access denied (label: `access-denied`)","schema":{"example":{"code":403,"label":"missing-legalhold-consent","message":"Failed to connect to a user or to invite a user to a group because somebody is under legalhold and somebody else has not granted consent"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["missing-legalhold-consent","operation-denied","no-team-member","not-connected","access-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Create a new conversation"}},"/conversations/code-check":{"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ConversationCode"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Valid"},"400":{"description":"Invalid `body`"},"404":{"description":"Conversation not found (label: `no-conversation`)\n\nConversation code not found (label: `no-conversation-code`)","schema":{"example":{"code":404,"label":"no-conversation","message":"Conversation not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-conversation","no-conversation-code"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Check validity of a conversation code.If the guest links team feature is disabled, this will fail with 404 CodeNotFound.Note that this is currently inconsistent (for backwards compatibility reasons) with `POST /conversations/join` which responds with 409 GuestLinksDisabled if guest links are disabled."}},"/conversations/ids":{"get":{"parameters":[{"description":"Conversation ID to start from (exclusive)","format":"uuid","in":"query","name":"start","required":false,"type":"string"},{"description":"Maximum number of IDs to return","format":"int32","in":"query","maximum":1000,"minimum":1,"name":"size","required":false,"type":"integer"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/ConversationList"}},"400":{"description":"Invalid `size` or `start`"}},"summary":"[deprecated] Get all local conversation IDs."}},"/conversations/join":{"get":{"parameters":[{"in":"query","name":"key","required":true,"type":"string"},{"in":"query","name":"code","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/ConversationCoverView"}},"400":{"description":"Invalid `code` or `key`"},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nConversation access denied (label: `access-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","access-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"Conversation not found (label: `no-conversation`)\n\nConversation code not found (label: `no-conversation-code`)","schema":{"example":{"code":404,"label":"no-conversation","message":"Conversation not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-conversation","no-conversation-code"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"409":{"description":"The guest link feature is disabled and all guest links have been revoked (label: `guest-links-disabled`)","schema":{"example":{"code":409,"label":"guest-links-disabled","message":"The guest link feature is disabled and all guest links have been revoked"},"properties":{"code":{"enum":[409],"type":"integer"},"label":{"enum":["guest-links-disabled"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Get limited conversation information by key/code pair"},"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ConversationCode"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Conversation joined","schema":{"$ref":"#/definitions/Event"}},"204":{"description":"Conversation unchanged"},"400":{"description":"Invalid `body`"},"403":{"description":"Maximum number of members per conversation reached (label: `too-many-members`)\n\nRequesting user is not a team member (label: `no-team-member`)\n\nInvalid operation (label: `invalid-op`)\n\nConversation access denied (label: `access-denied`)","schema":{"example":{"code":403,"label":"too-many-members","message":"Maximum number of members per conversation reached"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["too-many-members","no-team-member","invalid-op","access-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"Conversation not found (label: `no-conversation`)\n\nConversation code not found (label: `no-conversation-code`)","schema":{"example":{"code":404,"label":"no-conversation","message":"Conversation not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-conversation","no-conversation-code"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"409":{"description":"The guest link feature is disabled and all guest links have been revoked (label: `guest-links-disabled`)","schema":{"example":{"code":409,"label":"guest-links-disabled","message":"The guest link feature is disabled and all guest links have been revoked"},"properties":{"code":{"enum":[409],"type":"integer"},"label":{"enum":["guest-links-disabled"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Join a conversation using a reusable code.If the guest links team feature is disabled, this will fail with 409 GuestLinksDisabled.Note that this is currently inconsistent (for backwards compatibility reasons) with `POST /conversations/code-check` which responds with 404 CodeNotFound if guest links are disabled."}},"/conversations/list-ids":{"post":{"consumes":["application/json;charset=utf-8"],"description":"The IDs returned by this endpoint are paginated. To get the first page, make a call with the `paging_state` field set to `null` (or omitted). Whenever the `has_more` field of the response is set to `true`, more results are available, and they can be obtained by calling the endpoint again, but this time passing the value of `paging_state` returned by the previous call. One can continue in this fashion until all results are returned, which is indicated by `has_more` being `false`. Note that `paging_state` should be considered an opaque token. It should not be inspected, or stored, or reused across multiple unrelated invokations of the endpoint.","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/GetPaginated_ConversationIds"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/ConversationIds_Page"}},"400":{"description":"Invalid `body`"}},"summary":"Get all conversation IDs."}},"/conversations/list/v2":{"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ListConversations"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/ConversationsResponse"}},"400":{"description":"Invalid `body`"}},"summary":"Get conversation metadata for a list of conversation ids"}},"/conversations/one2one":{"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/NewConv"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Conversation existed","headers":{"Location":{"description":"Conversation ID","format":"uuid","type":"string"}},"schema":{"$ref":"#/definitions/Conversation"}},"201":{"description":"Conversation created","headers":{"Location":{"description":"Conversation ID","format":"uuid","type":"string"}},"schema":{"$ref":"#/definitions/Conversation"}},"400":{"description":"Invalid `body`"},"403":{"description":"Failed to connect to a user or to invite a user to a group because somebody is under legalhold and somebody else has not granted consent (label: `missing-legalhold-consent`)\n\nInsufficient permissions (label: `operation-denied`)\n\nUsers are not connected (label: `not-connected`)\n\nRequesting user is not a team member (label: `no-team-member`)\n\nBoth users must be members of the same binding team (label: `non-binding-team-members`)\n\nInvalid operation (label: `invalid-op`)\n\nConversation access denied (label: `access-denied`)","schema":{"example":{"code":403,"label":"missing-legalhold-consent","message":"Failed to connect to a user or to invite a user to a group because somebody is under legalhold and somebody else has not granted consent"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["missing-legalhold-consent","operation-denied","not-connected","no-team-member","non-binding-team-members","invalid-op","access-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"Team not found (label: `no-team`)\n\nNot a member of a binding team (label: `non-binding-team`)","schema":{"example":{"code":404,"label":"no-team","message":"Team not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-team","non-binding-team"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Create a 1:1 conversation"}},"/conversations/self":{"post":{"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Conversation existed","headers":{"Location":{"description":"Conversation ID","format":"uuid","type":"string"}},"schema":{"$ref":"#/definitions/Conversation"}},"201":{"description":"Conversation created","headers":{"Location":{"description":"Conversation ID","format":"uuid","type":"string"}},"schema":{"$ref":"#/definitions/Conversation"}}},"summary":"Create a self-conversation"}},"/conversations/{cnv_domain}/{cnv}":{"get":{"parameters":[{"in":"path","name":"cnv_domain","required":true,"type":"string"},{"format":"uuid","in":"path","name":"cnv","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/Conversation"}},"403":{"description":"Conversation access denied (label: `access-denied`)","schema":{"example":{"code":403,"label":"access-denied","message":"Conversation access denied"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["access-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv_domain` or `cnv` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Get a conversation by ID"}},"/conversations/{cnv_domain}/{cnv}/access":{"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"path","name":"cnv_domain","required":true,"type":"string"},{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ConversationAccessData"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Access updated","schema":{"$ref":"#/definitions/Event"}},"204":{"description":"Access unchanged"},"400":{"description":"Invalid `body`"},"403":{"description":"Invalid target access (label: `invalid-op`)\n\nInvalid operation (label: `invalid-op`)\n\nConversation access denied (label: `access-denied`)\n\nInsufficient authorization (missing remove_conversation_member) (label: `action-denied`)\n\nInsufficient authorization (missing modify_conversation_access) (label: `action-denied`)","schema":{"example":{"code":403,"label":"invalid-op","message":"Invalid target access"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["invalid-op","access-denied","action-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv_domain` or `cnv` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Update access modes for a conversation"}},"/conversations/{cnv_domain}/{cnv}/members/{usr_domain}/{usr}":{"delete":{"parameters":[{"in":"path","name":"cnv_domain","required":true,"type":"string"},{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"in":"path","name":"usr_domain","required":true,"type":"string"},{"description":"Target User ID","format":"uuid","in":"path","name":"usr","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Member removed","schema":{"$ref":"#/definitions/Event"}},"204":{"description":"No change"},"403":{"description":"Invalid operation (label: `invalid-op`)\n\nInsufficient authorization (missing remove_conversation_member) (label: `action-denied`)","schema":{"example":{"code":403,"label":"invalid-op","message":"Invalid operation"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["invalid-op","action-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv_domain` or `cnv` or `usr_domain` or `usr` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Remove a member from a conversation"},"put":{"consumes":["application/json;charset=utf-8"],"description":"**Note**: at least one field has to be provided.","parameters":[{"in":"path","name":"cnv_domain","required":true,"type":"string"},{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"in":"path","name":"usr_domain","required":true,"type":"string"},{"description":"Target User ID","format":"uuid","in":"path","name":"usr","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/OtherMemberUpdate"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Membership updated"},"400":{"description":"Invalid `body`"},"403":{"description":"Invalid operation (label: `invalid-op`)\n\nInvalid target (label: `invalid-op`)\n\nInsufficient authorization (missing modify_other_conversation_member) (label: `action-denied`)","schema":{"example":{"code":403,"label":"invalid-op","message":"Invalid operation"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["invalid-op","action-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv_domain` or `cnv` or `usr_domain` or `usr` not found\n\nConversation member not found (label: `no-conversation-member`)\n\nConversation not found (label: `no-conversation`)"}},"summary":"Update membership of the specified user"}},"/conversations/{cnv_domain}/{cnv}/message-timer":{"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"path","name":"cnv_domain","required":true,"type":"string"},{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ConversationMessageTimerUpdate"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Message timer updated","schema":{"$ref":"#/definitions/Event"}},"204":{"description":"Message timer unchanged"},"400":{"description":"Invalid `body`"},"403":{"description":"Invalid operation (label: `invalid-op`)\n\nConversation access denied (label: `access-denied`)\n\nInsufficient authorization (missing modify_conversation_message_timer) (label: `action-denied`)","schema":{"example":{"code":403,"label":"invalid-op","message":"Invalid operation"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["invalid-op","access-denied","action-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv_domain` or `cnv` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Update the message timer for a conversation"}},"/conversations/{cnv_domain}/{cnv}/name":{"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"path","name":"cnv_domain","required":true,"type":"string"},{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ConversationRename"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Name unchanged","schema":{"$ref":"#/definitions/Event"}},"204":{"description":"Name updated"},"400":{"description":"Invalid `body`"},"403":{"description":"Invalid operation (label: `invalid-op`)\n\nInsufficient authorization (missing modify_conversation_name) (label: `action-denied`)","schema":{"example":{"code":403,"label":"invalid-op","message":"Invalid operation"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["invalid-op","action-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv_domain` or `cnv` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Update conversation name"}},"/conversations/{cnv_domain}/{cnv}/proteus/messages":{"post":{"consumes":["application/x-protobuf"],"description":"This endpoint ensures that the list of clients is correct and only sends the message if the list is correct.\nTo override this, the endpoint accepts `client_mismatch_strategy` in the body. It can have these values:\n- `report_all`: When set, the message is not sent if any clients are missing. The missing clients are reported in the response.\n- `ignore_all`: When set, no checks about missing clients are carried out.\n- `report_only`: Takes a list of qualified UserIDs. If any clients of the listed users are missing, the message is not sent. The missing clients are reported in the response.\n- `ignore_only`: Takes a list of qualified UserIDs. If any clients of the non-listed users are missing, the message is not sent. The missing clients are reported in the response.\n\nThe sending of messages in a federated conversation could theoretically fail partially. To make this case unlikely, the backend first gets a list of clients from all the involved backends and then tries to send a message. So, if any backend is down, the message is not propagated to anyone. But the actual message fan out to multiple backends could still fail partially. This type of failure is reported as a 201, the clients for which the message sending failed are part of the response body.\n\nThis endpoint can lead to OtrMessageAdd event being sent to the recipients.\n\n**NOTE:** The protobuf definitions of the request body can be found at https://github.com/wireapp/generic-message-proto/blob/master/proto/otr.proto.","parameters":[{"in":"path","name":"cnv_domain","required":true,"type":"string"},{"format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/QualifiedNewOtrMessage"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"201":{"description":"Message sent","schema":{"$ref":"#/definitions/MessageSendingStatus"}},"400":{"description":"Invalid `body`"},"403":{"description":"Unknown Client (label: `unknown-client`)\n\nFailed to connect to a user or to invite a user to a group because somebody is under legalhold and somebody else has not granted consent (label: `missing-legalhold-consent`)","schema":{"example":{"code":403,"label":"unknown-client","message":"Unknown Client"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["unknown-client","missing-legalhold-consent"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv_domain` or `cnv` or Conversation not found (label: `no-conversation`)","schema":{"example":{"code":404,"label":"no-conversation","message":"Conversation not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-conversation"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"412":{"description":"Missing clients","schema":{"$ref":"#/definitions/MessageSendingStatus"}}},"summary":"Post an encrypted message to a conversation (accepts only Protobuf)"}},"/conversations/{cnv_domain}/{cnv}/receipt-mode":{"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"path","name":"cnv_domain","required":true,"type":"string"},{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ConversationReceiptModeUpdate"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Receipt mode updated","schema":{"$ref":"#/definitions/Event"}},"204":{"description":"Receipt mode unchanged"},"400":{"description":"Invalid `body`"},"403":{"description":"Invalid operation (label: `invalid-op`)\n\nConversation access denied (label: `access-denied`)\n\nInsufficient authorization (missing modify_conversation_receipt_mode) (label: `action-denied`)","schema":{"example":{"code":403,"label":"invalid-op","message":"Invalid operation"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["invalid-op","access-denied","action-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv_domain` or `cnv` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Update receipt mode for a conversation"}},"/conversations/{cnv_domain}/{cnv}/self":{"put":{"consumes":["application/json;charset=utf-8"],"description":"**Note**: at least one field has to be provided.","parameters":[{"in":"path","name":"cnv_domain","required":true,"type":"string"},{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/MemberUpdate"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Update successful"},"400":{"description":"Invalid `body`"},"404":{"description":"`cnv_domain` or `cnv` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Update self membership properties"}},"/conversations/{cnv}":{"get":{"parameters":[{"format":"uuid","in":"path","name":"cnv","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/Conversation"}},"403":{"description":"Conversation access denied (label: `access-denied`)","schema":{"example":{"code":403,"label":"access-denied","message":"Conversation access denied"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["access-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Get a conversation by ID"},"put":{"consumes":["application/json;charset=utf-8"],"description":"Use `/conversations/:domain/:conv/name` instead.","parameters":[{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ConversationRename"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Name updated","schema":{"$ref":"#/definitions/Event"}},"204":{"description":"Name unchanged"},"400":{"description":"Invalid `body`"},"403":{"description":"Invalid operation (label: `invalid-op`)\n\nInsufficient authorization (missing modify_conversation_name) (label: `action-denied`)","schema":{"example":{"code":403,"label":"invalid-op","message":"Invalid operation"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["invalid-op","action-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Update conversation name (deprecated)"}},"/conversations/{cnv}/access":{"put":{"consumes":["application/json;charset=utf-8"],"description":"Use PUT `/conversations/:domain/:cnv/access` instead.","parameters":[{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ConversationAccessData"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Access updated","schema":{"$ref":"#/definitions/Event"}},"204":{"description":"Access unchanged"},"400":{"description":"Invalid `body`"},"403":{"description":"Invalid target access (label: `invalid-op`)\n\nInvalid operation (label: `invalid-op`)\n\nConversation access denied (label: `access-denied`)\n\nInsufficient authorization (missing remove_conversation_member) (label: `action-denied`)\n\nInsufficient authorization (missing modify_conversation_access) (label: `action-denied`)","schema":{"example":{"code":403,"label":"invalid-op","message":"Invalid target access"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["invalid-op","access-denied","action-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Update access modes for a conversation (deprecated)"}},"/conversations/{cnv}/assets/{id}":{"get":{"parameters":[{"format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"302":{"description":"Asset found","headers":{"Location":{"description":"Asset location","format":"url","type":"string"}}},"404":{"description":"`cnv` or `id` or Asset not found (label: `not-found`)","schema":{"example":{"code":404,"label":"not-found","message":"Asset not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["not-found"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}}}},"/conversations/{cnv}/code":{"delete":{"parameters":[{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Conversation code deleted.","schema":{"$ref":"#/definitions/Event"}},"403":{"description":"Conversation access denied (label: `access-denied`)","schema":{"example":{"code":403,"label":"access-denied","message":"Conversation access denied"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["access-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Delete conversation code"},"get":{"parameters":[{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Conversation Code","schema":{"$ref":"#/definitions/ConversationCode"}},"403":{"description":"Conversation access denied (label: `access-denied`)","schema":{"example":{"code":403,"label":"access-denied","message":"Conversation access denied"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["access-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv` not found\n\nConversation not found (label: `no-conversation`)\n\nConversation code not found (label: `no-conversation-code`)"},"409":{"description":"The guest link feature is disabled and all guest links have been revoked (label: `guest-links-disabled`)","schema":{"example":{"code":409,"label":"guest-links-disabled","message":"The guest link feature is disabled and all guest links have been revoked"},"properties":{"code":{"enum":[409],"type":"integer"},"label":{"enum":["guest-links-disabled"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Get existing conversation code"},"post":{"parameters":[{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Conversation code already exists.","schema":{"$ref":"#/definitions/ConversationCode"}},"201":{"description":"Conversation code created.","schema":{"$ref":"#/definitions/Event"}},"403":{"description":"Conversation access denied (label: `access-denied`)","schema":{"example":{"code":403,"label":"access-denied","message":"Conversation access denied"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["access-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv` not found\n\nConversation not found (label: `no-conversation`)"},"409":{"description":"The guest link feature is disabled and all guest links have been revoked (label: `guest-links-disabled`)","schema":{"example":{"code":409,"label":"guest-links-disabled","message":"The guest link feature is disabled and all guest links have been revoked"},"properties":{"code":{"enum":[409],"type":"integer"},"label":{"enum":["guest-links-disabled"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Create or recreate a conversation code"}},"/conversations/{cnv}/features/conversationGuestLinks":{"get":{"parameters":[{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"403":{"description":"Conversation access denied (label: `access-denied`)","schema":{"example":{"code":403,"label":"access-denied","message":"Conversation access denied"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["access-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Get the status of the guest links feature for a conversation that potentially has been created by someone from another team."}},"/conversations/{cnv}/join":{"post":{"parameters":[{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Conversation joined","schema":{"$ref":"#/definitions/Event"}},"204":{"description":"Conversation unchanged"},"403":{"description":"Maximum number of members per conversation reached (label: `too-many-members`)\n\nRequesting user is not a team member (label: `no-team-member`)\n\nInvalid operation (label: `invalid-op`)\n\nConversation access denied (label: `access-denied`)","schema":{"example":{"code":403,"label":"too-many-members","message":"Maximum number of members per conversation reached"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["too-many-members","no-team-member","invalid-op","access-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Join a conversation by its ID (if link access enabled)"}},"/conversations/{cnv}/members":{"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/Invite"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Conversation updated","schema":{"$ref":"#/definitions/Event"}},"204":{"description":"Conversation unchanged"},"400":{"description":"Invalid `body`"},"403":{"description":"Failed to connect to a user or to invite a user to a group because somebody is under legalhold and somebody else has not granted consent (label: `missing-legalhold-consent`)\n\nUsers are not connected (label: `not-connected`)\n\nRequesting user is not a team member (label: `no-team-member`)\n\nConversation access denied (label: `access-denied`)\n\nMaximum number of members per conversation reached (label: `too-many-members`)\n\nInvalid operation (label: `invalid-op`)\n\nInsufficient authorization (missing leave_conversation) (label: `action-denied`)\n\nInsufficient authorization (missing add_conversation_member) (label: `action-denied`)","schema":{"example":{"code":403,"label":"missing-legalhold-consent","message":"Failed to connect to a user or to invite a user to a group because somebody is under legalhold and somebody else has not granted consent"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["missing-legalhold-consent","not-connected","no-team-member","access-denied","too-many-members","invalid-op","action-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Add members to an existing conversation (deprecated)"}},"/conversations/{cnv}/members/v2":{"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/InviteQualified"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Conversation updated","schema":{"$ref":"#/definitions/Event"}},"204":{"description":"Conversation unchanged"},"400":{"description":"Invalid `body`"},"403":{"description":"Failed to connect to a user or to invite a user to a group because somebody is under legalhold and somebody else has not granted consent (label: `missing-legalhold-consent`)\n\nUsers are not connected (label: `not-connected`)\n\nRequesting user is not a team member (label: `no-team-member`)\n\nConversation access denied (label: `access-denied`)\n\nMaximum number of members per conversation reached (label: `too-many-members`)\n\nInvalid operation (label: `invalid-op`)\n\nInsufficient authorization (missing leave_conversation) (label: `action-denied`)\n\nInsufficient authorization (missing add_conversation_member) (label: `action-denied`)","schema":{"example":{"code":403,"label":"missing-legalhold-consent","message":"Failed to connect to a user or to invite a user to a group because somebody is under legalhold and somebody else has not granted consent"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["missing-legalhold-consent","not-connected","no-team-member","access-denied","too-many-members","invalid-op","action-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Add qualified members to an existing conversation."}},"/conversations/{cnv}/members/{usr}":{"delete":{"parameters":[{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"description":"Target User ID","format":"uuid","in":"path","name":"usr","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Member removed","schema":{"$ref":"#/definitions/Event"}},"204":{"description":"No change"},"403":{"description":"Invalid operation (label: `invalid-op`)\n\nInsufficient authorization (missing remove_conversation_member) (label: `action-denied`)","schema":{"example":{"code":403,"label":"invalid-op","message":"Invalid operation"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["invalid-op","action-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv` or `usr` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Remove a member from a conversation (deprecated)"},"put":{"consumes":["application/json;charset=utf-8"],"description":"Use `PUT /conversations/:cnv_domain/:cnv/members/:usr_domain/:usr` instead","parameters":[{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"description":"Target User ID","format":"uuid","in":"path","name":"usr","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/OtherMemberUpdate"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Membership updated"},"400":{"description":"Invalid `body`"},"403":{"description":"Invalid operation (label: `invalid-op`)\n\nInvalid target (label: `invalid-op`)\n\nInsufficient authorization (missing modify_other_conversation_member) (label: `action-denied`)","schema":{"example":{"code":403,"label":"invalid-op","message":"Invalid operation"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["invalid-op","action-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv` or `usr` not found\n\nConversation member not found (label: `no-conversation-member`)\n\nConversation not found (label: `no-conversation`)"}},"summary":"Update membership of the specified user (deprecated)"}},"/conversations/{cnv}/message-timer":{"put":{"consumes":["application/json;charset=utf-8"],"description":"Use `/conversations/:domain/:cnv/message-timer` instead.","parameters":[{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ConversationMessageTimerUpdate"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Message timer updated","schema":{"$ref":"#/definitions/Event"}},"204":{"description":"Message timer unchanged"},"400":{"description":"Invalid `body`"},"403":{"description":"Invalid operation (label: `invalid-op`)\n\nConversation access denied (label: `access-denied`)\n\nInsufficient authorization (missing modify_conversation_message_timer) (label: `action-denied`)","schema":{"example":{"code":403,"label":"invalid-op","message":"Invalid operation"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["invalid-op","access-denied","action-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Update the message timer for a conversation (deprecated)"}},"/conversations/{cnv}/name":{"put":{"consumes":["application/json;charset=utf-8"],"description":"Use `/conversations/:domain/:conv/name` instead.","parameters":[{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ConversationRename"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Name updated","schema":{"$ref":"#/definitions/Event"}},"204":{"description":"Name unchanged"},"400":{"description":"Invalid `body`"},"403":{"description":"Invalid operation (label: `invalid-op`)\n\nInsufficient authorization (missing modify_conversation_name) (label: `action-denied`)","schema":{"example":{"code":403,"label":"invalid-op","message":"Invalid operation"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["invalid-op","action-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Update conversation name (deprecated)"}},"/conversations/{cnv}/otr/assets/{id}":{"get":{"parameters":[{"format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"302":{"description":"Asset found","headers":{"Location":{"description":"Asset location","format":"url","type":"string"}}},"404":{"description":"`cnv` or `id` or Asset not found (label: `not-found`)","schema":{"example":{"code":404,"label":"not-found","message":"Asset not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["not-found"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}}}},"/conversations/{cnv}/otr/messages":{"post":{"consumes":["application/json;charset=utf-8","application/x-protobuf"],"description":"This endpoint ensures that the list of clients is correct and only sends the message if the list is correct.\nTo override this, the endpoint accepts two query params:\n- `ignore_missing`: Can be 'true' 'false' or a comma separated list of user IDs.\n  - When 'true' all missing clients are ignored.\n  - When 'false' all missing clients are reported.\n  - When comma separated list of user-ids, only clients for listed users are ignored.\n- `report_missing`: Can be 'true' 'false' or a comma separated list of user IDs.\n  - When 'true' all missing clients are reported.\n  - When 'false' all missing clients are ignored.\n  - When comma separated list of user-ids, only clients for listed users are reported.\n\nApart from these, the request body also accepts `report_missing` which can only be a list of user ids and behaves the same way as the query parameter.\n\nAll three of these should be considered mutually exclusive. The server however does not error if more than one is specified, it reads them in this order of precedence:\n- `report_missing` in the request body has highest precedence.\n- `ignore_missing` in the query param is the next.\n- `report_missing` in the query param has the lowest precedence.\n\nThis endpoint can lead to OtrMessageAdd event being sent to the recipients.\n\n**NOTE:** The protobuf definitions of the request body can be found at https://github.com/wireapp/generic-message-proto/blob/master/proto/otr.proto.","parameters":[{"format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"in":"query","name":"ignore_missing","required":false,"type":"string"},{"in":"query","name":"report_missing","required":false,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/new-otr-message"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"201":{"description":"Message sent","schema":{"$ref":"#/definitions/ClientMismatch"}},"400":{"description":"Invalid `body` or `report_missing` or `ignore_missing`"},"403":{"description":"Unknown Client (label: `unknown-client`)\n\nFailed to connect to a user or to invite a user to a group because somebody is under legalhold and somebody else has not granted consent (label: `missing-legalhold-consent`)","schema":{"example":{"code":403,"label":"unknown-client","message":"Unknown Client"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["unknown-client","missing-legalhold-consent"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv` or Conversation not found (label: `no-conversation`)","schema":{"example":{"code":404,"label":"no-conversation","message":"Conversation not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-conversation"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"412":{"description":"Missing clients","schema":{"$ref":"#/definitions/ClientMismatch"}}},"summary":"Post an encrypted message to a conversation (accepts JSON or Protobuf)"}},"/conversations/{cnv}/receipt-mode":{"put":{"consumes":["application/json;charset=utf-8"],"description":"Use `PUT /conversations/:domain/:cnv/receipt-mode` instead.","parameters":[{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ConversationReceiptModeUpdate"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Receipt mode updated","schema":{"$ref":"#/definitions/Event"}},"204":{"description":"Receipt mode unchanged"},"400":{"description":"Invalid `body`"},"403":{"description":"Invalid operation (label: `invalid-op`)\n\nConversation access denied (label: `access-denied`)\n\nInsufficient authorization (missing modify_conversation_receipt_mode) (label: `action-denied`)","schema":{"example":{"code":403,"label":"invalid-op","message":"Invalid operation"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["invalid-op","access-denied","action-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Update receipt mode for a conversation (deprecated)"}},"/conversations/{cnv}/roles":{"get":{"parameters":[{"format":"uuid","in":"path","name":"cnv","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/ConversationRolesList"}},"403":{"description":"Conversation access denied (label: `access-denied`)","schema":{"example":{"code":403,"label":"access-denied","message":"Conversation access denied"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["access-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`cnv` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Get existing roles available for the given conversation"}},"/conversations/{cnv}/self":{"get":{"parameters":[{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/Member"}},"404":{"description":"`cnv` not found"}},"summary":"Get self membership properties (deprecated)"},"put":{"consumes":["application/json;charset=utf-8"],"description":"Use `/conversations/:domain/:conv/self` instead.","parameters":[{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/MemberUpdate"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Update successful"},"400":{"description":"Invalid `body`"},"404":{"description":"`cnv` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Update self membership properties (deprecated)"}},"/conversations/{cnv}/typing":{"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"description":"Conversation ID","format":"uuid","in":"path","name":"cnv","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/TypingData"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Notification sent"},"400":{"description":"Invalid `body`"},"404":{"description":"`cnv` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Sending typing notifications"}},"/custom-backend/by-domain/{domain}":{"get":{"parameters":[{"description":"URL-encoded email domain","in":"path","name":"domain","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/CustomBackend"}},"404":{"description":"`domain` not found\n\nCustom backend not found (label: `custom-backend-not-found`)"}},"summary":"Shows information about custom backends related to a given email domain"}},"/feature-configs":{"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/AllFeatureConfigs"}},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"Team not found (label: `no-team`)","schema":{"example":{"code":404,"label":"no-team","message":"Team not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-team"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Get configurations of all features"}},"/feature-configs/appLock":{"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusWithConfig"}},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"Team not found (label: `no-team`)","schema":{"example":{"code":404,"label":"no-team","message":"Team not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-team"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Get feature config for feature appLock"}},"/feature-configs/classifiedDomains":{"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusWithConfig"}},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"Team not found (label: `no-team`)","schema":{"example":{"code":404,"label":"no-team","message":"Team not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-team"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Get feature config for feature classifiedDomains"}},"/feature-configs/conferenceCalling":{"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"Team not found (label: `no-team`)","schema":{"example":{"code":404,"label":"no-team","message":"Team not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-team"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Get feature config for feature conferenceCalling"}},"/feature-configs/conversationGuestLinks":{"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfigAndLockStatus"}},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"Team not found (label: `no-team`)","schema":{"example":{"code":404,"label":"no-team","message":"Team not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-team"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Get feature config for feature conversationGuestLinks"}},"/feature-configs/digitalSignatures":{"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"Team not found (label: `no-team`)","schema":{"example":{"code":404,"label":"no-team","message":"Team not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-team"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Get feature config for feature digitalSignatures"}},"/feature-configs/fileSharing":{"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfigAndLockStatus"}},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"Team not found (label: `no-team`)","schema":{"example":{"code":404,"label":"no-team","message":"Team not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-team"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Get feature config for feature fileSharing"}},"/feature-configs/legalhold":{"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"Team not found (label: `no-team`)","schema":{"example":{"code":404,"label":"no-team","message":"Team not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-team"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Get feature config for feature legalhold"}},"/feature-configs/searchVisibility":{"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"Team not found (label: `no-team`)","schema":{"example":{"code":404,"label":"no-team","message":"Team not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-team"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Get feature config for feature searchVisibility"}},"/feature-configs/selfDeletingMessages":{"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusWithConfigAndLockStatus"}},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"Team not found (label: `no-team`)","schema":{"example":{"code":404,"label":"no-team","message":"Team not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-team"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Get feature config for feature selfDeletingMessages"}},"/feature-configs/sndFactorPasswordChallenge":{"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfigAndLockStatus"}},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"Team not found (label: `no-team`)","schema":{"example":{"code":404,"label":"no-team","message":"Team not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-team"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Get feature config for feature sndFactorPasswordChallenge"}},"/feature-configs/sso":{"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"Team not found (label: `no-team`)","schema":{"example":{"code":404,"label":"no-team","message":"Team not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-team"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Get feature config for feature sso"}},"/feature-configs/validateSAMLemails":{"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"Team not found (label: `no-team`)","schema":{"example":{"code":404,"label":"no-team","message":"Team not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["no-team"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Get feature config for feature validateSAMLemails"}},"/identity-providers":{"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/IdPList"}}}},"post":{"consumes":["application/xml","application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/IdPMetadataInfo"}},{"format":"uuid","in":"query","name":"replaces","required":false,"type":"string"},{"default":"v2","enum":["v1","v2"],"in":"query","name":"api_version","required":false,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"201":{"description":"","schema":{"$ref":"#/definitions/IdPConfig"}},"400":{"description":"Invalid `api_version` or `replaces` or `body`"}}}},"/identity-providers/{id}":{"delete":{"parameters":[{"format":"uuid","in":"path","name":"id","required":true,"type":"string"},{"in":"query","name":"purge","required":false,"type":"boolean"}],"responses":{"204":{"description":""},"400":{"description":"Invalid `purge`"},"404":{"description":"`id` not found"}}},"get":{"parameters":[{"format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/IdPConfig"}},"404":{"description":"`id` not found"}}},"put":{"consumes":["application/xml","application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/IdPMetadataInfo"}},{"format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/IdPConfig"}},"400":{"description":"Invalid `body`"},"404":{"description":"`id` not found"}}}},"/identity-providers/{id}/raw":{"get":{"parameters":[{"format":"uuid","in":"path","name":"id","required":true,"type":"string"}],"produces":["application/xml"],"responses":{"200":{"description":"","schema":{"type":"string"}},"404":{"description":"`id` not found"}}}},"/list-connections":{"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/GetPaginated_Connections"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/Connections_Page"}},"400":{"description":"Invalid `body`"}},"summary":"List the connections to other users, including remote users"}},"/list-users":{"post":{"consumes":["application/json;charset=utf-8"],"description":"The 'qualified_ids' and 'qualified_handles' parameters are mutually exclusive.","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ListUsersQuery"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"items":{"$ref":"#/definitions/UserProfile"},"type":"array"}},"400":{"description":"Invalid `body`"}},"summary":"List users"}},"/mls/key-packages/claim/{user_domain}/{user}":{"post":{"parameters":[{"in":"path","name":"user_domain","required":true,"type":"string"},{"description":"User Id","format":"uuid","in":"path","name":"user","required":true,"type":"string"},{"description":"Do not claim a key package for the given own client","in":"query","name":"skip_own","required":false,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Claimed key packages","schema":{"$ref":"#/definitions/KeyPackageBundle"}},"400":{"description":"Invalid `skip_own`"},"404":{"description":"`user_domain` or `user` not found"}},"summary":"Claim one key package for each client of the given user"}},"/mls/key-packages/self/{client}":{"post":{"consumes":["application/json;charset=utf-8"],"description":"The request body should be a json object containing a list of base64-encoded key packages.","parameters":[{"description":"ClientId","in":"path","name":"client","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/KeyPackageUpload"}}],"produces":["application/json;charset=utf-8","application/json","message/mls"],"responses":{"201":{"description":"Key packages uploaded"},"400":{"description":"Invalid `body`\n\nMLS protocol error (label: `mls-protocol-error`)"},"403":{"description":"Prekey credential does not match qualified client ID (label: `mls-identity-mismatch`)","schema":{"example":{"code":403,"label":"mls-identity-mismatch","message":"Prekey credential does not match qualified client ID"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["mls-identity-mismatch"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`client` not found"}},"summary":"Upload a fresh batch of key packages"}},"/mls/key-packages/self/{client}/count":{"get":{"parameters":[{"description":"ClientId","in":"path","name":"client","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Number of key packages","schema":{"$ref":"#/definitions/OwnKeyPackages"}},"404":{"description":"`client` not found"}},"summary":"Return the number of unused key packages for the given client"}},"/mls/messages":{"post":{"consumes":["message/mls"],"description":"\n\n**Note**: this endpoint can execute proposals, and therefore return all possible errors associated with adding or removing members to a conversation, in addition to the ones listed below. See the documentation of [POST /conversations/{cnv}/members/v2](#/default/post_conversations__cnv__members_v2) and [POST /conversations/{cnv_domain}/{cnv}/members/{usr_domain}/{usr}](#/default/delete_conversations__cnv_domain___cnv__members__usr_domain___usr_) for more details on the possible error responses of each type of proposal.","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/MLSMessage"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"201":{"description":"Message sent","schema":{"items":{"$ref":"#/definitions/Event"},"type":"array"}},"400":{"description":"Invalid `body`\n\nMLS protocol error (label: `mls-protocol-error`)"},"403":{"description":"Failed to connect to a user or to invite a user to a group because somebody is under legalhold and somebody else has not granted consent (label: `missing-legalhold-consent`)\n\nlegal hold is not enabled for this team (label: `legalhold-not-enabled`)","schema":{"example":{"code":403,"label":"missing-legalhold-consent","message":"Failed to connect to a user or to invite a user to a group because somebody is under legalhold and somebody else has not granted consent"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["missing-legalhold-consent","legalhold-not-enabled"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"A proposal referenced in a commit message could not be found (label: `mls-proposal-not-found`)\n\nA referenced key package could not be mapped to a known client (label: `mls-key-package-ref-not-found`)\n\nConversation not found (label: `no-conversation`)","schema":{"example":{"code":404,"label":"mls-proposal-not-found","message":"A proposal referenced in a commit message could not be found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["mls-proposal-not-found","mls-key-package-ref-not-found","no-conversation"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"409":{"description":"The conversation epoch in a message is too old (label: `mls-stale-message`)\n\nA proposal of type Add or Remove does not apply to the full list of clients for a user (label: `mls-client-mismatch`)","schema":{"example":{"code":409,"label":"mls-stale-message","message":"The conversation epoch in a message is too old"},"properties":{"code":{"enum":[409],"type":"integer"},"label":{"enum":["mls-stale-message","mls-client-mismatch"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"422":{"description":"Unsupported proposal type (label: `mls-unsupported-proposal`)\n\nAttempted to send a message with an unsupported combination of content type and wire format (label: `mls-unsupported-message`)","schema":{"example":{"code":422,"label":"mls-unsupported-proposal","message":"Unsupported proposal type"},"properties":{"code":{"enum":[422],"type":"integer"},"label":{"enum":["mls-unsupported-proposal","mls-unsupported-message"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Post an MLS message"}},"/mls/welcome":{"post":{"consumes":["message/mls"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/Welcome"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"201":{"description":"Welcome message sent"},"400":{"description":"Invalid `body`"},"404":{"description":"A referenced key package could not be mapped to a known client (label: `mls-key-package-ref-not-found`)","schema":{"example":{"code":404,"label":"mls-key-package-ref-not-found","message":"A referenced key package could not be mapped to a known client"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["mls-key-package-ref-not-found"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Post an MLS welcome message"}},"/properties":{"delete":{"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Properties cleared"}},"summary":"Clear all properties"},"get":{"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"List of property keys","schema":{"items":{"$ref":"#/definitions/ASCII"},"type":"array"}}},"summary":"List all property keys"}},"/properties-values":{"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/PropertyKeysAndValues"}}},"summary":"List all properties with key and value"}},"/properties/{key}":{"delete":{"parameters":[{"format":"printable","in":"path","name":"key","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Property deleted"},"404":{"description":"`key` not found"}},"summary":"Delete a property"},"get":{"parameters":[{"format":"printable","in":"path","name":"key","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"The property value","schema":{"$ref":"#/definitions/PropertyValue"}},"404":{"description":"`key` or Property not found(**Note**: This error has an empty body for legacy reasons)"}},"summary":"Get a property value"},"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"format":"printable","in":"path","name":"key","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PropertyValue"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Property set"},"400":{"description":"Invalid `body`"},"404":{"description":"`key` not found"}},"summary":"Set a user property"}},"/provider/assets":{"post":{"consumes":["multipart/mixed"],"parameters":[{"description":"A body with content type `multipart/mixed body`. The first section's content type should be `application/json`. The second section's content type should be always be `application/octet-stream`. Other content types will be ignored by the server.","in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/AssetSource"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"201":{"description":"Asset posted","headers":{"Location":{"description":"Asset location","format":"url","type":"string"}},"schema":{"$ref":"#/definitions/Asset"}},"400":{"description":"Invalid `body`\n\nInvalid content length (label: `invalid-length`)"},"413":{"description":"Asset too large (label: `client-error`)","schema":{"example":{"code":413,"label":"client-error","message":"Asset too large"},"properties":{"code":{"enum":[413],"type":"integer"},"label":{"enum":["client-error"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Upload an asset"}},"/provider/assets/{key}":{"delete":{"parameters":[{"in":"path","name":"key","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Asset deleted"},"403":{"description":"Unauthorised operation (label: `unauthorised`)","schema":{"example":{"code":403,"label":"unauthorised","message":"Unauthorised operation"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["unauthorised"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`key` not found\n\nAsset not found (label: `not-found`)"}},"summary":"Delete an asset"},"get":{"parameters":[{"in":"path","name":"key","required":true,"type":"string"},{"in":"header","name":"Asset-Token","required":false,"type":"string"},{"in":"query","name":"asset_token","required":false,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"302":{"description":"Asset found","headers":{"Location":{"description":"Asset location","format":"url","type":"string"}}},"400":{"description":"Invalid `asset_token` or `Asset-Token`"},"404":{"description":"`key` or Asset not found (label: `not-found`)","schema":{"example":{"code":404,"label":"not-found","message":"Asset not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["not-found"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Download an asset"}},"/register":{"post":{"consumes":["application/json;charset=utf-8"],"description":"If the environment where the registration takes place is private and a registered email address or phone number is not whitelisted, a 403 error is returned.","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/NewUser"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"201":{"description":"User created and pending activation","headers":{"Location":{"description":"UserId","format":"uuid","type":"string"},"Set-Cookie":{"description":"Cookie","type":"string"}},"schema":{"$ref":"#/definitions/User"}},"400":{"description":"Invalid invitation code. (label: `invalid-invitation-code`)\n\nInvalid e-mail address. (label: `invalid-email`)\n\nInvalid mobile phone number (label: `invalid-phone`) or `body`","schema":{"example":{"code":400,"label":"invalid-invitation-code","message":"Invalid invitation code."},"properties":{"code":{"enum":[400],"type":"integer"},"label":{"enum":["invalid-invitation-code","invalid-email","invalid-phone"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"403":{"description":"Unauthorized e-mail address or phone number. (label: `unauthorized`)\n\nUsing an invitation code requires registering the given email and/or phone. (label: `missing-identity`)\n\nThe given phone number has been blacklisted due to suspected abuse or a complaint (label: `blacklisted-phone`)\n\nThe given e-mail address has been blacklisted due to a permanent bounce or a complaint. (label: `blacklisted-email`)\n\nToo many members in this team. (label: `too-many-team-members`)\n\nThis instance does not allow creation of personal users or teams. (label: `user-creation-restricted`)","schema":{"example":{"code":403,"label":"unauthorized","message":"Unauthorized e-mail address or phone number."},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["unauthorized","missing-identity","blacklisted-phone","blacklisted-email","too-many-team-members","user-creation-restricted"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"User does not exist (label: `invalid-code`)\n\nInvalid activation code (label: `invalid-code`)","schema":{"example":{"code":404,"label":"invalid-code","message":"User does not exist"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["invalid-code"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"409":{"description":"The given e-mail address or phone number is in use. (label: `key-exists`)","schema":{"example":{"code":409,"label":"key-exists","message":"The given e-mail address or phone number is in use."},"properties":{"code":{"enum":[409],"type":"integer"},"label":{"enum":["key-exists"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Register a new user."}},"/scim/auth-tokens":{"delete":{"parameters":[{"format":"uuid","in":"query","name":"id","required":true,"type":"string"}],"responses":{"204":{"description":""},"400":{"description":"Invalid `id`"},"403":{"description":"Code authentication is required (label: `code-authentication-required`)\n\nCode authentication failed (label: `code-authentication-failed`)\n\nPassword authentication failed. (label: `password-authentication-failed`)","schema":{"example":{"code":403,"label":"code-authentication-required","message":"Code authentication is required"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["code-authentication-required","code-authentication-failed","password-authentication-failed"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}}},"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/ScimTokenList"}},"403":{"description":"Code authentication is required (label: `code-authentication-required`)\n\nCode authentication failed (label: `code-authentication-failed`)\n\nPassword authentication failed. (label: `password-authentication-failed`)","schema":{"example":{"code":403,"label":"code-authentication-required","message":"Code authentication is required"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["code-authentication-required","code-authentication-failed","password-authentication-failed"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}}},"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/CreateScimToken"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/CreateScimTokenResponse"}},"400":{"description":"Invalid `body`"},"403":{"description":"Code authentication is required (label: `code-authentication-required`)\n\nCode authentication failed (label: `code-authentication-failed`)\n\nPassword authentication failed. (label: `password-authentication-failed`)","schema":{"example":{"code":403,"label":"code-authentication-required","message":"Code authentication is required"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["code-authentication-required","code-authentication-failed","password-authentication-failed"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}}}},"/search/contacts":{"get":{"parameters":[{"description":"Search query","in":"query","name":"q","required":true,"type":"string"},{"description":"Searched domain. Note: This is optional only for backwards compatibility, future versions will mandate this.","in":"query","name":"domain","required":false,"type":"string"},{"description":"Number of results to return (min: 1, max: 500, default 15)","format":"int32","in":"query","maximum":500,"minimum":1,"name":"size","required":false,"type":"integer"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/SearchResult"}},"400":{"description":"Invalid `size` or `domain` or `q`"}},"summary":"Search for users"}},"/self":{"delete":{"consumes":["application/json;charset=utf-8"],"description":"if the account has a verified identity, a verification code is sent and needs to be confirmed to authorise the deletion. if the account has no verified identity but a password, it must be provided. if password is correct, or if neither a verified identity nor a password exists, account deletion is scheduled immediately.","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/DeleteUser"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Deletion is initiated."},"202":{"description":"Deletion is pending verification with a code.","schema":{"$ref":"#/definitions/DeletionCodeTimeout"}},"400":{"description":"Invalid `body`\n\nInvalid user (label: `invalid-user`)"},"403":{"description":"Team owners are not allowed to delete themselves; ask a fellow owner (label: `no-self-delete-for-team-owner`)\n\nA verification code for account deletion is still pending (label: `pending-delete`)\n\nRe-authentication via password required (label: `missing-auth`)\n\nAuthentication failed (label: `invalid-credentials`)\n\nInvalid verification code (label: `invalid-code`)","schema":{"example":{"code":403,"label":"no-self-delete-for-team-owner","message":"Team owners are not allowed to delete themselves; ask a fellow owner"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-self-delete-for-team-owner","pending-delete","missing-auth","invalid-credentials","invalid-code"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Initiate account deletion."},"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/User"}}},"summary":"Get your own profile"},"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/UserUpdate"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"User updated"},"400":{"description":"Invalid `body`"},"403":{"description":"Updating name is not allowed, because it is managed by SCIM (label: `managed-by-scim`)","schema":{"example":{"code":403,"label":"managed-by-scim","message":"Updating name is not allowed, because it is managed by SCIM"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["managed-by-scim"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"User not found (label: `not-found`)","schema":{"example":{"code":404,"label":"not-found","message":"User not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["not-found"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Update your profile."}},"/self/email":{"delete":{"description":"Your email address can only be removed if you also have a phone number.","produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Identity Removed"},"403":{"description":"The last user identity (email or phone number) cannot be removed. (label: `last-identity`)\n\nThe user has no password. (label: `no-password`)\n\nThe user has no verified identity (email or phone number) (label: `no-identity`)","schema":{"example":{"code":403,"label":"last-identity","message":"The last user identity (email or phone number) cannot be removed."},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["last-identity","no-password","no-identity"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Remove your email address."}},"/self/handle":{"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/HandleUpdate"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Handle Changed"},"400":{"description":"The given handle is invalid (label: `invalid-handle`) or `body`","schema":{"example":{"code":400,"label":"invalid-handle","message":"The given handle is invalid"},"properties":{"code":{"enum":[400],"type":"integer"},"label":{"enum":["invalid-handle"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"403":{"description":"The user has no verified identity (email or phone number) (label: `no-identity`)\n\nUpdating handle is not allowed, because it is managed by SCIM (label: `managed-by-scim`)","schema":{"example":{"code":403,"label":"no-identity","message":"The user has no verified identity (email or phone number)"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-identity","managed-by-scim"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"409":{"description":"The given handle is already taken (label: `handle-exists`)","schema":{"example":{"code":409,"label":"handle-exists","message":"The given handle is already taken"},"properties":{"code":{"enum":[409],"type":"integer"},"label":{"enum":["handle-exists"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Change your handle."}},"/self/locale":{"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/LocaleUpdate"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Local Changed"},"400":{"description":"Invalid `body`"}},"summary":"Change your locale."}},"/self/password":{"head":{"responses":{"200":{"description":"Password is set"},"404":{"description":"Password is not set"}},"summary":"Check that your password is set."},"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PasswordChange"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Password Changed"},"400":{"description":"Invalid `body`"},"403":{"description":"Authentication failed (label: `invalid-credentials`)\n\nThe user has no verified identity (email or phone number) (label: `no-identity`)","schema":{"example":{"code":403,"label":"invalid-credentials","message":"Authentication failed"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["invalid-credentials","no-identity"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"409":{"description":"For password change, new and old password must be different. (label: `password-must-differ`)","schema":{"example":{"code":409,"label":"password-must-differ","message":"For password change, new and old password must be different."},"properties":{"code":{"enum":[409],"type":"integer"},"label":{"enum":["password-must-differ"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Change your password."}},"/self/phone":{"delete":{"description":"Your phone number can only be removed if you also have an email address and a password.","produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Identity Removed"},"403":{"description":"The last user identity (email or phone number) cannot be removed. (label: `last-identity`)\n\nThe user has no password. (label: `no-password`)\n\nThe user has no verified identity (email or phone number) (label: `no-identity`)","schema":{"example":{"code":403,"label":"last-identity","message":"The last user identity (email or phone number) cannot be removed."},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["last-identity","no-password","no-identity"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Remove your phone number."},"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PhoneUpdate"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"202":{"description":"Phone updated"},"400":{"description":"Invalid mobile phone number (label: `invalid-phone`) or `body`","schema":{"example":{"code":400,"label":"invalid-phone","message":"Invalid mobile phone number"},"properties":{"code":{"enum":[400],"type":"integer"},"label":{"enum":["invalid-phone"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"403":{"description":"The given phone number has been blacklisted due to suspected abuse or a complaint (label: `blacklisted-phone`)","schema":{"example":{"code":403,"label":"blacklisted-phone","message":"The given phone number has been blacklisted due to suspected abuse or a complaint"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["blacklisted-phone"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"409":{"description":"The given e-mail address or phone number is in use. (label: `key-exists`)","schema":{"example":{"code":409,"label":"key-exists","message":"The given e-mail address or phone number is in use."},"properties":{"code":{"enum":[409],"type":"integer"},"label":{"enum":["key-exists"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Change your phone number."}},"/sso/finalize-login":{"post":{"parameters":[{"in":"header","name":"Cookie","required":false,"type":"string"}],"produces":["text/plain;charset=utf-8"],"responses":{"200":{"description":"","schema":{"type":"string"}},"400":{"description":"Invalid `Cookie`"}}}},"/sso/finalize-login/{team}":{"post":{"parameters":[{"format":"uuid","in":"path","name":"team","required":true,"type":"string"},{"in":"header","name":"Cookie","required":false,"type":"string"}],"produces":["text/plain;charset=utf-8"],"responses":{"200":{"description":"","schema":{"type":"string"}},"400":{"description":"Invalid `Cookie`"},"404":{"description":"`team` not found"}}}},"/sso/initiate-login/{idp}":{"get":{"parameters":[{"in":"query","name":"success_redirect","required":false,"type":"string"},{"in":"query","name":"error_redirect","required":false,"type":"string"},{"format":"uuid","in":"path","name":"idp","required":true,"type":"string"}],"produces":["text/html"],"responses":{"200":{"description":"","headers":{"Set-Cookie":{"type":"string"}},"schema":{"$ref":"#/definitions/FormRedirect"}},"400":{"description":"Invalid `error_redirect` or `success_redirect`"},"404":{"description":"`idp` not found"}}},"head":{"parameters":[{"in":"query","name":"success_redirect","required":false,"type":"string"},{"in":"query","name":"error_redirect","required":false,"type":"string"},{"format":"uuid","in":"path","name":"idp","required":true,"type":"string"}],"produces":["text/plain;charset=utf-8"],"responses":{"200":{"description":""},"400":{"description":"Invalid `error_redirect` or `success_redirect`"},"404":{"description":"`idp` not found"}}}},"/sso/metadata":{"get":{"produces":["application/xml"],"responses":{"200":{"description":"","schema":{"type":"string"}}}}},"/sso/metadata/{team}":{"get":{"parameters":[{"format":"uuid","in":"path","name":"team","required":true,"type":"string"}],"produces":["application/xml"],"responses":{"200":{"description":"","schema":{"type":"string"}},"404":{"description":"`team` not found"}}}},"/sso/settings":{"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/SsoSettings"}}}}},"/teams":{"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamList"}}},"summary":"Get teams (deprecated); use `GET /teams/:tid`"},"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/NonBindingNewTeam"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"201":{"description":"Team ID as `Location` header value","headers":{"Location":{"description":"Team ID","format":"uuid","type":"string"}}},"400":{"description":"Invalid `body`"},"403":{"description":"User already bound to a different team (label: `binding-exists`)\n\nUsers are not connected (label: `not-connected`)","schema":{"example":{"code":403,"label":"binding-exists","message":"User already bound to a different team"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["binding-exists","not-connected"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Create a new non binding team"}},"/teams/{tid}":{"delete":{"consumes":["application/json;charset=utf-8"],"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/TeamDeleteData"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"202":{"description":"Team is scheduled for removal"},"400":{"description":"Invalid `body`"},"403":{"description":"Verification code required (label: `code-authentication-required`)\n\nCode authentication failed (label: `code-authentication-failed`)\n\nThis operation requires reauthentication (label: `access-denied`)\n\nInsufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (missing DeleteTeam) (label: `operation-denied`)","schema":{"example":{"code":403,"label":"code-authentication-required","message":"Verification code required"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["code-authentication-required","code-authentication-failed","access-denied","operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"},"503":{"description":"The delete queue is full; no further delete requests can be processed at the moment (label: `queue-full`)","schema":{"example":{"code":503,"label":"queue-full","message":"The delete queue is full; no further delete requests can be processed at the moment"},"properties":{"code":{"enum":[503],"type":"integer"},"label":{"enum":["queue-full"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Delete a team"},"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/Team"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"Get a team by ID"},"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/TeamUpdateData"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Team updated"},"400":{"description":"Invalid `body`"},"403":{"description":"Insufficient permissions (missing SetTeamData) (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions (missing SetTeamData)"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found"}},"summary":"Update team properties"}},"/teams/{tid}/conversations":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamConversationList"}},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","operation-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found"}},"summary":"Get team conversations"}},"/teams/{tid}/conversations/roles":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/ConversationRolesList"}},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found"}},"summary":"Get existing roles available for the given team"}},"/teams/{tid}/conversations/{cid}":{"delete":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"format":"uuid","in":"path","name":"cid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Conversation deleted"},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nInvalid operation (label: `invalid-op`)\n\nInsufficient authorization (missing delete_conversation) (label: `action-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","invalid-op","action-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` or `cid` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Remove a team conversation"},"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"format":"uuid","in":"path","name":"cid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamConversation"}},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","operation-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` or `cid` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Get one team conversation"}},"/teams/{tid}/features":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/AllFeatureConfigs"}},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"Shows the configuration status of every team feature"}},"/teams/{tid}/features/appLock":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusWithConfig"}},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","operation-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"Get config for appLock"},"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/TeamFeatureStatusWithConfig"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusWithConfig"}},"400":{"description":"Invalid `body`"},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","operation-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"Put config for appLock"}},"/teams/{tid}/features/classifiedDomains":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusWithConfig"}},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","operation-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"Get config for classifiedDomains"}},"/teams/{tid}/features/conferenceCalling":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","operation-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"Get config for conferenceCalling"}},"/teams/{tid}/features/conversationGuestLinks":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfigAndLockStatus"}},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","operation-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"Get config for conversationGuestLinks"},"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"400":{"description":"Invalid `body`"},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","operation-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"Put config for conversationGuestLinks"}},"/teams/{tid}/features/digital-signatures":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"[deprecated] Get config for digitalSignatures"}},"/teams/{tid}/features/digitalSignatures":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","operation-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"Get config for digitalSignatures"}},"/teams/{tid}/features/fileSharing":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfigAndLockStatus"}},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","operation-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"Get config for fileSharing"},"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"400":{"description":"Invalid `body`"},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","operation-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"Put config for fileSharing"}},"/teams/{tid}/features/legalhold":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","operation-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"Get config for legalhold"},"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"400":{"description":"Invalid `body`\n\nlegal hold service has not been registered for this team (label: `legalhold-not-registered`)"},"403":{"description":"legal hold cannot be disabled for whitelisted teams (label: `legalhold-disable-unimplemented`)\n\nlegal hold is not enabled for this team (label: `legalhold-not-enabled`)\n\nCannot enable legalhold on large teams (reason: for removing LH from team, we need to iterate over all members, which is only supported for teams with less than 2k members) (label: `too-large-team-for-legalhold`)\n\nVerification code required (label: `code-authentication-required`)\n\nCode authentication failed (label: `code-authentication-failed`)\n\nThis operation requires reauthentication (label: `access-denied`)\n\nInsufficient authorization (missing remove_conversation_member) (label: `action-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)","schema":{"example":{"code":403,"label":"legalhold-disable-unimplemented","message":"legal hold cannot be disabled for whitelisted teams"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["legalhold-disable-unimplemented","legalhold-not-enabled","too-large-team-for-legalhold","code-authentication-required","code-authentication-failed","access-denied","action-denied","no-team-member","operation-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"},"500":{"description":"legal hold service: could not block connections when resolving policy conflicts. (label: `legalhold-internal`)\n\ninternal server error: inconsistent change of user's legalhold state (label: `legalhold-illegal-op`)","schema":{"example":{"code":500,"label":"legalhold-internal","message":"legal hold service: could not block connections when resolving policy conflicts."},"properties":{"code":{"enum":[500],"type":"integer"},"label":{"enum":["legalhold-internal","legalhold-illegal-op"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Put config for legalhold"}},"/teams/{tid}/features/search-visibility":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"[deprecated] Get config for searchVisibility"},"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"400":{"description":"Invalid `body`"},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"[deprecated] Get config for searchVisibility"}},"/teams/{tid}/features/searchVisibility":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","operation-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"Get config for searchVisibility"},"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"400":{"description":"Invalid `body`"},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","operation-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"Put config for searchVisibility"}},"/teams/{tid}/features/selfDeletingMessages":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusWithConfigAndLockStatus"}},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","operation-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"Get config for selfDeletingMessages"},"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/TeamFeatureStatusWithConfig"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusWithConfig"}},"400":{"description":"Invalid `body`"},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","operation-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"Put config for selfDeletingMessages"}},"/teams/{tid}/features/sndFactorPasswordChallenge":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfigAndLockStatus"}},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","operation-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"Get config for sndFactorPasswordChallenge"},"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"400":{"description":"Invalid `body`"},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","operation-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"Put config for sndFactorPasswordChallenge"}},"/teams/{tid}/features/sso":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","operation-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"Get config for sso"}},"/teams/{tid}/features/validate-saml-emails":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"[deprecated] Get config for validateSAMLemails"}},"/teams/{tid}/features/validateSAMLemails":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamFeatureStatusNoConfig"}},"403":{"description":"Requesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)","schema":{"example":{"code":403,"label":"no-team-member","message":"Requesting user is not a team member"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["no-team-member","operation-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"Get config for validateSAMLemails"}},"/teams/{tid}/legalhold/consent":{"post":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"201":{"description":"Grant consent successful"},"204":{"description":"Consent already granted"},"403":{"description":"Invalid operation (label: `invalid-op`)\n\nInsufficient authorization (missing remove_conversation_member) (label: `action-denied`)","schema":{"example":{"code":403,"label":"invalid-op","message":"Invalid operation"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["invalid-op","action-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam member not found (label: `no-team-member`)"},"500":{"description":"legal hold service: could not block connections when resolving policy conflicts. (label: `legalhold-internal`)\n\ninternal server error: inconsistent change of user's legalhold state (label: `legalhold-illegal-op`)","schema":{"example":{"code":500,"label":"legalhold-internal","message":"legal hold service: could not block connections when resolving policy conflicts."},"properties":{"code":{"enum":[500],"type":"integer"},"label":{"enum":["legalhold-internal","legalhold-illegal-op"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Consent to legal hold"}},"/teams/{tid}/legalhold/settings":{"delete":{"consumes":["application/json;charset=utf-8"],"description":"This endpoint can lead to the following events being sent:\n- ClientRemoved event to members with a legalhold client (via brig)\n- UserLegalHoldDisabled event to contacts of members with a legalhold client (via brig)","parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/RemoveLegalHoldSettingsRequest"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"204":{"description":"Legal hold service settings deleted"},"400":{"description":"Invalid `body`\n\nlegal hold service has not been registered for this team (label: `legalhold-not-registered`)"},"403":{"description":"legal hold cannot be disabled for whitelisted teams (label: `legalhold-disable-unimplemented`)\n\nlegal hold is not enabled for this team (label: `legalhold-not-enabled`)\n\nInvalid operation (label: `invalid-op`)\n\nInsufficient authorization (missing remove_conversation_member) (label: `action-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)\n\nInsufficient permissions (label: `operation-denied`)\n\nVerification code required (label: `code-authentication-required`)\n\nCode authentication failed (label: `code-authentication-failed`)\n\nThis operation requires reauthentication (label: `access-denied`)","schema":{"example":{"code":403,"label":"legalhold-disable-unimplemented","message":"legal hold cannot be disabled for whitelisted teams"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["legalhold-disable-unimplemented","legalhold-not-enabled","invalid-op","action-denied","no-team-member","operation-denied","code-authentication-required","code-authentication-failed","access-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found"},"500":{"description":"legal hold service: could not block connections when resolving policy conflicts. (label: `legalhold-internal`)\n\ninternal server error: inconsistent change of user's legalhold state (label: `legalhold-illegal-op`)","schema":{"example":{"code":500,"label":"legalhold-internal","message":"legal hold service: could not block connections when resolving policy conflicts."},"properties":{"code":{"enum":[500],"type":"integer"},"label":{"enum":["legalhold-internal","legalhold-illegal-op"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Delete legal hold service settings"},"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/ViewLegalHoldService"}},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found"}},"summary":"Get legal hold service settings"},"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/NewLegalHoldService"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"201":{"description":"Legal hold service settings created","schema":{"$ref":"#/definitions/ViewLegalHoldService"}},"400":{"description":"Invalid `body`\n\nlegal hold service: invalid response (label: `legalhold-status-bad`)\n\nlegal hold service pubkey is invalid (label: `legalhold-invalid-key`)"},"403":{"description":"legal hold is not enabled for this team (label: `legalhold-not-enabled`)\n\nInsufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"legalhold-not-enabled","message":"legal hold is not enabled for this team"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["legalhold-not-enabled","operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found"}},"summary":"Create legal hold service settings"}},"/teams/{tid}/legalhold/{uid}":{"delete":{"consumes":["application/json;charset=utf-8"],"description":"This endpoint can lead to the following events being sent:\n- ClientRemoved event to the user owning the client (via brig)\n- UserLegalHoldDisabled event to contacts of the user owning the client (via brig)","parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"format":"uuid","in":"path","name":"uid","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/DisableLegalHoldForUserRequest"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Disable legal hold successful"},"204":{"description":"Legal hold was not enabled"},"400":{"description":"Invalid `body`\n\nlegal hold service has not been registered for this team (label: `legalhold-not-registered`)"},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)\n\nInsufficient authorization (missing remove_conversation_member) (label: `action-denied`)\n\nVerification code required (label: `code-authentication-required`)\n\nCode authentication failed (label: `code-authentication-failed`)\n\nThis operation requires reauthentication (label: `access-denied`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member","action-denied","code-authentication-required","code-authentication-failed","access-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` or `uid` not found"},"500":{"description":"legal hold service: could not block connections when resolving policy conflicts. (label: `legalhold-internal`)\n\ninternal server error: inconsistent change of user's legalhold state (label: `legalhold-illegal-op`)","schema":{"example":{"code":500,"label":"legalhold-internal","message":"legal hold service: could not block connections when resolving policy conflicts."},"properties":{"code":{"enum":[500],"type":"integer"},"label":{"enum":["legalhold-internal","legalhold-illegal-op"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Disable legal hold for user"},"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"format":"uuid","in":"path","name":"uid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/UserLegalHoldStatusResponse"}},"404":{"description":"`tid` or `uid` not found\n\nTeam member not found (label: `no-team-member`)"}},"summary":"Get legal hold status"},"post":{"description":"This endpoint can lead to the following events being sent:\n- LegalHoldClientRequested event to contacts of the user the device is requested for, if they didn't already have a legalhold client (via brig)","parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"format":"uuid","in":"path","name":"uid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"201":{"description":"Request device successful"},"204":{"description":"Request device already pending"},"400":{"description":"legal hold service has not been registered for this team (label: `legalhold-not-registered`)\n\nlegal hold service: invalid response (label: `legalhold-status-bad`)","schema":{"example":{"code":400,"label":"legalhold-not-registered","message":"legal hold service has not been registered for this team"},"properties":{"code":{"enum":[400],"type":"integer"},"label":{"enum":["legalhold-not-registered","legalhold-status-bad"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"403":{"description":"legal hold is not enabled for this team (label: `legalhold-not-enabled`)\n\nInsufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)\n\nInsufficient authorization (missing remove_conversation_member) (label: `action-denied`)","schema":{"example":{"code":403,"label":"legalhold-not-enabled","message":"legal hold is not enabled for this team"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["legalhold-not-enabled","operation-denied","no-team-member","action-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` or `uid` not found\n\nTeam member not found (label: `no-team-member`)"},"409":{"description":"user has not given consent to using legal hold (label: `legalhold-no-consent`)\n\nlegal hold is already enabled for this user (label: `legalhold-already-enabled`)","schema":{"example":{"code":409,"label":"legalhold-no-consent","message":"user has not given consent to using legal hold"},"properties":{"code":{"enum":[409],"type":"integer"},"label":{"enum":["legalhold-no-consent","legalhold-already-enabled"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"500":{"description":"internal server error: inconsistent change of user's legalhold state (label: `legalhold-illegal-op`)\n\nlegal hold service: could not block connections when resolving policy conflicts. (label: `legalhold-internal`)","schema":{"example":{"code":500,"label":"legalhold-illegal-op","message":"internal server error: inconsistent change of user's legalhold state"},"properties":{"code":{"enum":[500],"type":"integer"},"label":{"enum":["legalhold-illegal-op","legalhold-internal"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Request legal hold device"}},"/teams/{tid}/legalhold/{uid}/approve":{"put":{"consumes":["application/json;charset=utf-8"],"description":"This endpoint can lead to the following events being sent:\n- ClientAdded event to the user owning the client (via brig)\n- UserLegalHoldEnabled event to contacts of the user owning the client (via brig)\n- ClientRemoved event to the user, if removing old client due to max number (via brig)","parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"format":"uuid","in":"path","name":"uid","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/ApproveLegalHoldForUserRequest"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Legal hold approved"},"400":{"description":"Invalid `body`\n\nlegal hold service has not been registered for this team (label: `legalhold-not-registered`)"},"403":{"description":"legal hold is not enabled for this team (label: `legalhold-not-enabled`)\n\nRequesting user is not a team member (label: `no-team-member`)\n\nInsufficient authorization (missing remove_conversation_member) (label: `action-denied`)\n\nYou do not have permission to access this resource (label: `access-denied`)\n\nVerification code required (label: `code-authentication-required`)\n\nCode authentication failed (label: `code-authentication-failed`)\n\nThis operation requires reauthentication (label: `access-denied`)","schema":{"example":{"code":403,"label":"legalhold-not-enabled","message":"legal hold is not enabled for this team"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["legalhold-not-enabled","no-team-member","action-denied","access-denied","code-authentication-required","code-authentication-failed"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` or `uid` not found\n\nno legal hold device is registered for this user. POST /teams/:tid/legalhold/:uid/ to start the flow. (label: `legalhold-no-device-allocated`)"},"409":{"description":"legal hold is already enabled for this user (label: `legalhold-already-enabled`)","schema":{"example":{"code":409,"label":"legalhold-already-enabled","message":"legal hold is already enabled for this user"},"properties":{"code":{"enum":[409],"type":"integer"},"label":{"enum":["legalhold-already-enabled"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"412":{"description":"legal hold cannot be approved without being in a pending state (label: `legalhold-not-pending`)","schema":{"example":{"code":412,"label":"legalhold-not-pending","message":"legal hold cannot be approved without being in a pending state"},"properties":{"code":{"enum":[412],"type":"integer"},"label":{"enum":["legalhold-not-pending"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"500":{"description":"legal hold service: could not block connections when resolving policy conflicts. (label: `legalhold-internal`)\n\ninternal server error: inconsistent change of user's legalhold state (label: `legalhold-illegal-op`)","schema":{"example":{"code":500,"label":"legalhold-internal","message":"legal hold service: could not block connections when resolving policy conflicts."},"properties":{"code":{"enum":[500],"type":"integer"},"label":{"enum":["legalhold-internal","legalhold-illegal-op"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Approve legal hold device"}},"/teams/{tid}/search-visibility":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamSearchVisibilityView"}},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found"}},"summary":"Shows the value for search visibility"},"put":{"consumes":["application/json;charset=utf-8"],"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/TeamSearchVisibilityView"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"204":{"description":"Search visibility set"},"400":{"description":"Invalid `body`"},"403":{"description":"Custom search is not available for this team (label: `team-search-visibility-not-enabled`)\n\nInsufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)","schema":{"example":{"code":403,"label":"team-search-visibility-not-enabled","message":"Custom search is not available for this team"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["team-search-visibility-not-enabled","operation-denied","no-team-member"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found"}},"summary":"Sets the search visibility for the whole team"}},"/users":{"get":{"description":"The 'ids' and 'handles' parameters are mutually exclusive.","parameters":[{"description":"User IDs of users to fetch","in":"query","name":"ids","required":false,"type":"string"},{"collectionFormat":"csv","description":"Handles of users to fetch, min 1 and max 4 (the check for handles is rather expensive)","in":"query","items":{"type":"string"},"maxItems":4,"minItems":1,"name":"handles","required":false,"type":"array"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"items":{"$ref":"#/definitions/UserProfile"},"type":"array"}},"400":{"description":"Invalid `handles` or `ids`"}},"summary":"List users (deprecated)"}},"/users/by-handle/{handle_domain}/{handle}":{"get":{"parameters":[{"in":"path","name":"handle_domain","required":true,"type":"string"},{"description":"The user handle","in":"path","name":"handle","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"User found","schema":{"$ref":"#/definitions/UserProfile"}},"404":{"description":"`handle_domain` or `handle` or Handle not found (label: `not-found`)","schema":{"example":{"code":404,"label":"not-found","message":"Handle not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["not-found"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"(deprecated, use /search/contacts) Get information on a user handle"}},"/users/handles/{handle}":{"get":{"parameters":[{"description":"The user handle","in":"path","name":"handle","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"User found","schema":{"$ref":"#/definitions/UserHandleInfo"}},"404":{"description":"`handle` or Handle not found (label: `not-found`)","schema":{"example":{"code":404,"label":"not-found","message":"Handle not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["not-found"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"(deprecated, use /search/contacts) Get information on a user handle"}},"/users/list-clients":{"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"items":{"$ref":"#/definitions/Qualified_UserId"},"type":"array"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/QualifiedUserMap_Set_PubClient"}},"400":{"description":"Invalid `body`"}},"summary":"List all clients for a set of user ids (deprecated, use /users/list-clients/v2)"}},"/users/list-clients/v2":{"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/LimitedQualifiedUserIdList"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"properties":{"qualified_user_map":{"$ref":"#/definitions/QualifiedUserMap_Set_PubClient"}},"type":"object"}},"400":{"description":"Invalid `body`"}},"summary":"List all clients for a set of user ids"}},"/users/list-prekeys":{"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/QualifiedUserClients"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/QualifiedUserClientPrekeyMap"}},"400":{"description":"Invalid `body`"}},"summary":"Given a map of domain to (map of user IDs to client IDs) return a prekey for each one. You can't request information for more users than maximum conversation size."}},"/users/prekeys":{"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/UserClients"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/UserClientPrekeyMap"}},"400":{"description":"Invalid `body`"}},"summary":"(deprecated)  Given a map of user IDs to client IDs return a prekey for each one. You can't request information for more users than maximum conversation size."}},"/users/{uid_domain}/{uid}":{"get":{"parameters":[{"in":"path","name":"uid_domain","required":true,"type":"string"},{"description":"User Id","format":"uuid","in":"path","name":"uid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"User found","schema":{"$ref":"#/definitions/UserProfile"}},"404":{"description":"`uid_domain` or `uid` or User not found (label: `not-found`)","schema":{"example":{"code":404,"label":"not-found","message":"User not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["not-found"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Get a user by Domain and UserId"}},"/users/{uid_domain}/{uid}/clients":{"get":{"parameters":[{"in":"path","name":"uid_domain","required":true,"type":"string"},{"description":"User Id","format":"uuid","in":"path","name":"uid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"items":{"$ref":"#/definitions/PubClient"},"type":"array"}},"404":{"description":"`uid_domain` or `uid` not found"}},"summary":"Get all of a user's clients."}},"/users/{uid_domain}/{uid}/clients/{client}":{"get":{"parameters":[{"in":"path","name":"uid_domain","required":true,"type":"string"},{"description":"User Id","format":"uuid","in":"path","name":"uid","required":true,"type":"string"},{"description":"ClientId","in":"path","name":"client","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/PubClient"}},"404":{"description":"`uid_domain` or `uid` or `client` not found"}},"summary":"Get a specific client of a user."}},"/users/{uid_domain}/{uid}/prekeys":{"get":{"parameters":[{"in":"path","name":"uid_domain","required":true,"type":"string"},{"description":"User Id","format":"uuid","in":"path","name":"uid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/PrekeyBundle"}},"404":{"description":"`uid_domain` or `uid` not found"}},"summary":"Get a prekey for each client of a user."}},"/users/{uid_domain}/{uid}/prekeys/{client}":{"get":{"parameters":[{"in":"path","name":"uid_domain","required":true,"type":"string"},{"description":"User Id","format":"uuid","in":"path","name":"uid","required":true,"type":"string"},{"description":"ClientId","in":"path","name":"client","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/ClientPrekey"}},"404":{"description":"`uid_domain` or `uid` or `client` not found"}},"summary":"Get a prekey for a specific client of a user."}},"/users/{uid}":{"get":{"parameters":[{"description":"User Id","format":"uuid","in":"path","name":"uid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"User found","schema":{"$ref":"#/definitions/UserProfile"}},"404":{"description":"`uid` or User not found (label: `not-found`)","schema":{"example":{"code":404,"label":"not-found","message":"User not found"},"properties":{"code":{"enum":[404],"type":"integer"},"label":{"enum":["not-found"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Get a user by UserId (deprecated)"}},"/users/{uid}/clients":{"get":{"parameters":[{"description":"User Id","format":"uuid","in":"path","name":"uid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"items":{"$ref":"#/definitions/PubClient"},"type":"array"}},"404":{"description":"`uid` not found"}},"summary":"Get all of a user's clients (deprecated)."}},"/users/{uid}/clients/{client}":{"get":{"parameters":[{"description":"User Id","format":"uuid","in":"path","name":"uid","required":true,"type":"string"},{"description":"ClientId","in":"path","name":"client","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/PubClient"}},"404":{"description":"`uid` or `client` not found"}},"summary":"Get a specific client of a user (deprecated)."}},"/users/{uid}/email":{"put":{"consumes":["application/json;charset=utf-8"],"description":"If the user has a pending email validation, the validation email will be resent.","parameters":[{"description":"User Id","format":"uuid","in":"path","name":"uid","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/EmailUpdate"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"example":[],"items":{},"maxItems":0,"type":"array"}},"400":{"description":"Invalid `body`"},"404":{"description":"`uid` not found"}},"summary":"Resend email address validation email."}},"/users/{uid}/prekeys":{"get":{"parameters":[{"description":"User Id","format":"uuid","in":"path","name":"uid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/PrekeyBundle"}},"404":{"description":"`uid` not found"}},"summary":"(deprecated) Get a prekey for each client of a user."}},"/users/{uid}/prekeys/{client}":{"get":{"parameters":[{"description":"User Id","format":"uuid","in":"path","name":"uid","required":true,"type":"string"},{"description":"ClientId","in":"path","name":"client","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/ClientPrekey"}},"404":{"description":"`uid` or `client` not found"}},"summary":"(deprecated) Get a prekey for a specific client of a user."}},"/verification-code/send":{"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SendVerificationCode"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Verification code sent."},"400":{"description":"Invalid `body`"}},"summary":"Send a verification code to a given email address."}}},"security":[{"ZAuth":[]}],"securityDefinitions":{"ZAuth":{"description":"Must be a token retrieved by calling 'POST /login' or 'POST /access'. It must be presented in this format: 'Bearer \\<token\\>'.","in":"header","name":"Authorization","type":"apiKey"}},"swagger":"2.0"}