diff --git a/openapi/components/parameters.yaml b/openapi/components/parameters.yaml index 7e70281d..170a4bbe 100644 --- a/openapi/components/parameters.yaml +++ b/openapi/components/parameters.yaml @@ -67,7 +67,6 @@ fileId: schema: type: string example: file_00000000-0000-0000-0000-000000000000 - pattern: 'file_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' description: Must be a valid file ID. groupId: name: groupId @@ -76,7 +75,6 @@ groupId: schema: type: string example: grp_00000000-0000-0000-0000-000000000000 - pattern: 'grp_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' description: Must be a valid group ID. groupRoleId: name: groupRoleId @@ -85,7 +83,6 @@ groupRoleId: schema: type: string example: grol_00000000-0000-0000-0000-000000000000 - pattern: 'grol_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' description: Must be a valid group role ID. groupGalleryId: name: groupGalleryId @@ -94,7 +91,6 @@ groupGalleryId: schema: type: string example: ggal_00000000-0000-0000-0000-000000000000 - pattern: 'ggal_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' description: Must be a valid group gallery ID. groupGalleryImageId: name: groupGalleryImageId @@ -103,7 +99,6 @@ groupGalleryImageId: schema: type: string example: ggim_00000000-0000-0000-0000-000000000000 - pattern: 'ggim_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' description: Must be a valid group gallery image ID. versionId: name: versionId diff --git a/openapi/components/paths/groups.yaml b/openapi/components/paths/groups.yaml index f17e6765..a71f1d90 100644 --- a/openapi/components/paths/groups.yaml +++ b/openapi/components/paths/groups.yaml @@ -5,6 +5,26 @@ info: description: Group Docs Here paths: /groups: + get: + summary: Search Group + description: Searches Groups by name or shortCode + operationId: searchGroups + tags: + - groups + parameters: + - in: query + name: query + schema: + type: string + required: false + description: Query to search for, can be either Group Name or Group shortCode + - $ref: ../parameters.yaml#/offset + - $ref: ../parameters.yaml#/number + responses: + '200': + $ref: ../responses/groups/LimitedGroupListResponse.yaml + '401': + $ref: ../responses/MissingCredentialsError.yaml post: summary: Create Group description: Creates a Group and returns a Group object. **Requires VRC+ Subscription.** diff --git a/openapi/components/requests/FinishFileDataUploadRequest.yaml b/openapi/components/requests/FinishFileDataUploadRequest.yaml index 2aa8ddf5..c902fec4 100644 --- a/openapi/components/requests/FinishFileDataUploadRequest.yaml +++ b/openapi/components/requests/FinishFileDataUploadRequest.yaml @@ -17,7 +17,6 @@ properties: deprecated: true description: 'Always a zero in string form, despite how many parts uploaded.' maxLength: 1 - pattern: '0' maxParts: type: string minLength: 1 @@ -26,7 +25,6 @@ properties: default: '0' example: '0' maxLength: 1 - pattern: '0' required: - nextPartNumber - maxParts \ No newline at end of file diff --git a/openapi/components/responses/groups/LimitedGroupListResponse.yaml b/openapi/components/responses/groups/LimitedGroupListResponse.yaml new file mode 100644 index 00000000..0923dff4 --- /dev/null +++ b/openapi/components/responses/groups/LimitedGroupListResponse.yaml @@ -0,0 +1,7 @@ +description: Returns a list of LimitedGroup objects. +content: + application/json: + schema: + type: array + items: + $ref: ../../schemas/LimitedGroup.yaml \ No newline at end of file diff --git a/openapi/components/schemas/AvatarID.yaml b/openapi/components/schemas/AvatarID.yaml index 0d8381a3..218ab03e 100644 --- a/openapi/components/schemas/AvatarID.yaml +++ b/openapi/components/schemas/AvatarID.yaml @@ -1,4 +1,3 @@ example: avtr_912d66a4-4714-43b8-8407-7de2cafbf55b -pattern: 'avtr_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' title: AvatarID type: string diff --git a/openapi/components/schemas/CurrentUser.yaml b/openapi/components/schemas/CurrentUser.yaml index 5bfe61a5..d467223e 100644 --- a/openapi/components/schemas/CurrentUser.yaml +++ b/openapi/components/schemas/CurrentUser.yaml @@ -3,6 +3,10 @@ properties: minimum: 0 example: 7 type: integer + acceptedPrivacyVersion: + minimum: 0 + example: 0 + type: integer accountDeletionDate: format: date nullable: true @@ -35,6 +39,10 @@ properties: $ref: ./CurrentAvatarImageUrl.yaml currentAvatarThumbnailImageUrl: $ref: ./CurrentAvatarThumbnailImageUrl.yaml + currentAvatarTags: + type: array + items: + $ref: ./Tag.yaml date_joined: format: date type: string @@ -60,6 +68,14 @@ properties: type: array hasBirthday: type: boolean + hideContentFilterSettings: + type: boolean + userLanguage: + nullable: true + type: string + userLanguageCode: + nullable: true + type: string hasEmail: type: boolean hasLoggedInFromClient: @@ -73,6 +89,9 @@ properties: isFriend: default: false type: boolean + last_activity: + format: date-time + type: string last_login: format: date-time type: string @@ -84,6 +103,12 @@ properties: type: string oculusId: type: string + googleId: + type: string + picoId: + type: string + viveId: + type: string offlineFriends: items: $ref: ./UserID.yaml @@ -97,6 +122,8 @@ properties: items: $ref: ./PastDisplayName.yaml type: array + presence: + $ref: ./CurrentUserPresence.yaml profilePicOverride: type: string state: @@ -127,6 +154,9 @@ properties: type: string unsubscribe: type: boolean + updated_at: + format: date-time + type: string userIcon: type: string username: diff --git a/openapi/components/schemas/CurrentUserPresence.yaml b/openapi/components/schemas/CurrentUserPresence.yaml new file mode 100644 index 00000000..d73b5f07 --- /dev/null +++ b/openapi/components/schemas/CurrentUserPresence.yaml @@ -0,0 +1,45 @@ +title: CurrentUserPresence +type: object +properties: + avatarThumbnail: + type: string + nullable: true + displayName: + type: string + groups: + type: array + nullable: true + items: + $ref: ./GroupID.yaml + id: + $ref: ./UserID.yaml + instance: + type: string + nullable: true + instanceType: + type: string + description: either an InstanceType or an empty string + nullable: true + isRejoining: + type: string + nullable: true + platform: + type: string + description: either a Platform or an empty string + nullable: true + profilePicOverride: + type: string + nullable: true + status: + type: string + description: either a UserStatus or empty string + nullable: true + travelingToInstance: + type: string + nullable: true + travelingToWorld: + $ref: ./WorldID.yaml + nullable: true + world: + $ref: ./WorldID.yaml + nullable: true diff --git a/openapi/components/schemas/FavoriteGroupID.yaml b/openapi/components/schemas/FavoriteGroupID.yaml index abf2f5e3..f5b1adcb 100644 --- a/openapi/components/schemas/FavoriteGroupID.yaml +++ b/openapi/components/schemas/FavoriteGroupID.yaml @@ -1,4 +1,3 @@ example: fvgrp_8a02a44b-dc3a-4a9a-bc77-77fa37996fc7 -pattern: 'fvgrp_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' title: FavoriteGroupID type: string diff --git a/openapi/components/schemas/FavoriteID.yaml b/openapi/components/schemas/FavoriteID.yaml index db0abd31..3eee5c47 100644 --- a/openapi/components/schemas/FavoriteID.yaml +++ b/openapi/components/schemas/FavoriteID.yaml @@ -1,4 +1,3 @@ example: fvrt_9568d189-8776-44a5-a8c8-defc981e44de -pattern: 'fvrt_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' title: FavoriteID type: string diff --git a/openapi/components/schemas/FileID.yaml b/openapi/components/schemas/FileID.yaml index dce51bc8..1caa5805 100644 --- a/openapi/components/schemas/FileID.yaml +++ b/openapi/components/schemas/FileID.yaml @@ -1,4 +1,3 @@ example: file_ce35d830-e20a-4df0-a6d4-5aaef4508044 -pattern: 'file_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' title: FileID type: string diff --git a/openapi/components/schemas/GroupAnnouncementID.yaml b/openapi/components/schemas/GroupAnnouncementID.yaml index 1b30cce8..bed1b121 100644 --- a/openapi/components/schemas/GroupAnnouncementID.yaml +++ b/openapi/components/schemas/GroupAnnouncementID.yaml @@ -1,4 +1,3 @@ example: gpos_71a7ff59-112c-4e78-a990-c7cc650776e5 -pattern: 'gpos_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' title: GroupAnnouncementID type: string diff --git a/openapi/components/schemas/GroupAuditLogID.yaml b/openapi/components/schemas/GroupAuditLogID.yaml index c2297ddb..65c2f70b 100644 --- a/openapi/components/schemas/GroupAuditLogID.yaml +++ b/openapi/components/schemas/GroupAuditLogID.yaml @@ -1,4 +1,3 @@ example: gaud_71a7ff59-112c-4e78-a990-c7cc650776e5 -pattern: 'gaud_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' title: GroupAuditLogID type: string diff --git a/openapi/components/schemas/GroupDiscriminator.yaml b/openapi/components/schemas/GroupDiscriminator.yaml index 8cb609c8..2fafaf43 100644 --- a/openapi/components/schemas/GroupDiscriminator.yaml +++ b/openapi/components/schemas/GroupDiscriminator.yaml @@ -1,4 +1,3 @@ example: '1234' -pattern: '^[0-9]{4}$' title: GroupDiscriminator type: string diff --git a/openapi/components/schemas/GroupGalleryID.yaml b/openapi/components/schemas/GroupGalleryID.yaml index 08ce83f1..abf17e3b 100644 --- a/openapi/components/schemas/GroupGalleryID.yaml +++ b/openapi/components/schemas/GroupGalleryID.yaml @@ -1,4 +1,3 @@ example: ggal_a03a4b55-4ca6-4490-9519-40ba6351a233 -pattern: 'ggal_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' title: GroupGalleryID type: string diff --git a/openapi/components/schemas/GroupGalleryImageID.yaml b/openapi/components/schemas/GroupGalleryImageID.yaml index 923fbaa4..38f03b55 100644 --- a/openapi/components/schemas/GroupGalleryImageID.yaml +++ b/openapi/components/schemas/GroupGalleryImageID.yaml @@ -1,4 +1,3 @@ example: ggim_71a7ff59-112c-4e78-a990-c7cc650776e5 -pattern: 'ggim_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' title: GroupGalleryImageID type: string diff --git a/openapi/components/schemas/GroupID.yaml b/openapi/components/schemas/GroupID.yaml index 2b0f6a8c..cce852c2 100644 --- a/openapi/components/schemas/GroupID.yaml +++ b/openapi/components/schemas/GroupID.yaml @@ -1,4 +1,3 @@ example: grp_71a7ff59-112c-4e78-a990-c7cc650776e5 -pattern: 'grp_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' title: GroupID type: string diff --git a/openapi/components/schemas/GroupMemberID.yaml b/openapi/components/schemas/GroupMemberID.yaml index 897d73aa..0dc3cc05 100644 --- a/openapi/components/schemas/GroupMemberID.yaml +++ b/openapi/components/schemas/GroupMemberID.yaml @@ -1,4 +1,3 @@ example: gmem_95cdb3b4-4643-4eb6-bdab-46a4e1e5ce37 -pattern: 'gmem_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' title: GroupMemberID type: string diff --git a/openapi/components/schemas/GroupRoleID.yaml b/openapi/components/schemas/GroupRoleID.yaml index 29bb1449..ca6c93ee 100644 --- a/openapi/components/schemas/GroupRoleID.yaml +++ b/openapi/components/schemas/GroupRoleID.yaml @@ -1,4 +1,3 @@ example: grol_459d3911-f672-44bc-b84d-e54ffe7960fe -pattern: 'grol_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' title: GroupRoleID type: string diff --git a/openapi/components/schemas/GroupShortCode.yaml b/openapi/components/schemas/GroupShortCode.yaml index 48944873..a9661482 100644 --- a/openapi/components/schemas/GroupShortCode.yaml +++ b/openapi/components/schemas/GroupShortCode.yaml @@ -1,4 +1,3 @@ example: ABC123 -pattern: '^[A-Z0-9]{3,6}$' title: GroupShortCode type: string diff --git a/openapi/components/schemas/InstanceID.yaml b/openapi/components/schemas/InstanceID.yaml index 08d7c5c5..b9a596af 100644 --- a/openapi/components/schemas/InstanceID.yaml +++ b/openapi/components/schemas/InstanceID.yaml @@ -1,5 +1,4 @@ type: string -example: 'wrld_ba913a96-fac4-4048-a062-9aa5db092812:12345~hidden(usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469)~region(eu)~nonce(27e8414a-59a0-4f3d-af1f-f27557eb49a2)' -pattern: '(private|offline|(wrld|wld)_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}:(\d+)(~region\(([\w]+)\))?(~([\w]+)\(usr_([\w-]+)\)((\~canRequestInvite)?)(~region\(([\w].+)\))?~nonce\((.+)\))?)' +example: '12345~hidden(usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469)~region(eu)~nonce(27e8414a-59a0-4f3d-af1f-f27557eb49a2)' title: InstanceID description: InstanceID can be "offline" on User profiles if you are not friends with that user and "private" if you are friends and user is in private instance. diff --git a/openapi/components/schemas/InstanceType.yaml b/openapi/components/schemas/InstanceType.yaml index a9b1db60..3f137836 100644 --- a/openapi/components/schemas/InstanceType.yaml +++ b/openapi/components/schemas/InstanceType.yaml @@ -6,4 +6,5 @@ enum: - hidden - friends - private + - group description: '' diff --git a/openapi/components/schemas/InviteMessageID.yaml b/openapi/components/schemas/InviteMessageID.yaml index f0f68608..f0895894 100644 --- a/openapi/components/schemas/InviteMessageID.yaml +++ b/openapi/components/schemas/InviteMessageID.yaml @@ -1,4 +1,3 @@ example: invm_24a1c14d-5e24-48e5-90e3-c3f712420ffa -pattern: '(default|invm_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})' title: InviteMessageID type: string diff --git a/openapi/components/schemas/License.yaml b/openapi/components/schemas/License.yaml index 4f95dc7f..d4f7fa8f 100644 --- a/openapi/components/schemas/License.yaml +++ b/openapi/components/schemas/License.yaml @@ -5,7 +5,6 @@ properties: type: string description: 'Either a AvatarID, LicenseGroupID, PermissionID or ProductID. This depends on the `forType` field.' minLength: 1 - pattern: '(avtr|lgrp|prms|prod)_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' forType: $ref: ./LicenseType.yaml forName: diff --git a/openapi/components/schemas/LicenseGroupID.yaml b/openapi/components/schemas/LicenseGroupID.yaml index 50038a6d..1b94a6db 100644 --- a/openapi/components/schemas/LicenseGroupID.yaml +++ b/openapi/components/schemas/LicenseGroupID.yaml @@ -1,4 +1,3 @@ example: lgrp_608513da-b213-4e15-80af-bd88c27f0979 -pattern: 'lgrp_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' title: LicenseGroupID type: string diff --git a/openapi/components/schemas/LimitedGroup.yaml b/openapi/components/schemas/LimitedGroup.yaml new file mode 100644 index 00000000..8383b0f8 --- /dev/null +++ b/openapi/components/schemas/LimitedGroup.yaml @@ -0,0 +1,49 @@ +title: LimitedGroup +type: object +properties: + id: + $ref: ./GroupID.yaml + name: + type: string + shortCode: + $ref: ./GroupShortCode.yaml + discriminator: + $ref: ./GroupDiscriminator.yaml + description: + type: string + iconUrl: + type: string + nullable: true + bannerUrl: + type: string + nullable: true + ownerId: + $ref: ./UserID.yaml + rules: + type: string + nullable: true + iconId: + type: string + nullable: true + bannerId: + type: string + nullable: true + memberCount: + type: integer + tags: + description: ' ' + type: array + items: + $ref: ./Tag.yaml + createdAt: + type: string + format: date-time + membershipStatus: + $ref: ./GroupMemberStatus.yaml + isSearchable: + type: boolean + galleries: + description: ' ' + type: array + items: + $ref: ./GroupGallery.yaml diff --git a/openapi/components/schemas/LimitedUser.yaml b/openapi/components/schemas/LimitedUser.yaml index 075f88de..ca8d72bf 100644 --- a/openapi/components/schemas/LimitedUser.yaml +++ b/openapi/components/schemas/LimitedUser.yaml @@ -48,7 +48,6 @@ required: - statusDescription - currentAvatarImageUrl - currentAvatarThumbnailImageUrl - - fallbackAvatar - developerType - last_platform - status diff --git a/openapi/components/schemas/LimitedWorld.yaml b/openapi/components/schemas/LimitedWorld.yaml index 1d8a0a6e..9e819e10 100644 --- a/openapi/components/schemas/LimitedWorld.yaml +++ b/openapi/components/schemas/LimitedWorld.yaml @@ -7,8 +7,9 @@ properties: type: string capacity: example: 8 - maximum: 40 - minimum: 0 + type: integer + recommendedCapacity: + example: 16 type: integer created_at: format: date-time @@ -72,6 +73,10 @@ properties: updated_at: format: date-time type: string + udonProducts: + type: array + items: + $ref: ./UdonProductId.yaml required: - id - name diff --git a/openapi/components/schemas/NotificationID.yaml b/openapi/components/schemas/NotificationID.yaml index 88b0f73d..79534912 100644 --- a/openapi/components/schemas/NotificationID.yaml +++ b/openapi/components/schemas/NotificationID.yaml @@ -1,4 +1,3 @@ example: not_00000000-0000-0000-0000-000000000000 -pattern: '(not|frq)_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' title: NotificationID type: string diff --git a/openapi/components/schemas/PermissionID.yaml b/openapi/components/schemas/PermissionID.yaml index 33042402..944ce64b 100644 --- a/openapi/components/schemas/PermissionID.yaml +++ b/openapi/components/schemas/PermissionID.yaml @@ -1,4 +1,3 @@ example: prms_804ba021-9f47-4e25-9847-1f42fdb2e6ff -pattern: 'prms_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' title: PermissionID type: string diff --git a/openapi/components/schemas/PlayerModerationID.yaml b/openapi/components/schemas/PlayerModerationID.yaml index b685d3ca..ad81eb4f 100644 --- a/openapi/components/schemas/PlayerModerationID.yaml +++ b/openapi/components/schemas/PlayerModerationID.yaml @@ -1,4 +1,3 @@ example: pmod_25551a8d-6f5d-430a-88d3-9c0ce08b5244 -pattern: 'pmod_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' title: PlayerModerationID type: string diff --git a/openapi/components/schemas/ProductID.yaml b/openapi/components/schemas/ProductID.yaml index 7593b475..210c5f21 100644 --- a/openapi/components/schemas/ProductID.yaml +++ b/openapi/components/schemas/ProductID.yaml @@ -1,4 +1,3 @@ example: prod_bfbc2315-247a-44d7-bfea-5237f8d56cb4 -pattern: 'prod_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' title: ProductID type: string diff --git a/openapi/components/schemas/TransactionID.yaml b/openapi/components/schemas/TransactionID.yaml index 43583a23..8c316912 100644 --- a/openapi/components/schemas/TransactionID.yaml +++ b/openapi/components/schemas/TransactionID.yaml @@ -1,4 +1,3 @@ example: txn_e5c72948-e735-4880-8245-24b2a41198b0 -pattern: 'txn_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' title: TransactionID type: string diff --git a/openapi/components/schemas/UdonProductId.yaml b/openapi/components/schemas/UdonProductId.yaml new file mode 100644 index 00000000..55d5933c --- /dev/null +++ b/openapi/components/schemas/UdonProductId.yaml @@ -0,0 +1,4 @@ +example: prod_c1644b5b-3ca4-45b4-97c6-a2a0de70d469 +title: UdonProductId +type: string +description: 'A unique ID of a Udon Product' diff --git a/openapi/components/schemas/UnityPackage.yaml b/openapi/components/schemas/UnityPackage.yaml index b4997363..64cf9bbf 100644 --- a/openapi/components/schemas/UnityPackage.yaml +++ b/openapi/components/schemas/UnityPackage.yaml @@ -11,9 +11,12 @@ example: unitySortNumber: 20180414000 unityVersion: 2018.4.14f1 properties: + id: + $ref: ./UnityPackageID.yaml assetUrl: minLength: 1 type: string + nullable: true assetUrlObject: type: object assetVersion: @@ -22,8 +25,6 @@ properties: created_at: format: date-time type: string - id: - $ref: ./UnityPackageID.yaml platform: $ref: ./Platform.yaml pluginUrl: @@ -39,6 +40,11 @@ properties: example: 2018.4.12f1 minLength: 1 type: string + impostorUrl: + type: string + nullable: true + scanStatus: + type: string required: - id - unityVersion diff --git a/openapi/components/schemas/UnityPackageID.yaml b/openapi/components/schemas/UnityPackageID.yaml index 907acf9f..4314636e 100644 --- a/openapi/components/schemas/UnityPackageID.yaml +++ b/openapi/components/schemas/UnityPackageID.yaml @@ -1,4 +1,3 @@ example: unp_52b12c39-4163-457d-a4a9-630e7aff1bff -pattern: '(unp)_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}' title: UnityPackageID type: string diff --git a/openapi/components/schemas/World.yaml b/openapi/components/schemas/World.yaml index f99b2529..7e32c0a4 100644 --- a/openapi/components/schemas/World.yaml +++ b/openapi/components/schemas/World.yaml @@ -9,8 +9,9 @@ properties: type: string capacity: example: 8 - maximum: 40 - minimum: 0 + type: integer + recommendedCapacity: + example: 4 type: integer created_at: format: date-time @@ -115,10 +116,15 @@ properties: example: 9988675 minimum: 0 type: integer + udonProducts: + type: array + items: + $ref: ./UdonProductId.yaml required: - authorId - authorName - capacity + - recommendedCapacity - created_at - description - featured @@ -134,7 +140,6 @@ required: - releaseStatus - tags - thumbnailImageUrl - - unityPackages - updated_at - version - visits diff --git a/openapi/components/schemas/WorldID.yaml b/openapi/components/schemas/WorldID.yaml index 7a1d368c..b8125e91 100644 --- a/openapi/components/schemas/WorldID.yaml +++ b/openapi/components/schemas/WorldID.yaml @@ -1,5 +1,4 @@ example: wrld_ba913a96-fac4-4048-a062-9aa5db092812 -pattern: '(^$|offline|(wrld|wld)_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})' title: WorldID type: string description: WorldID be "offline" on User profiles if you are not friends with that user. diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 710fb982..681e58d4 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -1,18 +1,18 @@ openapi: 3.0.3 info: title: VRChat API Documentation - version: 1.12.0 + version: 1.16.2 contact: name: Unofficial VRChat API Documentation Project - url: 'https://github.com/VRChatAPI' + url: "https://github.com/VRChatAPI" email: vrchatapi.lpv0t@aries.fyi - termsOfService: 'https://vrchat.com/legal/' + termsOfService: "https://vrchat.com/legal/" license: - url: 'https://github.com/vrchatapi/specification/blob/master/LICENSE' + url: "https://github.com/vrchatapi/specification/blob/master/LICENSE" name: MIT description: "![VRChat API Banner](https://vrchatapi.github.io/assets/img/api_banner_1500x400.png)\n\n# Welcome to the VRChat API\n\nBefore we begin, we would like to state this is a **COMMUNITY DRIVEN PROJECT**.\nThis means that everything you read on here was written by the community itself and is **not** officially supported by VRChat.\nThe documentation is provided \"AS IS\", and any action you take towards VRChat is completely your own responsibility.\n\nThe documentation and additional libraries SHALL ONLY be used for applications interacting with VRChat's API in accordance\nwith their [Terms of Service](https://hello.vrchat.com/legal) and [Community Guidelines](https://hello.vrchat.com/community-guidelines), and MUST NOT be used for modifying the client, \"avatar ripping\", or other illegal activities.\nMalicious usage or spamming the API may result in account termination.\nCertain parts of the API are also more sensitive than others, for example moderation, so please tread extra carefully and read the warnings when present.\n\n![Tupper Policy on API](https://i.imgur.com/yLlW7Ok.png)\n\nFinally, use of the API using applications other than the approved methods (website, VRChat application, Unity SDK) is not officially supported.\nVRChat provides no guarantee or support for external applications using the API. Access to API endpoints may break **at any time, without notice**.\nTherefore, please **do not ping** VRChat Staff in the VRChat Discord if you are having API problems, as they do not provide API support.\nWe will make a best effort in keeping this documentation and associated language libraries up to date, but things might be outdated or missing.\nIf you find that something is no longer valid, please contact us on Discord or [create an issue](https://github.com/vrchatapi/specification/issues) and tell us so we can fix it.\n\n# Getting Started\n\nThe VRChat API can be used to programmatically retrieve or update information regarding your profile, friends, avatars, worlds and more.\nThe API consists of two parts, \"Photon\" which is only used in-game, and the \"Web API\" which is used by both the game and the website.\nThis documentation focuses only on the Web API.\n\nThe API is designed around the REST ideology, providing semi-simple and usually predictable URIs to access and modify objects.\nRequests support standard HTTP methods like GET, PUT, POST, and DELETE and standard status codes.\nResponse bodies are always UTF-8 encoded JSON objects, unless explicitly documented otherwise.\n\n
\n \U0001F6D1 Warning! Do not touch Photon!
\n Photon is only used by the in-game client and should not be touched. Doing so may result in permanent account termination.\n
\n\n
\n ℹ️ API Key and Authentication
\n The API Key has always been the same and is currently JlE5Jldo5Jibnk5O5hTx6XVqsJu4WJ26.\n Read Authentication for how to log in.\n
\n\n# Using the API\n\nFor simply exploring what the API can do it is strongly recommended to download [Insomnia](https://insomnia.rest/download), a free and open-source\nAPI client that's great for sending requests to the API in an orderly fashion.\nInsomnia allows you to send data in the format that's required for VRChat's API.\nIt is also possible to try out the API in your browser, by first logging in at [vrchat.com/home](https://vrchat.com/home/) and then going to\n[vrchat.com/api/1/auth/user](https://vrchat.com/api/1/auth/user), but the information will be much harder to work with.\n\nFor more permanent operation such as software development it is instead recommended to use one of the existing language SDKs.\nThis community project maintains API libraries in several languages, which allows you to interact with the API with simple function calls\nrather than having to implement the HTTP protocol yourself. Most of these libraries are automatically generated from the API specification,\nsometimes with additional helpful wrapper code to make usage easier. This allows them to be almost automatically updated and expanded upon\nas soon as a new feature is introduced in the specification itself. The libraries can be found on [GitHub](https://github.com/vrchatapi) or following:\n\n* [NodeJS (JavaScript)](https://www.npmjs.com/package/vrchat)\n* [Dart](https://pub.dev/packages/vrchat_dart)\n* [Rust](https://crates.io/crates/vrchatapi)\n* [C#](https://github.com/vrchatapi/vrchatapi-csharp)\n* [Python](https://github.com/vrchatapi/vrchatapi-python)\n\n# Pagination\n\nMost endpoints enforce pagination, meaning they will only return 10 entries by default, and never more than 100.
\nUsing both the limit and offset parameters allows you to easily paginate through a large number of objects.\n\n| Query Parameter | Type | Description |\n| ----------|--|------- |\n| `n` | integer | The number of objects to return. This value often defaults to 10. Highest limit is always 100.|\n| `offset` | integer | A zero-based offset from the default object sorting.|\n\nIf a request returns fewer objects than the `limit` parameter, there are no more items available to return.\n\n# Contribution\n\nDo you want to get involved in the documentation effort? Do you want to help improve one of the language API libraries?\nThis project is an [OPEN Open Source Project](https://openopensource.org)! This means that individuals making significant and valuable contributions are given\ncommit-access to the project. It also means we are very open and welcoming of new people making contributions, unlike some more guarded open-source projects.\n\n[![Discord](https://img.shields.io/static/v1?label=vrchatapi&message=discord&color=blueviolet&style=for-the-badge)](https://discord.gg/qjZE9C9fkB)" servers: - - url: 'https://api.vrchat.cloud/api/1' + - url: "https://api.vrchat.cloud/api/1" paths: $ref: ./components/paths.yaml components: diff --git a/package-lock.json b/package-lock.json index cb30e6e4..c3ada797 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2442,9 +2442,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "bin": { "semver": "bin/semver" } @@ -2838,9 +2838,9 @@ } }, "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", + "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", "engines": { "node": ">=0.10.0" } @@ -4764,9 +4764,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "setprototypeof": { "version": "1.2.0", @@ -5064,9 +5064,9 @@ } }, "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", + "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==" }, "wordwrap": { "version": "1.0.0",