{"asyncapi":"3.1.0","id":"urn:solibo:home:event-bus","info":{"title":"Solibo Home Event Bus","version":"4c6ccc9ec","description":"Real-time events for Solibo Home: conversation messages, conversation events and typing indicators for the conversations you take part in, over one WebSocket with the same session as the REST API. Only people can connect, with a cookie session or an app session; a REST machine client gets 403. New payload types appear over time; ignore the ones you do not know.\n\nConnecting is the subscription. Besides conversation activity, the bus carries occasional system broadcasts and pong replies. It is not a change feed, and there are no webhooks: to keep other data in sync, poll list endpoints and send the previous `ETag` header back as `If-None-Match`.","contact":{"name":"Solibo Home developer support","email":"solibohome@solibo.no"},"externalDocs":{"description":"Events on Solibo Developers (developer portal)","url":"https://developers.solibo.no/events"}},"defaultContentType":"application/json","servers":{"server1":{"host":"home.solibo.no","protocol":"wss","pathname":"/api","description":"Cookie sessions from Solibo's own pages. The session cookies reach the API only through this URL.","security":[{"$ref":"#/components/securitySchemes/soliboCookieAuth"},{"$ref":"#/components/securitySchemes/soliboBearerAuth"}],"bindings":{"ws":{}}},"server2":{"host":"api.home.solibo.no","protocol":"wss","description":"Token envelope from an app session.","security":[{"$ref":"#/components/securitySchemes/soliboBearerAuth"}],"bindings":{"ws":{}}}},"channels":{"eventBus":{"address":"/eventbus","title":"Solibo Home event bus","summary":"Bidirectional real-time events and client commands","description":"A persistent WebSocket connection. Connecting is the subscription; there is no subscribe command. The Solibo Home backend receives `IncomingEventBusMessage` commands and sends `WebSocketPayload` events.","servers":[{"$ref":"#/servers/server1"},{"$ref":"#/servers/server2"}],"messages":{"incomingEventBusMessage":{"$ref":"#/components/messages/incomingEventBusMessage"},"webSocketPayload":{"$ref":"#/components/messages/webSocketPayload"}},"bindings":{"ws":{"method":"GET","bindingVersion":"0.1.0","headers":{"type":"object","properties":{"Authorization":{"type":"string","description":"`Bearer <token envelope>` from an app session, where the token envelope is Base64URL-encoded JSON `{accessToken, identity, data}`, not a raw JWT. Use it or the session cookie; browsers cannot set this header on a WebSocket. A REST machine client's token envelope gets 403."},"Cookie":{"type":"string","description":"The HttpOnly `SOLIBO_HOME_{n}` session cookies, set when you sign in at home.solibo.no. Browsers send them only from Solibo's own pages."}}}}}}},"operations":{"receiveEventBusCommands":{"action":"receive","channel":{"$ref":"#/channels/eventBus"},"title":"Receive event bus commands","summary":"Receive commands sent by an authenticated client","description":"The Solibo Home backend receives typing indicators and ping commands.","messages":[{"$ref":"#/channels/eventBus/messages/incomingEventBusMessage"}]},"sendEventBusEvents":{"action":"send","channel":{"$ref":"#/channels/eventBus"},"title":"Send event bus events","summary":"Send real-time events to an authenticated client","description":"The Solibo Home backend sends conversation messages, conversation events and updates, and typing indicators for the conversations the signed-in person takes part in, plus occasional system broadcasts and pong replies.","messages":[{"$ref":"#/channels/eventBus/messages/webSocketPayload"}]}},"components":{"schemas":{"PersonAvatarCategory":{"enum":["SOLIBO","BOARD","OWNER","RENTER","EXTERNAL"],"type":"string"},"PersonAvatarDisclosure":{"enum":["NAME_AND_IMAGE","ROLE","FULL"],"type":"string"},"RoleType":{"enum":["ADMIN","SUPER_USER","USER","SALES","SWITCHBOARD","ADMINISTRATOR_SUPERVISOR","ADMINISTRATOR","ONBOARDING","INVOICING","INSURANCE_RESPONSIBLE","LOAN_RESPONSIBLE","IN_LOAN_RESPONSIBLE","ACCOUNTING","COLLECTION","OWNERSHIP_CHANGE","LAWYER","BOARD_CHAIR","BOARD_MEMBER","BOARD_ALTERNATE","OWNER","TENANT","CO_HABITANT","RECEPTIONIST","BUILDING_DEVELOPER","CONTACT_PERSON_FOR_COMPANY","CONTACT_PERSON_FOR_SECTION","SUPPLIER","EXTERNAL"],"type":"string"},"DocumentType":{"enum":["ISSUE","SUPPLIER_FOR_COMPANY","HOMEPAGE","POST","PRACTICAL_INFO","PRIVATE","FDV","BUILDING","PROJECT","BYLAWS","HOUSE_RULES","ECONOMY","EXPENSE","MEETING","ANNUAL_MEETING","CONVERSATION","NEIGHBORHOOD_GROUP","NEIGHBORHOOD_POST","COMMUNICATION_COMMENT","NEWSLETTER","ROUTINE","INSURANCE","LOAN","INVOICE","ADHOC","ECONOMIC_REPORT","SETTLEMENT","SETTLEMENT_CUSTOM_COST","MESSAGE","INTERNAL_MESSAGE","OTHER","TRASH"],"type":"string"},"ConversationEventType":{"enum":["NEW_PARTICIPANT","NEW_PARTICIPANT_CHILD","REMOVED_PARTICIPANT","REMOVED_PARTICIPANT_CHILD","LEFT_CONVERSATION","JOINED_CONVERSATION","STARTED_CONVERSATION","UPDATED_TITLE","UPDATED_CATEGORY","REMOVED_CATEGORY","COMPLETED","UPLOAD","DELETED_UPLOAD","BACK_TO_WORK","NEW_INQUIRY","ATTACH_TO_ISSUE","REMOVE_ATTACHMENT_TO_ISSUE","CREATED_ISSUE","CLASSIFIED_AS_SPAM","MARKED_AS_SPAM","UNMARKED_AS_SPAM"],"type":"string"},"ParticipantType":{"enum":["PERSON","ORGANIZATION","EMPLOYEE","INQUIRY","SUPPLIER_CONTACT","CLIENT_USER","BOARD"],"type":"string"},"ParkingSpaceType":{"enum":["NORMAL","MC","HC"],"type":"string"},"SearchMatchField":{"enum":["CONVERSATION_ID","CONVERSATION_TITLE","CONVERSATION_CATEGORY","MESSAGE","DOCUMENT","NAME","EMAIL","PHONE","ORGANIZATION_NUMBER","DOMAIN","PROPERTY_ADDRESS","POSTAL_ADDRESS","POSTAL_CODE","CITY","SECTION_IDENTIFIER","APARTMENT_NUMBER","H_NUMBER","RESIDENCE_NUMBER","SHARE_NUMBER"],"type":"string"},"SearchMatchQuality":{"enum":["EXACT","PREFIX","CONTAINS","FUZZY"],"type":"string"},"ConversationEventVisibility":{"enum":["PUBLIC","INTERNAL"],"type":"string"},"CommunicationMessageType":{"enum":["EMAIL","SMS","PUSH"],"type":"string"},"CommunicationState":{"enum":["SENDING","SENT","BOUNCE","COMPLAINT","REJECT","DELIVERY","DELAY","OPEN","CLICK","UNKNOWN"],"type":"string"},"MessageOrigin":{"enum":["EMAIL","API"],"type":"string"},"MessageType":{"enum":["DEFAULT","EMAIL"],"type":"string"},"WebSocketPayloadDiscriminator":{"enum":["solibo.common.infrastructure.websockets.ConversationEventPayload","solibo.common.infrastructure.websockets.ConversationMessagePayload","solibo.common.infrastructure.websockets.ConversationTypingPayload","solibo.common.infrastructure.websockets.ConversationUpdatedPayload","solibo.common.infrastructure.websockets.GenericPayload","solibo.common.infrastructure.websockets.Pong"],"type":"string"},"WebSocketPayload":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/WebSocketPayloadDiscriminator"}},"required":["type"],"discriminator":"type","x-openapi-discriminator-mapping":{"solibo.common.infrastructure.websockets.ConversationEventPayload":"#/components/schemas/ConversationEventPayload","solibo.common.infrastructure.websockets.ConversationMessagePayload":"#/components/schemas/ConversationMessagePayload","solibo.common.infrastructure.websockets.ConversationTypingPayload":"#/components/schemas/ConversationTypingPayload","solibo.common.infrastructure.websockets.ConversationUpdatedPayload":"#/components/schemas/ConversationUpdatedPayload","solibo.common.infrastructure.websockets.GenericPayload":"#/components/schemas/GenericPayload","solibo.common.infrastructure.websockets.Pong":"#/components/schemas/Pong"}},"ConversationEventPayload":{"allOf":[{"$ref":"#/components/schemas/WebSocketPayload"},{"type":"object","properties":{"companyId":{"type":"integer","format":"int64"},"conversationId":{"type":"integer","format":"int64"},"event":{"$ref":"#/components/schemas/ConversationEvent"}},"required":["companyId","conversationId","event"]},{"type":"object","properties":{"type":{"const":"solibo.common.infrastructure.websockets.ConversationEventPayload"}},"required":["type"]}],"x-discriminator-values":{"type":"solibo.common.infrastructure.websockets.ConversationEventPayload"}},"ConversationEvent":{"type":"object","properties":{"childEvents":{"items":{"$ref":"#/components/schemas/ConversationEvent"},"type":"array"},"description":{"type":["string","null"]},"descriptionMeta":{"additionalProperties":{"type":"string"},"type":"object"},"documents":{"items":{"$ref":"#/components/schemas/ConversationEventDocument"},"type":"array"},"eventType":{"$ref":"#/components/schemas/ConversationEventType"},"id":{"type":["integer","null"],"format":"int64"},"parentEventId":{"type":["integer","null"],"format":"int64"},"performedAt":{"type":"string","format":"date-time"},"performedBy":{"oneOf":[{"anyOf":[{"$ref":"#/components/schemas/BoardParticipant"},{"$ref":"#/components/schemas/ClientUserParticipant"},{"$ref":"#/components/schemas/EmployeeParticipant"},{"$ref":"#/components/schemas/InquiryParticipant"},{"$ref":"#/components/schemas/OrganizationParticipant"},{"$ref":"#/components/schemas/PersonParticipant"},{"$ref":"#/components/schemas/SupplierContactParticipant"}]},{"type":"null"}]},"performedByClientUserId":{"type":["integer","null"],"format":"int64"},"performedById":{"type":["integer","null"],"format":"int64"},"performedByName":{"type":["string","null"]},"system":{"type":"boolean"},"visibility":{"$ref":"#/components/schemas/ConversationEventVisibility"}},"required":["descriptionMeta","eventType","performedAt","system"]},"ConversationEventDocument":{"type":"object","properties":{"document":{"oneOf":[{"$ref":"#/components/schemas/Document"},{"type":"null"}]},"fileName":{"type":"string"},"id":{"type":["integer","null"],"format":"int64"}},"required":["fileName"]},"Document":{"type":"object","properties":{"belongsToId":{"type":["integer","null"],"format":"int64"},"children":{"items":{"$ref":"#/components/schemas/Document"},"type":"array"},"companyId":{"type":"integer","format":"int64"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":["integer","null"],"format":"int64"},"createdByAvatar":{"oneOf":[{"$ref":"#/components/schemas/PersonAvatar"},{"type":"null"}]},"createdByClientUserId":{"type":["integer","null"],"format":"int64"},"createdByClientUserName":{"type":["string","null"]},"createdByName":{"type":["string","null"]},"deletedAt":{"type":["string","null"],"format":"date-time"},"deletedBy":{"type":["integer","null"],"format":"int64"},"deletedByClientUserId":{"type":["integer","null"],"format":"int64"},"deletedByClientUserName":{"type":["string","null"]},"deletedByName":{"type":["string","null"]},"fileName":{"type":"string"},"historicPath":{"type":["string","null"]},"historicType":{"oneOf":[{"$ref":"#/components/schemas/DocumentType"},{"type":"null"}]},"id":{"type":"integer","format":"int64"},"isDirectory":{"type":["boolean","null"]},"ownedByUser":{"type":"boolean"},"parentId":{"type":["integer","null"],"format":"int64"},"sizeBytes":{"type":["integer","null"],"format":"int64"},"sourceDocumentId":{"type":["integer","null"],"format":"int64"},"type":{"$ref":"#/components/schemas/DocumentType"},"updatedAt":{"type":["string","null"],"format":"date-time"},"updatedBy":{"type":["integer","null"],"format":"int64"},"updatedByClientUserId":{"type":["integer","null"],"format":"int64"},"updatedByClientUserName":{"type":["string","null"]},"updatedByName":{"type":["string","null"]}},"required":["companyId","createdAt","fileName","id","type"]},"PersonAvatar":{"type":"object","properties":{"category":{"oneOf":[{"$ref":"#/components/schemas/PersonAvatarCategory"},{"type":"null"}]},"companyId":{"type":["integer","null"],"format":"int64"},"contact":{"oneOf":[{"$ref":"#/components/schemas/PersonAvatarContact"},{"type":"null"}]},"disclosure":{"$ref":"#/components/schemas/PersonAvatarDisclosure"},"familyName":{"type":["string","null"]},"givenName":{"type":["string","null"]},"imageUrl":{"type":["string","null"]},"initials":{"type":"string"},"isUser":{"type":["boolean","null"]},"name":{"type":"string"},"personId":{"type":"integer","format":"int64"},"postalAddress":{"oneOf":[{"$ref":"#/components/schemas/AddressSpecifics"},{"type":"null"}]},"primaryRole":{"oneOf":[{"$ref":"#/components/schemas/RoleType"},{"type":"null"}]},"primarySection":{"oneOf":[{"$ref":"#/components/schemas/PersonAvatarSection"},{"type":"null"}]},"roles":{"items":{"$ref":"#/components/schemas/PersonAvatarRole"},"type":"array"},"sections":{"items":{"$ref":"#/components/schemas/PersonAvatarSection"},"type":"array"},"title":{"type":["string","null"]}},"required":["initials","name","personId"]},"PersonAvatarContact":{"type":"object","properties":{"email":{"type":["string","null"]},"mobile":{"type":["string","null"]},"reservedEmail":{"type":"boolean"},"reservedSms":{"type":"boolean"}},"required":[]},"AddressSpecifics":{"type":"object","properties":{"area":{"type":["string","null"]},"countryId":{"type":"integer","format":"int64"},"streetAddress":{"type":"string"},"zipCode":{"type":["string","null"]}},"required":["streetAddress"]},"PersonAvatarSection":{"type":"object","properties":{"apartmentNr":{"type":["string","null"]},"area":{"type":["string","null"]},"companyId":{"type":"integer","format":"int64"},"hNr":{"type":["string","null"]},"identifier":{"type":["string","null"]},"label":{"type":["string","null"]},"residenceNr":{"type":["integer","null"],"format":"int64"},"roles":{"items":{"$ref":"#/components/schemas/RoleType"},"type":"array"},"sectionId":{"type":"integer","format":"int64"},"streetAddress":{"type":["string","null"]},"zipCode":{"type":["string","null"]}},"required":["companyId","sectionId"]},"PersonAvatarRole":{"type":"object","properties":{"companyId":{"type":["integer","null"],"format":"int64"},"companyName":{"type":["string","null"]},"sectionId":{"type":["integer","null"],"format":"int64"},"type":{"$ref":"#/components/schemas/RoleType"}},"required":["type"]},"OrganizationEmployee":{"type":"object","properties":{"companyContact":{"items":{"type":"integer","format":"int64"},"type":"array"},"completeMobile":{"type":["string","null"]},"country":{"type":"string"},"email":{"type":["string","null"]},"familyName":{"type":["string","null"]},"givenName":{"type":["string","null"]},"id":{"type":"integer","format":"int64"},"mobile":{"type":["string","null"]},"mobileCountryCode":{"type":["string","null"]},"nationality":{"type":"integer","format":"int64"},"personId":{"type":"integer","format":"int64"},"sectionContact":{"additionalProperties":{"items":{"type":"integer","format":"int64"},"type":"array"},"type":"object"},"start":{"type":"string","format":"date-time"},"stop":{"type":["string","null"],"format":"date-time"}},"required":["companyContact","country","id","nationality","personId","start"]},"Organization":{"type":"object","properties":{"accountNumber":{"type":["string","null"]},"businessAddress":{"oneOf":[{"$ref":"#/components/schemas/BusinessAddress"},{"type":"null"}]},"businessContact":{"oneOf":[{"$ref":"#/components/schemas/BusinessContact"},{"type":"null"}]},"classification":{"type":"string"},"country":{"type":"string"},"domain":{"type":["string","null"]},"employees":{"items":{"$ref":"#/components/schemas/OrganizationEmployee"},"type":"array"},"historicRoles":{"items":{"$ref":"#/components/schemas/Role"},"type":["array","null"]},"id":{"type":"integer","format":"int64"},"kartverketId":{"type":["string","null"]},"logoUrl":{"type":["string","null"]},"name":{"type":"string"},"nationality":{"type":"integer","format":"int64"},"note":{"type":["string","null"]},"orgNr":{"type":["string","null"]},"parkingSpaces":{"items":{"$ref":"#/components/schemas/ParkingSpaceOwnership"},"type":"array"},"preferredLanguage":{"type":["integer","null"],"format":"int64"},"reservations":{"additionalProperties":{"$ref":"#/components/schemas/OrganizationReservations"},"type":"object"},"reservedEmail":{"type":["boolean","null"]},"reservedSMS":{"type":["boolean","null"]},"roles":{"items":{"$ref":"#/components/schemas/Role"},"type":["array","null"]},"searchMatches":{"items":{"$ref":"#/components/schemas/SearchMatch"},"type":"array"},"storageRooms":{"items":{"$ref":"#/components/schemas/StorageRoomOwnership"},"type":"array"}},"required":["classification","country","id","name","nationality"]},"BusinessAddress":{"type":"object","properties":{"address":{"oneOf":[{"$ref":"#/components/schemas/AddressSpecifics"},{"type":"null"}]},"country":{"type":["integer","null"],"format":"int64"},"matrikkel":{"oneOf":[{"$ref":"#/components/schemas/CompanyMatrikkel"},{"type":"null"}]}},"required":[]},"CompanyMatrikkel":{"type":"object","properties":{"areal":{"type":["number","null"],"format":"double"},"bnr":{"type":"string"},"fnr":{"type":["string","null"]},"gnr":{"type":"string"},"knr":{"type":"string"}},"required":["bnr","gnr","knr"]},"BusinessContact":{"type":"object","properties":{"area":{"type":["string","null"]},"completePhone":{"type":["string","null"]},"country":{"type":["integer","null"],"format":"int64"},"email":{"type":["string","null"]},"invoicing":{"oneOf":[{"$ref":"#/components/schemas/InvoicingContact"},{"type":"null"}]},"number":{"type":["string","null"]},"phone":{"type":["string","null"]},"phoneCountryCode":{"type":["string","null"]},"streetAddress":{"type":["string","null"]},"zip":{"type":["string","null"]}},"required":[]},"InvoicingContact":{"type":"object","properties":{"address":{"oneOf":[{"$ref":"#/components/schemas/AddressSpecifics"},{"type":"null"}]},"completePhone":{"type":["string","null"]},"country":{"type":["integer","null"],"format":"int64"},"email":{"type":["string","null"]},"phone":{"type":["string","null"]},"phoneCountryCode":{"type":["string","null"]}},"required":[]},"Role":{"type":"object","properties":{"companyId":{"type":["integer","null"],"format":"int64"},"id":{"type":"integer","format":"int64"},"organizationId":{"type":["integer","null"],"format":"int64"},"personId":{"type":["integer","null"],"format":"int64"},"sectionId":{"type":["integer","null"],"format":"int64"},"supplierId":{"type":["integer","null"],"format":"int64"},"type":{"$ref":"#/components/schemas/RoleType"},"validFrom":{"type":["string","null"],"format":"date-time"},"validTo":{"type":["string","null"],"format":"date-time"}},"required":["id","type"]},"ParkingSpaceOwnership":{"type":"object","properties":{"charger":{"type":"boolean"},"id":{"type":"integer","format":"int64"},"identifier":{"type":"string"},"note":{"type":["string","null"]},"parkingSpaceId":{"type":"integer","format":"int64"},"type":{"$ref":"#/components/schemas/ParkingSpaceType"},"validFrom":{"type":"string","format":"date-time"},"validTo":{"type":["string","null"],"format":"date-time"}},"required":["id","identifier","parkingSpaceId","validFrom"]},"OrganizationReservations":{"type":"object","properties":{"companyId":{"type":"integer","format":"int64"},"reservedEmail":{"type":"boolean"},"reservedSMS":{"type":"boolean"}},"required":["companyId","reservedEmail","reservedSMS"]},"SearchMatch":{"type":"object","properties":{"additionalMatchCount":{"type":"integer","format":"int32"},"context":{"oneOf":[{"$ref":"#/components/schemas/SearchMatchContext"},{"type":"null"}]},"displayValue":{"type":"string"},"field":{"$ref":"#/components/schemas/SearchMatchField"},"quality":{"$ref":"#/components/schemas/SearchMatchQuality"}},"required":["displayValue","field","quality"]},"SearchMatchContext":{"type":"object","properties":{"apartmentNumber":{"type":["string","null"]},"companyId":{"type":["integer","null"],"format":"int64"},"conversationId":{"type":["integer","null"],"format":"int64"},"documentId":{"type":["integer","null"],"format":"int64"},"hNumber":{"type":["string","null"]},"messageId":{"type":["integer","null"],"format":"int64"},"participantId":{"type":["integer","null"],"format":"int64"},"participantType":{"type":["string","null"]},"residenceNumber":{"type":["integer","null"],"format":"int64"},"roleType":{"oneOf":[{"$ref":"#/components/schemas/RoleType"},{"type":"null"}]},"sectionId":{"type":["integer","null"],"format":"int64"},"sectionIdentifier":{"type":["string","null"]},"shareNumber":{"type":["string","null"]}},"required":[]},"StorageRoomOwnership":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"identifier":{"type":"string"},"note":{"type":["string","null"]},"storageRoomId":{"type":"integer","format":"int64"},"validFrom":{"type":"string","format":"date-time"},"validTo":{"type":["string","null"],"format":"date-time"}},"required":["id","identifier","storageRoomId","validFrom"]},"Person":{"type":"object","properties":{"accountNumber":{"type":["string","null"]},"address":{"oneOf":[{"$ref":"#/components/schemas/AddressSpecifics"},{"type":"null"}]},"avatar":{"oneOf":[{"$ref":"#/components/schemas/PersonAvatar"},{"type":"null"}]},"birthDay":{"type":["string","null"]},"completeMobile":{"type":["string","null"]},"country":{"type":["string","null"]},"email":{"type":["string","null"]},"folkeregisteret":{"oneOf":[{"$ref":"#/components/schemas/Folkeregisteret"},{"type":"null"}]},"historicRoles":{"items":{"$ref":"#/components/schemas/Role"},"type":"array"},"id":{"type":"integer","format":"int64"},"invoicingEmail":{"type":["string","null"]},"isUser":{"type":["boolean","null"]},"mobile":{"type":["string","null"]},"mobileCountryCode":{"type":["string","null"]},"name":{"oneOf":[{"$ref":"#/components/schemas/Name"},{"type":"null"}]},"nationality":{"type":["integer","null"],"format":"int64"},"note":{"type":["string","null"]},"parkingSpaces":{"items":{"$ref":"#/components/schemas/ParkingSpaceOwnership"},"type":"array"},"personnummerId":{"type":["string","null"]},"preferredLanguage":{"type":["integer","null"],"format":"int64"},"profileUrl":{"type":["string","null"]},"reservedEmail":{"type":["boolean","null"]},"reservedSMS":{"type":["boolean","null"]},"roles":{"items":{"$ref":"#/components/schemas/Role"},"type":"array"},"searchMatches":{"items":{"$ref":"#/components/schemas/SearchMatch"},"type":"array"},"storageRooms":{"items":{"$ref":"#/components/schemas/StorageRoomOwnership"},"type":"array"},"title":{"type":["string","null"]},"userId":{"type":["string","null"]}},"required":["id"]},"Folkeregisteret":{"type":"object","properties":{"area":{"type":["string","null"]},"streetAddress":{"type":["string","null"]},"zipCode":{"type":["string","null"]}},"required":[]},"Name":{"type":"object","properties":{"complete":{"type":"string"},"family":{"type":["string","null"]},"given":{"type":"string"},"middle":{"type":["string","null"]},"title":{"type":["string","null"]}},"required":[]},"SupplierContact":{"type":"object","properties":{"companyId":{"type":["integer","null"],"format":"int64"},"email":{"type":["string","null"]},"id":{"type":"integer","format":"int64"},"logoUrl":{"type":["string","null"]},"mobile":{"type":["string","null"]},"name":{"$ref":"#/components/schemas/Name"},"supplierId":{"type":"integer","format":"int64"},"title":{"type":["string","null"]}},"required":["id","name","supplierId"]},"ParticipantDiscriminator":{"enum":["solibo.conversation.query.domain.BoardParticipant","solibo.conversation.query.domain.ClientUserParticipant","solibo.conversation.query.domain.EmployeeParticipant","solibo.conversation.query.domain.InquiryParticipant","solibo.conversation.query.domain.OrganizationParticipant","solibo.conversation.query.domain.PersonParticipant","solibo.conversation.query.domain.SupplierContactParticipant"],"type":"string"},"Participant":{"type":"object","properties":{"active":{"type":"boolean"},"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"participantId":{"type":"integer","format":"int64"},"type":{"$ref":"#/components/schemas/ParticipantDiscriminator"}},"required":["active","id","name","participantId","type"],"discriminator":"type","x-openapi-discriminator-mapping":{"solibo.conversation.query.domain.BoardParticipant":"#/components/schemas/BoardParticipant","solibo.conversation.query.domain.ClientUserParticipant":"#/components/schemas/ClientUserParticipant","solibo.conversation.query.domain.EmployeeParticipant":"#/components/schemas/EmployeeParticipant","solibo.conversation.query.domain.InquiryParticipant":"#/components/schemas/InquiryParticipant","solibo.conversation.query.domain.OrganizationParticipant":"#/components/schemas/OrganizationParticipant","solibo.conversation.query.domain.PersonParticipant":"#/components/schemas/PersonParticipant","solibo.conversation.query.domain.SupplierContactParticipant":"#/components/schemas/SupplierContactParticipant"}},"BoardParticipant":{"allOf":[{"$ref":"#/components/schemas/Participant"},{"type":"object","properties":{"participantType":{"$ref":"#/components/schemas/ParticipantType"}}},{"type":"object","properties":{"type":{"const":"solibo.conversation.query.domain.BoardParticipant"}},"required":["type"]}],"x-discriminator-values":{"type":"solibo.conversation.query.domain.BoardParticipant"}},"ClientUserParticipant":{"allOf":[{"$ref":"#/components/schemas/Participant"},{"type":"object","properties":{"clientId":{"type":"string"},"participantType":{"$ref":"#/components/schemas/ParticipantType"}},"required":["clientId"]},{"type":"object","properties":{"type":{"const":"solibo.conversation.query.domain.ClientUserParticipant"}},"required":["type"]}],"x-discriminator-values":{"type":"solibo.conversation.query.domain.ClientUserParticipant"}},"EmployeeParticipant":{"allOf":[{"$ref":"#/components/schemas/Participant"},{"type":"object","properties":{"employee":{"oneOf":[{"$ref":"#/components/schemas/OrganizationEmployee"},{"type":"null"}]},"participantType":{"$ref":"#/components/schemas/ParticipantType"}}},{"type":"object","properties":{"type":{"const":"solibo.conversation.query.domain.EmployeeParticipant"}},"required":["type"]}],"x-discriminator-values":{"type":"solibo.conversation.query.domain.EmployeeParticipant"}},"InquiryParticipant":{"allOf":[{"$ref":"#/components/schemas/Participant"},{"type":"object","properties":{"email":{"type":["string","null"]},"participantType":{"$ref":"#/components/schemas/ParticipantType"}}},{"type":"object","properties":{"type":{"const":"solibo.conversation.query.domain.InquiryParticipant"}},"required":["type"]}],"x-discriminator-values":{"type":"solibo.conversation.query.domain.InquiryParticipant"}},"OrganizationParticipant":{"allOf":[{"$ref":"#/components/schemas/Participant"},{"type":"object","properties":{"organization":{"oneOf":[{"$ref":"#/components/schemas/Organization"},{"type":"null"}]},"orgnr":{"type":["string","null"]},"participantType":{"$ref":"#/components/schemas/ParticipantType"}}},{"type":"object","properties":{"type":{"const":"solibo.conversation.query.domain.OrganizationParticipant"}},"required":["type"]}],"x-discriminator-values":{"type":"solibo.conversation.query.domain.OrganizationParticipant"}},"PersonParticipant":{"allOf":[{"$ref":"#/components/schemas/Participant"},{"type":"object","properties":{"actingRoleType":{"oneOf":[{"$ref":"#/components/schemas/RoleType"},{"type":"null"}]},"avatar":{"oneOf":[{"$ref":"#/components/schemas/PersonAvatar"},{"type":"null"}]},"participantType":{"$ref":"#/components/schemas/ParticipantType"},"person":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"type":"null"}]}}},{"type":"object","properties":{"type":{"const":"solibo.conversation.query.domain.PersonParticipant"}},"required":["type"]}],"x-discriminator-values":{"type":"solibo.conversation.query.domain.PersonParticipant"}},"SupplierContactParticipant":{"allOf":[{"$ref":"#/components/schemas/Participant"},{"type":"object","properties":{"contact":{"oneOf":[{"$ref":"#/components/schemas/SupplierContact"},{"type":"null"}]},"participantType":{"$ref":"#/components/schemas/ParticipantType"}}},{"type":"object","properties":{"type":{"const":"solibo.conversation.query.domain.SupplierContactParticipant"}},"required":["type"]}],"x-discriminator-values":{"type":"solibo.conversation.query.domain.SupplierContactParticipant"}},"ConversationMessagePayload":{"allOf":[{"$ref":"#/components/schemas/WebSocketPayload"},{"type":"object","properties":{"companyId":{"type":"integer","format":"int64"},"conversationId":{"type":"integer","format":"int64"},"message":{"$ref":"#/components/schemas/MessageInConversation"}},"required":["companyId","conversationId","message"]},{"type":"object","properties":{"type":{"const":"solibo.common.infrastructure.websockets.ConversationMessagePayload"}},"required":["type"]}],"x-discriminator-values":{"type":"solibo.common.infrastructure.websockets.ConversationMessagePayload"}},"MessageInConversation":{"type":"object","properties":{"content":{"type":"string"},"deletedAt":{"type":["string","null"],"format":"date-time"},"deliverability":{"items":{"$ref":"#/components/schemas/MessageDeliverability"},"type":"array"},"documents":{"items":{"$ref":"#/components/schemas/Document"},"type":"array"},"editedAt":{"type":["string","null"],"format":"date-time"},"emailContent":{"oneOf":[{"$ref":"#/components/schemas/MessageEmailContent"},{"type":"null"}]},"emailRecipients":{"oneOf":[{"$ref":"#/components/schemas/MessageEmailRecipients"},{"type":"null"}]},"id":{"type":"integer","format":"int64"},"inlineDocuments":{"items":{"$ref":"#/components/schemas/Document"},"type":"array"},"origin":{"$ref":"#/components/schemas/MessageOrigin"},"renderedContent":{"type":"string"},"sentAt":{"type":"string","format":"date-time"},"sentBy":{"oneOf":[{"$ref":"#/components/schemas/Participant"},{"type":"null"}]},"sentByCurrentUser":{"type":"boolean"},"sentById":{"type":"integer","format":"int64"},"type":{"$ref":"#/components/schemas/MessageType"}},"required":["content","id","sentAt","sentById"]},"MessageDeliverability":{"type":"object","properties":{"communicationType":{"$ref":"#/components/schemas/CommunicationMessageType"},"description":{"type":["string","null"]},"endpoint":{"type":"string"},"received":{"type":"boolean"},"state":{"$ref":"#/components/schemas/CommunicationState"},"updatedAt":{"type":"string","format":"date-time"}},"required":["endpoint","state","updatedAt"]},"MessageEmailContent":{"type":"object","properties":{"hasMoreContent":{"type":"boolean"},"html":{"type":["string","null"]},"plain":{"type":["string","null"]},"previewPlainContent":{"type":["string","null"]},"renderedHtml":{"type":["string","null"]}},"required":[]},"MessageEmailRecipients":{"type":"object","properties":{"copyRecipients":{"items":{"type":"string"},"type":"array"},"to":{"items":{"type":"string"},"type":"array"}},"required":[]},"ConversationTypingPayload":{"allOf":[{"$ref":"#/components/schemas/WebSocketPayload"},{"type":"object","properties":{"companyId":{"type":"integer","format":"int64"},"conversationId":{"type":"integer","format":"int64"},"name":{"type":"string"},"typing":{"type":"boolean"},"userId":{"type":"string","format":"uuid"}},"required":["companyId","conversationId","name","typing","userId"]},{"type":"object","properties":{"type":{"const":"solibo.common.infrastructure.websockets.ConversationTypingPayload"}},"required":["type"]}],"x-discriminator-values":{"type":"solibo.common.infrastructure.websockets.ConversationTypingPayload"}},"ConversationUpdatedPayload":{"allOf":[{"$ref":"#/components/schemas/WebSocketPayload"},{"type":"object","properties":{"companyId":{"type":"integer","format":"int64"},"conversationId":{"type":"integer","format":"int64"},"representAsBoard":{"type":"boolean"}},"required":["companyId","conversationId","representAsBoard"]},{"type":"object","properties":{"type":{"const":"solibo.common.infrastructure.websockets.ConversationUpdatedPayload"}},"required":["type"]}],"x-discriminator-values":{"type":"solibo.common.infrastructure.websockets.ConversationUpdatedPayload"}},"GenericPayload":{"allOf":[{"$ref":"#/components/schemas/WebSocketPayload"},{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]},{"type":"object","properties":{"type":{"const":"solibo.common.infrastructure.websockets.GenericPayload"}},"required":["type"]}],"x-discriminator-values":{"type":"solibo.common.infrastructure.websockets.GenericPayload"}},"Pong":{"allOf":[{"$ref":"#/components/schemas/WebSocketPayload"},{"type":"object"},{"type":"object","properties":{"type":{"const":"solibo.common.infrastructure.websockets.Pong"}},"required":["type"]}],"x-discriminator-values":{"type":"solibo.common.infrastructure.websockets.Pong"}},"IncomingEventBusMessageDiscriminator":{"enum":["solibo.common.infrastructure.websockets.Ping","solibo.common.infrastructure.websockets.Typing"],"type":"string"},"IncomingEventBusMessage":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/IncomingEventBusMessageDiscriminator"}},"required":["type"],"discriminator":"type","x-openapi-discriminator-mapping":{"solibo.common.infrastructure.websockets.Ping":"#/components/schemas/Ping","solibo.common.infrastructure.websockets.Typing":"#/components/schemas/Typing"}},"Ping":{"allOf":[{"$ref":"#/components/schemas/IncomingEventBusMessage"},{"type":"object"},{"type":"object","properties":{"type":{"const":"solibo.common.infrastructure.websockets.Ping"}},"required":["type"]}],"x-discriminator-values":{"type":"solibo.common.infrastructure.websockets.Ping"}},"Typing":{"allOf":[{"$ref":"#/components/schemas/IncomingEventBusMessage"},{"type":"object","properties":{"companyId":{"type":"integer","format":"int64"},"conversationId":{"type":"integer","format":"int64"},"typing":{"type":"boolean"}},"required":["companyId","conversationId","typing"]},{"type":"object","properties":{"type":{"const":"solibo.common.infrastructure.websockets.Typing"}},"required":["type"]}],"x-discriminator-values":{"type":"solibo.common.infrastructure.websockets.Typing"}}},"messages":{"incomingEventBusMessage":{"name":"IncomingEventBusMessage","title":"Client event bus command","summary":"A command sent from an authenticated client to the backend","contentType":"application/json","payload":{"$ref":"#/components/schemas/IncomingEventBusMessage"}},"webSocketPayload":{"name":"WebSocketPayload","title":"Server event bus event","summary":"A real-time event sent from the backend to an authenticated client","contentType":"application/json","payload":{"$ref":"#/components/schemas/WebSocketPayload"}}},"securitySchemes":{"soliboCookieAuth":{"type":"httpApiKey","name":"SOLIBO_HOME_0","in":"cookie","description":"Browser authentication uses one or more encrypted, HttpOnly `SOLIBO_HOME_{n}` cookie chunks. `SOLIBO_HOME_0` is the first chunk name represented by this security scheme."},"soliboBearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"Token envelope","description":"The bearer value is the token envelope: Base64URL-encoded JSON `{accessToken, identity, data}`, not a raw JWT."}}}}