Skip to content

v1.23.0

Latest

Choose a tag to compare

@github-actions github-actions released this 11 Oct 15:57
· 23 commits to main since this release
5011d3f

These notes cover everything since v1.22.0, including v1.22.1.

Breaking

Group audit logs

getGroupAuditLogs entries are GroupAuditLogEntry, which is now itself the union of event shapes, chosen by eventType. GroupAuditLogEntryEvent is gone, and every event schema includes GroupAuditLogEntryBase.

Notifications

A notification is now a union chosen by type: NotificationBoop, NotificationFriendRequest, NotificationInvite, NotificationInviteResponse, NotificationMessage, NotificationRequestInvite, NotificationRequestInviteResponse and NotificationVoteToKick, with NotificationUnknown for any other type. The fields they share are in NotificationBase. details is still a JSON-encoded string, and each member names the shape it decodes to, such as NotificationDetailInvite.

This changes the responses of getNotifications, getNotification, markNotificationAsRead, respondInvite, respondInviteWithPhoto, requestInvite, requestInviteWithPhoto and friend.

New enum members

A generated client that rejects unknown enum values needs these:

  • ProductType: avatar, credit, test_birdy.
  • SortOption: contains, exact, hotness, trending. It is the sort of searchWorlds, getActiveWorlds, getRecentWorlds and getFavoritedWorlds.
  • bannerType is the enum BannerType: avatarBanner, color, customImage. It was a plain string. CurrentUser, CurrentUserPresence, User, LimitedUserFriend, LimitedUserSearch, MutualFriend, GroupMemberLimitedUser and PublicProfile carry it, and updateProfile accepts it.
  • MIMEType: the value image/svg+xml, with a full-width plus, is now image/svg+xml.

Requests take their own sets

Where a request accepts fewer values than responses carry, it now has its own enum. The response schemas keep the full set.

  • createWorld releaseStatus accepts only private. createAvatar and updateAvatar accept hidden, private and public, not all.
  • createInstance region accepts eu, jp, us and use. InstanceRegion in responses adds unknown.
  • createProduct productType accepts avatar, credit, inventory, listing, test_birdy and udon, not role.
  • createFile mimeType no longer accepts application/octet-stream, application/x-rsync-delta or application/x-rsync-signature, and accepts application/x-adminassetbundle, application/x-avatarbuilderresource, application/x-avatarpart and video/mp4.
  • searchAvatars and getFavoritedAvatars sort by SortOptionAvatar. It adds contains, countMonthlySales, exact, listingDate, performance and trendRank, and drops favorites, heat, labsPublicationDate, magic, popularity, publicationDate, reportCount, reportScore and trust. The popularity default is gone.
  • No default any more: releaseStatus on createWorld, createAvatar and updateAvatar, region on createInstance, mimeType on createFile, productType on createProduct, and isSelfAssignable on updateGroupRole. Send the value you want.

Group roles

createGroupRole requires name and no longer takes id. The API assigns the id and ignores one sent in the body.

Types

  • Nullable: UnityPackage.pluginUrl and DynamicContentRow.avatarSpecific.
  • No longer required on ProductListing: hasAvatar, hasUdon, products, recurrable and stackable. Store listings from getStore and getStoreShelves carry none of them.
  • PublicProfile.themes holds ProfileTheme objects, each with id, name, buttonColor, iconColor and subtextColor, in getPublicProfile and updateProfile.
  • updateProfile takes themeId as a PublicProfileThemeID: a ProfileThemeID or default.
  • Named types that were inline: Instance.languageRatio is InstanceLanguageRatio, and CurrentUser.accountStanding is AccountStandingStatus.

New

  • getAccountStanding returns the current user's account standing and the sanctions on their account. Thanks @Natsumi-sama.
  • getActiveInstances returns active instances, the most populated first. Thanks @Redacted-Dreams (#614).
  • discoverInstances returns instances to discover as LimitedInstance.
  • updateInstance sets or removes the calendar event linked to a group instance. Thanks @BASIC-BIT (#597).
  • searchUsers takes sort (UserSearchSort) and customFields. Thanks @lillithrosepup (#603).
  • updateUser takes allowAvatarCopying and homeLocation. updateProfile takes backgroundGradientTop, backgroundGradientBottom and bannerCustomUrl.
  • createGroupRole takes isAddedOnJoin, requiresTwoFactor and requiresPurchase. updateGroupRole takes isAddedOnJoin and requiresTwoFactor. Setting requiresPurchase to true can be refused with 403: You don't have permission to use requiresPurchase: true. Thanks @Natsumi-sama.
  • createGroupCalendarEvent: isDraft defaults to true and featured to false. Thanks @inkuxuan (#550).
  • Group audit logs have a group.create event, GroupAuditLogEntryGroupCreate, and group.role.update reports changes to requiresTwoFactor. Thanks @lillithrosepup.
  • UnityPackage carries transpilerVersion, and info push presentations carry pinnedDescription and socialDisplay.
  • WebsocketMessage describes the messages received over the websocket, with a schema for each type, such as friend-online, notification and user-location. Thanks @C0D3-M4513R (#601).

Deprecated

getUserFeedback. Moderation reports replace feedback: use getModerationReports. Thanks @nayirdev (#535).

Responses

400 with a validation message on getPlayerModerations, moderateUser, unmoderateUser, discoverCalendarEvents, updateFavoriteGroup, getFavoriteGroups, getFavoriteGroupsByType, getFavoriteGroupContents, createFile, createGroup, updateGroupMember, addGroupPost, updateGroupPost, respondGroupJoinRequest, createGroupRole, updateGroupRole, getInventory, createProductListingDirect, createProduct and getActiveWorlds.

Full Changelog: v1.22.1...v1.23.0