From 2e688d16b27c55678b8408d40ae11044f9ea3a58 Mon Sep 17 00:00:00 2001 From: C0D3 M4513R <28912031+C0D3-M4513R@users.noreply.github.com> Date: Thu, 8 Oct 2026 07:36:46 -0400 Subject: [PATCH 1/4] feat(schemas): document the websocket message types --- openapi/components/schemas/Notification.yaml | 47 +----- .../components/schemas/NotificationBase.yaml | 36 +++++ .../NotificationDetailBoopEncoded.yaml | 12 ++ .../schemas/NotificationDetailEncoded.yaml | 26 ++++ .../NotificationDetailFriendRequest.yaml | 6 + ...otificationDetailFriendRequestEncoded.yaml | 12 ++ .../NotificationDetailInviteEncoded.yaml | 12 ++ ...tificationDetailInviteResponseEncoded.yaml | 12 ++ .../schemas/NotificationDetailMessage.yaml | 6 + .../NotificationDetailMessageEncoded.yaml | 12 ++ ...otificationDetailRequestInviteEncoded.yaml | 12 ++ ...ionDetailRequestInviteResponseEncoded.yaml | 12 ++ .../NotificationDetailVoteToKickEncoded.yaml | 12 ++ .../schemas/WebsocketClearNotification.yaml | 4 + .../schemas/WebsocketContentRefresh.yaml | 21 +++ .../WebsocketContentRefreshActionType.yaml | 9 ++ .../WebsocketContentRefreshContentType.yaml | 3 + .../WebsocketContentRefreshEncoded.yaml | 12 ++ .../schemas/WebsocketFriendActive.yaml | 13 ++ .../schemas/WebsocketFriendActiveEncoded.yaml | 12 ++ .../schemas/WebsocketFriendAdd.yaml | 10 ++ .../schemas/WebsocketFriendAddEncoded.yaml | 12 ++ .../schemas/WebsocketFriendDelete.yaml | 7 + .../schemas/WebsocketFriendDeleteEncoded.yaml | 12 ++ .../schemas/WebsocketFriendLocation.yaml | 22 +++ .../WebsocketFriendLocationEncoded.yaml | 12 ++ .../schemas/WebsocketFriendOffline.yaml | 10 ++ .../WebsocketFriendOfflineEncoded.yaml | 12 ++ .../schemas/WebsocketFriendOnline.yaml | 16 ++ .../schemas/WebsocketFriendOnlineEncoded.yaml | 12 ++ .../schemas/WebsocketFriendUpdate.yaml | 10 ++ .../schemas/WebsocketFriendUpdateEncoded.yaml | 12 ++ .../schemas/WebsocketGroupJoined.yaml | 7 + .../schemas/WebsocketGroupJoinedEncoded.yaml | 12 ++ .../schemas/WebsocketGroupLeft.yaml | 7 + .../schemas/WebsocketGroupLeftEncoded.yaml | 12 ++ .../schemas/WebsocketGroupMemberUpdated.yaml | 7 + .../WebsocketGroupMemberUpdatedEncoded.yaml | 12 ++ .../schemas/WebsocketGroupRoleUpdated.yaml | 7 + .../WebsocketGroupRoleUpdatedEncoded.yaml | 12 ++ .../schemas/WebsocketHideNotification.yaml | 7 + .../schemas/WebsocketInstanceQueueJoined.yaml | 10 ++ .../WebsocketInstanceQueueJoinedEncoded.yaml | 12 ++ .../schemas/WebsocketInstanceQueueReady.yaml | 11 ++ .../WebsocketInstanceQueueReadyEncoded.yaml | 12 ++ .../components/schemas/WebsocketMessage.yaml | 4 + .../schemas/WebsocketMessageDoubleJson.yaml | 56 +++++++ .../schemas/WebsocketMessageNormal.yaml | 16 ++ .../schemas/WebsocketNotification.yaml | 6 + .../schemas/WebsocketNotificationDetail.yaml | 23 +++ .../WebsocketNotificationDetailBoop.yaml | 7 + .../WebsocketNotificationDetailInvite.yaml | 7 + ...ocketNotificationDetailInviteResponse.yaml | 7 + ...socketNotificationDetailRequestInvite.yaml | 7 + ...tificationDetailRequestInviteResponse.yaml | 7 + ...WebsocketNotificationDetailVoteToKick.yaml | 7 + .../schemas/WebsocketNotificationEncoded.yaml | 12 ++ .../WebsocketNotificationV2Delete.yaml | 10 ++ .../WebsocketNotificationV2DeleteEncoded.yaml | 12 ++ .../WebsocketNotificationV2Encoded.yaml | 12 ++ .../WebsocketNotificationV2Update.yaml | 15 ++ .../WebsocketNotificationV2UpdateEncoded.yaml | 12 ++ .../WebsocketResponseNotification.yaml | 13 ++ .../WebsocketResponseNotificationEncoded.yaml | 12 ++ .../schemas/WebsocketSeeNotification.yaml | 7 + .../schemas/WebsocketUserBadgeAssigned.yaml | 7 + .../WebsocketUserBadgeAssignedEncoded.yaml | 12 ++ .../schemas/WebsocketUserBadgeUnassigned.yaml | 7 + .../WebsocketUserBadgeUnassignedEncoded.yaml | 12 ++ .../schemas/WebsocketUserLocation.yaml | 19 +++ .../schemas/WebsocketUserLocationEncoded.yaml | 12 ++ .../schemas/WebsocketUserUpdate.yaml | 10 ++ .../schemas/WebsocketUserUpdateEncoded.yaml | 12 ++ openapi/components/schemas/_index.yaml | 143 ++++++++++++++++++ 74 files changed, 1010 insertions(+), 42 deletions(-) create mode 100644 openapi/components/schemas/NotificationBase.yaml create mode 100644 openapi/components/schemas/NotificationDetailBoopEncoded.yaml create mode 100644 openapi/components/schemas/NotificationDetailEncoded.yaml create mode 100644 openapi/components/schemas/NotificationDetailFriendRequest.yaml create mode 100644 openapi/components/schemas/NotificationDetailFriendRequestEncoded.yaml create mode 100644 openapi/components/schemas/NotificationDetailInviteEncoded.yaml create mode 100644 openapi/components/schemas/NotificationDetailInviteResponseEncoded.yaml create mode 100644 openapi/components/schemas/NotificationDetailMessage.yaml create mode 100644 openapi/components/schemas/NotificationDetailMessageEncoded.yaml create mode 100644 openapi/components/schemas/NotificationDetailRequestInviteEncoded.yaml create mode 100644 openapi/components/schemas/NotificationDetailRequestInviteResponseEncoded.yaml create mode 100644 openapi/components/schemas/NotificationDetailVoteToKickEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketClearNotification.yaml create mode 100644 openapi/components/schemas/WebsocketContentRefresh.yaml create mode 100644 openapi/components/schemas/WebsocketContentRefreshActionType.yaml create mode 100644 openapi/components/schemas/WebsocketContentRefreshContentType.yaml create mode 100644 openapi/components/schemas/WebsocketContentRefreshEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketFriendActive.yaml create mode 100644 openapi/components/schemas/WebsocketFriendActiveEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketFriendAdd.yaml create mode 100644 openapi/components/schemas/WebsocketFriendAddEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketFriendDelete.yaml create mode 100644 openapi/components/schemas/WebsocketFriendDeleteEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketFriendLocation.yaml create mode 100644 openapi/components/schemas/WebsocketFriendLocationEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketFriendOffline.yaml create mode 100644 openapi/components/schemas/WebsocketFriendOfflineEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketFriendOnline.yaml create mode 100644 openapi/components/schemas/WebsocketFriendOnlineEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketFriendUpdate.yaml create mode 100644 openapi/components/schemas/WebsocketFriendUpdateEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketGroupJoined.yaml create mode 100644 openapi/components/schemas/WebsocketGroupJoinedEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketGroupLeft.yaml create mode 100644 openapi/components/schemas/WebsocketGroupLeftEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketGroupMemberUpdated.yaml create mode 100644 openapi/components/schemas/WebsocketGroupMemberUpdatedEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketGroupRoleUpdated.yaml create mode 100644 openapi/components/schemas/WebsocketGroupRoleUpdatedEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketHideNotification.yaml create mode 100644 openapi/components/schemas/WebsocketInstanceQueueJoined.yaml create mode 100644 openapi/components/schemas/WebsocketInstanceQueueJoinedEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketInstanceQueueReady.yaml create mode 100644 openapi/components/schemas/WebsocketInstanceQueueReadyEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketMessage.yaml create mode 100644 openapi/components/schemas/WebsocketMessageDoubleJson.yaml create mode 100644 openapi/components/schemas/WebsocketMessageNormal.yaml create mode 100644 openapi/components/schemas/WebsocketNotification.yaml create mode 100644 openapi/components/schemas/WebsocketNotificationDetail.yaml create mode 100644 openapi/components/schemas/WebsocketNotificationDetailBoop.yaml create mode 100644 openapi/components/schemas/WebsocketNotificationDetailInvite.yaml create mode 100644 openapi/components/schemas/WebsocketNotificationDetailInviteResponse.yaml create mode 100644 openapi/components/schemas/WebsocketNotificationDetailRequestInvite.yaml create mode 100644 openapi/components/schemas/WebsocketNotificationDetailRequestInviteResponse.yaml create mode 100644 openapi/components/schemas/WebsocketNotificationDetailVoteToKick.yaml create mode 100644 openapi/components/schemas/WebsocketNotificationEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketNotificationV2Delete.yaml create mode 100644 openapi/components/schemas/WebsocketNotificationV2DeleteEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketNotificationV2Encoded.yaml create mode 100644 openapi/components/schemas/WebsocketNotificationV2Update.yaml create mode 100644 openapi/components/schemas/WebsocketNotificationV2UpdateEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketResponseNotification.yaml create mode 100644 openapi/components/schemas/WebsocketResponseNotificationEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketSeeNotification.yaml create mode 100644 openapi/components/schemas/WebsocketUserBadgeAssigned.yaml create mode 100644 openapi/components/schemas/WebsocketUserBadgeAssignedEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketUserBadgeUnassigned.yaml create mode 100644 openapi/components/schemas/WebsocketUserBadgeUnassignedEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketUserLocation.yaml create mode 100644 openapi/components/schemas/WebsocketUserLocationEncoded.yaml create mode 100644 openapi/components/schemas/WebsocketUserUpdate.yaml create mode 100644 openapi/components/schemas/WebsocketUserUpdateEncoded.yaml diff --git a/openapi/components/schemas/Notification.yaml b/openapi/components/schemas/Notification.yaml index af17bca0..c55a4dc6 100644 --- a/openapi/components/schemas/Notification.yaml +++ b/openapi/components/schemas/Notification.yaml @@ -1,43 +1,6 @@ title: Notification -type: object -properties: - created_at: - type: string - format: date-time - details: - type: string - description: "**NOTICE:** This is not a JSON object when received from the REST API, but it is when received from the Websocket API. When received from the REST API, this is a json **encoded** object, meaning you have to json-de-encode to get the NotificationDetail object depending on the NotificationType." - default: "{}" - examples: - - "OneOf: {}, NotificationDetailBoop, NotificationDetailInvite, NotificationDetailInviteResponse, NotificationDetailRequestInvite, NotificationDetailRequestInviteResponse, NotificationDetailVoteToKick" - id: - type: string - minLength: 1 - message: - type: string - examples: - - This is a generated invite to VRChat Hub - receiverUserId: - $ref: ./UserID.yaml - description: Not included in notification objects received from the REST API - seen: - type: boolean - description: Not included in notification objects received from the Websocket API - default: false - senderUserId: - $ref: ./UserID.yaml - senderUsername: - type: - - string - - "null" - description: The name of the user who sent the notification. - minLength: 1 - type: - $ref: ./NotificationType.yaml -required: - - created_at - - details - - id - - message - - senderUserId - - type +allOf: + - title: base + $ref: ./NotificationBase.yaml + - title: detail + $ref: ./NotificationDetailEncoded.yaml diff --git a/openapi/components/schemas/NotificationBase.yaml b/openapi/components/schemas/NotificationBase.yaml new file mode 100644 index 00000000..23fe958b --- /dev/null +++ b/openapi/components/schemas/NotificationBase.yaml @@ -0,0 +1,36 @@ +title: NotificationBase +type: object +properties: + created_at: + type: string + format: date-time + id: + type: string + minLength: 1 + message: + type: string + examples: + - This is a generated invite to VRChat Hub + receiverUserId: + $ref: ./UserID.yaml + description: Not included in notification objects received from the REST API + seen: + type: boolean + description: Not included in notification objects received from the Websocket API + default: false + senderUserId: + $ref: ./UserID.yaml + senderUsername: + type: + - string + - "null" + description: The name of the user who sent the notification. + minLength: 1 + type: + $ref: ./NotificationType.yaml +required: + - created_at + - id + - message + - senderUserId + - type diff --git a/openapi/components/schemas/NotificationDetailBoopEncoded.yaml b/openapi/components/schemas/NotificationDetailBoopEncoded.yaml new file mode 100644 index 00000000..bcce4e99 --- /dev/null +++ b/openapi/components/schemas/NotificationDetailBoopEncoded.yaml @@ -0,0 +1,12 @@ +title: NotificationDetailBoopEncoded +type: object +properties: + details: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./NotificationDetailBoop.yaml + x-vrchat-double-encoding-type: NotificationDetailBoop +required: + - details +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/NotificationDetailEncoded.yaml b/openapi/components/schemas/NotificationDetailEncoded.yaml new file mode 100644 index 00000000..e68a40b7 --- /dev/null +++ b/openapi/components/schemas/NotificationDetailEncoded.yaml @@ -0,0 +1,26 @@ +title: NotificationDetail +properties: + type: + $ref: ./NotificationType.yaml +required: + - type +discriminator: + mapping: + boop: ./NotificationDetailBoopEncoded.yaml + friendRequest: ./NotificationDetailFriendRequestEncoded.yaml + invite: ./NotificationDetailInviteEncoded.yaml + inviteResponse: ./NotificationDetailInviteResponseEncoded.yaml + message: ./NotificationDetailMessageEncoded.yaml + requestInvite: ./NotificationDetailRequestInviteEncoded.yaml + requestInviteResponse: ./NotificationDetailRequestInviteResponseEncoded.yaml + votetokick: ./NotificationDetailVoteToKickEncoded.yaml + propertyName: type +oneOf: + - $ref: ./NotificationDetailBoopEncoded.yaml + - $ref: ./NotificationDetailFriendRequestEncoded.yaml + - $ref: ./NotificationDetailInviteEncoded.yaml + - $ref: ./NotificationDetailInviteResponseEncoded.yaml + - $ref: ./NotificationDetailMessageEncoded.yaml + - $ref: ./NotificationDetailRequestInviteEncoded.yaml + - $ref: ./NotificationDetailRequestInviteResponseEncoded.yaml + - $ref: ./NotificationDetailVoteToKickEncoded.yaml diff --git a/openapi/components/schemas/NotificationDetailFriendRequest.yaml b/openapi/components/schemas/NotificationDetailFriendRequest.yaml new file mode 100644 index 00000000..8b21376b --- /dev/null +++ b/openapi/components/schemas/NotificationDetailFriendRequest.yaml @@ -0,0 +1,6 @@ +title: NotificationDetailFriendRequest +type: object +properties: + # This exists to force generators to generate this struct, since it's referenced "manually" via `x-vrchat-double-encoding-type` + dontDeletePls: + type: integer diff --git a/openapi/components/schemas/NotificationDetailFriendRequestEncoded.yaml b/openapi/components/schemas/NotificationDetailFriendRequestEncoded.yaml new file mode 100644 index 00000000..7533b676 --- /dev/null +++ b/openapi/components/schemas/NotificationDetailFriendRequestEncoded.yaml @@ -0,0 +1,12 @@ +title: NotificationDetailFriendRequestEncoded +type: object +properties: + details: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./NotificationDetailFriendRequest.yaml + x-vrchat-double-encoding-type: NotificationDetailFriendRequest +required: + - details +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/NotificationDetailInviteEncoded.yaml b/openapi/components/schemas/NotificationDetailInviteEncoded.yaml new file mode 100644 index 00000000..d28d4ed3 --- /dev/null +++ b/openapi/components/schemas/NotificationDetailInviteEncoded.yaml @@ -0,0 +1,12 @@ +title: NotificationDetailInviteEncoded +type: object +properties: + details: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./NotificationDetailInvite.yaml + x-vrchat-double-encoding-type: NotificationDetailInvite +required: + - details +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/NotificationDetailInviteResponseEncoded.yaml b/openapi/components/schemas/NotificationDetailInviteResponseEncoded.yaml new file mode 100644 index 00000000..42bbf8a8 --- /dev/null +++ b/openapi/components/schemas/NotificationDetailInviteResponseEncoded.yaml @@ -0,0 +1,12 @@ +title: NotificationDetailInviteResponseEncoded +type: object +properties: + details: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./NotificationDetailInviteResponse.yaml + x-vrchat-double-encoding-type: NotificationDetailInviteResponse +required: + - details +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/NotificationDetailMessage.yaml b/openapi/components/schemas/NotificationDetailMessage.yaml new file mode 100644 index 00000000..ab97b63d --- /dev/null +++ b/openapi/components/schemas/NotificationDetailMessage.yaml @@ -0,0 +1,6 @@ +title: NotificationDetailMessage +type: object +properties: + # This exists to force generators to generate this struct, since it's referenced "manually" via `x-vrchat-double-encoding-type` + dontDeletePls: + type: integer diff --git a/openapi/components/schemas/NotificationDetailMessageEncoded.yaml b/openapi/components/schemas/NotificationDetailMessageEncoded.yaml new file mode 100644 index 00000000..627419e5 --- /dev/null +++ b/openapi/components/schemas/NotificationDetailMessageEncoded.yaml @@ -0,0 +1,12 @@ +title: NotificationDetailMessageEncoded +type: object +properties: + details: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./NotificationDetailMessage.yaml + x-vrchat-double-encoding-type: NotificationDetailMessage +required: + - details +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/NotificationDetailRequestInviteEncoded.yaml b/openapi/components/schemas/NotificationDetailRequestInviteEncoded.yaml new file mode 100644 index 00000000..d793cd40 --- /dev/null +++ b/openapi/components/schemas/NotificationDetailRequestInviteEncoded.yaml @@ -0,0 +1,12 @@ +title: NotificationDetailRequestInviteEncoded +type: object +properties: + details: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./NotificationDetailRequestInvite.yaml + x-vrchat-double-encoding-type: NotificationDetailRequestInvite +required: + - details +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/NotificationDetailRequestInviteResponseEncoded.yaml b/openapi/components/schemas/NotificationDetailRequestInviteResponseEncoded.yaml new file mode 100644 index 00000000..db0e9cd7 --- /dev/null +++ b/openapi/components/schemas/NotificationDetailRequestInviteResponseEncoded.yaml @@ -0,0 +1,12 @@ +title: NotificationDetailRequestInviteResponseEncoded +type: object +properties: + details: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./NotificationDetailRequestInviteResponse.yaml + x-vrchat-double-encoding-type: NotificationDetailRequestInviteResponse +required: + - details +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/NotificationDetailVoteToKickEncoded.yaml b/openapi/components/schemas/NotificationDetailVoteToKickEncoded.yaml new file mode 100644 index 00000000..452f698e --- /dev/null +++ b/openapi/components/schemas/NotificationDetailVoteToKickEncoded.yaml @@ -0,0 +1,12 @@ +title: NotificationDetailVoteToKickEncoded +type: object +properties: + details: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./NotificationDetailVoteToKick.yaml + x-vrchat-double-encoding-type: NotificationDetailVoteToKick +required: + - details +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketClearNotification.yaml b/openapi/components/schemas/WebsocketClearNotification.yaml new file mode 100644 index 00000000..637b44b6 --- /dev/null +++ b/openapi/components/schemas/WebsocketClearNotification.yaml @@ -0,0 +1,4 @@ +title: WebsocketClearNotification +type: object +# Todo: is this correct, or is some special handling necessary in WebsocketMessageNormal? +additionalProperties: false diff --git a/openapi/components/schemas/WebsocketContentRefresh.yaml b/openapi/components/schemas/WebsocketContentRefresh.yaml new file mode 100644 index 00000000..968f5dee --- /dev/null +++ b/openapi/components/schemas/WebsocketContentRefresh.yaml @@ -0,0 +1,21 @@ +title: WebsocketContentRefresh +type: object +properties: + actionType: + $ref: ./WebsocketContentRefreshActionType.yaml + contentType: + $ref: ./WebsocketContentRefreshContentType.yaml + fileId: + $ref: ./FileID.yaml + itemId: + # TODO: is this correct? + $ref: ./InventoryTemplateID.yaml + itemType: + # TODO: is this correct? + $ref: ./InventoryItemType.yaml +required: + - actionType + - contentType + - fileId + - itemId + - itemType diff --git a/openapi/components/schemas/WebsocketContentRefreshActionType.yaml b/openapi/components/schemas/WebsocketContentRefreshActionType.yaml new file mode 100644 index 00000000..6a8812c1 --- /dev/null +++ b/openapi/components/schemas/WebsocketContentRefreshActionType.yaml @@ -0,0 +1,9 @@ +title: WebsocketContentRefreshActionType +type: string +enum: + - add + - created + - delete + - deleted +examples: + - created diff --git a/openapi/components/schemas/WebsocketContentRefreshContentType.yaml b/openapi/components/schemas/WebsocketContentRefreshContentType.yaml new file mode 100644 index 00000000..a9ca170b --- /dev/null +++ b/openapi/components/schemas/WebsocketContentRefreshContentType.yaml @@ -0,0 +1,3 @@ +title: WebsocketContentRefreshContentType +type: string +# Todo: How to type this, since this is technically a non-exhaustive enum? diff --git a/openapi/components/schemas/WebsocketContentRefreshEncoded.yaml b/openapi/components/schemas/WebsocketContentRefreshEncoded.yaml new file mode 100644 index 00000000..d2eca570 --- /dev/null +++ b/openapi/components/schemas/WebsocketContentRefreshEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketContentRefreshEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketContentRefresh.yaml + x-vrchat-double-encoding-type: WebsocketContentRefresh +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketFriendActive.yaml b/openapi/components/schemas/WebsocketFriendActive.yaml new file mode 100644 index 00000000..294fc5d2 --- /dev/null +++ b/openapi/components/schemas/WebsocketFriendActive.yaml @@ -0,0 +1,13 @@ +title: WebsocketFriendActive +type: object +properties: + platform: + $ref: ./Platform.yaml + user: + $ref: ./User.yaml + userId: + $ref: ./UserID.yaml +required: + - platform + - user + - userId diff --git a/openapi/components/schemas/WebsocketFriendActiveEncoded.yaml b/openapi/components/schemas/WebsocketFriendActiveEncoded.yaml new file mode 100644 index 00000000..219a9959 --- /dev/null +++ b/openapi/components/schemas/WebsocketFriendActiveEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketFriendActiveEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketFriendActive.yaml + x-vrchat-double-encoding-type: WebsocketFriendActive +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketFriendAdd.yaml b/openapi/components/schemas/WebsocketFriendAdd.yaml new file mode 100644 index 00000000..0703a2e7 --- /dev/null +++ b/openapi/components/schemas/WebsocketFriendAdd.yaml @@ -0,0 +1,10 @@ +title: WebsocketFriendAdd +type: object +properties: + user: + $ref: ./User.yaml + userId: + $ref: ./UserID.yaml +required: + - user + - userId diff --git a/openapi/components/schemas/WebsocketFriendAddEncoded.yaml b/openapi/components/schemas/WebsocketFriendAddEncoded.yaml new file mode 100644 index 00000000..02368a18 --- /dev/null +++ b/openapi/components/schemas/WebsocketFriendAddEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketFriendAddEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketFriendAdd.yaml + x-vrchat-double-encoding-type: WebsocketFriendAdd +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketFriendDelete.yaml b/openapi/components/schemas/WebsocketFriendDelete.yaml new file mode 100644 index 00000000..d30c989b --- /dev/null +++ b/openapi/components/schemas/WebsocketFriendDelete.yaml @@ -0,0 +1,7 @@ +title: WebsocketFriendDelete +type: object +properties: + userId: + $ref: ./UserID.yaml +required: + - userId diff --git a/openapi/components/schemas/WebsocketFriendDeleteEncoded.yaml b/openapi/components/schemas/WebsocketFriendDeleteEncoded.yaml new file mode 100644 index 00000000..1545f0e1 --- /dev/null +++ b/openapi/components/schemas/WebsocketFriendDeleteEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketFriendDeleteEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketFriendDelete.yaml + x-vrchat-double-encoding-type: WebsocketFriendDelete +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketFriendLocation.yaml b/openapi/components/schemas/WebsocketFriendLocation.yaml new file mode 100644 index 00000000..f052dfdd --- /dev/null +++ b/openapi/components/schemas/WebsocketFriendLocation.yaml @@ -0,0 +1,22 @@ +title: WebsocketFriendLocation +type: object +properties: + canRequestInvite: + type: boolean + location: + $ref: ./LocationID.yaml + travelingToLocation: + $ref: ./LocationID.yaml + user: + $ref: ./User.yaml + userId: + $ref: ./UserID.yaml + worldId: + $ref: ./WorldID.yaml +required: + - canRequestInvite + - location + - travelingToLocation + - user + - userId + - worldId diff --git a/openapi/components/schemas/WebsocketFriendLocationEncoded.yaml b/openapi/components/schemas/WebsocketFriendLocationEncoded.yaml new file mode 100644 index 00000000..e9b5547a --- /dev/null +++ b/openapi/components/schemas/WebsocketFriendLocationEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketFriendLocationEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketFriendLocation.yaml + x-vrchat-double-encoding-type: WebsocketFriendLocation +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketFriendOffline.yaml b/openapi/components/schemas/WebsocketFriendOffline.yaml new file mode 100644 index 00000000..93a8c9d4 --- /dev/null +++ b/openapi/components/schemas/WebsocketFriendOffline.yaml @@ -0,0 +1,10 @@ +title: WebsocketFriendOffline +type: object +properties: + platform: + $ref: ./Platform.yaml + userId: + $ref: ./UserID.yaml +required: + - platform + - userId diff --git a/openapi/components/schemas/WebsocketFriendOfflineEncoded.yaml b/openapi/components/schemas/WebsocketFriendOfflineEncoded.yaml new file mode 100644 index 00000000..28b6aaf3 --- /dev/null +++ b/openapi/components/schemas/WebsocketFriendOfflineEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketFriendOfflineEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketFriendOffline.yaml + x-vrchat-double-encoding-type: WebsocketFriendOffline +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketFriendOnline.yaml b/openapi/components/schemas/WebsocketFriendOnline.yaml new file mode 100644 index 00000000..9f51e998 --- /dev/null +++ b/openapi/components/schemas/WebsocketFriendOnline.yaml @@ -0,0 +1,16 @@ +title: WebsocketFriendOnline +type: object +properties: + canRequestInvite: + type: boolean + location: + $ref: ./LocationID.yaml + platform: + $ref: ./Platform.yaml + userId: + $ref: ./UserID.yaml +required: + - canRequestInvite + - location + - platform + - userId diff --git a/openapi/components/schemas/WebsocketFriendOnlineEncoded.yaml b/openapi/components/schemas/WebsocketFriendOnlineEncoded.yaml new file mode 100644 index 00000000..29234b1c --- /dev/null +++ b/openapi/components/schemas/WebsocketFriendOnlineEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketFriendOnlineEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketFriendOnline.yaml + x-vrchat-double-encoding-type: WebsocketFriendOnline +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketFriendUpdate.yaml b/openapi/components/schemas/WebsocketFriendUpdate.yaml new file mode 100644 index 00000000..b6e6b8e4 --- /dev/null +++ b/openapi/components/schemas/WebsocketFriendUpdate.yaml @@ -0,0 +1,10 @@ +title: WebsocketFriendUpdate +type: object +properties: + user: + $ref: ./User.yaml + userId: + $ref: ./UserID.yaml +required: + - user + - userId diff --git a/openapi/components/schemas/WebsocketFriendUpdateEncoded.yaml b/openapi/components/schemas/WebsocketFriendUpdateEncoded.yaml new file mode 100644 index 00000000..11d97741 --- /dev/null +++ b/openapi/components/schemas/WebsocketFriendUpdateEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketFriendUpdateEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketFriendUpdate.yaml + x-vrchat-double-encoding-type: WebsocketFriendUpdate +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketGroupJoined.yaml b/openapi/components/schemas/WebsocketGroupJoined.yaml new file mode 100644 index 00000000..2014e644 --- /dev/null +++ b/openapi/components/schemas/WebsocketGroupJoined.yaml @@ -0,0 +1,7 @@ +title: WebsocketGroupJoined +type: object +properties: + groupId: + $ref: ./GroupID.yaml +required: + - groupId diff --git a/openapi/components/schemas/WebsocketGroupJoinedEncoded.yaml b/openapi/components/schemas/WebsocketGroupJoinedEncoded.yaml new file mode 100644 index 00000000..4f1afd8c --- /dev/null +++ b/openapi/components/schemas/WebsocketGroupJoinedEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketGroupJoinedEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketGroupJoined.yaml + x-vrchat-double-encoding-type: WebsocketGroupJoined +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketGroupLeft.yaml b/openapi/components/schemas/WebsocketGroupLeft.yaml new file mode 100644 index 00000000..2d1613f3 --- /dev/null +++ b/openapi/components/schemas/WebsocketGroupLeft.yaml @@ -0,0 +1,7 @@ +title: WebsocketGroupLeft +type: object +properties: + groupId: + $ref: ./GroupID.yaml +required: + - groupId diff --git a/openapi/components/schemas/WebsocketGroupLeftEncoded.yaml b/openapi/components/schemas/WebsocketGroupLeftEncoded.yaml new file mode 100644 index 00000000..f0556b9e --- /dev/null +++ b/openapi/components/schemas/WebsocketGroupLeftEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketGroupLeftEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketGroupLeft.yaml + x-vrchat-double-encoding-type: WebsocketGroupLeft +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketGroupMemberUpdated.yaml b/openapi/components/schemas/WebsocketGroupMemberUpdated.yaml new file mode 100644 index 00000000..e9cea6bf --- /dev/null +++ b/openapi/components/schemas/WebsocketGroupMemberUpdated.yaml @@ -0,0 +1,7 @@ +title: WebsocketGroupMemberUpdated +type: object +properties: + member: + $ref: ./GroupMemberLimitedUser.yaml +required: + - member diff --git a/openapi/components/schemas/WebsocketGroupMemberUpdatedEncoded.yaml b/openapi/components/schemas/WebsocketGroupMemberUpdatedEncoded.yaml new file mode 100644 index 00000000..972f6a3b --- /dev/null +++ b/openapi/components/schemas/WebsocketGroupMemberUpdatedEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketGroupMemberUpdatedEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketGroupMemberUpdated.yaml + x-vrchat-double-encoding-type: WebsocketGroupMemberUpdated +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketGroupRoleUpdated.yaml b/openapi/components/schemas/WebsocketGroupRoleUpdated.yaml new file mode 100644 index 00000000..bdfa8302 --- /dev/null +++ b/openapi/components/schemas/WebsocketGroupRoleUpdated.yaml @@ -0,0 +1,7 @@ +title: WebsocketGroupRoleUpdated +type: object +properties: + role: + $ref: ./GroupRole.yaml +required: + - role diff --git a/openapi/components/schemas/WebsocketGroupRoleUpdatedEncoded.yaml b/openapi/components/schemas/WebsocketGroupRoleUpdatedEncoded.yaml new file mode 100644 index 00000000..40dd2ca8 --- /dev/null +++ b/openapi/components/schemas/WebsocketGroupRoleUpdatedEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketGroupRoleUpdatedEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketGroupRoleUpdated.yaml + x-vrchat-double-encoding-type: WebsocketGroupRoleUpdated +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketHideNotification.yaml b/openapi/components/schemas/WebsocketHideNotification.yaml new file mode 100644 index 00000000..199ba5f4 --- /dev/null +++ b/openapi/components/schemas/WebsocketHideNotification.yaml @@ -0,0 +1,7 @@ +title: WebsocketHideNotification +type: object +properties: + content: + $ref: ./NotificationID.yaml +required: + - content diff --git a/openapi/components/schemas/WebsocketInstanceQueueJoined.yaml b/openapi/components/schemas/WebsocketInstanceQueueJoined.yaml new file mode 100644 index 00000000..a8c96408 --- /dev/null +++ b/openapi/components/schemas/WebsocketInstanceQueueJoined.yaml @@ -0,0 +1,10 @@ +title: WebsocketInstanceQueueJoined +type: object +properties: + location: + $ref: ./LocationID.yaml + position: + type: integer +required: + - location + - position diff --git a/openapi/components/schemas/WebsocketInstanceQueueJoinedEncoded.yaml b/openapi/components/schemas/WebsocketInstanceQueueJoinedEncoded.yaml new file mode 100644 index 00000000..1d1ba93e --- /dev/null +++ b/openapi/components/schemas/WebsocketInstanceQueueJoinedEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketInstanceQueueJoinedEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketInstanceQueueJoined.yaml + x-vrchat-double-encoding-type: WebsocketInstanceQueueJoined +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketInstanceQueueReady.yaml b/openapi/components/schemas/WebsocketInstanceQueueReady.yaml new file mode 100644 index 00000000..d2647997 --- /dev/null +++ b/openapi/components/schemas/WebsocketInstanceQueueReady.yaml @@ -0,0 +1,11 @@ +title: WebsocketInstanceQueueReady +type: object +properties: + expiry: + type: string + format: date-time + location: + $ref: ./LocationID.yaml +required: + - expiry + - location diff --git a/openapi/components/schemas/WebsocketInstanceQueueReadyEncoded.yaml b/openapi/components/schemas/WebsocketInstanceQueueReadyEncoded.yaml new file mode 100644 index 00000000..e715f178 --- /dev/null +++ b/openapi/components/schemas/WebsocketInstanceQueueReadyEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketInstanceQueueReadyEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketInstanceQueueReady.yaml + x-vrchat-double-encoding-type: WebsocketInstanceQueueReady +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketMessage.yaml b/openapi/components/schemas/WebsocketMessage.yaml new file mode 100644 index 00000000..ca9b9e89 --- /dev/null +++ b/openapi/components/schemas/WebsocketMessage.yaml @@ -0,0 +1,4 @@ +title: WebsocketMessage +oneOf: + - $ref: ./WebsocketMessageNormal.yaml + - $ref: ./WebsocketMessageDoubleJson.yaml diff --git a/openapi/components/schemas/WebsocketMessageDoubleJson.yaml b/openapi/components/schemas/WebsocketMessageDoubleJson.yaml new file mode 100644 index 00000000..504a6d30 --- /dev/null +++ b/openapi/components/schemas/WebsocketMessageDoubleJson.yaml @@ -0,0 +1,56 @@ +title: WebsocketMessageDoubleJson +properties: + type: + type: string +required: + - type +discriminator: + mapping: + content-refresh: ./WebsocketContentRefreshEncoded.yaml + friend-active: ./WebsocketFriendActiveEncoded.yaml + friend-add: ./WebsocketFriendAddEncoded.yaml + friend-delete: ./WebsocketFriendDeleteEncoded.yaml + friend-location: ./WebsocketFriendLocationEncoded.yaml + friend-offline: ./WebsocketFriendOfflineEncoded.yaml + friend-online: ./WebsocketFriendOnlineEncoded.yaml + friend-update: ./WebsocketFriendUpdateEncoded.yaml + group-joined: ./WebsocketGroupJoinedEncoded.yaml + group-left: ./WebsocketGroupLeftEncoded.yaml + group-member-updated: ./WebsocketGroupMemberUpdatedEncoded.yaml + group-role-updated: ./WebsocketGroupRoleUpdatedEncoded.yaml + instance-queue-joined: ./WebsocketInstanceQueueJoinedEncoded.yaml + instance-queue-ready: ./WebsocketInstanceQueueReadyEncoded.yaml + notification: ./WebsocketNotificationEncoded.yaml + notification-v2: ./WebsocketNotificationV2Encoded.yaml + notification-v2-delete: ./WebsocketNotificationV2DeleteEncoded.yaml + notification-v2-update: ./WebsocketNotificationV2UpdateEncoded.yaml + response-notification: ./WebsocketResponseNotificationEncoded.yaml + user-badge-assigned: ./WebsocketUserBadgeAssignedEncoded.yaml + user-badge-unassigned: ./WebsocketUserBadgeUnassignedEncoded.yaml + user-location: ./WebsocketUserLocationEncoded.yaml + user-update: ./WebsocketUserUpdateEncoded.yaml + propertyName: type +oneOf: + - $ref: ./WebsocketContentRefreshEncoded.yaml + - $ref: ./WebsocketFriendActiveEncoded.yaml + - $ref: ./WebsocketFriendAddEncoded.yaml + - $ref: ./WebsocketFriendDeleteEncoded.yaml + - $ref: ./WebsocketFriendLocationEncoded.yaml + - $ref: ./WebsocketFriendOfflineEncoded.yaml + - $ref: ./WebsocketFriendOnlineEncoded.yaml + - $ref: ./WebsocketFriendUpdateEncoded.yaml + - $ref: ./WebsocketGroupJoinedEncoded.yaml + - $ref: ./WebsocketGroupLeftEncoded.yaml + - $ref: ./WebsocketGroupMemberUpdatedEncoded.yaml + - $ref: ./WebsocketGroupRoleUpdatedEncoded.yaml + - $ref: ./WebsocketInstanceQueueJoinedEncoded.yaml + - $ref: ./WebsocketInstanceQueueReadyEncoded.yaml + - $ref: ./WebsocketNotificationEncoded.yaml + - $ref: ./WebsocketNotificationV2Encoded.yaml + - $ref: ./WebsocketNotificationV2DeleteEncoded.yaml + - $ref: ./WebsocketNotificationV2UpdateEncoded.yaml + - $ref: ./WebsocketResponseNotificationEncoded.yaml + - $ref: ./WebsocketUserBadgeAssignedEncoded.yaml + - $ref: ./WebsocketUserBadgeUnassignedEncoded.yaml + - $ref: ./WebsocketUserLocationEncoded.yaml + - $ref: ./WebsocketUserUpdateEncoded.yaml diff --git a/openapi/components/schemas/WebsocketMessageNormal.yaml b/openapi/components/schemas/WebsocketMessageNormal.yaml new file mode 100644 index 00000000..649642a3 --- /dev/null +++ b/openapi/components/schemas/WebsocketMessageNormal.yaml @@ -0,0 +1,16 @@ +title: WebsocketMessageNormal +properties: + type: + type: string +required: + - type +discriminator: + mapping: + clear-notification: ./WebsocketClearNotification.yaml + hide-notification: ./WebsocketHideNotification.yaml + see-notification: ./WebsocketSeeNotification.yaml + propertyName: type +oneOf: + - $ref: ./WebsocketSeeNotification.yaml + - $ref: ./WebsocketHideNotification.yaml + - $ref: ./WebsocketClearNotification.yaml diff --git a/openapi/components/schemas/WebsocketNotification.yaml b/openapi/components/schemas/WebsocketNotification.yaml new file mode 100644 index 00000000..6a99a4a3 --- /dev/null +++ b/openapi/components/schemas/WebsocketNotification.yaml @@ -0,0 +1,6 @@ +title: WebsocketNotification +allOf: + - title: base + $ref: ./NotificationBase.yaml + - title: detail + $ref: ./WebsocketNotificationDetail.yaml diff --git a/openapi/components/schemas/WebsocketNotificationDetail.yaml b/openapi/components/schemas/WebsocketNotificationDetail.yaml new file mode 100644 index 00000000..8e843cf4 --- /dev/null +++ b/openapi/components/schemas/WebsocketNotificationDetail.yaml @@ -0,0 +1,23 @@ +title: WebsocketNotificationDetail +type: object +properties: + type: + type: string +required: + - type +discriminator: + mapping: + boop: ./WebsocketNotificationDetailBoop.yaml + invite: ./WebsocketNotificationDetailInvite.yaml + invite-response: ./WebsocketNotificationDetailInviteResponse.yaml + request-invite: ./WebsocketNotificationDetailRequestInvite.yaml + request-invite-response: ./WebsocketNotificationDetailRequestInviteResponse.yaml + vote-to-kick: ./WebsocketNotificationDetailVoteToKick.yaml + propertyName: type +oneOf: + - $ref: ./WebsocketNotificationDetailBoop.yaml + - $ref: ./WebsocketNotificationDetailInvite.yaml + - $ref: ./WebsocketNotificationDetailInviteResponse.yaml + - $ref: ./WebsocketNotificationDetailRequestInvite.yaml + - $ref: ./WebsocketNotificationDetailRequestInviteResponse.yaml + - $ref: ./WebsocketNotificationDetailVoteToKick.yaml diff --git a/openapi/components/schemas/WebsocketNotificationDetailBoop.yaml b/openapi/components/schemas/WebsocketNotificationDetailBoop.yaml new file mode 100644 index 00000000..1562ba77 --- /dev/null +++ b/openapi/components/schemas/WebsocketNotificationDetailBoop.yaml @@ -0,0 +1,7 @@ +title: WebsocketNotificationDetailBoop +type: object +properties: + details: + $ref: ./NotificationDetailBoop.yaml +required: + - details diff --git a/openapi/components/schemas/WebsocketNotificationDetailInvite.yaml b/openapi/components/schemas/WebsocketNotificationDetailInvite.yaml new file mode 100644 index 00000000..ccfada6d --- /dev/null +++ b/openapi/components/schemas/WebsocketNotificationDetailInvite.yaml @@ -0,0 +1,7 @@ +title: WebsocketNotificationDetailInvite +type: object +properties: + details: + $ref: ./NotificationDetailInvite.yaml +required: + - details diff --git a/openapi/components/schemas/WebsocketNotificationDetailInviteResponse.yaml b/openapi/components/schemas/WebsocketNotificationDetailInviteResponse.yaml new file mode 100644 index 00000000..6e94a414 --- /dev/null +++ b/openapi/components/schemas/WebsocketNotificationDetailInviteResponse.yaml @@ -0,0 +1,7 @@ +title: WebsocketNotificationDetailInviteResponse +type: object +properties: + details: + $ref: ./NotificationDetailInviteResponse.yaml +required: + - details diff --git a/openapi/components/schemas/WebsocketNotificationDetailRequestInvite.yaml b/openapi/components/schemas/WebsocketNotificationDetailRequestInvite.yaml new file mode 100644 index 00000000..a1761056 --- /dev/null +++ b/openapi/components/schemas/WebsocketNotificationDetailRequestInvite.yaml @@ -0,0 +1,7 @@ +title: WebsocketNotificationDetailRequestInvite +type: object +properties: + details: + $ref: ./NotificationDetailRequestInvite.yaml +required: + - details diff --git a/openapi/components/schemas/WebsocketNotificationDetailRequestInviteResponse.yaml b/openapi/components/schemas/WebsocketNotificationDetailRequestInviteResponse.yaml new file mode 100644 index 00000000..3ef850b9 --- /dev/null +++ b/openapi/components/schemas/WebsocketNotificationDetailRequestInviteResponse.yaml @@ -0,0 +1,7 @@ +title: WebsocketNotificationDetailRequestInviteResponse +type: object +properties: + details: + $ref: ./NotificationDetailRequestInviteResponse.yaml +required: + - details diff --git a/openapi/components/schemas/WebsocketNotificationDetailVoteToKick.yaml b/openapi/components/schemas/WebsocketNotificationDetailVoteToKick.yaml new file mode 100644 index 00000000..c02c3b3f --- /dev/null +++ b/openapi/components/schemas/WebsocketNotificationDetailVoteToKick.yaml @@ -0,0 +1,7 @@ +title: WebsocketNotificationDetailVoteToKick +type: object +properties: + details: + $ref: ./NotificationDetailVoteToKick.yaml +required: + - details diff --git a/openapi/components/schemas/WebsocketNotificationEncoded.yaml b/openapi/components/schemas/WebsocketNotificationEncoded.yaml new file mode 100644 index 00000000..9441eff2 --- /dev/null +++ b/openapi/components/schemas/WebsocketNotificationEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketNotificationEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketNotification.yaml + x-vrchat-double-encoding-type: WebsocketNotification +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketNotificationV2Delete.yaml b/openapi/components/schemas/WebsocketNotificationV2Delete.yaml new file mode 100644 index 00000000..b4b4bee8 --- /dev/null +++ b/openapi/components/schemas/WebsocketNotificationV2Delete.yaml @@ -0,0 +1,10 @@ +title: WebsocketNotificationV2Delete +type: object +properties: + id: + $ref: ./NotificationID.yaml + version: + type: integer +required: + - id + - version diff --git a/openapi/components/schemas/WebsocketNotificationV2DeleteEncoded.yaml b/openapi/components/schemas/WebsocketNotificationV2DeleteEncoded.yaml new file mode 100644 index 00000000..74becd95 --- /dev/null +++ b/openapi/components/schemas/WebsocketNotificationV2DeleteEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketNotificationV2DeleteEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketNotificationV2Delete.yaml + x-vrchat-double-encoding-type: WebsocketNotificationV2Delete +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketNotificationV2Encoded.yaml b/openapi/components/schemas/WebsocketNotificationV2Encoded.yaml new file mode 100644 index 00000000..61d8b74d --- /dev/null +++ b/openapi/components/schemas/WebsocketNotificationV2Encoded.yaml @@ -0,0 +1,12 @@ +title: NotificationV2Encoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./NotificationV2.yaml + x-vrchat-double-encoding-type: NotificationV2 +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketNotificationV2Update.yaml b/openapi/components/schemas/WebsocketNotificationV2Update.yaml new file mode 100644 index 00000000..173402b0 --- /dev/null +++ b/openapi/components/schemas/WebsocketNotificationV2Update.yaml @@ -0,0 +1,15 @@ +title: WebsocketNotificationV2Update +type: object +properties: + id: + $ref: ./NotificationID.yaml + updates: + title: WebsocketNotificationV2Updates + # Todo: type this better + type: object + version: + type: integer +required: + - id + - updates + - version diff --git a/openapi/components/schemas/WebsocketNotificationV2UpdateEncoded.yaml b/openapi/components/schemas/WebsocketNotificationV2UpdateEncoded.yaml new file mode 100644 index 00000000..b0766fb1 --- /dev/null +++ b/openapi/components/schemas/WebsocketNotificationV2UpdateEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketNotificationV2UpdateEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketNotificationV2Update.yaml + x-vrchat-double-encoding-type: WebsocketNotificationV2Update +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketResponseNotification.yaml b/openapi/components/schemas/WebsocketResponseNotification.yaml new file mode 100644 index 00000000..c15c648f --- /dev/null +++ b/openapi/components/schemas/WebsocketResponseNotification.yaml @@ -0,0 +1,13 @@ +title: WebsocketResponseNotification +type: object +properties: + notificationId: + type: string + receiverId: + $ref: ./UserID.yaml + responseId: + $ref: ./UserID.yaml +required: + - notificationId + - receiverId + - responseId diff --git a/openapi/components/schemas/WebsocketResponseNotificationEncoded.yaml b/openapi/components/schemas/WebsocketResponseNotificationEncoded.yaml new file mode 100644 index 00000000..ce9aa6b1 --- /dev/null +++ b/openapi/components/schemas/WebsocketResponseNotificationEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketResponseNotificationEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketResponseNotification.yaml + x-vrchat-double-encoding-type: WebsocketResponseNotification +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketSeeNotification.yaml b/openapi/components/schemas/WebsocketSeeNotification.yaml new file mode 100644 index 00000000..459e4d2e --- /dev/null +++ b/openapi/components/schemas/WebsocketSeeNotification.yaml @@ -0,0 +1,7 @@ +title: WebsocketSeeNotification +type: object +properties: + content: + $ref: ./NotificationID.yaml +required: + - content diff --git a/openapi/components/schemas/WebsocketUserBadgeAssigned.yaml b/openapi/components/schemas/WebsocketUserBadgeAssigned.yaml new file mode 100644 index 00000000..ee4b61ea --- /dev/null +++ b/openapi/components/schemas/WebsocketUserBadgeAssigned.yaml @@ -0,0 +1,7 @@ +title: WebsocketUserBadgeAssigned +type: object +properties: + badge: + $ref: ./Badge.yaml +required: + - badge diff --git a/openapi/components/schemas/WebsocketUserBadgeAssignedEncoded.yaml b/openapi/components/schemas/WebsocketUserBadgeAssignedEncoded.yaml new file mode 100644 index 00000000..bf6d26ec --- /dev/null +++ b/openapi/components/schemas/WebsocketUserBadgeAssignedEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketUserBadgeAssignedEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketUserBadgeAssigned.yaml + x-vrchat-double-encoding-type: WebsocketUserBadgeAssigned +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketUserBadgeUnassigned.yaml b/openapi/components/schemas/WebsocketUserBadgeUnassigned.yaml new file mode 100644 index 00000000..d95332a7 --- /dev/null +++ b/openapi/components/schemas/WebsocketUserBadgeUnassigned.yaml @@ -0,0 +1,7 @@ +title: WebsocketUserBadgeUnassigned +type: object +properties: + badgeId: + $ref: ./BadgeID.yaml +required: + - badgeId diff --git a/openapi/components/schemas/WebsocketUserBadgeUnassignedEncoded.yaml b/openapi/components/schemas/WebsocketUserBadgeUnassignedEncoded.yaml new file mode 100644 index 00000000..3be07471 --- /dev/null +++ b/openapi/components/schemas/WebsocketUserBadgeUnassignedEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketUserBadgeUnassignedEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketUserBadgeUnassigned.yaml + x-vrchat-double-encoding-type: WebsocketUserBadgeUnassigned +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketUserLocation.yaml b/openapi/components/schemas/WebsocketUserLocation.yaml new file mode 100644 index 00000000..732dfeb6 --- /dev/null +++ b/openapi/components/schemas/WebsocketUserLocation.yaml @@ -0,0 +1,19 @@ +title: WebsocketUserLocation +type: object +properties: + instance: + $ref: ./InstanceID.yaml + location: + $ref: ./LocationID.yaml + travelingToLocation: + $ref: ./LocationID.yaml + user: + $ref: ./User.yaml + userId: + $ref: ./UserID.yaml +required: + - instance + - location + - travelingToLocation + - user + - userId diff --git a/openapi/components/schemas/WebsocketUserLocationEncoded.yaml b/openapi/components/schemas/WebsocketUserLocationEncoded.yaml new file mode 100644 index 00000000..de398310 --- /dev/null +++ b/openapi/components/schemas/WebsocketUserLocationEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketUserLocationEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketUserLocation.yaml + x-vrchat-double-encoding-type: WebsocketUserLocation +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketUserUpdate.yaml b/openapi/components/schemas/WebsocketUserUpdate.yaml new file mode 100644 index 00000000..50346146 --- /dev/null +++ b/openapi/components/schemas/WebsocketUserUpdate.yaml @@ -0,0 +1,10 @@ +title: WebsocketUserUpdate +type: object +properties: + user: + $ref: ./User.yaml + userId: + $ref: ./UserID.yaml +required: + - user + - userId diff --git a/openapi/components/schemas/WebsocketUserUpdateEncoded.yaml b/openapi/components/schemas/WebsocketUserUpdateEncoded.yaml new file mode 100644 index 00000000..2a104d26 --- /dev/null +++ b/openapi/components/schemas/WebsocketUserUpdateEncoded.yaml @@ -0,0 +1,12 @@ +title: WebsocketUserUpdateEncoded +type: object +properties: + content: + type: string + contentMediaType: application/json + contentSchema: + $ref: ./WebsocketUserUpdate.yaml + x-vrchat-double-encoding-type: WebsocketUserUpdate +required: + - content +x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/_index.yaml b/openapi/components/schemas/_index.yaml index dccdc0b0..ccd72855 100644 --- a/openapi/components/schemas/_index.yaml +++ b/openapi/components/schemas/_index.yaml @@ -1,12 +1,155 @@ +NotificationDetailBoop: + $ref: ./NotificationDetailBoop.yaml +NotificationDetailEncoded: + $ref: ./NotificationDetailEncoded.yaml +NotificationDetailFriendRequest: + $ref: ./NotificationDetailFriendRequest.yaml +NotificationDetailFriendRequestEncoded: + $ref: ./NotificationDetailFriendRequestEncoded.yaml NotificationDetailInvite: $ref: ./NotificationDetailInvite.yaml +NotificationDetailInviteEncoded: + $ref: ./NotificationDetailInviteEncoded.yaml NotificationDetailInviteResponse: $ref: ./NotificationDetailInviteResponse.yaml +NotificationDetailInviteResponseEncoded: + $ref: ./NotificationDetailInviteResponseEncoded.yaml +NotificationDetailMessage: + $ref: ./NotificationDetailMessage.yaml +NotificationDetailMessageEncoded: + $ref: ./NotificationDetailMessageEncoded.yaml NotificationDetailRequestInvite: $ref: ./NotificationDetailRequestInvite.yaml +NotificationDetailRequestInviteEncoded: + $ref: ./NotificationDetailRequestInviteEncoded.yaml NotificationDetailRequestInviteResponse: $ref: ./NotificationDetailRequestInviteResponse.yaml +NotificationDetailRequestInviteResponseEncoded: + $ref: ./NotificationDetailRequestInviteResponseEncoded.yaml NotificationDetailVoteToKick: $ref: ./NotificationDetailVoteToKick.yaml +NotificationDetailVoteToKickEncoded: + $ref: ./NotificationDetailVoteToKickEncoded.yaml + +NotificationV2: + $ref: ./NotificationV2.yaml + Unknown: $ref: ./Unknown.yaml + +WebsocketClearNotification: + $ref: ./WebsocketClearNotification.yaml +WebsocketContentRefresh: + $ref: ./WebsocketContentRefresh.yaml +WebsocketContentRefreshEncoded: + $ref: ./WebsocketContentRefreshEncoded.yaml +WebsocketFriendActive: + $ref: ./WebsocketFriendActive.yaml +WebsocketFriendActiveEncoded: + $ref: ./WebsocketFriendActiveEncoded.yaml +WebsocketFriendAdd: + $ref: ./WebsocketFriendAdd.yaml +WebsocketFriendAddEncoded: + $ref: ./WebsocketFriendAddEncoded.yaml +WebsocketFriendDelete: + $ref: ./WebsocketFriendDelete.yaml +WebsocketFriendDeleteEncoded: + $ref: ./WebsocketFriendDeleteEncoded.yaml +WebsocketFriendLocation: + $ref: ./WebsocketFriendLocation.yaml +WebsocketFriendLocationEncoded: + $ref: ./WebsocketFriendLocationEncoded.yaml +WebsocketFriendOffline: + $ref: ./WebsocketFriendOffline.yaml +WebsocketFriendOfflineEncoded: + $ref: ./WebsocketFriendOfflineEncoded.yaml +WebsocketFriendOnline: + $ref: ./WebsocketFriendOnline.yaml +WebsocketFriendOnlineEncoded: + $ref: ./WebsocketFriendOnlineEncoded.yaml +WebsocketFriendUpdate: + $ref: ./WebsocketFriendUpdate.yaml +WebsocketFriendUpdateEncoded: + $ref: ./WebsocketFriendUpdateEncoded.yaml +WebsocketGroupJoined: + $ref: ./WebsocketGroupJoined.yaml +WebsocketGroupJoinedEncoded: + $ref: ./WebsocketGroupJoinedEncoded.yaml +WebsocketGroupLeft: + $ref: ./WebsocketGroupLeft.yaml +WebsocketGroupLeftEncoded: + $ref: ./WebsocketGroupLeftEncoded.yaml +WebsocketGroupMemberUpdated: + $ref: ./WebsocketGroupMemberUpdated.yaml +WebsocketGroupMemberUpdatedEncoded: + $ref: ./WebsocketGroupMemberUpdatedEncoded.yaml +WebsocketGroupRoleUpdated: + $ref: ./WebsocketGroupRoleUpdated.yaml +WebsocketGroupRoleUpdatedEncoded: + $ref: ./WebsocketGroupRoleUpdatedEncoded.yaml +WebsocketHideNotification: + $ref: ./WebsocketHideNotification.yaml +WebsocketInstanceQueueJoined: + $ref: ./WebsocketInstanceQueueJoined.yaml +WebsocketInstanceQueueJoinedEncoded: + $ref: ./WebsocketInstanceQueueJoinedEncoded.yaml +WebsocketInstanceQueueReady: + $ref: ./WebsocketInstanceQueueReady.yaml +WebsocketInstanceQueueReadyEncoded: + $ref: ./WebsocketInstanceQueueReadyEncoded.yaml +WebsocketMessage: + $ref: ./WebsocketMessage.yaml +WebsocketMessageDoubleJson: + $ref: ./WebsocketMessageDoubleJson.yaml +WebsocketMessageNormal: + $ref: ./WebsocketMessageNormal.yaml +WebsocketNotification: + $ref: ./WebsocketNotification.yaml +WebsocketNotificationDetail: + $ref: ./WebsocketNotificationDetail.yaml +WebsocketNotificationDetailBoop: + $ref: ./WebsocketNotificationDetailBoop.yaml +WebsocketNotificationDetailInvite: + $ref: ./WebsocketNotificationDetailInvite.yaml +WebsocketNotificationDetailInviteResponse: + $ref: ./WebsocketNotificationDetailInviteResponse.yaml +WebsocketNotificationDetailRequestInvite: + $ref: ./WebsocketNotificationDetailRequestInvite.yaml +WebsocketNotificationDetailRequestInviteResponse: + $ref: ./WebsocketNotificationDetailRequestInviteResponse.yaml +WebsocketNotificationDetailVoteToKick: + $ref: ./WebsocketNotificationDetailVoteToKick.yaml +WebsocketNotificationEncoded: + $ref: ./WebsocketNotificationEncoded.yaml +WebsocketNotificationV2Delete: + $ref: ./WebsocketNotificationV2Delete.yaml +WebsocketNotificationV2DeleteEncoded: + $ref: ./WebsocketNotificationV2DeleteEncoded.yaml +WebsocketNotificationV2Encoded: + $ref: ./WebsocketNotificationV2Encoded.yaml +WebsocketNotificationV2Update: + $ref: ./WebsocketNotificationV2Update.yaml +WebsocketNotificationV2UpdateEncoded: + $ref: ./WebsocketNotificationV2UpdateEncoded.yaml +WebsocketResponseNotification: + $ref: ./WebsocketResponseNotification.yaml +WebsocketResponseNotificationEncoded: + $ref: ./WebsocketResponseNotificationEncoded.yaml +WebsocketSeeNotification: + $ref: ./WebsocketSeeNotification.yaml +WebsocketUserBadgeAssigned: + $ref: ./WebsocketUserBadgeAssigned.yaml +WebsocketUserBadgeAssignedEncoded: + $ref: ./WebsocketUserBadgeAssignedEncoded.yaml +WebsocketUserBadgeUnassigned: + $ref: ./WebsocketUserBadgeUnassigned.yaml +WebsocketUserBadgeUnassignedEncoded: + $ref: ./WebsocketUserBadgeUnassignedEncoded.yaml +WebsocketUserLocation: + $ref: ./WebsocketUserLocation.yaml +WebsocketUserLocationEncoded: + $ref: ./WebsocketUserLocationEncoded.yaml +WebsocketUserUpdate: + $ref: ./WebsocketUserUpdate.yaml +WebsocketUserUpdateEncoded: + $ref: ./WebsocketUserUpdateEncoded.yaml From cca05073da09926d8130978ee52e84915a13cc07 Mon Sep 17 00:00:00 2001 From: Aries Clark Date: Wed, 7 Oct 2026 19:18:08 -0400 Subject: [PATCH 2/4] fix(schemas): discriminate notification and websocket unions by type --- openapi/components/schemas/Notification.yaml | 28 +++++++-- .../components/schemas/NotificationBase.yaml | 3 - ...BoopEncoded.yaml => NotificationBoop.yaml} | 10 +++- .../schemas/NotificationDetailEncoded.yaml | 26 -------- .../NotificationDetailFriendRequest.yaml | 4 -- .../schemas/NotificationDetailMessage.yaml | 4 -- ...ed.yaml => NotificationFriendRequest.yaml} | 10 +++- ...teEncoded.yaml => NotificationInvite.yaml} | 10 +++- ...d.yaml => NotificationInviteResponse.yaml} | 10 +++- ...eEncoded.yaml => NotificationMessage.yaml} | 10 +++- ...ed.yaml => NotificationRequestInvite.yaml} | 10 +++- ...=> NotificationRequestInviteResponse.yaml} | 10 +++- .../schemas/NotificationUnknown.yaml | 24 ++++++++ ...coded.yaml => NotificationVoteToKick.yaml} | 10 +++- .../schemas/WebsocketClearNotification.yaml | 8 ++- .../WebsocketContentRefreshEncoded.yaml | 4 ++ .../schemas/WebsocketFriendActiveEncoded.yaml | 4 ++ .../schemas/WebsocketFriendAddEncoded.yaml | 4 ++ .../schemas/WebsocketFriendDeleteEncoded.yaml | 4 ++ .../WebsocketFriendLocationEncoded.yaml | 4 ++ .../WebsocketFriendOfflineEncoded.yaml | 4 ++ .../schemas/WebsocketFriendOnlineEncoded.yaml | 4 ++ .../schemas/WebsocketFriendUpdateEncoded.yaml | 4 ++ .../schemas/WebsocketGroupJoinedEncoded.yaml | 4 ++ .../schemas/WebsocketGroupLeftEncoded.yaml | 4 ++ .../WebsocketGroupMemberUpdatedEncoded.yaml | 4 ++ .../WebsocketGroupRoleUpdatedEncoded.yaml | 4 ++ .../schemas/WebsocketHideNotification.yaml | 4 ++ .../WebsocketInstanceQueueJoinedEncoded.yaml | 4 ++ .../WebsocketInstanceQueueReadyEncoded.yaml | 4 ++ .../components/schemas/WebsocketMessage.yaml | 60 ++++++++++++++++++- .../schemas/WebsocketMessageDoubleJson.yaml | 56 ----------------- .../schemas/WebsocketMessageNormal.yaml | 16 ----- .../schemas/WebsocketMessageUnknown.yaml | 37 ++++++++++++ .../schemas/WebsocketNotification.yaml | 24 ++++++-- .../schemas/WebsocketNotificationDetail.yaml | 23 ------- .../WebsocketNotificationDetailBoop.yaml | 6 ++ .../WebsocketNotificationDetailInvite.yaml | 6 ++ ...ocketNotificationDetailInviteResponse.yaml | 6 ++ ...socketNotificationDetailRequestInvite.yaml | 6 ++ ...tificationDetailRequestInviteResponse.yaml | 6 ++ ...WebsocketNotificationDetailVoteToKick.yaml | 6 ++ .../schemas/WebsocketNotificationEncoded.yaml | 4 ++ .../schemas/WebsocketNotificationUnknown.yaml | 19 ++++++ .../WebsocketNotificationV2DeleteEncoded.yaml | 4 ++ .../WebsocketNotificationV2Encoded.yaml | 4 ++ .../WebsocketNotificationV2UpdateEncoded.yaml | 4 ++ .../WebsocketResponseNotificationEncoded.yaml | 4 ++ .../schemas/WebsocketSeeNotification.yaml | 4 ++ .../WebsocketUserBadgeAssignedEncoded.yaml | 4 ++ .../WebsocketUserBadgeUnassignedEncoded.yaml | 4 ++ .../schemas/WebsocketUserLocationEncoded.yaml | 4 ++ .../schemas/WebsocketUserUpdateEncoded.yaml | 4 ++ openapi/components/schemas/_index.yaml | 46 +++++++------- 54 files changed, 409 insertions(+), 185 deletions(-) rename openapi/components/schemas/{NotificationDetailBoopEncoded.yaml => NotificationBoop.yaml} (60%) delete mode 100644 openapi/components/schemas/NotificationDetailEncoded.yaml rename openapi/components/schemas/{NotificationDetailFriendRequestEncoded.yaml => NotificationFriendRequest.yaml} (59%) rename openapi/components/schemas/{NotificationDetailInviteEncoded.yaml => NotificationInvite.yaml} (59%) rename openapi/components/schemas/{NotificationDetailInviteResponseEncoded.yaml => NotificationInviteResponse.yaml} (59%) rename openapi/components/schemas/{NotificationDetailMessageEncoded.yaml => NotificationMessage.yaml} (59%) rename openapi/components/schemas/{NotificationDetailRequestInviteEncoded.yaml => NotificationRequestInvite.yaml} (59%) rename openapi/components/schemas/{NotificationDetailRequestInviteResponseEncoded.yaml => NotificationRequestInviteResponse.yaml} (58%) create mode 100644 openapi/components/schemas/NotificationUnknown.yaml rename openapi/components/schemas/{NotificationDetailVoteToKickEncoded.yaml => NotificationVoteToKick.yaml} (59%) delete mode 100644 openapi/components/schemas/WebsocketMessageDoubleJson.yaml delete mode 100644 openapi/components/schemas/WebsocketMessageNormal.yaml create mode 100644 openapi/components/schemas/WebsocketMessageUnknown.yaml delete mode 100644 openapi/components/schemas/WebsocketNotificationDetail.yaml create mode 100644 openapi/components/schemas/WebsocketNotificationUnknown.yaml diff --git a/openapi/components/schemas/Notification.yaml b/openapi/components/schemas/Notification.yaml index c55a4dc6..b9b40656 100644 --- a/openapi/components/schemas/Notification.yaml +++ b/openapi/components/schemas/Notification.yaml @@ -1,6 +1,24 @@ title: Notification -allOf: - - title: base - $ref: ./NotificationBase.yaml - - title: detail - $ref: ./NotificationDetailEncoded.yaml +description: A notification. The shape of `details` depends on `type`. +discriminator: + defaultMapping: ./NotificationUnknown.yaml + mapping: + boop: ./NotificationBoop.yaml + friendRequest: ./NotificationFriendRequest.yaml + invite: ./NotificationInvite.yaml + inviteResponse: ./NotificationInviteResponse.yaml + message: ./NotificationMessage.yaml + requestInvite: ./NotificationRequestInvite.yaml + requestInviteResponse: ./NotificationRequestInviteResponse.yaml + votetokick: ./NotificationVoteToKick.yaml + propertyName: type +oneOf: + - $ref: ./NotificationBoop.yaml + - $ref: ./NotificationFriendRequest.yaml + - $ref: ./NotificationInvite.yaml + - $ref: ./NotificationInviteResponse.yaml + - $ref: ./NotificationMessage.yaml + - $ref: ./NotificationRequestInvite.yaml + - $ref: ./NotificationRequestInviteResponse.yaml + - $ref: ./NotificationVoteToKick.yaml + - $ref: ./NotificationUnknown.yaml diff --git a/openapi/components/schemas/NotificationBase.yaml b/openapi/components/schemas/NotificationBase.yaml index 23fe958b..dd4e9655 100644 --- a/openapi/components/schemas/NotificationBase.yaml +++ b/openapi/components/schemas/NotificationBase.yaml @@ -26,11 +26,8 @@ properties: - "null" description: The name of the user who sent the notification. minLength: 1 - type: - $ref: ./NotificationType.yaml required: - created_at - id - message - senderUserId - - type diff --git a/openapi/components/schemas/NotificationDetailBoopEncoded.yaml b/openapi/components/schemas/NotificationBoop.yaml similarity index 60% rename from openapi/components/schemas/NotificationDetailBoopEncoded.yaml rename to openapi/components/schemas/NotificationBoop.yaml index bcce4e99..e79d1dc2 100644 --- a/openapi/components/schemas/NotificationDetailBoopEncoded.yaml +++ b/openapi/components/schemas/NotificationBoop.yaml @@ -1,12 +1,18 @@ -title: NotificationDetailBoopEncoded +title: NotificationBoop type: object properties: details: type: string + description: A JSON-encoded string. contentMediaType: application/json contentSchema: $ref: ./NotificationDetailBoop.yaml x-vrchat-double-encoding-type: NotificationDetailBoop + type: + type: string + const: boop required: - details -x-vrchat-double-encoding: true + - type +allOf: + - $ref: ./NotificationBase.yaml diff --git a/openapi/components/schemas/NotificationDetailEncoded.yaml b/openapi/components/schemas/NotificationDetailEncoded.yaml deleted file mode 100644 index e68a40b7..00000000 --- a/openapi/components/schemas/NotificationDetailEncoded.yaml +++ /dev/null @@ -1,26 +0,0 @@ -title: NotificationDetail -properties: - type: - $ref: ./NotificationType.yaml -required: - - type -discriminator: - mapping: - boop: ./NotificationDetailBoopEncoded.yaml - friendRequest: ./NotificationDetailFriendRequestEncoded.yaml - invite: ./NotificationDetailInviteEncoded.yaml - inviteResponse: ./NotificationDetailInviteResponseEncoded.yaml - message: ./NotificationDetailMessageEncoded.yaml - requestInvite: ./NotificationDetailRequestInviteEncoded.yaml - requestInviteResponse: ./NotificationDetailRequestInviteResponseEncoded.yaml - votetokick: ./NotificationDetailVoteToKickEncoded.yaml - propertyName: type -oneOf: - - $ref: ./NotificationDetailBoopEncoded.yaml - - $ref: ./NotificationDetailFriendRequestEncoded.yaml - - $ref: ./NotificationDetailInviteEncoded.yaml - - $ref: ./NotificationDetailInviteResponseEncoded.yaml - - $ref: ./NotificationDetailMessageEncoded.yaml - - $ref: ./NotificationDetailRequestInviteEncoded.yaml - - $ref: ./NotificationDetailRequestInviteResponseEncoded.yaml - - $ref: ./NotificationDetailVoteToKickEncoded.yaml diff --git a/openapi/components/schemas/NotificationDetailFriendRequest.yaml b/openapi/components/schemas/NotificationDetailFriendRequest.yaml index 8b21376b..b8c177a7 100644 --- a/openapi/components/schemas/NotificationDetailFriendRequest.yaml +++ b/openapi/components/schemas/NotificationDetailFriendRequest.yaml @@ -1,6 +1,2 @@ title: NotificationDetailFriendRequest type: object -properties: - # This exists to force generators to generate this struct, since it's referenced "manually" via `x-vrchat-double-encoding-type` - dontDeletePls: - type: integer diff --git a/openapi/components/schemas/NotificationDetailMessage.yaml b/openapi/components/schemas/NotificationDetailMessage.yaml index ab97b63d..f2aea75a 100644 --- a/openapi/components/schemas/NotificationDetailMessage.yaml +++ b/openapi/components/schemas/NotificationDetailMessage.yaml @@ -1,6 +1,2 @@ title: NotificationDetailMessage type: object -properties: - # This exists to force generators to generate this struct, since it's referenced "manually" via `x-vrchat-double-encoding-type` - dontDeletePls: - type: integer diff --git a/openapi/components/schemas/NotificationDetailFriendRequestEncoded.yaml b/openapi/components/schemas/NotificationFriendRequest.yaml similarity index 59% rename from openapi/components/schemas/NotificationDetailFriendRequestEncoded.yaml rename to openapi/components/schemas/NotificationFriendRequest.yaml index 7533b676..242a71bc 100644 --- a/openapi/components/schemas/NotificationDetailFriendRequestEncoded.yaml +++ b/openapi/components/schemas/NotificationFriendRequest.yaml @@ -1,12 +1,18 @@ -title: NotificationDetailFriendRequestEncoded +title: NotificationFriendRequest type: object properties: details: type: string + description: A JSON-encoded string. contentMediaType: application/json contentSchema: $ref: ./NotificationDetailFriendRequest.yaml x-vrchat-double-encoding-type: NotificationDetailFriendRequest + type: + type: string + const: friendRequest required: - details -x-vrchat-double-encoding: true + - type +allOf: + - $ref: ./NotificationBase.yaml diff --git a/openapi/components/schemas/NotificationDetailInviteEncoded.yaml b/openapi/components/schemas/NotificationInvite.yaml similarity index 59% rename from openapi/components/schemas/NotificationDetailInviteEncoded.yaml rename to openapi/components/schemas/NotificationInvite.yaml index d28d4ed3..71ef9ebf 100644 --- a/openapi/components/schemas/NotificationDetailInviteEncoded.yaml +++ b/openapi/components/schemas/NotificationInvite.yaml @@ -1,12 +1,18 @@ -title: NotificationDetailInviteEncoded +title: NotificationInvite type: object properties: details: type: string + description: A JSON-encoded string. contentMediaType: application/json contentSchema: $ref: ./NotificationDetailInvite.yaml x-vrchat-double-encoding-type: NotificationDetailInvite + type: + type: string + const: invite required: - details -x-vrchat-double-encoding: true + - type +allOf: + - $ref: ./NotificationBase.yaml diff --git a/openapi/components/schemas/NotificationDetailInviteResponseEncoded.yaml b/openapi/components/schemas/NotificationInviteResponse.yaml similarity index 59% rename from openapi/components/schemas/NotificationDetailInviteResponseEncoded.yaml rename to openapi/components/schemas/NotificationInviteResponse.yaml index 42bbf8a8..fda95cbc 100644 --- a/openapi/components/schemas/NotificationDetailInviteResponseEncoded.yaml +++ b/openapi/components/schemas/NotificationInviteResponse.yaml @@ -1,12 +1,18 @@ -title: NotificationDetailInviteResponseEncoded +title: NotificationInviteResponse type: object properties: details: type: string + description: A JSON-encoded string. contentMediaType: application/json contentSchema: $ref: ./NotificationDetailInviteResponse.yaml x-vrchat-double-encoding-type: NotificationDetailInviteResponse + type: + type: string + const: inviteResponse required: - details -x-vrchat-double-encoding: true + - type +allOf: + - $ref: ./NotificationBase.yaml diff --git a/openapi/components/schemas/NotificationDetailMessageEncoded.yaml b/openapi/components/schemas/NotificationMessage.yaml similarity index 59% rename from openapi/components/schemas/NotificationDetailMessageEncoded.yaml rename to openapi/components/schemas/NotificationMessage.yaml index 627419e5..21d45848 100644 --- a/openapi/components/schemas/NotificationDetailMessageEncoded.yaml +++ b/openapi/components/schemas/NotificationMessage.yaml @@ -1,12 +1,18 @@ -title: NotificationDetailMessageEncoded +title: NotificationMessage type: object properties: details: type: string + description: A JSON-encoded string. contentMediaType: application/json contentSchema: $ref: ./NotificationDetailMessage.yaml x-vrchat-double-encoding-type: NotificationDetailMessage + type: + type: string + const: message required: - details -x-vrchat-double-encoding: true + - type +allOf: + - $ref: ./NotificationBase.yaml diff --git a/openapi/components/schemas/NotificationDetailRequestInviteEncoded.yaml b/openapi/components/schemas/NotificationRequestInvite.yaml similarity index 59% rename from openapi/components/schemas/NotificationDetailRequestInviteEncoded.yaml rename to openapi/components/schemas/NotificationRequestInvite.yaml index d793cd40..c24cf817 100644 --- a/openapi/components/schemas/NotificationDetailRequestInviteEncoded.yaml +++ b/openapi/components/schemas/NotificationRequestInvite.yaml @@ -1,12 +1,18 @@ -title: NotificationDetailRequestInviteEncoded +title: NotificationRequestInvite type: object properties: details: type: string + description: A JSON-encoded string. contentMediaType: application/json contentSchema: $ref: ./NotificationDetailRequestInvite.yaml x-vrchat-double-encoding-type: NotificationDetailRequestInvite + type: + type: string + const: requestInvite required: - details -x-vrchat-double-encoding: true + - type +allOf: + - $ref: ./NotificationBase.yaml diff --git a/openapi/components/schemas/NotificationDetailRequestInviteResponseEncoded.yaml b/openapi/components/schemas/NotificationRequestInviteResponse.yaml similarity index 58% rename from openapi/components/schemas/NotificationDetailRequestInviteResponseEncoded.yaml rename to openapi/components/schemas/NotificationRequestInviteResponse.yaml index db0e9cd7..c11f7c47 100644 --- a/openapi/components/schemas/NotificationDetailRequestInviteResponseEncoded.yaml +++ b/openapi/components/schemas/NotificationRequestInviteResponse.yaml @@ -1,12 +1,18 @@ -title: NotificationDetailRequestInviteResponseEncoded +title: NotificationRequestInviteResponse type: object properties: details: type: string + description: A JSON-encoded string. contentMediaType: application/json contentSchema: $ref: ./NotificationDetailRequestInviteResponse.yaml x-vrchat-double-encoding-type: NotificationDetailRequestInviteResponse + type: + type: string + const: requestInviteResponse required: - details -x-vrchat-double-encoding: true + - type +allOf: + - $ref: ./NotificationBase.yaml diff --git a/openapi/components/schemas/NotificationUnknown.yaml b/openapi/components/schemas/NotificationUnknown.yaml new file mode 100644 index 00000000..7eee80a3 --- /dev/null +++ b/openapi/components/schemas/NotificationUnknown.yaml @@ -0,0 +1,24 @@ +title: NotificationUnknown +type: object +description: A notification whose `type` has no schema of its own. +properties: + details: + type: string + description: A JSON-encoded string. + type: + type: string + not: + enum: + - boop + - friendRequest + - invite + - inviteResponse + - message + - requestInvite + - requestInviteResponse + - votetokick +required: + - details + - type +allOf: + - $ref: ./NotificationBase.yaml diff --git a/openapi/components/schemas/NotificationDetailVoteToKickEncoded.yaml b/openapi/components/schemas/NotificationVoteToKick.yaml similarity index 59% rename from openapi/components/schemas/NotificationDetailVoteToKickEncoded.yaml rename to openapi/components/schemas/NotificationVoteToKick.yaml index 452f698e..c1d20507 100644 --- a/openapi/components/schemas/NotificationDetailVoteToKickEncoded.yaml +++ b/openapi/components/schemas/NotificationVoteToKick.yaml @@ -1,12 +1,18 @@ -title: NotificationDetailVoteToKickEncoded +title: NotificationVoteToKick type: object properties: details: type: string + description: A JSON-encoded string. contentMediaType: application/json contentSchema: $ref: ./NotificationDetailVoteToKick.yaml x-vrchat-double-encoding-type: NotificationDetailVoteToKick + type: + type: string + const: votetokick required: - details -x-vrchat-double-encoding: true + - type +allOf: + - $ref: ./NotificationBase.yaml diff --git a/openapi/components/schemas/WebsocketClearNotification.yaml b/openapi/components/schemas/WebsocketClearNotification.yaml index 637b44b6..940e56d5 100644 --- a/openapi/components/schemas/WebsocketClearNotification.yaml +++ b/openapi/components/schemas/WebsocketClearNotification.yaml @@ -1,4 +1,8 @@ title: WebsocketClearNotification type: object -# Todo: is this correct, or is some special handling necessary in WebsocketMessageNormal? -additionalProperties: false +properties: + type: + type: string + const: clear-notification +required: + - type diff --git a/openapi/components/schemas/WebsocketContentRefreshEncoded.yaml b/openapi/components/schemas/WebsocketContentRefreshEncoded.yaml index d2eca570..d18e742b 100644 --- a/openapi/components/schemas/WebsocketContentRefreshEncoded.yaml +++ b/openapi/components/schemas/WebsocketContentRefreshEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketContentRefresh.yaml x-vrchat-double-encoding-type: WebsocketContentRefresh + type: + type: string + const: content-refresh required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketFriendActiveEncoded.yaml b/openapi/components/schemas/WebsocketFriendActiveEncoded.yaml index 219a9959..12205442 100644 --- a/openapi/components/schemas/WebsocketFriendActiveEncoded.yaml +++ b/openapi/components/schemas/WebsocketFriendActiveEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketFriendActive.yaml x-vrchat-double-encoding-type: WebsocketFriendActive + type: + type: string + const: friend-active required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketFriendAddEncoded.yaml b/openapi/components/schemas/WebsocketFriendAddEncoded.yaml index 02368a18..039d08fc 100644 --- a/openapi/components/schemas/WebsocketFriendAddEncoded.yaml +++ b/openapi/components/schemas/WebsocketFriendAddEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketFriendAdd.yaml x-vrchat-double-encoding-type: WebsocketFriendAdd + type: + type: string + const: friend-add required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketFriendDeleteEncoded.yaml b/openapi/components/schemas/WebsocketFriendDeleteEncoded.yaml index 1545f0e1..52a360b1 100644 --- a/openapi/components/schemas/WebsocketFriendDeleteEncoded.yaml +++ b/openapi/components/schemas/WebsocketFriendDeleteEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketFriendDelete.yaml x-vrchat-double-encoding-type: WebsocketFriendDelete + type: + type: string + const: friend-delete required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketFriendLocationEncoded.yaml b/openapi/components/schemas/WebsocketFriendLocationEncoded.yaml index e9b5547a..d4db3d87 100644 --- a/openapi/components/schemas/WebsocketFriendLocationEncoded.yaml +++ b/openapi/components/schemas/WebsocketFriendLocationEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketFriendLocation.yaml x-vrchat-double-encoding-type: WebsocketFriendLocation + type: + type: string + const: friend-location required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketFriendOfflineEncoded.yaml b/openapi/components/schemas/WebsocketFriendOfflineEncoded.yaml index 28b6aaf3..ea3b6359 100644 --- a/openapi/components/schemas/WebsocketFriendOfflineEncoded.yaml +++ b/openapi/components/schemas/WebsocketFriendOfflineEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketFriendOffline.yaml x-vrchat-double-encoding-type: WebsocketFriendOffline + type: + type: string + const: friend-offline required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketFriendOnlineEncoded.yaml b/openapi/components/schemas/WebsocketFriendOnlineEncoded.yaml index 29234b1c..bc04a5a2 100644 --- a/openapi/components/schemas/WebsocketFriendOnlineEncoded.yaml +++ b/openapi/components/schemas/WebsocketFriendOnlineEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketFriendOnline.yaml x-vrchat-double-encoding-type: WebsocketFriendOnline + type: + type: string + const: friend-online required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketFriendUpdateEncoded.yaml b/openapi/components/schemas/WebsocketFriendUpdateEncoded.yaml index 11d97741..a935fc14 100644 --- a/openapi/components/schemas/WebsocketFriendUpdateEncoded.yaml +++ b/openapi/components/schemas/WebsocketFriendUpdateEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketFriendUpdate.yaml x-vrchat-double-encoding-type: WebsocketFriendUpdate + type: + type: string + const: friend-update required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketGroupJoinedEncoded.yaml b/openapi/components/schemas/WebsocketGroupJoinedEncoded.yaml index 4f1afd8c..9559550b 100644 --- a/openapi/components/schemas/WebsocketGroupJoinedEncoded.yaml +++ b/openapi/components/schemas/WebsocketGroupJoinedEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketGroupJoined.yaml x-vrchat-double-encoding-type: WebsocketGroupJoined + type: + type: string + const: group-joined required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketGroupLeftEncoded.yaml b/openapi/components/schemas/WebsocketGroupLeftEncoded.yaml index f0556b9e..4dbd6ff4 100644 --- a/openapi/components/schemas/WebsocketGroupLeftEncoded.yaml +++ b/openapi/components/schemas/WebsocketGroupLeftEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketGroupLeft.yaml x-vrchat-double-encoding-type: WebsocketGroupLeft + type: + type: string + const: group-left required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketGroupMemberUpdatedEncoded.yaml b/openapi/components/schemas/WebsocketGroupMemberUpdatedEncoded.yaml index 972f6a3b..bf511744 100644 --- a/openapi/components/schemas/WebsocketGroupMemberUpdatedEncoded.yaml +++ b/openapi/components/schemas/WebsocketGroupMemberUpdatedEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketGroupMemberUpdated.yaml x-vrchat-double-encoding-type: WebsocketGroupMemberUpdated + type: + type: string + const: group-member-updated required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketGroupRoleUpdatedEncoded.yaml b/openapi/components/schemas/WebsocketGroupRoleUpdatedEncoded.yaml index 40dd2ca8..39a8599e 100644 --- a/openapi/components/schemas/WebsocketGroupRoleUpdatedEncoded.yaml +++ b/openapi/components/schemas/WebsocketGroupRoleUpdatedEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketGroupRoleUpdated.yaml x-vrchat-double-encoding-type: WebsocketGroupRoleUpdated + type: + type: string + const: group-role-updated required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketHideNotification.yaml b/openapi/components/schemas/WebsocketHideNotification.yaml index 199ba5f4..5f881a79 100644 --- a/openapi/components/schemas/WebsocketHideNotification.yaml +++ b/openapi/components/schemas/WebsocketHideNotification.yaml @@ -3,5 +3,9 @@ type: object properties: content: $ref: ./NotificationID.yaml + type: + type: string + const: hide-notification required: - content + - type diff --git a/openapi/components/schemas/WebsocketInstanceQueueJoinedEncoded.yaml b/openapi/components/schemas/WebsocketInstanceQueueJoinedEncoded.yaml index 1d1ba93e..3d957a54 100644 --- a/openapi/components/schemas/WebsocketInstanceQueueJoinedEncoded.yaml +++ b/openapi/components/schemas/WebsocketInstanceQueueJoinedEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketInstanceQueueJoined.yaml x-vrchat-double-encoding-type: WebsocketInstanceQueueJoined + type: + type: string + const: instance-queue-joined required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketInstanceQueueReadyEncoded.yaml b/openapi/components/schemas/WebsocketInstanceQueueReadyEncoded.yaml index e715f178..1c65e3b2 100644 --- a/openapi/components/schemas/WebsocketInstanceQueueReadyEncoded.yaml +++ b/openapi/components/schemas/WebsocketInstanceQueueReadyEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketInstanceQueueReady.yaml x-vrchat-double-encoding-type: WebsocketInstanceQueueReady + type: + type: string + const: instance-queue-ready required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketMessage.yaml b/openapi/components/schemas/WebsocketMessage.yaml index ca9b9e89..7efad219 100644 --- a/openapi/components/schemas/WebsocketMessage.yaml +++ b/openapi/components/schemas/WebsocketMessage.yaml @@ -1,4 +1,60 @@ title: WebsocketMessage +description: A message received over the websocket. The shape of `content` depends on `type`. +discriminator: + defaultMapping: ./WebsocketMessageUnknown.yaml + mapping: + clear-notification: ./WebsocketClearNotification.yaml + content-refresh: ./WebsocketContentRefreshEncoded.yaml + friend-active: ./WebsocketFriendActiveEncoded.yaml + friend-add: ./WebsocketFriendAddEncoded.yaml + friend-delete: ./WebsocketFriendDeleteEncoded.yaml + friend-location: ./WebsocketFriendLocationEncoded.yaml + friend-offline: ./WebsocketFriendOfflineEncoded.yaml + friend-online: ./WebsocketFriendOnlineEncoded.yaml + friend-update: ./WebsocketFriendUpdateEncoded.yaml + group-joined: ./WebsocketGroupJoinedEncoded.yaml + group-left: ./WebsocketGroupLeftEncoded.yaml + group-member-updated: ./WebsocketGroupMemberUpdatedEncoded.yaml + group-role-updated: ./WebsocketGroupRoleUpdatedEncoded.yaml + hide-notification: ./WebsocketHideNotification.yaml + instance-queue-joined: ./WebsocketInstanceQueueJoinedEncoded.yaml + instance-queue-ready: ./WebsocketInstanceQueueReadyEncoded.yaml + notification: ./WebsocketNotificationEncoded.yaml + notification-v2: ./WebsocketNotificationV2Encoded.yaml + notification-v2-delete: ./WebsocketNotificationV2DeleteEncoded.yaml + notification-v2-update: ./WebsocketNotificationV2UpdateEncoded.yaml + response-notification: ./WebsocketResponseNotificationEncoded.yaml + see-notification: ./WebsocketSeeNotification.yaml + user-badge-assigned: ./WebsocketUserBadgeAssignedEncoded.yaml + user-badge-unassigned: ./WebsocketUserBadgeUnassignedEncoded.yaml + user-location: ./WebsocketUserLocationEncoded.yaml + user-update: ./WebsocketUserUpdateEncoded.yaml + propertyName: type oneOf: - - $ref: ./WebsocketMessageNormal.yaml - - $ref: ./WebsocketMessageDoubleJson.yaml + - $ref: ./WebsocketClearNotification.yaml + - $ref: ./WebsocketContentRefreshEncoded.yaml + - $ref: ./WebsocketFriendActiveEncoded.yaml + - $ref: ./WebsocketFriendAddEncoded.yaml + - $ref: ./WebsocketFriendDeleteEncoded.yaml + - $ref: ./WebsocketFriendLocationEncoded.yaml + - $ref: ./WebsocketFriendOfflineEncoded.yaml + - $ref: ./WebsocketFriendOnlineEncoded.yaml + - $ref: ./WebsocketFriendUpdateEncoded.yaml + - $ref: ./WebsocketGroupJoinedEncoded.yaml + - $ref: ./WebsocketGroupLeftEncoded.yaml + - $ref: ./WebsocketGroupMemberUpdatedEncoded.yaml + - $ref: ./WebsocketGroupRoleUpdatedEncoded.yaml + - $ref: ./WebsocketHideNotification.yaml + - $ref: ./WebsocketInstanceQueueJoinedEncoded.yaml + - $ref: ./WebsocketInstanceQueueReadyEncoded.yaml + - $ref: ./WebsocketNotificationEncoded.yaml + - $ref: ./WebsocketNotificationV2Encoded.yaml + - $ref: ./WebsocketNotificationV2DeleteEncoded.yaml + - $ref: ./WebsocketNotificationV2UpdateEncoded.yaml + - $ref: ./WebsocketResponseNotificationEncoded.yaml + - $ref: ./WebsocketSeeNotification.yaml + - $ref: ./WebsocketUserBadgeAssignedEncoded.yaml + - $ref: ./WebsocketUserBadgeUnassignedEncoded.yaml + - $ref: ./WebsocketUserLocationEncoded.yaml + - $ref: ./WebsocketUserUpdateEncoded.yaml + - $ref: ./WebsocketMessageUnknown.yaml diff --git a/openapi/components/schemas/WebsocketMessageDoubleJson.yaml b/openapi/components/schemas/WebsocketMessageDoubleJson.yaml deleted file mode 100644 index 504a6d30..00000000 --- a/openapi/components/schemas/WebsocketMessageDoubleJson.yaml +++ /dev/null @@ -1,56 +0,0 @@ -title: WebsocketMessageDoubleJson -properties: - type: - type: string -required: - - type -discriminator: - mapping: - content-refresh: ./WebsocketContentRefreshEncoded.yaml - friend-active: ./WebsocketFriendActiveEncoded.yaml - friend-add: ./WebsocketFriendAddEncoded.yaml - friend-delete: ./WebsocketFriendDeleteEncoded.yaml - friend-location: ./WebsocketFriendLocationEncoded.yaml - friend-offline: ./WebsocketFriendOfflineEncoded.yaml - friend-online: ./WebsocketFriendOnlineEncoded.yaml - friend-update: ./WebsocketFriendUpdateEncoded.yaml - group-joined: ./WebsocketGroupJoinedEncoded.yaml - group-left: ./WebsocketGroupLeftEncoded.yaml - group-member-updated: ./WebsocketGroupMemberUpdatedEncoded.yaml - group-role-updated: ./WebsocketGroupRoleUpdatedEncoded.yaml - instance-queue-joined: ./WebsocketInstanceQueueJoinedEncoded.yaml - instance-queue-ready: ./WebsocketInstanceQueueReadyEncoded.yaml - notification: ./WebsocketNotificationEncoded.yaml - notification-v2: ./WebsocketNotificationV2Encoded.yaml - notification-v2-delete: ./WebsocketNotificationV2DeleteEncoded.yaml - notification-v2-update: ./WebsocketNotificationV2UpdateEncoded.yaml - response-notification: ./WebsocketResponseNotificationEncoded.yaml - user-badge-assigned: ./WebsocketUserBadgeAssignedEncoded.yaml - user-badge-unassigned: ./WebsocketUserBadgeUnassignedEncoded.yaml - user-location: ./WebsocketUserLocationEncoded.yaml - user-update: ./WebsocketUserUpdateEncoded.yaml - propertyName: type -oneOf: - - $ref: ./WebsocketContentRefreshEncoded.yaml - - $ref: ./WebsocketFriendActiveEncoded.yaml - - $ref: ./WebsocketFriendAddEncoded.yaml - - $ref: ./WebsocketFriendDeleteEncoded.yaml - - $ref: ./WebsocketFriendLocationEncoded.yaml - - $ref: ./WebsocketFriendOfflineEncoded.yaml - - $ref: ./WebsocketFriendOnlineEncoded.yaml - - $ref: ./WebsocketFriendUpdateEncoded.yaml - - $ref: ./WebsocketGroupJoinedEncoded.yaml - - $ref: ./WebsocketGroupLeftEncoded.yaml - - $ref: ./WebsocketGroupMemberUpdatedEncoded.yaml - - $ref: ./WebsocketGroupRoleUpdatedEncoded.yaml - - $ref: ./WebsocketInstanceQueueJoinedEncoded.yaml - - $ref: ./WebsocketInstanceQueueReadyEncoded.yaml - - $ref: ./WebsocketNotificationEncoded.yaml - - $ref: ./WebsocketNotificationV2Encoded.yaml - - $ref: ./WebsocketNotificationV2DeleteEncoded.yaml - - $ref: ./WebsocketNotificationV2UpdateEncoded.yaml - - $ref: ./WebsocketResponseNotificationEncoded.yaml - - $ref: ./WebsocketUserBadgeAssignedEncoded.yaml - - $ref: ./WebsocketUserBadgeUnassignedEncoded.yaml - - $ref: ./WebsocketUserLocationEncoded.yaml - - $ref: ./WebsocketUserUpdateEncoded.yaml diff --git a/openapi/components/schemas/WebsocketMessageNormal.yaml b/openapi/components/schemas/WebsocketMessageNormal.yaml deleted file mode 100644 index 649642a3..00000000 --- a/openapi/components/schemas/WebsocketMessageNormal.yaml +++ /dev/null @@ -1,16 +0,0 @@ -title: WebsocketMessageNormal -properties: - type: - type: string -required: - - type -discriminator: - mapping: - clear-notification: ./WebsocketClearNotification.yaml - hide-notification: ./WebsocketHideNotification.yaml - see-notification: ./WebsocketSeeNotification.yaml - propertyName: type -oneOf: - - $ref: ./WebsocketSeeNotification.yaml - - $ref: ./WebsocketHideNotification.yaml - - $ref: ./WebsocketClearNotification.yaml diff --git a/openapi/components/schemas/WebsocketMessageUnknown.yaml b/openapi/components/schemas/WebsocketMessageUnknown.yaml new file mode 100644 index 00000000..e46da4ec --- /dev/null +++ b/openapi/components/schemas/WebsocketMessageUnknown.yaml @@ -0,0 +1,37 @@ +title: WebsocketMessageUnknown +type: object +description: A websocket message whose `type` has no schema of its own. +properties: + content: {} + type: + type: string + not: + enum: + - clear-notification + - content-refresh + - friend-active + - friend-add + - friend-delete + - friend-location + - friend-offline + - friend-online + - friend-update + - group-joined + - group-left + - group-member-updated + - group-role-updated + - hide-notification + - instance-queue-joined + - instance-queue-ready + - notification + - notification-v2 + - notification-v2-delete + - notification-v2-update + - response-notification + - see-notification + - user-badge-assigned + - user-badge-unassigned + - user-location + - user-update +required: + - type diff --git a/openapi/components/schemas/WebsocketNotification.yaml b/openapi/components/schemas/WebsocketNotification.yaml index 6a99a4a3..2a7d9edf 100644 --- a/openapi/components/schemas/WebsocketNotification.yaml +++ b/openapi/components/schemas/WebsocketNotification.yaml @@ -1,6 +1,20 @@ title: WebsocketNotification -allOf: - - title: base - $ref: ./NotificationBase.yaml - - title: detail - $ref: ./WebsocketNotificationDetail.yaml +description: A notification delivered over the websocket. The shape of `details` depends on `type`. +discriminator: + defaultMapping: ./WebsocketNotificationUnknown.yaml + mapping: + boop: ./WebsocketNotificationDetailBoop.yaml + invite: ./WebsocketNotificationDetailInvite.yaml + invite-response: ./WebsocketNotificationDetailInviteResponse.yaml + request-invite: ./WebsocketNotificationDetailRequestInvite.yaml + request-invite-response: ./WebsocketNotificationDetailRequestInviteResponse.yaml + vote-to-kick: ./WebsocketNotificationDetailVoteToKick.yaml + propertyName: type +oneOf: + - $ref: ./WebsocketNotificationDetailBoop.yaml + - $ref: ./WebsocketNotificationDetailInvite.yaml + - $ref: ./WebsocketNotificationDetailInviteResponse.yaml + - $ref: ./WebsocketNotificationDetailRequestInvite.yaml + - $ref: ./WebsocketNotificationDetailRequestInviteResponse.yaml + - $ref: ./WebsocketNotificationDetailVoteToKick.yaml + - $ref: ./WebsocketNotificationUnknown.yaml diff --git a/openapi/components/schemas/WebsocketNotificationDetail.yaml b/openapi/components/schemas/WebsocketNotificationDetail.yaml deleted file mode 100644 index 8e843cf4..00000000 --- a/openapi/components/schemas/WebsocketNotificationDetail.yaml +++ /dev/null @@ -1,23 +0,0 @@ -title: WebsocketNotificationDetail -type: object -properties: - type: - type: string -required: - - type -discriminator: - mapping: - boop: ./WebsocketNotificationDetailBoop.yaml - invite: ./WebsocketNotificationDetailInvite.yaml - invite-response: ./WebsocketNotificationDetailInviteResponse.yaml - request-invite: ./WebsocketNotificationDetailRequestInvite.yaml - request-invite-response: ./WebsocketNotificationDetailRequestInviteResponse.yaml - vote-to-kick: ./WebsocketNotificationDetailVoteToKick.yaml - propertyName: type -oneOf: - - $ref: ./WebsocketNotificationDetailBoop.yaml - - $ref: ./WebsocketNotificationDetailInvite.yaml - - $ref: ./WebsocketNotificationDetailInviteResponse.yaml - - $ref: ./WebsocketNotificationDetailRequestInvite.yaml - - $ref: ./WebsocketNotificationDetailRequestInviteResponse.yaml - - $ref: ./WebsocketNotificationDetailVoteToKick.yaml diff --git a/openapi/components/schemas/WebsocketNotificationDetailBoop.yaml b/openapi/components/schemas/WebsocketNotificationDetailBoop.yaml index 1562ba77..372e2a6d 100644 --- a/openapi/components/schemas/WebsocketNotificationDetailBoop.yaml +++ b/openapi/components/schemas/WebsocketNotificationDetailBoop.yaml @@ -3,5 +3,11 @@ type: object properties: details: $ref: ./NotificationDetailBoop.yaml + type: + type: string + const: boop required: - details + - type +allOf: + - $ref: ./NotificationBase.yaml diff --git a/openapi/components/schemas/WebsocketNotificationDetailInvite.yaml b/openapi/components/schemas/WebsocketNotificationDetailInvite.yaml index ccfada6d..ca8519c5 100644 --- a/openapi/components/schemas/WebsocketNotificationDetailInvite.yaml +++ b/openapi/components/schemas/WebsocketNotificationDetailInvite.yaml @@ -3,5 +3,11 @@ type: object properties: details: $ref: ./NotificationDetailInvite.yaml + type: + type: string + const: invite required: - details + - type +allOf: + - $ref: ./NotificationBase.yaml diff --git a/openapi/components/schemas/WebsocketNotificationDetailInviteResponse.yaml b/openapi/components/schemas/WebsocketNotificationDetailInviteResponse.yaml index 6e94a414..7bec4420 100644 --- a/openapi/components/schemas/WebsocketNotificationDetailInviteResponse.yaml +++ b/openapi/components/schemas/WebsocketNotificationDetailInviteResponse.yaml @@ -3,5 +3,11 @@ type: object properties: details: $ref: ./NotificationDetailInviteResponse.yaml + type: + type: string + const: invite-response required: - details + - type +allOf: + - $ref: ./NotificationBase.yaml diff --git a/openapi/components/schemas/WebsocketNotificationDetailRequestInvite.yaml b/openapi/components/schemas/WebsocketNotificationDetailRequestInvite.yaml index a1761056..739b2bb3 100644 --- a/openapi/components/schemas/WebsocketNotificationDetailRequestInvite.yaml +++ b/openapi/components/schemas/WebsocketNotificationDetailRequestInvite.yaml @@ -3,5 +3,11 @@ type: object properties: details: $ref: ./NotificationDetailRequestInvite.yaml + type: + type: string + const: request-invite required: - details + - type +allOf: + - $ref: ./NotificationBase.yaml diff --git a/openapi/components/schemas/WebsocketNotificationDetailRequestInviteResponse.yaml b/openapi/components/schemas/WebsocketNotificationDetailRequestInviteResponse.yaml index 3ef850b9..2a4759bc 100644 --- a/openapi/components/schemas/WebsocketNotificationDetailRequestInviteResponse.yaml +++ b/openapi/components/schemas/WebsocketNotificationDetailRequestInviteResponse.yaml @@ -3,5 +3,11 @@ type: object properties: details: $ref: ./NotificationDetailRequestInviteResponse.yaml + type: + type: string + const: request-invite-response required: - details + - type +allOf: + - $ref: ./NotificationBase.yaml diff --git a/openapi/components/schemas/WebsocketNotificationDetailVoteToKick.yaml b/openapi/components/schemas/WebsocketNotificationDetailVoteToKick.yaml index c02c3b3f..29d4b144 100644 --- a/openapi/components/schemas/WebsocketNotificationDetailVoteToKick.yaml +++ b/openapi/components/schemas/WebsocketNotificationDetailVoteToKick.yaml @@ -3,5 +3,11 @@ type: object properties: details: $ref: ./NotificationDetailVoteToKick.yaml + type: + type: string + const: vote-to-kick required: - details + - type +allOf: + - $ref: ./NotificationBase.yaml diff --git a/openapi/components/schemas/WebsocketNotificationEncoded.yaml b/openapi/components/schemas/WebsocketNotificationEncoded.yaml index 9441eff2..f6d2dfd4 100644 --- a/openapi/components/schemas/WebsocketNotificationEncoded.yaml +++ b/openapi/components/schemas/WebsocketNotificationEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketNotification.yaml x-vrchat-double-encoding-type: WebsocketNotification + type: + type: string + const: notification required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketNotificationUnknown.yaml b/openapi/components/schemas/WebsocketNotificationUnknown.yaml new file mode 100644 index 00000000..db0ba25a --- /dev/null +++ b/openapi/components/schemas/WebsocketNotificationUnknown.yaml @@ -0,0 +1,19 @@ +title: WebsocketNotificationUnknown +type: object +description: A notification whose `type` has no schema of its own. +properties: + details: {} + type: + type: string + not: + enum: + - boop + - invite + - invite-response + - request-invite + - request-invite-response + - vote-to-kick +required: + - type +allOf: + - $ref: ./NotificationBase.yaml diff --git a/openapi/components/schemas/WebsocketNotificationV2DeleteEncoded.yaml b/openapi/components/schemas/WebsocketNotificationV2DeleteEncoded.yaml index 74becd95..0cae88ad 100644 --- a/openapi/components/schemas/WebsocketNotificationV2DeleteEncoded.yaml +++ b/openapi/components/schemas/WebsocketNotificationV2DeleteEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketNotificationV2Delete.yaml x-vrchat-double-encoding-type: WebsocketNotificationV2Delete + type: + type: string + const: notification-v2-delete required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketNotificationV2Encoded.yaml b/openapi/components/schemas/WebsocketNotificationV2Encoded.yaml index 61d8b74d..b0737090 100644 --- a/openapi/components/schemas/WebsocketNotificationV2Encoded.yaml +++ b/openapi/components/schemas/WebsocketNotificationV2Encoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./NotificationV2.yaml x-vrchat-double-encoding-type: NotificationV2 + type: + type: string + const: notification-v2 required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketNotificationV2UpdateEncoded.yaml b/openapi/components/schemas/WebsocketNotificationV2UpdateEncoded.yaml index b0766fb1..865846d7 100644 --- a/openapi/components/schemas/WebsocketNotificationV2UpdateEncoded.yaml +++ b/openapi/components/schemas/WebsocketNotificationV2UpdateEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketNotificationV2Update.yaml x-vrchat-double-encoding-type: WebsocketNotificationV2Update + type: + type: string + const: notification-v2-update required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketResponseNotificationEncoded.yaml b/openapi/components/schemas/WebsocketResponseNotificationEncoded.yaml index ce9aa6b1..c9f8ba2a 100644 --- a/openapi/components/schemas/WebsocketResponseNotificationEncoded.yaml +++ b/openapi/components/schemas/WebsocketResponseNotificationEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketResponseNotification.yaml x-vrchat-double-encoding-type: WebsocketResponseNotification + type: + type: string + const: response-notification required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketSeeNotification.yaml b/openapi/components/schemas/WebsocketSeeNotification.yaml index 459e4d2e..ad6bf17a 100644 --- a/openapi/components/schemas/WebsocketSeeNotification.yaml +++ b/openapi/components/schemas/WebsocketSeeNotification.yaml @@ -3,5 +3,9 @@ type: object properties: content: $ref: ./NotificationID.yaml + type: + type: string + const: see-notification required: - content + - type diff --git a/openapi/components/schemas/WebsocketUserBadgeAssignedEncoded.yaml b/openapi/components/schemas/WebsocketUserBadgeAssignedEncoded.yaml index bf6d26ec..38788174 100644 --- a/openapi/components/schemas/WebsocketUserBadgeAssignedEncoded.yaml +++ b/openapi/components/schemas/WebsocketUserBadgeAssignedEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketUserBadgeAssigned.yaml x-vrchat-double-encoding-type: WebsocketUserBadgeAssigned + type: + type: string + const: user-badge-assigned required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketUserBadgeUnassignedEncoded.yaml b/openapi/components/schemas/WebsocketUserBadgeUnassignedEncoded.yaml index 3be07471..d2d7675a 100644 --- a/openapi/components/schemas/WebsocketUserBadgeUnassignedEncoded.yaml +++ b/openapi/components/schemas/WebsocketUserBadgeUnassignedEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketUserBadgeUnassigned.yaml x-vrchat-double-encoding-type: WebsocketUserBadgeUnassigned + type: + type: string + const: user-badge-unassigned required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketUserLocationEncoded.yaml b/openapi/components/schemas/WebsocketUserLocationEncoded.yaml index de398310..7c03dc5a 100644 --- a/openapi/components/schemas/WebsocketUserLocationEncoded.yaml +++ b/openapi/components/schemas/WebsocketUserLocationEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketUserLocation.yaml x-vrchat-double-encoding-type: WebsocketUserLocation + type: + type: string + const: user-location required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketUserUpdateEncoded.yaml b/openapi/components/schemas/WebsocketUserUpdateEncoded.yaml index 2a104d26..1ee87870 100644 --- a/openapi/components/schemas/WebsocketUserUpdateEncoded.yaml +++ b/openapi/components/schemas/WebsocketUserUpdateEncoded.yaml @@ -7,6 +7,10 @@ properties: contentSchema: $ref: ./WebsocketUserUpdate.yaml x-vrchat-double-encoding-type: WebsocketUserUpdate + type: + type: string + const: user-update required: - content + - type x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/_index.yaml b/openapi/components/schemas/_index.yaml index ccd72855..709ff879 100644 --- a/openapi/components/schemas/_index.yaml +++ b/openapi/components/schemas/_index.yaml @@ -1,39 +1,40 @@ +NotificationBoop: + $ref: ./NotificationBoop.yaml NotificationDetailBoop: $ref: ./NotificationDetailBoop.yaml -NotificationDetailEncoded: - $ref: ./NotificationDetailEncoded.yaml NotificationDetailFriendRequest: $ref: ./NotificationDetailFriendRequest.yaml -NotificationDetailFriendRequestEncoded: - $ref: ./NotificationDetailFriendRequestEncoded.yaml NotificationDetailInvite: $ref: ./NotificationDetailInvite.yaml -NotificationDetailInviteEncoded: - $ref: ./NotificationDetailInviteEncoded.yaml NotificationDetailInviteResponse: $ref: ./NotificationDetailInviteResponse.yaml -NotificationDetailInviteResponseEncoded: - $ref: ./NotificationDetailInviteResponseEncoded.yaml NotificationDetailMessage: $ref: ./NotificationDetailMessage.yaml -NotificationDetailMessageEncoded: - $ref: ./NotificationDetailMessageEncoded.yaml NotificationDetailRequestInvite: $ref: ./NotificationDetailRequestInvite.yaml -NotificationDetailRequestInviteEncoded: - $ref: ./NotificationDetailRequestInviteEncoded.yaml NotificationDetailRequestInviteResponse: $ref: ./NotificationDetailRequestInviteResponse.yaml -NotificationDetailRequestInviteResponseEncoded: - $ref: ./NotificationDetailRequestInviteResponseEncoded.yaml NotificationDetailVoteToKick: $ref: ./NotificationDetailVoteToKick.yaml -NotificationDetailVoteToKickEncoded: - $ref: ./NotificationDetailVoteToKickEncoded.yaml +NotificationFriendRequest: + $ref: ./NotificationFriendRequest.yaml +NotificationInvite: + $ref: ./NotificationInvite.yaml +NotificationInviteResponse: + $ref: ./NotificationInviteResponse.yaml +NotificationMessage: + $ref: ./NotificationMessage.yaml +NotificationRequestInvite: + $ref: ./NotificationRequestInvite.yaml +NotificationRequestInviteResponse: + $ref: ./NotificationRequestInviteResponse.yaml +NotificationUnknown: + $ref: ./NotificationUnknown.yaml NotificationV2: $ref: ./NotificationV2.yaml - +NotificationVoteToKick: + $ref: ./NotificationVoteToKick.yaml Unknown: $ref: ./Unknown.yaml @@ -99,14 +100,11 @@ WebsocketInstanceQueueReadyEncoded: $ref: ./WebsocketInstanceQueueReadyEncoded.yaml WebsocketMessage: $ref: ./WebsocketMessage.yaml -WebsocketMessageDoubleJson: - $ref: ./WebsocketMessageDoubleJson.yaml -WebsocketMessageNormal: - $ref: ./WebsocketMessageNormal.yaml +WebsocketMessageUnknown: + $ref: ./WebsocketMessageUnknown.yaml + WebsocketNotification: $ref: ./WebsocketNotification.yaml -WebsocketNotificationDetail: - $ref: ./WebsocketNotificationDetail.yaml WebsocketNotificationDetailBoop: $ref: ./WebsocketNotificationDetailBoop.yaml WebsocketNotificationDetailInvite: @@ -121,6 +119,8 @@ WebsocketNotificationDetailVoteToKick: $ref: ./WebsocketNotificationDetailVoteToKick.yaml WebsocketNotificationEncoded: $ref: ./WebsocketNotificationEncoded.yaml +WebsocketNotificationUnknown: + $ref: ./WebsocketNotificationUnknown.yaml WebsocketNotificationV2Delete: $ref: ./WebsocketNotificationV2Delete.yaml WebsocketNotificationV2DeleteEncoded: From 1cbffaadf9643a61c95abfa90d8f105183e537a8 Mon Sep 17 00:00:00 2001 From: Aries Clark Date: Thu, 8 Oct 2026 11:10:56 -0400 Subject: [PATCH 3/4] refactor(schemas): drop the x-vrchat-double-encoding schema flag --- openapi/components/schemas/WebsocketContentRefreshEncoded.yaml | 1 - openapi/components/schemas/WebsocketFriendActiveEncoded.yaml | 1 - openapi/components/schemas/WebsocketFriendAddEncoded.yaml | 1 - openapi/components/schemas/WebsocketFriendDeleteEncoded.yaml | 1 - openapi/components/schemas/WebsocketFriendLocationEncoded.yaml | 1 - openapi/components/schemas/WebsocketFriendOfflineEncoded.yaml | 1 - openapi/components/schemas/WebsocketFriendOnlineEncoded.yaml | 1 - openapi/components/schemas/WebsocketFriendUpdateEncoded.yaml | 1 - openapi/components/schemas/WebsocketGroupJoinedEncoded.yaml | 1 - openapi/components/schemas/WebsocketGroupLeftEncoded.yaml | 1 - .../components/schemas/WebsocketGroupMemberUpdatedEncoded.yaml | 1 - openapi/components/schemas/WebsocketGroupRoleUpdatedEncoded.yaml | 1 - .../components/schemas/WebsocketInstanceQueueJoinedEncoded.yaml | 1 - .../components/schemas/WebsocketInstanceQueueReadyEncoded.yaml | 1 - openapi/components/schemas/WebsocketNotificationEncoded.yaml | 1 - .../components/schemas/WebsocketNotificationV2DeleteEncoded.yaml | 1 - openapi/components/schemas/WebsocketNotificationV2Encoded.yaml | 1 - .../components/schemas/WebsocketNotificationV2UpdateEncoded.yaml | 1 - .../components/schemas/WebsocketResponseNotificationEncoded.yaml | 1 - .../components/schemas/WebsocketUserBadgeAssignedEncoded.yaml | 1 - .../components/schemas/WebsocketUserBadgeUnassignedEncoded.yaml | 1 - openapi/components/schemas/WebsocketUserLocationEncoded.yaml | 1 - openapi/components/schemas/WebsocketUserUpdateEncoded.yaml | 1 - 23 files changed, 23 deletions(-) diff --git a/openapi/components/schemas/WebsocketContentRefreshEncoded.yaml b/openapi/components/schemas/WebsocketContentRefreshEncoded.yaml index d18e742b..50d1b17a 100644 --- a/openapi/components/schemas/WebsocketContentRefreshEncoded.yaml +++ b/openapi/components/schemas/WebsocketContentRefreshEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketFriendActiveEncoded.yaml b/openapi/components/schemas/WebsocketFriendActiveEncoded.yaml index 12205442..e76cac0b 100644 --- a/openapi/components/schemas/WebsocketFriendActiveEncoded.yaml +++ b/openapi/components/schemas/WebsocketFriendActiveEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketFriendAddEncoded.yaml b/openapi/components/schemas/WebsocketFriendAddEncoded.yaml index 039d08fc..0e592f43 100644 --- a/openapi/components/schemas/WebsocketFriendAddEncoded.yaml +++ b/openapi/components/schemas/WebsocketFriendAddEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketFriendDeleteEncoded.yaml b/openapi/components/schemas/WebsocketFriendDeleteEncoded.yaml index 52a360b1..58420af2 100644 --- a/openapi/components/schemas/WebsocketFriendDeleteEncoded.yaml +++ b/openapi/components/schemas/WebsocketFriendDeleteEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketFriendLocationEncoded.yaml b/openapi/components/schemas/WebsocketFriendLocationEncoded.yaml index d4db3d87..c9b6c5a0 100644 --- a/openapi/components/schemas/WebsocketFriendLocationEncoded.yaml +++ b/openapi/components/schemas/WebsocketFriendLocationEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketFriendOfflineEncoded.yaml b/openapi/components/schemas/WebsocketFriendOfflineEncoded.yaml index ea3b6359..7fd3e2ce 100644 --- a/openapi/components/schemas/WebsocketFriendOfflineEncoded.yaml +++ b/openapi/components/schemas/WebsocketFriendOfflineEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketFriendOnlineEncoded.yaml b/openapi/components/schemas/WebsocketFriendOnlineEncoded.yaml index bc04a5a2..b7cbf79c 100644 --- a/openapi/components/schemas/WebsocketFriendOnlineEncoded.yaml +++ b/openapi/components/schemas/WebsocketFriendOnlineEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketFriendUpdateEncoded.yaml b/openapi/components/schemas/WebsocketFriendUpdateEncoded.yaml index a935fc14..675d8505 100644 --- a/openapi/components/schemas/WebsocketFriendUpdateEncoded.yaml +++ b/openapi/components/schemas/WebsocketFriendUpdateEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketGroupJoinedEncoded.yaml b/openapi/components/schemas/WebsocketGroupJoinedEncoded.yaml index 9559550b..e98666f7 100644 --- a/openapi/components/schemas/WebsocketGroupJoinedEncoded.yaml +++ b/openapi/components/schemas/WebsocketGroupJoinedEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketGroupLeftEncoded.yaml b/openapi/components/schemas/WebsocketGroupLeftEncoded.yaml index 4dbd6ff4..7b3b2d7c 100644 --- a/openapi/components/schemas/WebsocketGroupLeftEncoded.yaml +++ b/openapi/components/schemas/WebsocketGroupLeftEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketGroupMemberUpdatedEncoded.yaml b/openapi/components/schemas/WebsocketGroupMemberUpdatedEncoded.yaml index bf511744..3ddc2058 100644 --- a/openapi/components/schemas/WebsocketGroupMemberUpdatedEncoded.yaml +++ b/openapi/components/schemas/WebsocketGroupMemberUpdatedEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketGroupRoleUpdatedEncoded.yaml b/openapi/components/schemas/WebsocketGroupRoleUpdatedEncoded.yaml index 39a8599e..69940026 100644 --- a/openapi/components/schemas/WebsocketGroupRoleUpdatedEncoded.yaml +++ b/openapi/components/schemas/WebsocketGroupRoleUpdatedEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketInstanceQueueJoinedEncoded.yaml b/openapi/components/schemas/WebsocketInstanceQueueJoinedEncoded.yaml index 3d957a54..609faa95 100644 --- a/openapi/components/schemas/WebsocketInstanceQueueJoinedEncoded.yaml +++ b/openapi/components/schemas/WebsocketInstanceQueueJoinedEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketInstanceQueueReadyEncoded.yaml b/openapi/components/schemas/WebsocketInstanceQueueReadyEncoded.yaml index 1c65e3b2..91909f8c 100644 --- a/openapi/components/schemas/WebsocketInstanceQueueReadyEncoded.yaml +++ b/openapi/components/schemas/WebsocketInstanceQueueReadyEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketNotificationEncoded.yaml b/openapi/components/schemas/WebsocketNotificationEncoded.yaml index f6d2dfd4..a0ef1917 100644 --- a/openapi/components/schemas/WebsocketNotificationEncoded.yaml +++ b/openapi/components/schemas/WebsocketNotificationEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketNotificationV2DeleteEncoded.yaml b/openapi/components/schemas/WebsocketNotificationV2DeleteEncoded.yaml index 0cae88ad..75d77435 100644 --- a/openapi/components/schemas/WebsocketNotificationV2DeleteEncoded.yaml +++ b/openapi/components/schemas/WebsocketNotificationV2DeleteEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketNotificationV2Encoded.yaml b/openapi/components/schemas/WebsocketNotificationV2Encoded.yaml index b0737090..b891fa92 100644 --- a/openapi/components/schemas/WebsocketNotificationV2Encoded.yaml +++ b/openapi/components/schemas/WebsocketNotificationV2Encoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketNotificationV2UpdateEncoded.yaml b/openapi/components/schemas/WebsocketNotificationV2UpdateEncoded.yaml index 865846d7..f7f41b3c 100644 --- a/openapi/components/schemas/WebsocketNotificationV2UpdateEncoded.yaml +++ b/openapi/components/schemas/WebsocketNotificationV2UpdateEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketResponseNotificationEncoded.yaml b/openapi/components/schemas/WebsocketResponseNotificationEncoded.yaml index c9f8ba2a..ede55c07 100644 --- a/openapi/components/schemas/WebsocketResponseNotificationEncoded.yaml +++ b/openapi/components/schemas/WebsocketResponseNotificationEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketUserBadgeAssignedEncoded.yaml b/openapi/components/schemas/WebsocketUserBadgeAssignedEncoded.yaml index 38788174..7bc628f8 100644 --- a/openapi/components/schemas/WebsocketUserBadgeAssignedEncoded.yaml +++ b/openapi/components/schemas/WebsocketUserBadgeAssignedEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketUserBadgeUnassignedEncoded.yaml b/openapi/components/schemas/WebsocketUserBadgeUnassignedEncoded.yaml index d2d7675a..38f81dad 100644 --- a/openapi/components/schemas/WebsocketUserBadgeUnassignedEncoded.yaml +++ b/openapi/components/schemas/WebsocketUserBadgeUnassignedEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketUserLocationEncoded.yaml b/openapi/components/schemas/WebsocketUserLocationEncoded.yaml index 7c03dc5a..6beb5c98 100644 --- a/openapi/components/schemas/WebsocketUserLocationEncoded.yaml +++ b/openapi/components/schemas/WebsocketUserLocationEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true diff --git a/openapi/components/schemas/WebsocketUserUpdateEncoded.yaml b/openapi/components/schemas/WebsocketUserUpdateEncoded.yaml index 1ee87870..bd9f869f 100644 --- a/openapi/components/schemas/WebsocketUserUpdateEncoded.yaml +++ b/openapi/components/schemas/WebsocketUserUpdateEncoded.yaml @@ -13,4 +13,3 @@ properties: required: - content - type -x-vrchat-double-encoding: true From ca0c755eb8a83be5a363444bdd5a007913dd1fcf Mon Sep 17 00:00:00 2001 From: Aries Clark Date: Thu, 8 Oct 2026 11:10:57 -0400 Subject: [PATCH 4/4] fix(schemas): drop the Rust type for the empty notification details --- openapi/components/schemas/NotificationFriendRequest.yaml | 1 - openapi/components/schemas/NotificationMessage.yaml | 1 - 2 files changed, 2 deletions(-) diff --git a/openapi/components/schemas/NotificationFriendRequest.yaml b/openapi/components/schemas/NotificationFriendRequest.yaml index 242a71bc..4002a49a 100644 --- a/openapi/components/schemas/NotificationFriendRequest.yaml +++ b/openapi/components/schemas/NotificationFriendRequest.yaml @@ -7,7 +7,6 @@ properties: contentMediaType: application/json contentSchema: $ref: ./NotificationDetailFriendRequest.yaml - x-vrchat-double-encoding-type: NotificationDetailFriendRequest type: type: string const: friendRequest diff --git a/openapi/components/schemas/NotificationMessage.yaml b/openapi/components/schemas/NotificationMessage.yaml index 21d45848..96e6b165 100644 --- a/openapi/components/schemas/NotificationMessage.yaml +++ b/openapi/components/schemas/NotificationMessage.yaml @@ -7,7 +7,6 @@ properties: contentMediaType: application/json contentSchema: $ref: ./NotificationDetailMessage.yaml - x-vrchat-double-encoding-type: NotificationDetailMessage type: type: string const: message