Repository navigation
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 thesortofsearchWorlds,getActiveWorlds,getRecentWorldsandgetFavoritedWorlds.bannerTypeis the enumBannerType:avatarBanner,color,customImage. It was a plain string.CurrentUser,CurrentUserPresence,User,LimitedUserFriend,LimitedUserSearch,MutualFriend,GroupMemberLimitedUserandPublicProfilecarry it, andupdateProfileaccepts it.MIMEType: the valueimage/svg+xml, with a full-width plus, is nowimage/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.
createWorldreleaseStatusaccepts onlyprivate.createAvatarandupdateAvataraccepthidden,privateandpublic, notall.createInstanceregionacceptseu,jp,usanduse.InstanceRegionin responses addsunknown.createProductproductTypeacceptsavatar,credit,inventory,listing,test_birdyandudon, notrole.createFilemimeTypeno longer acceptsapplication/octet-stream,application/x-rsync-deltaorapplication/x-rsync-signature, and acceptsapplication/x-adminassetbundle,application/x-avatarbuilderresource,application/x-avatarpartandvideo/mp4.searchAvatarsandgetFavoritedAvatarssort bySortOptionAvatar. It addscontains,countMonthlySales,exact,listingDate,performanceandtrendRank, and dropsfavorites,heat,labsPublicationDate,magic,popularity,publicationDate,reportCount,reportScoreandtrust. Thepopularitydefault is gone.- No default any more:
releaseStatusoncreateWorld,createAvatarandupdateAvatar,regiononcreateInstance,mimeTypeoncreateFile,productTypeoncreateProduct, andisSelfAssignableonupdateGroupRole. 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.pluginUrlandDynamicContentRow.avatarSpecific. - No longer required on
ProductListing:hasAvatar,hasUdon,products,recurrableandstackable. Store listings fromgetStoreandgetStoreShelvescarry none of them. PublicProfile.themesholdsProfileThemeobjects, each withid,name,buttonColor,iconColorandsubtextColor, ingetPublicProfileandupdateProfile.updateProfiletakesthemeIdas aPublicProfileThemeID: aProfileThemeIDordefault.- Named types that were inline:
Instance.languageRatioisInstanceLanguageRatio, andCurrentUser.accountStandingisAccountStandingStatus.
New
getAccountStandingreturns the current user's account standing and the sanctions on their account. Thanks @Natsumi-sama.getActiveInstancesreturns active instances, the most populated first. Thanks @Redacted-Dreams (#614).discoverInstancesreturns instances to discover asLimitedInstance.updateInstancesets or removes the calendar event linked to a group instance. Thanks @BASIC-BIT (#597).searchUserstakessort(UserSearchSort) andcustomFields. Thanks @lillithrosepup (#603).updateUsertakesallowAvatarCopyingandhomeLocation.updateProfiletakesbackgroundGradientTop,backgroundGradientBottomandbannerCustomUrl.createGroupRoletakesisAddedOnJoin,requiresTwoFactorandrequiresPurchase.updateGroupRoletakesisAddedOnJoinandrequiresTwoFactor. SettingrequiresPurchasetotruecan be refused with403:You don't have permission to use requiresPurchase: true.Thanks @Natsumi-sama.createGroupCalendarEvent:isDraftdefaults totrueandfeaturedtofalse. Thanks @inkuxuan (#550).- Group audit logs have a
group.createevent,GroupAuditLogEntryGroupCreate, andgroup.role.updatereports changes torequiresTwoFactor. Thanks @lillithrosepup. UnityPackagecarriestranspilerVersion, and info push presentations carrypinnedDescriptionandsocialDisplay.WebsocketMessagedescribes the messages received over the websocket, with a schema for eachtype, such asfriend-online,notificationanduser-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