{"basePath":"/v2","definitions":{"ASCII":{"example":"aGVsbG8","type":"string"},"Access":{"description":"How users can join conversations","enum":["private","invite","link","code"],"type":"string"},"AccessRoleLegacy":{"description":"Deprecated, please use access_role_v2","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"},"Activate":{"description":"Data for an activation request.","properties":{"code":{"$ref":"#/definitions/ASCII"},"dryrun":{"description":"At least one of key, email, or phone has to be present while key takes precedence over email, and email takes precedence over phone. Whether to perform a dryrun, i.e. to only check whether activation would succeed. Dry-runs never issue access cookies or tokens on success but failures still count towards the maximum failure count.","type":"boolean"},"email":{"$ref":"#/definitions/Email"},"key":{"$ref":"#/definitions/ASCII"},"phone":{"$ref":"#/definitions/PhoneNumber"}},"required":["code","dryrun"],"type":"object"},"ActivationResponse":{"description":"Response body of a successful activation request","properties":{"email":{"$ref":"#/definitions/Email"},"first":{"description":"Whether this is the first successful activation (i.e. account activation).","type":"boolean"},"phone":{"$ref":"#/definitions/PhoneNumber"},"sso_id":{"$ref":"#/definitions/UserSSOId"}},"type":"object"},"AllFeatureConfigs":{"properties":{"appLock":{"$ref":"#/definitions/AppLockConfig.WithStatus"},"classifiedDomains":{"$ref":"#/definitions/ClassifiedDomainsConfig.WithStatus"},"conferenceCalling":{"$ref":"#/definitions/ConferenceCallingConfig.WithStatus"},"conversationGuestLinks":{"$ref":"#/definitions/GuestLinksConfig.WithStatus"},"digitalSignatures":{"$ref":"#/definitions/DigitalSignaturesConfig.WithStatus"},"exposeInvitationURLsToTeamAdmin":{"$ref":"#/definitions/ExposeInvitationURLsToTeamAdminConfig.WithStatus"},"fileSharing":{"$ref":"#/definitions/FileSharingConfig.WithStatus"},"legalhold":{"$ref":"#/definitions/LegalholdConfig.WithStatus"},"mls":{"$ref":"#/definitions/MLSConfig.WithStatus"},"searchVisibility":{"$ref":"#/definitions/SearchVisibilityAvailableConfig.WithStatus"},"searchVisibilityInbound":{"$ref":"#/definitions/SearchVisibilityInboundConfig.WithStatus"},"selfDeletingMessages":{"$ref":"#/definitions/SelfDeletingMessagesConfig.WithStatus"},"sndFactorPasswordChallenge":{"$ref":"#/definitions/SndFactorPasswordChallengeConfig.WithStatus"},"sso":{"$ref":"#/definitions/SSOConfig.WithStatus"},"validateSAMLemails":{"$ref":"#/definitions/ValidateSAMLEmailsConfig.WithStatus"}},"required":["legalhold","sso","searchVisibility","searchVisibilityInbound","validateSAMLemails","digitalSignatures","appLock","fileSharing","classifiedDomains","conferenceCalling","selfDeletingMessages","conversationGuestLinks","sndFactorPasswordChallenge","mls","exposeInvitationURLsToTeamAdmin"],"type":"object"},"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"},"AppLockConfig":{"properties":{"enforceAppLock":{"type":"boolean"},"inactivityTimeoutSecs":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"type":"integer"}},"required":["enforceAppLock","inactivityTimeoutSecs"],"type":"object"},"AppLockConfig.WithStatus":{"properties":{"config":{"$ref":"#/definitions/AppLockConfig"},"lockStatus":{"$ref":"#/definitions/LockStatus"},"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status","lockStatus","config"],"type":"object"},"AppLockConfig.WithStatusNoLock":{"properties":{"config":{"$ref":"#/definitions/AppLockConfig"},"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status","config"],"type":"object"},"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":{"example":"ZXhhbXBsZQo=","type":"string"},"BindingNewTeamUser":{"properties":{"currency":{"$ref":"#/definitions/Alpha"},"icon":{"$ref":"#/definitions/Icon"},"icon_key":{"description":"team icon asset key","maxLength":256,"minLength":1,"type":"string"},"members":{"description":"initial team member ids (between 1 and 127)"},"name":{"description":"team name","maxLength":256,"minLength":1,"type":"string"}},"required":["name","icon"],"type":"object"},"Body":{},"CheckHandles":{"properties":{"handles":{"items":{"type":"string"},"maxItems":50,"minItems":1,"type":"array"},"return":{"maximum":10,"minimum":1,"type":"integer"}},"required":["handles","return"],"type":"object"},"CipherSuiteTag":{"description":"The cipher suite of the corresponding MLS group","maximum":65535,"minimum":0,"type":"integer"},"ClassifiedDomainsConfig":{"properties":{"domains":{"items":{"$ref":"#/definitions/Domain"},"type":"array"}},"required":["domains"],"type":"object"},"ClassifiedDomainsConfig.WithStatus":{"properties":{"config":{"$ref":"#/definitions/ClassifiedDomainsConfig"},"lockStatus":{"$ref":"#/definitions/LockStatus"},"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status","lockStatus","config"],"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":{"$ref":"#/definitions/MLSPublicKeys"},"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"},"CommitBundle":{"description":"This object can only be parsed in TLS format. Please refer to the MLS specification for details."},"CompletePasswordReset":{"description":"Data to complete a password reset","properties":{"code":{"$ref":"#/definitions/ASCII"},"email":{"$ref":"#/definitions/Email"},"key":{"$ref":"#/definitions/ASCII"},"password":{"description":"New password (6 - 1024 characters)","maxLength":1024,"minLength":6,"type":"string"},"phone":{"$ref":"#/definitions/PhoneNumber"}},"required":["code","password"],"type":"object"},"ConferenceCallingConfig.WithStatus":{"properties":{"lockStatus":{"$ref":"#/definitions/LockStatus"},"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status","lockStatus"],"type":"object"},"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"},"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":"This field MUST NOT be used by clients. It is here only for backwards compatibility of the interface."},"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":{"description":"This field is optional. If it is not present, the default will be `[team_member, non_team_member, service]`. Please note that an empty list is not allowed when creating a new conversation.","items":{"$ref":"#/definitions/AccessRoleV2"},"type":"array"},"cipher_suite":{"$ref":"#/definitions/CipherSuiteTag"},"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","cipher_suite"],"type":"object"},"ConversationAccessData":{"properties":{"access":{"items":{"$ref":"#/definitions/Access"},"type":"array"},"access_role":{"$ref":"#/definitions/AccessRoleLegacy"},"access_role_v2":{"description":"This field is optional. If it is not present, the default will be `[team_member, non_team_member, service]`. Please note that an empty list is not allowed when creating a new conversation.","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"},"DeprecatedMatchingResult":{"properties":{"auto-connects":{"items":{},"type":"array"},"results":{"items":{},"type":"array"}},"required":["results","auto-connects"],"type":"object"},"DigitalSignaturesConfig.WithStatus":{"properties":{"lockStatus":{"$ref":"#/definitions/LockStatus"},"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status","lockStatus"],"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","example":"ZXhhbXBsZQo=","properties":{"access":{"items":{"$ref":"#/definitions/Access"},"type":"array"},"access_role":{"$ref":"#/definitions/AccessRoleLegacy"},"access_role_v2":{"description":"This field is optional. If it is not present, the default will be `[team_member, non_team_member, service]`. Please note that an empty list is not allowed when creating a new conversation.","items":{"$ref":"#/definitions/AccessRoleV2"},"type":"array"},"cipher_suite":{"$ref":"#/definitions/CipherSuiteTag"},"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","cipher_suite","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"},"ExposeInvitationURLsToTeamAdminConfig.WithStatus":{"properties":{"lockStatus":{"$ref":"#/definitions/LockStatus"},"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status","lockStatus"],"type":"object"},"ExposeInvitationURLsToTeamAdminConfig.WithStatusNoLock":{"properties":{"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status"],"type":"object"},"FeatureStatus":{"enum":["enabled","disabled"],"type":"string"},"FederatedUserSearchPolicy":{"description":"Search policy that was applied when searching for users","enum":["no_search","exact_handle_search","full_search"],"type":"string"},"FileSharingConfig.WithStatus":{"properties":{"lockStatus":{"$ref":"#/definitions/LockStatus"},"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status","lockStatus"],"type":"object"},"FileSharingConfig.WithStatusNoLock":{"properties":{"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status"],"type":"object"},"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)","example":"ZXhhbXBsZQo=","type":"string"},"GuestLinksConfig.WithStatus":{"properties":{"lockStatus":{"$ref":"#/definitions/LockStatus"},"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status","lockStatus"],"type":"object"},"GuestLinksConfig.WithStatusNoLock":{"properties":{"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status"],"type":"object"},"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"},"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":{"example":"ZXhhbXBsZQo=","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"},"LegalholdConfig.WithStatus":{"properties":{"lockStatus":{"$ref":"#/definitions/LockStatus"},"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status","lockStatus"],"type":"object"},"LegalholdConfig.WithStatusNoLock":{"properties":{"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status"],"type":"object"},"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"},"ListType":{"description":"true if 'members' doesn't contain all team members","enum":[true,false],"type":"boolean"},"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":{"description":"Locale to use for the activation code template.","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"},"LockStatus":{"enum":["locked","unlocked"],"type":"string"},"MLSConfig":{"properties":{"allowedCipherSuites":{"items":{"$ref":"#/definitions/CipherSuiteTag"},"type":"array"},"defaultCipherSuite":{"$ref":"#/definitions/CipherSuiteTag"},"defaultProtocol":{"$ref":"#/definitions/Protocol"},"protocolToggleUsers":{"description":"allowlist of users that may change protocols","items":{"$ref":"#/definitions/UUID"},"type":"array"}},"required":["protocolToggleUsers","defaultProtocol","allowedCipherSuites","defaultCipherSuite"],"type":"object"},"MLSConfig.WithStatus":{"properties":{"config":{"$ref":"#/definitions/MLSConfig"},"lockStatus":{"$ref":"#/definitions/LockStatus"},"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status","lockStatus","config"],"type":"object"},"MLSConfig.WithStatusNoLock":{"properties":{"config":{"$ref":"#/definitions/MLSConfig"},"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status","config"],"type":"object"},"MLSKeys":{"additionalProperties":{"additionalProperties":{"example":"ZXhhbXBsZQo=","type":"string"},"type":"object"},"type":"object"},"MLSMessage":{"description":"This object can only be parsed in TLS format. Please refer to the MLS specification for details."},"MLSMessageSendingStatus":{"properties":{"events":{"description":"A list of events caused by sending the message.","items":{"$ref":"#/definitions/Event"},"type":"array"},"time":{"$ref":"#/definitions/UTCTime"}},"required":["events","time"],"type":"object"},"MLSPublicKeys":{"additionalProperties":{"example":"ZXhhbXBsZQo=","type":"string"},"description":"Mapping from signature scheme (tags) to public key data","example":{"ed25519":"ZXhhbXBsZQo="},"type":"object"},"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":{"$ref":"#/definitions/MLSPublicKeys"},"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":{"description":"This field is optional. If it is not present, the default will be `[team_member, non_team_member, service]`. Please note that an empty list is not allowed when creating a new conversation.","items":{"$ref":"#/definitions/AccessRoleV2"},"type":"array"},"conversation_role":{"$ref":"#/definitions/RoleName"},"creator_client":{"$ref":"#/definitions/ClientId"},"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"},"NewPasswordReset":{"description":"Data to initiate a password reset","properties":{"email":{"$ref":"#/definitions/Email"},"phone":{"$ref":"#/definitions/PhoneNumber"}},"type":"object"},"NewTeamMember":{"description":"Required data when creating new team members","properties":{"member":{"description":"the team member to add (the legalhold_status field must be null or missing!)","properties":{"created_at":{"$ref":"#/definitions/UTCTime"},"created_by":{"$ref":"#/definitions/UUID"},"permissions":{"$ref":"#/definitions/Permissions"},"user":{"$ref":"#/definitions/UUID"}},"required":["user","permissions"],"type":"object"}},"required":["member"],"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":{"description":"team icon asset key","maxLength":256,"minLength":1,"type":"string"},"members":{"description":"initial team member ids (between 1 and 127)","items":{"$ref":"#/definitions/TeamMember"},"maxItems":127,"minItems":1,"type":"array"},"name":{"description":"team name","maxLength":256,"minLength":1,"type":"string"}},"required":["name","icon"],"type":"object"},"Object":{},"OpaquePublicGroupState":{"description":"This object can only be parsed in TLS format. Please refer to the MLS specification for details."},"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"},"PasswordReset":{"description":"Data to complete a password reset","properties":{"code":{"$ref":"#/definitions/ASCII"},"password":{"description":"New password (6 - 1024 characters)","maxLength":1024,"minLength":6,"type":"string"}},"required":["code","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":"A known phone number with a pending password reset.","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"},"RichField":{"properties":{"type":{"type":"string"},"value":{"type":"string"}},"required":["type","value"],"type":"object"},"RichInfoAssocList":{"properties":{"fields":{"items":{"$ref":"#/definitions/RichField"},"type":"array"},"version":{"maximum":9223372036854776000,"minimum":-9223372036854776000,"type":"integer"}},"required":["version","fields"],"type":"object"},"Role":{"enum":["owner","admin","member","partner"],"type":"string"},"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"},"SSOConfig.WithStatus":{"properties":{"lockStatus":{"$ref":"#/definitions/LockStatus"},"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status","lockStatus"],"type":"object"},"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/TeamContact"},"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"},"SearchVisibilityAvailableConfig.WithStatus":{"properties":{"lockStatus":{"$ref":"#/definitions/LockStatus"},"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status","lockStatus"],"type":"object"},"SearchVisibilityAvailableConfig.WithStatusNoLock":{"properties":{"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status"],"type":"object"},"SearchVisibilityInboundConfig.WithStatus":{"properties":{"lockStatus":{"$ref":"#/definitions/LockStatus"},"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status","lockStatus"],"type":"object"},"SearchVisibilityInboundConfig.WithStatusNoLock":{"properties":{"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status"],"type":"object"},"SelfDeletingMessagesConfig":{"properties":{"enforcedTimeoutSeconds":{"format":"int32","maximum":2147483647,"minimum":-2147483648,"type":"integer"}},"required":["enforcedTimeoutSeconds"],"type":"object"},"SelfDeletingMessagesConfig.WithStatus":{"properties":{"config":{"$ref":"#/definitions/SelfDeletingMessagesConfig"},"lockStatus":{"$ref":"#/definitions/LockStatus"},"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status","lockStatus","config"],"type":"object"},"SelfDeletingMessagesConfig.WithStatusNoLock":{"properties":{"config":{"$ref":"#/definitions/SelfDeletingMessagesConfig"},"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status","config"],"type":"object"},"SendActivationCode":{"description":"Data for requesting an email or phone activation code to be sent. One of 'email' or 'phone' must be present.","properties":{"email":{"$ref":"#/definitions/Email"},"locale":{"$ref":"#/definitions/Locale"},"phone":{"$ref":"#/definitions/PhoneNumber"},"voice_call":{"description":"Request the code with a call instead (default is SMS).","type":"boolean"}},"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"},"SndFactorPasswordChallengeConfig.WithStatus":{"properties":{"lockStatus":{"$ref":"#/definitions/LockStatus"},"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status","lockStatus"],"type":"object"},"SndFactorPasswordChallengeConfig.WithStatusNoLock":{"properties":{"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status"],"type":"object"},"Sso":{"properties":{"issuer":{"type":"string"},"nameid":{"type":"string"}},"required":["issuer","nameid"],"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"},"splash_screen":{"$ref":"#/definitions/Icon"}},"required":["id","creator","name","icon"],"type":"object"},"TeamBinding":{"enum":[true,false],"type":"boolean"},"TeamContact":{"properties":{"accent_id":{"maximum":9223372036854776000,"minimum":-9223372036854776000,"type":"integer"},"created_at":{"$ref":"#/definitions/UTCTime"},"email":{"$ref":"#/definitions/Email"},"email_unvalidated":{"$ref":"#/definitions/Email"},"handle":{"type":"string"},"id":{"$ref":"#/definitions/UUID"},"managed_by":{"$ref":"#/definitions/ManagedBy"},"name":{"type":"string"},"role":{"$ref":"#/definitions/Role"},"saml_idp":{"type":"string"},"scim_external_id":{"type":"string"},"sso":{"$ref":"#/definitions/Sso"},"team":{"$ref":"#/definitions/UUID"}},"required":["id","name"],"type":"object"},"TeamConversation":{"description":"Team conversation data","properties":{"conversation":{"$ref":"#/definitions/UUID"},"managed":{"description":"This field MUST NOT be used by clients. It is here only for backwards compatibility of the interface."}},"required":["conversation","managed"],"type":"object"},"TeamConversationList":{"description":"Team conversation list","properties":{"conversations":{"items":{"$ref":"#/definitions/TeamConversation"},"type":"array"}},"required":["conversations"],"type":"object"},"TeamDeleteData":{"properties":{"password":{"maxLength":1024,"minLength":6,"type":"string"},"verification_code":{"$ref":"#/definitions/ASCII"}},"type":"object"},"TeamList":{"properties":{"has_more":{"type":"boolean"},"teams":{"items":{"$ref":"#/definitions/Team"},"type":"array"}},"required":["teams","has_more"],"type":"object"},"TeamMember":{"description":"team member data","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"],"type":"object"},"TeamMemberDeleteData":{"description":"Data for a team member deletion request in case of binding teams.","properties":{"password":{"description":"The account password to authorise the deletion.","maxLength":1024,"minLength":6,"type":"string"}},"type":"object"},"TeamMemberList":{"description":"list of team member","properties":{"hasMore":{"$ref":"#/definitions/ListType"},"members":{"description":"the array of team members","items":{"$ref":"#/definitions/TeamMember"},"type":"array"}},"required":["members","hasMore"],"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"},"splash_screen":{"$ref":"#/definitions/Icon"}},"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"},"Unnamed":{"properties":{"created_at":{"$ref":"#/definitions/UTCTime"},"created_by":{"$ref":"#/definitions/UUID"},"permissions":{"$ref":"#/definitions/Permissions"},"user":{"$ref":"#/definitions/UUID"}},"required":["user","permissions"],"type":"object"},"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":{"$ref":"#/definitions/MLSPublicKeys"},"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"},"UserIdList":{"properties":{"user_ids":{"items":{"$ref":"#/definitions/UUID"},"type":"array"}},"required":["user_ids"],"type":"object"},"UserLegalHoldStatus":{"description":"The state of Legal Hold compliance for the member","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"},"ValidateSAMLEmailsConfig.WithStatus":{"properties":{"lockStatus":{"$ref":"#/definitions/LockStatus"},"status":{"$ref":"#/definitions/FeatureStatus"},"ttl":{"example":"unlimited","maximum":18446744073709552000,"minimum":0,"type":"integer"}},"required":["status","lockStatus"],"type":"object"},"VerificationAction":{"enum":["create_scim_token","login","delete_team"],"type":"string"},"VerifyDeleteUser":{"description":"Data for verifying an account deletion.","properties":{"code":{"$ref":"#/definitions/ASCII"},"key":{"$ref":"#/definitions/ASCII"}},"required":["key","code"],"type":"object"},"Version":{"enum":[0,1,2],"type":"integer"},"VersionInfo":{"example":{"development":[2],"domain":"example.com","federation":false,"supported":[0,1,2]},"properties":{"development":{"items":{"$ref":"#/definitions/Version"},"type":"array"},"domain":{"$ref":"#/definitions/Domain"},"federation":{"type":"boolean"},"supported":{"items":{"$ref":"#/definitions/Version"},"type":"array"}},"required":["supported","development","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"},"handle":{"type":"string"},"oldIssuers":{"items":{"type":"string"},"type":"array"},"replacedBy":{"$ref":"#/definitions/UUID"},"team":{"$ref":"#/definitions/UUID"}},"required":["team","oldIssuers","handle"],"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 - **Version negotiation error** (status: 533, label: `federation-version-error`): The remote backend returned invalid version information.\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":""},"paths":{"/activate":{"get":{"description":"See also 'POST /activate' which has a larger feature set.","parameters":[{"description":"Activation key","in":"query","name":"key","required":true,"type":"string"},{"description":"Activation code","in":"query","name":"code","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Activation successful.\n\nActivation successful. (Dry run)\n\nActivation successful.","schema":{"$ref":"#/definitions/ActivationResponse"}},"204":{"description":"A recent activation was already successful."},"400":{"description":"Invalid `code` or `key`\n\nInvalid mobile phone number (label: `invalid-phone`)\n\nInvalid e-mail address. (label: `invalid-email`)"},"404":{"description":"Invalid activation code (label: `invalid-code`)\n\nUser does not exist (label: `invalid-code`)","schema":{"example":{"code":404,"label":"invalid-code","message":"Invalid activation code"},"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":"Activate (i.e. confirm) an email address or phone number."},"post":{"consumes":["application/json;charset=utf-8"],"description":"Activation only succeeds once and the number of failed attempts for a valid key is limited.","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/Activate"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Activation successful.\n\nActivation successful. (Dry run)\n\nActivation successful.","schema":{"$ref":"#/definitions/ActivationResponse"}},"204":{"description":"A recent activation was already successful."},"400":{"description":"Invalid `body`\n\nInvalid mobile phone number (label: `invalid-phone`)\n\nInvalid e-mail address. (label: `invalid-email`)"},"404":{"description":"Invalid activation code (label: `invalid-code`)\n\nUser does not exist (label: `invalid-code`)","schema":{"example":{"code":404,"label":"invalid-code","message":"Invalid activation code"},"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":"Activate (i.e. confirm) an email address or phone number."}},"/activate/send":{"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/SendActivationCode"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Activation code sent."},"400":{"description":"Invalid `body`\n\nInvalid mobile phone number (label: `invalid-phone`)\n\nInvalid e-mail address. (label: `invalid-email`)"},"403":{"description":"The 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`)","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","blacklisted-email"],"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"}},"451":{"description":"[Customer extension] the email domain example.com that you are attempting to register a user with has been blocked for creating wire users.  Please contact your IT department. (label: `domain-blocked-for-registration`)","schema":{"example":{"code":451,"label":"domain-blocked-for-registration","message":"[Customer extension] the email domain example.com that you are attempting to register a user with has been blocked for creating wire users.  Please contact your IT department."},"properties":{"code":{"enum":[451],"type":"integer"},"label":{"enum":["domain-blocked-for-registration"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Send (or resend) an email or phone activation code."}},"/api-version":{"get":{"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/VersionInfo"}}}}},"/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"}},"/assets/{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/{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"}},"/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}/nonce":{"get":{"parameters":[{"description":"ClientId","in":"path","name":"client","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"204":{"description":"No Content","headers":{"Cache-Control":{"type":"string"},"Replay-Nonce":{"type":"string"}}},"404":{"description":"`client` not found"}},"summary":"Get a new nonce for a client CSR, specified in the response header `Replay-Nonce` as a uuidv4 in base64url encoding"},"head":{"parameters":[{"description":"ClientId","in":"path","name":"client","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"No Content","headers":{"Cache-Control":{"type":"string"},"Replay-Nonce":{"type":"string"}}},"404":{"description":"`client` not found"}},"summary":"Get a new nonce for a client CSR, specified in the response header `Replay-Nonce` as a uuidv4 in base64url encoding"}},"/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/{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"}},"/conversations":{"get":{"description":"Will not return remote conversations.\n\nUse `POST /conversations/list-ids` followed by `POST /conversations/list` 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":{"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/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 invocations 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/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}/groupinfo":{"get":{"parameters":[{"in":"path","name":"cnv_domain","required":true,"type":"string"},{"format":"uuid","in":"path","name":"cnv","required":true,"type":"string"}],"produces":["message/mls"],"responses":{"200":{"description":"The group information","schema":{"$ref":"#/definitions/OpaquePublicGroupState"}},"404":{"description":"`cnv_domain` or `cnv` not found\n\nThe conversation has no group information (label: `mls-missing-group-info`)\n\nConversation not found (label: `no-conversation`)"}},"summary":"Get MLS group information"}},"/conversations/{cnv_domain}/{cnv}/members":{"post":{"consumes":["application/json;charset=utf-8"],"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/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_domain` or `cnv` not found\n\nConversation not found (label: `no-conversation`)"}},"summary":"Add qualified members to an existing 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}/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/GuestLinksConfig.WithStatus"}},"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/{usr}":{"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/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"}},"/delete":{"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/VerifyDeleteUser"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Deletion is initiated."},"400":{"description":"Invalid `body`"},"403":{"description":"Invalid verification code (label: `invalid-code`)","schema":{"example":{"code":403,"label":"invalid-code","message":"Invalid verification code"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["invalid-code"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Verify account deletion with a code."}},"/feature-configs":{"get":{"description":"Gets feature configs for a user. If the user is a member of a team and has the required permissions, this will return the team's feature configs.If the user is not a member of a team, this will return the personal feature configs (the server defaults).","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":"Gets feature configs for a user"}},"/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"},{"in":"query","maxLength":1,"minLength":32,"name":"handle","required":false,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"201":{"description":"","schema":{"$ref":"#/definitions/IdPConfig"}},"400":{"description":"Invalid `handle` or `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"},{"in":"query","maxLength":1,"minLength":32,"name":"handle","required":false,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/IdPConfig"}},"400":{"description":"Invalid `handle` or `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"],"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 invocations of the endpoint.","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":"Key package credential does not match qualified client ID (label: `mls-identity-mismatch`)","schema":{"example":{"code":403,"label":"mls-identity-mismatch","message":"Key package 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":{"$ref":"#/definitions/MLSMessageSendingStatus"}},"400":{"description":"Invalid `body`\n\nConversation ID resolved from Group ID does not match submitted Conversation ID (label: `mls-group-conversation-mismatch`)\n\nUser ID resolved from Client ID does not match message's sender user ID (label: `mls-client-sender-user-mismatch`)\n\nSelf removal from group is not allowed (label: `mls-self-removal-not-allowed`)\n\nMLS protocol error (label: `mls-protocol-error`)\n\nThe commit is not referencing all pending proposals (label: `mls-commit-missing-references`)"},"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`)\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","legalhold-not-enabled","access-denied"],"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`)\n\nConversation member not found (label: `no-conversation-member`)","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","no-conversation-member"],"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/public-keys":{"get":{"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Public keys","schema":{"$ref":"#/definitions/MLSKeys"}}},"summary":"Get public keys used by the backend to sign external proposals"}},"/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"}},"/onboarding/v3":{"post":{"consumes":["application/json;charset=utf-8"],"description":"DEPRECATED: the feature has been turned off, the end-point does nothing and always returns '{\"results\":[],\"auto-connects\":[]}'.","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/Body"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/DeprecatedMatchingResult"}},"400":{"description":"Invalid `body`"}},"summary":"Upload contacts and invoke matching."}},"/password-reset":{"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/NewPasswordReset"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"201":{"description":"Password reset code created and sent by email."},"400":{"description":"Invalid `body`\n\nInvalid email or mobile number for password reset. (label: `invalid-key`)"},"409":{"description":"A password reset is already in progress. (label: `code-exists`)","schema":{"example":{"code":409,"label":"code-exists","message":"A password reset is already in progress."},"properties":{"code":{"enum":[409],"type":"integer"},"label":{"enum":["code-exists"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Initiate a password reset."}},"/password-reset/complete":{"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/CompletePasswordReset"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Password reset successful."},"400":{"description":"Invalid `body`\n\nInvalid password reset code. (label: `invalid-code`)"}},"summary":"Complete a password reset."}},"/password-reset/{key}":{"post":{"consumes":["application/json;charset=utf-8"],"description":"DEPRECATED: Use 'POST /password-reset/complete'.","parameters":[{"description":"An opaque key for a pending password reset.","in":"path","name":"key","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PasswordReset"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Password reset successful."},"400":{"description":"Invalid `body`\n\nInvalid password reset code. (label: `invalid-code`)\n\nInvalid email or mobile number for password reset. (label: `invalid-key`)"},"404":{"description":"`key` not found"},"409":{"description":"For password reset, new and old password must be different. (label: `password-must-differ`)\n\nA password reset is already in progress. (label: `code-exists`)","schema":{"example":{"code":409,"label":"password-must-differ","message":"For password reset, new and old password must be different."},"properties":{"code":{"enum":[409],"type":"integer"},"label":{"enum":["password-must-differ","code-exists"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}}},"summary":"Complete a password reset."}},"/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":{"produces":["text/plain;charset=utf-8"],"responses":{"200":{"description":"","schema":{"type":"string"}}}}},"/sso/finalize-login/{team}":{"post":{"parameters":[{"format":"uuid","in":"path","name":"team","required":true,"type":"string"}],"produces":["text/plain;charset=utf-8"],"responses":{"200":{"description":"","schema":{"type":"string"}},"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":"","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":{"description":"Gets feature configs for a team. User must be a member of the team and have permission to view team features.","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":"Gets feature configs for a team"}},"/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/AppLockConfig.WithStatus"}},"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/AppLockConfig.WithStatusNoLock"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/AppLockConfig.WithStatus"}},"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/ClassifiedDomainsConfig.WithStatus"}},"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/ConferenceCallingConfig.WithStatus"}},"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/GuestLinksConfig.WithStatus"}},"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/GuestLinksConfig.WithStatusNoLock"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/GuestLinksConfig.WithStatus"}},"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/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/DigitalSignaturesConfig.WithStatus"}},"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/exposeInvitationURLsToTeamAdmin":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/ExposeInvitationURLsToTeamAdminConfig.WithStatus"}},"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 exposeInvitationURLsToTeamAdmin"},"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/ExposeInvitationURLsToTeamAdminConfig.WithStatusNoLock"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/ExposeInvitationURLsToTeamAdminConfig.WithStatus"}},"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 exposeInvitationURLsToTeamAdmin"}},"/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/FileSharingConfig.WithStatus"}},"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/FileSharingConfig.WithStatusNoLock"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/FileSharingConfig.WithStatus"}},"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/LegalholdConfig.WithStatus"}},"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/LegalholdConfig.WithStatusNoLock"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/LegalholdConfig.WithStatus"}},"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/mls":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/MLSConfig.WithStatus"}},"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 mls"},"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/MLSConfig.WithStatusNoLock"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/MLSConfig.WithStatus"}},"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 mls"}},"/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/SearchVisibilityAvailableConfig.WithStatus"}},"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/SearchVisibilityAvailableConfig.WithStatusNoLock"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/SearchVisibilityAvailableConfig.WithStatus"}},"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/searchVisibilityInbound":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/SearchVisibilityInboundConfig.WithStatus"}},"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 searchVisibilityInbound"},"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/SearchVisibilityInboundConfig.WithStatusNoLock"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/SearchVisibilityInboundConfig.WithStatus"}},"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 searchVisibilityInbound"}},"/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/SelfDeletingMessagesConfig.WithStatus"}},"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/SelfDeletingMessagesConfig.WithStatusNoLock"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/SelfDeletingMessagesConfig.WithStatus"}},"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/SndFactorPasswordChallengeConfig.WithStatus"}},"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/SndFactorPasswordChallengeConfig.WithStatusNoLock"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/SndFactorPasswordChallengeConfig.WithStatus"}},"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/SSOConfig.WithStatus"}},"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/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/ValidateSAMLEmailsConfig.WithStatus"}},"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}/get-members-by-ids-using-post":{"post":{"consumes":["application/json;charset=utf-8"],"description":"The `has_more` field in the response body is always `false`.","parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"description":"Maximum results to be returned","format":"int32","in":"query","maximum":2000,"minimum":1,"name":"maxResults","required":false,"type":"integer"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/UserIdList"}}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamMemberList"}},"400":{"description":"Invalid `body` or `maxResults`\n\nCan only process 2000 user ids per request. (label: `too-many-uids`)"},"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 team members by user id list"}},"/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}/members":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"description":"Maximum results to be returned","format":"int32","in":"query","maximum":2000,"minimum":1,"name":"maxResults","required":false,"type":"integer"}],"produces":["application/json;charset=utf-8"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/TeamMemberList"}},"400":{"description":"Invalid `maxResults`"},"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 team members"},"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/NewTeamMember"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":""},"400":{"description":"Invalid `body`"},"403":{"description":"cannot add more members to team when legalhold service is enabled. (label: `too-many-members-for-legalhold`)\n\nUser already bound to a different team (label: `binding-exists`)\n\nMaximum number of members per team reached (label: `too-many-team-members`)\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\nCannot add users to binding teams, invite only (label: `binding-team`)\n\nThe specified permissions are invalid (label: `invalid-permissions`)","schema":{"example":{"code":403,"label":"too-many-members-for-legalhold","message":"cannot add more members to team when legalhold service is enabled."},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["too-many-members-for-legalhold","binding-exists","too-many-team-members","operation-denied","not-connected","no-team-member","binding-team","invalid-permissions"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found\n\nTeam not found (label: `no-team`)"}},"summary":"Add a new team member"},"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/NewTeamMember"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":""},"400":{"description":"Invalid `body`"},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)\n\nThe specified permissions are invalid (label: `invalid-permissions`)\n\nYou do not have permission to access this resource (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","invalid-permissions","access-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`)\n\nTeam not found (label: `no-team`)"}},"summary":"Update an existing team member"}},"/teams/{tid}/members/csv":{"get":{"description":"The endpoint returns data in chunked transfer encoding. Internal server errors might result in a failed transfer instead of a 500 response.","parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"}],"produces":["text/csv"],"responses":{"200":{"description":"CSV of team members"},"403":{"description":"You do not have permission to access this resource (label: `access-denied`)","schema":{"example":{"code":403,"label":"access-denied","message":"You do not have permission to access this resource"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["access-denied"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`tid` not found"}},"summary":"Get all members of the team as a CSV file"}},"/teams/{tid}/members/{uid}":{"delete":{"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":{"200":{"description":""},"202":{"description":"Team member scheduled for deletion"},"403":{"description":"Insufficient permissions (label: `operation-denied`)\n\nRequesting user is not a team member (label: `no-team-member`)\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":"operation-denied","message":"Insufficient permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["operation-denied","no-team-member","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\nTeam not found (label: `no-team`)\n\nTeam member not found (label: `no-team-member`)"}},"summary":"Remove an existing team member"},"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/TeamMember"}},"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` or `uid` not found\n\nTeam member not found (label: `no-team-member`)"}},"summary":"Get single team member"}},"/teams/{tid}/search":{"get":{"parameters":[{"format":"uuid","in":"path","name":"tid","required":true,"type":"string"},{"description":"Search expression","in":"query","name":"q","required":false,"type":"string"},{"collectionFormat":null,"description":"Role filter, eg. `member,partner`.  Empty list means do not filter.","in":"query","items":{"enum":["owner","admin","member","partner"],"type":"string"},"name":"frole","required":false,"type":"array"},{"description":"Can be one of name, handle, email, saml_idp, managed_by, role, created_at.","enum":["name","handle","email","saml_idp","managed_by","role","created_at"],"in":"query","name":"sortby","required":false,"type":"string"},{"description":"Can be one of asc, desc.","enum":["asc","desc"],"in":"query","name":"sortorder","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","application/json"],"responses":{"200":{"description":"Search results","schema":{"$ref":"#/definitions/SearchResult"}},"400":{"description":"Invalid `size` or `sortorder` or `sortby` or `frole` or `q`"},"404":{"description":"`tid` not found"}},"summary":"Browse team for members (requires add-user permission)"}},"/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\n\nTeam not found (label: `no-team`)"}},"summary":"Sets the search visibility for the whole team"}},"/users/handles":{"post":{"consumes":["application/json;charset=utf-8"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/CheckHandles"}}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"List of free handles","schema":{"items":{"$ref":"#/definitions/Handle"},"type":"array"}},"400":{"description":"Invalid `body`"}},"summary":"Check availability of user handles"}},"/users/handles/{handle}":{"head":{"parameters":[{"in":"path","name":"handle","required":true,"type":"string"}],"produces":["application/json;charset=utf-8","application/json"],"responses":{"200":{"description":"Handle is taken","schema":{"example":[],"items":{},"maxItems":0,"type":"array"}},"400":{"description":"The given handle is invalid (label: `invalid-handle`)","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"}},"404":{"description":"`handle` not found\n\nHandle not found (label: `not-found`)"}},"summary":"Check whether a user handle can be taken"}},"/users/list-clients":{"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/{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}/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}/rich-info":{"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":"Rich info about the user","schema":{"$ref":"#/definitions/RichInfoAssocList"}},"403":{"description":"Insufficient team permissions (label: `insufficient-permissions`)","schema":{"example":{"code":403,"label":"insufficient-permissions","message":"Insufficient team permissions"},"properties":{"code":{"enum":[403],"type":"integer"},"label":{"enum":["insufficient-permissions"],"type":"string"},"message":{"type":"string"}},"required":["code","label","message"],"type":"object"}},"404":{"description":"`uid` not found"}},"summary":"Get a user's rich info"}},"/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"}