Help us shape the future of Go! Take the 2026 Go Developer Survey

vrchat

package module
v0.2.58 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 10, 2026 License: Apache-2.0 Imports: 9 Imported by: 0

README

VRChat API Library for Go with proxy & rate limiting

A Go client to interact with VRChat API. Supports all REST calls specified in the API specification.

The *.gen.go files are generated by using mayocream/openapi-codegen.

TODO

If request fails because of proxy: |dp | 2025-06-30T10:16:59Z ERR services/vruser/user.go:714 > Failed to get user instances groups error="error sending request: Get "https://api.vrchat.cloud/api/1/users/usr_5d5c18e5-b741-45b2-9387-74e75f14d206/instances/groups": proxyconnect tcp: dial tcp 184.174.46.225:5854: i/o timeout" user_id=usr_5d5c18e5-b741-45b2-9387-74e75f14d206 try again for 10 min and replace proxy if doesnt work

Usage

Basic Usage
package main

import (
	"fmt"
	"github.com/TheGP/vrchat-go-with-proxy"
	"time"
)

func main() {
	client := vrchat.NewClient("https://api.vrchat.cloud/api/1", time.Minute*1)

	// Authenticate with custom User-Agent
	userAgent := "my-custom-app/1.0 user@email.com"
	err := client.Authenticate("username", "password", "totp-code", userAgent)
	if err != nil {
		panic(err)
	}

	fmt.Println("Authenticated!")
}
Getting auth cookies

After authenticating, you can get the cookies using the GetCookies method:

// After authenticating:
cookies := client.GetCookies() // []*http.Cookie

To save them for later. If cookie authentication failed, you can clear them using the ClearCookies method:

client.ClearCookies()

You have to do it before authenticating normally.

Authenticate Using Cookies

If you have previously saved authentication cookies, you can authenticate using them:

package main

import (
	"github.com/TheGP/vrchat-go-with-proxy"
	"net/http"
	"time"
)

func main() {
	client := vrchat.NewClient("https://api.vrchat.cloud/api/1", time.Minute*1)

	// Load your cookies (from DB, file, etc)
	var cookies []*http.Cookie
	// ... load cookies ...

	userAgent := "my-custom-app/1.0 user@email.com"
	err := client.AuthenticateWithCookies(cookies, userAgent)
	if err != nil {
		panic(err)
	}

	// Now you can make authenticated requests
}
Using Proxy Support

This fork adds HTTP proxy support to the original VRChat Go client:

package main

import (
	"github.com/TheGP/vrchat-go-with-proxy"
	"time"
)

func main() {
	// Create proxy configuration
	proxyConfig := &vrchat.ProxyConfig{
		Host:     "proxy-host",     // Proxy server hostname or IP
		Port:     "8080",          // Proxy server port
		Username: "proxy-username", // Optional: proxy authentication username
		Password: "proxy-password", // Optional: proxy authentication password
	}

	client := vrchat.NewClientWithProxy("https://api.vrchat.cloud/api/1", proxyConfig, time.Minute*1)

	// Testing proxy
	ip, err := client.TestProxy()
	if err != nil {
		log.Fatalf("Proxy test failed: %v", err)
	}
	fmt.Println("Proxy IP:", ip)

	userAgent := "my-custom-app/1.0 user@email.com"
	err := client.Authenticate("username", "password", "totp-code", userAgent)
	if err != nil {
		panic(err)
	}

	// ...
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RateLimitingMiddleware added in v0.2.7

func RateLimitingMiddleware(minInterval time.Duration) resty.RequestMiddleware

RateLimitingMiddleware is a standalone middleware function for Resty v3

Types

type AcceptFriendRequestError

type AcceptFriendRequestError Error

type AcceptFriendRequestParams

type AcceptFriendRequestParams struct {
	NotificationId string `json:"notificationId"`
}

AcceptFriendRequestParams represents the parameters for the AcceptFriendRequest request

type AccountDeletionLog

type AccountDeletionLog struct {
	// DateTime Date and time of the deletion request.
	DateTime time.Time `json:"dateTime,omitempty"`

	// DeletionScheduled When the deletion is scheduled to happen, standard is 14 days after the request.
	DeletionScheduled time.Time `json:"deletionScheduled,omitempty"`

	// Message Typically "Deletion requested" or "Deletion canceled". Other messages like "Deletion completed" may exist, but are these are not possible to see as a regular user.
	Message string `json:"message,omitempty"`
}

type AddFavoriteRequest

type AddFavoriteRequest struct {
	// FavoriteId Must be either AvatarID, WorldID or UserID.
	FavoriteId string `json:"favoriteId"`

	// Tags Tags indicate which group this favorite belongs to. Adding multiple groups makes it show up in all. Removing it from one in that case removes it from all.
	Tags []Tag        `json:"tags"`
	Type FavoriteType `json:"type"`
}

type AddGroupGalleryImageParams

type AddGroupGalleryImageParams struct {
	GroupId        string `json:"groupId"`
	GroupGalleryId string `json:"groupGalleryId"`
}

AddGroupGalleryImageParams represents the parameters for the AddGroupGalleryImage request

type AddGroupGalleryImageRequest

type AddGroupGalleryImageRequest struct {
	FileId FileId `json:"fileId"`
}

type AddGroupMemberRoleParams

type AddGroupMemberRoleParams struct {
	GroupId     string `json:"groupId"`
	UserId      string `json:"userId"`
	GroupRoleId string `json:"groupRoleId"`
}

AddGroupMemberRoleParams represents the parameters for the AddGroupMemberRole request

type AddGroupPostParams

type AddGroupPostParams struct {
	GroupId string `json:"groupId"`
}

AddGroupPostParams represents the parameters for the AddGroupPost request

type ApiConfig

type ApiConfig struct {
	// Address VRChat's office address
	Address string `json:"address"`

	// Announcements Public Announcements
	Announcements []ApiConfigAnnouncement `json:"announcements"`

	// AppName Game name
	AppName string `json:"appName"`

	// AvailableLanguageCodes List of supported Languages
	AvailableLanguageCodes []string `json:"availableLanguageCodes"`

	// AvailableLanguages List of supported Languages
	AvailableLanguages []string `json:"availableLanguages"`

	// BuildVersionTag Build tag of the API server
	BuildVersionTag string `json:"buildVersionTag"`

	// ClientApiKey apiKey to be used for all other requests
	ClientApiKey string `json:"clientApiKey"`

	// ClientBpsCeiling Unknown
	ClientBpsCeiling int64 `json:"clientBPSCeiling"`

	// ClientDisconnectTimeout Unknown
	ClientDisconnectTimeout int64 `json:"clientDisconnectTimeout"`

	// ClientNetDispatchThread Unknown
	ClientNetDispatchThread bool `json:"clientNetDispatchThread,omitempty"`

	// ClientNetInThread Unknown
	ClientNetInThread bool `json:"clientNetInThread,omitempty"`

	// ClientNetInThread2 Unknown
	ClientNetInThread2 bool `json:"clientNetInThread2,omitempty"`

	// ClientNetInThreadMobile Unknown
	ClientNetInThreadMobile bool `json:"clientNetInThreadMobile,omitempty"`

	// ClientNetInThreadMobile2 Unknown
	ClientNetInThreadMobile2 bool `json:"clientNetInThreadMobile2,omitempty"`

	// ClientNetOutThread Unknown
	ClientNetOutThread bool `json:"clientNetOutThread,omitempty"`

	// ClientNetOutThread2 Unknown
	ClientNetOutThread2 bool `json:"clientNetOutThread2,omitempty"`

	// ClientNetOutThreadMobile Unknown
	ClientNetOutThreadMobile bool `json:"clientNetOutThreadMobile,omitempty"`

	// ClientNetOutThreadMobile2 Unknown
	ClientNetOutThreadMobile2 bool `json:"clientNetOutThreadMobile2,omitempty"`

	// ClientQr Unknown
	ClientQr int64 `json:"clientQR,omitempty"`

	// ClientReservedPlayerBps Unknown
	ClientReservedPlayerBps int64 `json:"clientReservedPlayerBPS"`

	// ClientSentCountAllowance Unknown
	ClientSentCountAllowance int64 `json:"clientSentCountAllowance"`

	// ContactEmail VRChat's contact email
	ContactEmail string `json:"contactEmail"`

	// CopyrightEmail VRChat's copyright-issues-related email
	CopyrightEmail string `json:"copyrightEmail"`

	// CurrentPrivacyVersion Current version number of the Privacy Agreement
	CurrentPrivacyVersion int64 `json:"currentPrivacyVersion,omitempty"`

	// CurrentTosVersion Current version number of the Terms of Service
	CurrentTosVersion int64    `json:"currentTOSVersion"`
	DefaultAvatar     AvatarId `json:"defaultAvatar"`

	// DeploymentGroup Used to identify which API deployment cluster is currently responding.
	//
	// `blue` and `green` are used by Production.
	// `grape`and `cherry` are used during Development.
	//
	// [Blue Green Deployment by Martin Fowler](https://martinfowler.com/bliki/BlueGreenDeployment.html)
	DeploymentGroup DeploymentGroup `json:"deploymentGroup"`

	// DevLanguageCodes Unknown
	DevLanguageCodes []string `json:"devLanguageCodes,omitempty"`

	// DevSdkUrl Link to download the development SDK, use downloadUrls instead
	DevSdkUrl string `json:"devSdkUrl"`

	// DevSdkVersion Version of the development SDK
	DevSdkVersion string `json:"devSdkVersion"`

	// DisCountdown Unknown, "dis" maybe for disconnect?
	DisCountdown time.Time `json:"dis-countdown"`

	// DisableAvProInProton Unknown
	DisableAvProInProton bool `json:"disableAVProInProton,omitempty"`

	// DisableAvatarCopying Toggles if copying avatars should be disabled
	DisableAvatarCopying bool `json:"disableAvatarCopying"`

	// DisableAvatarGating Toggles if avatar gating should be disabled. Avatar gating restricts uploading of avatars to people with the `system_avatar_access` Tag or `admin_avatar_access` Tag
	DisableAvatarGating bool `json:"disableAvatarGating"`

	// DisableCaptcha Unknown
	DisableCaptcha bool `json:"disableCaptcha,omitempty"`

	// DisableCommunityLabs Toggles if the Community Labs should be disabled
	DisableCommunityLabs bool `json:"disableCommunityLabs"`

	// DisableCommunityLabsPromotion Toggles if promotion out of Community Labs should be disabled
	DisableCommunityLabsPromotion bool `json:"disableCommunityLabsPromotion"`

	// DisableEmail Unknown
	DisableEmail bool `json:"disableEmail"`

	// DisableEventStream Toggles if Analytics should be disabled.
	DisableEventStream bool `json:"disableEventStream"`

	// DisableFeedbackGating Toggles if feedback gating should be disabled. Feedback gating restricts submission of feedback (reporting a World or User) to people with the `system_feedback_access` Tag.
	DisableFeedbackGating bool `json:"disableFeedbackGating"`

	// DisableFrontendBuilds Unknown, probably toggles compilation of frontend web builds? So internal flag?
	DisableFrontendBuilds bool `json:"disableFrontendBuilds"`

	// DisableHello Unknown
	DisableHello bool `json:"disableHello"`

	// DisableOculusSubs Toggles if signing up for Subscriptions in Oculus is disabled or not.
	DisableOculusSubs bool `json:"disableOculusSubs"`

	// DisableRegistration Toggles if new user account registration should be disabled.
	DisableRegistration bool `json:"disableRegistration"`

	// DisableSteamNetworking Toggles if Steam Networking should be disabled. VRChat these days uses Photon Unity Networking (PUN) instead.
	DisableSteamNetworking bool `json:"disableSteamNetworking"`

	// DisableTwoFactorAuth Toggles if 2FA should be disabled.
	DisableTwoFactorAuth bool `json:"disableTwoFactorAuth"`

	// DisableUdon Toggles if Udon should be universally disabled in-game.
	DisableUdon bool `json:"disableUdon"`

	// DisableUpgradeAccount Toggles if account upgrading "linking with Steam/Oculus" should be disabled.
	DisableUpgradeAccount bool `json:"disableUpgradeAccount"`

	// DownloadLinkWindows Download link for game on the Oculus Rift website.
	DownloadLinkWindows string `json:"downloadLinkWindows"`

	// DownloadUrls Download links for various development assets.
	DownloadUrls ApiConfigDownloadUrlList `json:"downloadUrls"`

	// DynamicWorldRows Array of DynamicWorldRow objects, used by the game to display the list of world rows
	DynamicWorldRows []DynamicContentRow `json:"dynamicWorldRows"`

	// EconomyPauseEnd Unknown
	EconomyPauseEnd string `json:"economyPauseEnd,omitempty"`

	// EconomyPauseStart Unknown
	EconomyPauseStart string `json:"economyPauseStart,omitempty"`

	// EconomyState Unknown
	EconomyState int64           `json:"economyState,omitempty"`
	Events       ApiConfigEvents `json:"events"`

	// HomeWorldId WorldID be "offline" on User profiles if you are not friends with that user.
	HomeWorldId WorldId `json:"homeWorldId"`

	// HomepageRedirectTarget Redirect target if you try to open the base API domain in your browser
	HomepageRedirectTarget string `json:"homepageRedirectTarget"`

	// HubWorldId WorldID be "offline" on User profiles if you are not friends with that user.
	HubWorldId WorldId `json:"hubWorldId"`

	// ImageHostUrlList A list of explicitly allowed origins that worlds can request images from via the Udon's [VRCImageDownloader#DownloadImage](https://creators.vrchat.com/worlds/udon/image-loading/#downloadimage).
	ImageHostUrlList []string `json:"imageHostUrlList"`

	// JobsEmail VRChat's job application email
	JobsEmail string `json:"jobsEmail"`

	// ModerationEmail VRChat's moderation related email
	ModerationEmail string `json:"moderationEmail"`

	// NotAllowedToSelectAvatarInPrivateWorldMessage Used in-game to notify a user they aren't allowed to select avatars in private worlds
	NotAllowedToSelectAvatarInPrivateWorldMessage string `json:"notAllowedToSelectAvatarInPrivateWorldMessage"`

	// PlayerUrlResolverSha1 Currently used youtube-dl.exe hash in SHA1-delimited format
	PlayerUrlResolverSha1 string `json:"player-url-resolver-sha1"`

	// PlayerUrlResolverVersion Currently used youtube-dl.exe version
	PlayerUrlResolverVersion string `json:"player-url-resolver-version"`

	// SdkDeveloperFaqUrl Link to the developer FAQ
	SdkDeveloperFaqUrl string `json:"sdkDeveloperFaqUrl"`

	// SdkDiscordUrl Link to the official VRChat Discord
	SdkDiscordUrl string `json:"sdkDiscordUrl"`

	// SdkNotAllowedToPublishMessage Used in the SDK to notify a user they aren't allowed to upload avatars/worlds yet
	SdkNotAllowedToPublishMessage string `json:"sdkNotAllowedToPublishMessage"`

	// SdkUnityVersion Unity version supported by the SDK
	SdkUnityVersion string `json:"sdkUnityVersion"`

	// ServerName Server name of the API server currently responding
	ServerName string `json:"serverName"`

	// StringHostUrlList A list of explicitly allowed origins that worlds can request strings from via the Udon's [VRCStringDownloader.LoadUrl](https://creators.vrchat.com/worlds/udon/string-loading/#ivrcstringdownload).
	StringHostUrlList []string `json:"stringHostUrlList"`

	// SupportEmail VRChat's support email
	SupportEmail string `json:"supportEmail"`

	// TimeOutWorldId WorldID be "offline" on User profiles if you are not friends with that user.
	TimeOutWorldId WorldId `json:"timeOutWorldId"`

	// TutorialWorldId WorldID be "offline" on User profiles if you are not friends with that user.
	TutorialWorldId WorldId `json:"tutorialWorldId"`

	// UpdateRateMsMaximum Unknown
	UpdateRateMsMaximum int64 `json:"updateRateMsMaximum"`

	// UpdateRateMsMinimum Unknown
	UpdateRateMsMinimum int64 `json:"updateRateMsMinimum"`

	// UpdateRateMsNormal Unknown
	UpdateRateMsNormal int64 `json:"updateRateMsNormal"`

	// UpdateRateMsUdonManual Unknown
	UpdateRateMsUdonManual int64 `json:"updateRateMsUdonManual"`

	// UploadAnalysisPercent Unknown
	UploadAnalysisPercent int64 `json:"uploadAnalysisPercent"`

	// UrlList List of allowed URLs that bypass the "Allow untrusted URL's" setting in-game
	UrlList []string `json:"urlList"`

	// UseReliableUdpForVoice Unknown
	UseReliableUdpForVoice bool `json:"useReliableUdpForVoice"`

	// ViveWindowsUrl Download link for game on the Steam website.
	ViveWindowsUrl string `json:"viveWindowsUrl"`

	// VoiceEnableDegradation Unknown, probably voice optimization testing
	VoiceEnableDegradation bool `json:"VoiceEnableDegradation"`

	// VoiceEnableReceiverLimiting Unknown, probably voice optimization testing
	VoiceEnableReceiverLimiting bool `json:"VoiceEnableReceiverLimiting"`

	// WhiteListedAssetUrls List of allowed URLs that are allowed to host avatar assets
	WhiteListedAssetUrls []string `json:"whiteListedAssetUrls"`
}

type ApiConfigAnnouncement

type ApiConfigAnnouncement struct {
	// Name Announcement name
	Name string `json:"name"`

	// Text Announcement text
	Text string `json:"text"`
}

ApiConfigAnnouncement Public Announcement

type ApiConfigDownloadUrlList

type ApiConfigDownloadUrlList struct {
	// Bootstrap Download link for ???
	Bootstrap string `json:"bootstrap"`

	// Sdk2 Download link for legacy SDK2
	Sdk2 string `json:"sdk2"`

	// Sdk3Avatars Download link for SDK3 for Avatars
	Sdk3Avatars string `json:"sdk3-avatars"`

	// Sdk3Worlds Download link for SDK3 for Worlds
	Sdk3Worlds string `json:"sdk3-worlds"`

	// Vcc Download link for the Creator Companion
	Vcc string `json:"vcc"`
}

ApiConfigDownloadUrlList Download links for various development assets.

type ApiConfigEvents

type ApiConfigEvents struct {
	// DistanceClose Unknown
	DistanceClose int64 `json:"distanceClose"`

	// DistanceFactor Unknown
	DistanceFactor int64 `json:"distanceFactor"`

	// DistanceFar Unknown
	DistanceFar int64 `json:"distanceFar"`

	// GroupDistance Unknown
	GroupDistance int64 `json:"groupDistance"`

	// MaximumBunchSize Unknown
	MaximumBunchSize int64 `json:"maximumBunchSize"`

	// NotVisibleFactor Unknown
	NotVisibleFactor int64 `json:"notVisibleFactor"`

	// PlayerOrderBucketSize Unknown
	PlayerOrderBucketSize int64 `json:"playerOrderBucketSize"`

	// PlayerOrderFactor Unknown
	PlayerOrderFactor int64 `json:"playerOrderFactor"`

	// SlowUpdateFactorThreshold Unknown
	SlowUpdateFactorThreshold int64 `json:"slowUpdateFactorThreshold"`

	// ViewSegmentLength Unknown
	ViewSegmentLength int64 `json:"viewSegmentLength"`
}

type ApiConfigResponse

type ApiConfigResponse ApiConfig

type ApiHealth

type ApiHealth struct {
	BuildVersionTag string `json:"buildVersionTag"`
	Ok              bool   `json:"ok"`
	ServerName      string `json:"serverName"`
}

type ApiHealthResponse

type ApiHealthResponse ApiHealth

type Avatar

type Avatar struct {
	// AssetUrl Not present from general serach `/avatars`, only on specific requests `/avatars/{avatarId}`.
	AssetUrl string `json:"assetUrl,omitempty"`

	// AssetUrlObject Not present from general serach `/avatars`, only on specific requests `/avatars/{avatarId}`.
	// **Deprecation:** `Object` has unknown usage/fields, and is always empty. Use normal `Url` field instead.
	AssetUrlObject any `json:"assetUrlObject,omitempty"`

	// AuthorId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	AuthorId      UserId        `json:"authorId"`
	AuthorName    string        `json:"authorName"`
	CreatedAt     time.Time     `json:"created_at"`
	Description   string        `json:"description"`
	Featured      bool          `json:"featured"`
	Id            AvatarId      `json:"id"`
	ImageUrl      string        `json:"imageUrl"`
	Name          string        `json:"name"`
	ReleaseStatus ReleaseStatus `json:"releaseStatus"`

	// Tags
	Tags              []Tag  `json:"tags"`
	ThumbnailImageUrl string `json:"thumbnailImageUrl"`
	UnityPackageUrl   string `json:"unityPackageUrl"`

	UnityPackageUrlObject struct {
		UnityPackageUrl string `json:"unityPackageUrl,omitempty"`
	} `json:"unityPackageUrlObject"`
	UnityPackages []UnityPackage `json:"unityPackages"`
	UpdatedAt     time.Time      `json:"updated_at"`
	Version       int64          `json:"version"`
}

type AvatarId

type AvatarId string

type AvatarListResponse

type AvatarListResponse []Avatar

type AvatarNotFoundError

type AvatarNotFoundError Error

type AvatarNotTaggedAsFallbackError

type AvatarNotTaggedAsFallbackError Error

type AvatarResponse

type AvatarResponse Avatar

type AvatarSeeOtherUserCurrentAvatarError

type AvatarSeeOtherUserCurrentAvatarError Error

type AvatarSeeOtherUserFavoritesError

type AvatarSeeOtherUserFavoritesError Error

type Badge

type Badge struct {
	// AssignedAt only present in CurrentUser badges
	AssignedAt       time.Time `json:"assignedAt,omitempty"`
	BadgeDescription string    `json:"badgeDescription"`
	BadgeId          BadgeId   `json:"badgeId"`

	// BadgeImageUrl direct url to image
	BadgeImageUrl string `json:"badgeImageUrl"`
	BadgeName     string `json:"badgeName"`

	// Hidden only present in CurrentUser badges
	Hidden    bool `json:"hidden,omitempty"`
	Showcased bool `json:"showcased"`

	// UpdatedAt only present in CurrentUser badges
	UpdatedAt time.Time `json:"updatedAt,omitempty"`
}

type BadgeId

type BadgeId string

type BanGroupMemberBadRequestError

type BanGroupMemberBadRequestError Error

type BanGroupMemberParams

type BanGroupMemberParams struct {
	GroupId string `json:"groupId"`
}

BanGroupMemberParams represents the parameters for the BanGroupMember request

type BanGroupMemberRequest

type BanGroupMemberRequest struct {
	// UserId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	UserId UserId `json:"userId"`
}

type CancelGroupRequestParams

type CancelGroupRequestParams struct {
	GroupId string `json:"groupId"`
}

CancelGroupRequestParams represents the parameters for the CancelGroupRequest request

type CheckUserExistsParams

type CheckUserExistsParams struct {
	Email         string `json:"email"`
	DisplayName   string `json:"displayName"`
	Username      string `json:"username"`
	ExcludeUserId string `json:"excludeUserId"`
}

CheckUserExistsParams represents the parameters for the CheckUserExists request

type ClearFavoriteGroupParams

type ClearFavoriteGroupParams struct {
	// FavoriteGroupType enum
	FavoriteGroupType string `json:"favoriteGroupType"`
	FavoriteGroupName string `json:"favoriteGroupName"`
	UserId            string `json:"userId"`
}

ClearFavoriteGroupParams represents the parameters for the ClearFavoriteGroup request

type ClearNotificationsSuccess

type ClearNotificationsSuccess Success

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient(baseURL string, delay time.Duration) *Client

func NewClientWithProxy

func NewClientWithProxy(baseURL string, proxyConfig *ProxyConfig, delay time.Duration) *Client

NewClientWithProxy creates a new VRChat client with proxy support

func (*Client) AcceptFriendRequest

func (c *Client) AcceptFriendRequest(params AcceptFriendRequestParams) (*FriendSuccess, error)

func (*Client) AddFavorite

func (c *Client) AddFavorite() (*FavoriteResponse, error)

func (*Client) AddGroupGalleryImage

func (c *Client) AddGroupGalleryImage(params AddGroupGalleryImageParams) (*GroupGalleryImageResponse, error)

func (*Client) AddGroupMemberRole

func (c *Client) AddGroupMemberRole(params AddGroupMemberRoleParams) (*GroupRoleIdListResponse, error)

func (*Client) AddGroupPost

func (c *Client) AddGroupPost(params AddGroupPostParams) (*GroupPostResponse, error)

func (*Client) Authenticate

func (c *Client) Authenticate(username, password, totpSecret string, userAgent string) error

Authenticate authenticates the client with the VRChat API

func (*Client) AuthenticateWithCookies added in v0.2.2

func (c *Client) AuthenticateWithCookies(cookies []*http.Cookie, userAgent string) error

func (*Client) BanGroupMember

func (c *Client) BanGroupMember(params BanGroupMemberParams) (*GroupMemberResponse, error)

func (*Client) CancelGroupRequest

func (c *Client) CancelGroupRequest(params CancelGroupRequestParams) error

func (*Client) CheckUserExists

func (c *Client) CheckUserExists(params CheckUserExistsParams) (*UserExistsResponse, error)

func (*Client) ClearAllPlayerModerations

func (c *Client) ClearAllPlayerModerations() (*PlayerModerationClearAllSuccess, error)

func (*Client) ClearCookies added in v0.2.6

func (c *Client) ClearCookies()

func (*Client) ClearFavoriteGroup

func (c *Client) ClearFavoriteGroup(params ClearFavoriteGroupParams) (*FavoriteGroupClearedSuccess, error)

func (*Client) ClearNotifications

func (c *Client) ClearNotifications() (*ClearNotificationsSuccess, error)

func (*Client) CloseInstance

func (c *Client) CloseInstance(params CloseInstanceParams) (*InstanceResponse, error)

func (*Client) CreateAvatar

func (c *Client) CreateAvatar() (*AvatarResponse, error)

func (*Client) CreateFile

func (c *Client) CreateFile() (*FileResponse, error)

func (*Client) CreateFileVersion

func (c *Client) CreateFileVersion(params CreateFileVersionParams) (*FileResponse, error)

func (*Client) CreateGroup

func (c *Client) CreateGroup() (*GroupResponse, error)

func (*Client) CreateGroupAnnouncement

func (c *Client) CreateGroupAnnouncement(params CreateGroupAnnouncementParams) (*GroupAnnouncementResponse, error)

func (*Client) CreateGroupGallery

func (c *Client) CreateGroupGallery(params CreateGroupGalleryParams) (*GroupGalleryResponse, error)

func (*Client) CreateGroupInvite

func (c *Client) CreateGroupInvite(params CreateGroupInviteParams) error

func (*Client) CreateGroupRole

func (c *Client) CreateGroupRole(params CreateGroupRoleParams) (*GroupRoleResponse, error)

func (*Client) CreateInstance

func (c *Client) CreateInstance() (*InstanceResponse, error)

func (*Client) CreateWorld

func (c *Client) CreateWorld() (*WorldResponse, error)

func (*Client) DeleteAvatar

func (c *Client) DeleteAvatar(params DeleteAvatarParams) (*AvatarResponse, error)

func (*Client) DeleteFile

func (c *Client) DeleteFile(params DeleteFileParams) (*FileResponse, error)

func (*Client) DeleteFileVersion

func (c *Client) DeleteFileVersion(params DeleteFileVersionParams) (*FileResponse, error)

func (*Client) DeleteFriendRequest

func (c *Client) DeleteFriendRequest(params DeleteFriendRequestParams) (*DeleteFriendSuccess, error)

func (*Client) DeleteGroup

func (c *Client) DeleteGroup(params DeleteGroupParams) (*DeleteGroupSuccess, error)

func (*Client) DeleteGroupAnnouncement

func (c *Client) DeleteGroupAnnouncement(params DeleteGroupAnnouncementParams) (*DeleteGroupAnnouncementSuccess, error)

func (*Client) DeleteGroupGallery

func (c *Client) DeleteGroupGallery(params DeleteGroupGalleryParams) (*DeleteGroupGallerySuccess, error)

func (*Client) DeleteGroupGalleryImage

func (c *Client) DeleteGroupGalleryImage(params DeleteGroupGalleryImageParams) (*DeleteGroupGalleryImageSuccess, error)

func (*Client) DeleteGroupInvite

func (c *Client) DeleteGroupInvite(params DeleteGroupInviteParams) error

func (*Client) DeleteGroupPost

func (c *Client) DeleteGroupPost(params DeleteGroupPostParams) (*GroupPostResponseSuccess, error)

func (*Client) DeleteGroupRole

func (c *Client) DeleteGroupRole(params DeleteGroupRoleParams) (*GroupRoleListResponse, error)

func (*Client) DeleteNotification

func (c *Client) DeleteNotification(params DeleteNotificationParams) (*NotificationResponse, error)

func (*Client) DeletePlayerModeration

func (c *Client) DeletePlayerModeration() (*PlayerModerationRemovedSuccess, error)

func (*Client) DeleteUser

func (c *Client) DeleteUser(params DeleteUserParams) (*DeleteUserResponse, error)

func (*Client) DeleteWorld

func (c *Client) DeleteWorld(params DeleteWorldParams) error

func (*Client) DownloadFileVersion

func (c *Client) DownloadFileVersion(params DownloadFileVersionParams) (*RawFileResponse, error)

func (*Client) FinishFileDataUpload

func (c *Client) FinishFileDataUpload(params FinishFileDataUploadParams) (*FileResponse, error)

func (*Client) Friend

func (c *Client) Friend(params FriendParams) (*NotificationResponse, error)

func (*Client) GetActiveWorlds

func (c *Client) GetActiveWorlds(params GetActiveWorldsParams) (*LimitedWorldListResponse, error)

func (*Client) GetAssignedPermissions

func (c *Client) GetAssignedPermissions() (*PermissionListResponse, error)

func (*Client) GetAvatar

func (c *Client) GetAvatar(params GetAvatarParams) (*AvatarResponse, error)

func (*Client) GetConfig

func (c *Client) GetConfig() (*ApiConfigResponse, error)

func (*Client) GetCookies added in v0.2.2

func (c *Client) GetCookies() []*http.Cookie

func (*Client) GetCss

func (c *Client) GetCss(params GetCssParams) error

func (*Client) GetCurrentOnlineUsers

func (c *Client) GetCurrentOnlineUsers() (*CurrentOnlineUsersResponse, error)

func (*Client) GetCurrentSubscriptions

func (c *Client) GetCurrentSubscriptions() (*UserSubscriptionListResponse, error)

func (*Client) GetCurrentUser

func (c *Client) GetCurrentUser() (*CurrentUserLoginResponse, error)

func (*Client) GetFavorite

func (c *Client) GetFavorite(params GetFavoriteParams) (*FavoriteResponse, error)

func (*Client) GetFavoriteGroup

func (c *Client) GetFavoriteGroup(params GetFavoriteGroupParams) (*FavoriteGroupResponse, error)

func (*Client) GetFavoriteGroups

func (c *Client) GetFavoriteGroups(params GetFavoriteGroupsParams) (*FavoriteGroupListResponse, error)

func (*Client) GetFavoritedAvatars

func (c *Client) GetFavoritedAvatars(params GetFavoritedAvatarsParams) (*AvatarListResponse, error)

func (*Client) GetFavoritedWorlds

func (c *Client) GetFavoritedWorlds(params GetFavoritedWorldsParams) (*LimitedWorldListResponse, error)

func (*Client) GetFavorites

func (c *Client) GetFavorites(params GetFavoritesParams) (*FavoriteListResponse, error)

func (*Client) GetFile

func (c *Client) GetFile(params GetFileParams) (*FileResponse, error)

func (*Client) GetFileDataUploadStatus

func (c *Client) GetFileDataUploadStatus(params GetFileDataUploadStatusParams) (*FileVersionUploadStatusResponse, error)

func (*Client) GetFiles

func (c *Client) GetFiles(params GetFilesParams) (*FileListResponse, error)

func (*Client) GetFriendStatus

func (c *Client) GetFriendStatus(params GetFriendStatusParams) (*FriendStatusResponse, error)

func (*Client) GetFriends

func (c *Client) GetFriends(params GetFriendsParams) (*LimitedUserListResponse, error)

func (*Client) GetGroup

func (c *Client) GetGroup(params GetGroupParams) (*GroupResponse, error)

func (*Client) GetGroupAnnouncements

func (c *Client) GetGroupAnnouncements(params GetGroupAnnouncementsParams) (*GroupAnnouncementResponse, error)

func (*Client) GetGroupAuditLogs

func (c *Client) GetGroupAuditLogs(params GetGroupAuditLogsParams) (*GroupAuditLogListResponse, error)

func (*Client) GetGroupBans

func (c *Client) GetGroupBans(params GetGroupBansParams) (*GroupMemberListResponse, error)

func (*Client) GetGroupGalleryImages

func (c *Client) GetGroupGalleryImages(params GetGroupGalleryImagesParams) (*GroupGalleryImageListResponse, error)

func (*Client) GetGroupInstances

func (c *Client) GetGroupInstances(params GetGroupInstancesParams) (*GroupInstanceListResponse, error)

func (*Client) GetGroupInvites

func (c *Client) GetGroupInvites(params GetGroupInvitesParams) (*GroupMemberListResponse, error)

func (*Client) GetGroupMember

func (c *Client) GetGroupMember(params GetGroupMemberParams) (*GroupLimitedMemberResponse, error)

func (*Client) GetGroupMembers

func (c *Client) GetGroupMembers(params GetGroupMembersParams) (*GroupMemberListResponse, error)

func (*Client) GetGroupPermissions

func (c *Client) GetGroupPermissions(params GetGroupPermissionsParams) (*GroupPermissionListResponse, error)

func (*Client) GetGroupPost

func (c *Client) GetGroupPost(params GetGroupPostParams) (*GroupPostResponse, error)

func (*Client) GetGroupRequests

func (c *Client) GetGroupRequests(params GetGroupRequestsParams) (*GroupMemberListResponse, error)

func (*Client) GetGroupRoles

func (c *Client) GetGroupRoles(params GetGroupRolesParams) (*GroupRoleListResponse, error)

func (*Client) GetHealth

func (c *Client) GetHealth() (*ApiHealthResponse, error)

func (*Client) GetInfoPush

func (c *Client) GetInfoPush(params GetInfoPushParams) (*InfoPushListResponse, error)

func (*Client) GetInstance

func (c *Client) GetInstance(params GetInstanceParams) (*DetailedInstanceResponse, error)

func (*Client) GetInstanceByShortName

func (c *Client) GetInstanceByShortName() (*InstanceResponse, error)

func (*Client) GetInviteMessage

func (c *Client) GetInviteMessage(params GetInviteMessageParams) (*InviteMessageResponse, error)

func (*Client) GetInviteMessages

func (c *Client) GetInviteMessages(params GetInviteMessagesParams) (*InviteMessageListResponse, error)

func (*Client) GetJavaScript

func (c *Client) GetJavaScript(params GetJavaScriptParams) error

func (*Client) GetLicenseGroup

func (c *Client) GetLicenseGroup(params GetLicenseGroupParams) (*LicenseGroupResponse, error)

func (*Client) GetNotifications

func (c *Client) GetNotifications(params GetNotificationsParams) (*NotificationListResponse, error)

func (*Client) GetOwnAvatar

func (c *Client) GetOwnAvatar(params GetOwnAvatarParams) (*AvatarResponse, error)

func (*Client) GetPermission

func (c *Client) GetPermission(params GetPermissionParams) (*PermissionResponse, error)

func (*Client) GetPlayerModeration

func (c *Client) GetPlayerModeration() (*PlayerModerationResponse, error)

func (*Client) GetPlayerModerations

func (c *Client) GetPlayerModerations() (*PlayerModerationListResponse, error)

func (*Client) GetRecentWorlds

func (c *Client) GetRecentWorlds(params GetRecentWorldsParams) (*LimitedWorldListResponse, error)

func (*Client) GetShortName

func (c *Client) GetShortName(params GetShortNameParams) (*InstanceShortNameResponse, error)

func (*Client) GetSteamTransaction

func (c *Client) GetSteamTransaction(params GetSteamTransactionParams) (*TransactionResponse, error)

func (*Client) GetSteamTransactions

func (c *Client) GetSteamTransactions() (*TransactionListResponse, error)

func (*Client) GetSubscriptions

func (c *Client) GetSubscriptions() (*SubscriptionListResponse, error)

func (*Client) GetSystemTime

func (c *Client) GetSystemTime() (*SystemTimeResponse, error)

func (*Client) GetUser

func (c *Client) GetUser(params GetUserParams) (*UserResponse, error)

func (*Client) GetUserByName

func (c *Client) GetUserByName() (*UserResponse, error)

func (*Client) GetUserGroupRequests

func (c *Client) GetUserGroupRequests(params GetUserGroupRequestsParams) (*UserGroupRequestsResponse, error)

func (*Client) GetUserGroups

func (c *Client) GetUserGroups(params GetUserGroupsParams) (*LimitedUserGroupListResponse, error)

func (*Client) GetUserInstancesGroups added in v0.2.4

func (c *Client) GetUserInstancesGroups(params GetUserInstancesGroupsParams) (*UserInstancesGroupsResponseFull, error)

func (*Client) GetUserRepresentedGroup

func (c *Client) GetUserRepresentedGroup(params GetUserRepresentedGroupParams) error

func (*Client) GetWorld

func (c *Client) GetWorld(params GetWorldParams) (*WorldResponse, error)

func (*Client) GetWorldInstance

func (c *Client) GetWorldInstance(params GetWorldInstanceParams) (*InstanceResponse, error)

func (*Client) GetWorldMetadata

func (c *Client) GetWorldMetadata(params GetWorldMetadataParams) (*WorldMetadataResponse, error)

func (*Client) GetWorldPublishStatus

func (c *Client) GetWorldPublishStatus(params GetWorldPublishStatusParams) (*WorldPublishStatusResponse, error)

func (*Client) InviteMyselfTo

func (c *Client) InviteMyselfTo(params InviteMyselfToParams) (*SendNotificationResponse, error)

func (*Client) InviteUser

func (c *Client) InviteUser(params InviteUserParams) (*SendNotificationResponse, error)

func (*Client) JoinGroup

func (c *Client) JoinGroup(params JoinGroupParams) (*GroupMemberResponse, error)

func (*Client) KickGroupMember

func (c *Client) KickGroupMember(params KickGroupMemberParams) error

func (*Client) LeaveGroup

func (c *Client) LeaveGroup(params LeaveGroupParams) error

func (*Client) Logout

func (c *Client) Logout() (*LogoutSuccess, error)

func (*Client) MarkNotificationAsRead

func (c *Client) MarkNotificationAsRead(params MarkNotificationAsReadParams) (*NotificationResponse, error)

func (*Client) ModerateUser

func (c *Client) ModerateUser() (*PlayerModerationResponse, error)

func (*Client) PublishWorld

func (c *Client) PublishWorld(params PublishWorldParams) error

func (*Client) RemoveFavorite

func (c *Client) RemoveFavorite(params RemoveFavoriteParams) (*FavoriteRemovedSuccess, error)

func (*Client) RemoveGroupMemberRole

func (c *Client) RemoveGroupMemberRole(params RemoveGroupMemberRoleParams) (*GroupRoleIdListResponse, error)

func (*Client) RequestInvite

func (c *Client) RequestInvite(params RequestInviteParams) (*NotificationResponse, error)

func (*Client) ResetInviteMessage

func (c *Client) ResetInviteMessage(params ResetInviteMessageParams) (*InviteMessageListResponse, error)

func (*Client) ResetRateLimit added in v0.2.54

func (c *Client) ResetRateLimit()

ResetRateLimit resets the rate limiter so the next request fires without waiting.

func (*Client) RespondGroupJoinRequest

func (c *Client) RespondGroupJoinRequest(params RespondGroupJoinRequestParams) error

func (*Client) RespondInvite

func (c *Client) RespondInvite(params RespondInviteParams) (*NotificationResponse, error)

func (*Client) SearchAvatars

func (c *Client) SearchAvatars(params SearchAvatarsParams) (*AvatarListResponse, error)

func (*Client) SearchGroups

func (c *Client) SearchGroups(params SearchGroupsParams) (*LimitedGroupListResponse, error)

func (*Client) SearchUsers

func (c *Client) SearchUsers(params SearchUsersParams) (*LimitedUserListResponse, error)

func (*Client) SearchWorlds

func (c *Client) SearchWorlds(params SearchWorldsParams) (*LimitedWorldListResponse, error)

func (*Client) SelectAvatar

func (c *Client) SelectAvatar(params SelectAvatarParams) (*CurrentUserResponse, error)

func (*Client) SelectFallbackAvatar

func (c *Client) SelectFallbackAvatar(params SelectFallbackAvatarParams) (*CurrentUserResponse, error)

func (*Client) SendSelfInvite

func (c *Client) SendSelfInvite(params SendSelfInviteParams) (*InstanceSelfInviteSuccess, error)

func (*Client) SetCookies added in v0.2.2

func (c *Client) SetCookies(cookies []*http.Cookie)

SetCookies sets cookies for the client to bypass authentication

func (*Client) StartFileDataUpload

func (c *Client) StartFileDataUpload(params StartFileDataUploadParams) (*FileUploadUrlResponse, error)

func (*Client) TestProxy added in v0.2.4

func (c *Client) TestProxy() (string, error)

func (*Client) UnbanGroupMember

func (c *Client) UnbanGroupMember(params UnbanGroupMemberParams) (*GroupMemberResponse, error)

func (*Client) Unfriend

func (c *Client) Unfriend(params UnfriendParams) (*UnfriendSuccess, error)

func (*Client) UnmoderateUser

func (c *Client) UnmoderateUser() (*PlayerModerationUnmoderatedSuccess, error)

func (*Client) UnpublishWorld

func (c *Client) UnpublishWorld(params UnpublishWorldParams) error

func (*Client) UpdateAvatar

func (c *Client) UpdateAvatar(params UpdateAvatarParams) (*AvatarResponse, error)

func (*Client) UpdateFavoriteGroup

func (c *Client) UpdateFavoriteGroup(params UpdateFavoriteGroupParams) error

func (*Client) UpdateGroup

func (c *Client) UpdateGroup(params UpdateGroupParams) (*GroupResponse, error)

func (*Client) UpdateGroupGallery

func (c *Client) UpdateGroupGallery(params UpdateGroupGalleryParams) (*GroupGalleryResponse, error)

func (*Client) UpdateGroupMember

func (c *Client) UpdateGroupMember(params UpdateGroupMemberParams) (*GroupLimitedMemberResponse, error)

func (*Client) UpdateGroupPost

func (c *Client) UpdateGroupPost(params UpdateGroupPostParams) (*GroupPostResponse, error)

func (*Client) UpdateGroupRole

func (c *Client) UpdateGroupRole(params UpdateGroupRoleParams) (*GroupRoleListResponse, error)

func (*Client) UpdateInviteMessage

func (c *Client) UpdateInviteMessage(params UpdateInviteMessageParams) (*InviteMessageListResponse, error)

func (*Client) UpdateUser

func (c *Client) UpdateUser(params UpdateUserParams) (*CurrentUserResponse, error)

func (*Client) UpdateWorld

func (c *Client) UpdateWorld(params UpdateWorldParams) (*WorldResponse, error)

func (*Client) Verify2Fa

func (c *Client) Verify2Fa() (*Verify2FaResponse, error)

func (*Client) Verify2FaEmailCode

func (c *Client) Verify2FaEmailCode() (*Verify2FaEmailCodeResponse, error)

func (*Client) VerifyAuthToken

func (c *Client) VerifyAuthToken() (*VerifyAuthTokenResponse, error)

func (*Client) VerifyRecoveryCode

func (c *Client) VerifyRecoveryCode() (*Verify2FaResponse, error)

type CloseInstanceParams

type CloseInstanceParams struct {
	WorldId    string `json:"worldId"`
	InstanceId string `json:"instanceId"`
}

CloseInstanceParams represents the parameters for the CloseInstance request

type CreateAvatarRequest

type CreateAvatarRequest struct {
	AssetUrl      string        `json:"assetUrl,omitempty"`
	Description   string        `json:"description,omitempty"`
	Id            AvatarId      `json:"id,omitempty"`
	ImageUrl      string        `json:"imageUrl"`
	Name          string        `json:"name"`
	ReleaseStatus ReleaseStatus `json:"releaseStatus,omitempty"`

	// Tags
	Tags            []Tag   `json:"tags,omitempty"`
	UnityPackageUrl string  `json:"unityPackageUrl,omitempty"`
	UnityVersion    string  `json:"unityVersion,omitempty"`
	Version         float64 `json:"version,omitempty"`
}

type CreateFileRequest

type CreateFileRequest struct {
	Extension string   `json:"extension"`
	MimeType  MimeType `json:"mimeType"`
	Name      string   `json:"name"`

	// Tags
	Tags []Tag `json:"tags,omitempty"`
}

type CreateFileVersionParams

type CreateFileVersionParams struct {
	FileId string `json:"fileId"`
}

CreateFileVersionParams represents the parameters for the CreateFileVersion request

type CreateFileVersionRequest

type CreateFileVersionRequest struct {
	FileMd5              string  `json:"fileMd5,omitempty"`
	FileSizeInBytes      float64 `json:"fileSizeInBytes,omitempty"`
	SignatureMd5         string  `json:"signatureMd5"`
	SignatureSizeInBytes float64 `json:"signatureSizeInBytes"`
}

type CreateGroupAnnouncementParams

type CreateGroupAnnouncementParams struct {
	GroupId string `json:"groupId"`
}

CreateGroupAnnouncementParams represents the parameters for the CreateGroupAnnouncement request

type CreateGroupAnnouncementRequest

type CreateGroupAnnouncementRequest struct {
	ImageId FileId `json:"imageId,omitempty"`

	// SendNotification Send notification to group members.
	SendNotification bool `json:"sendNotification,omitempty"`

	// Text Announcement text
	Text string `json:"text,omitempty"`

	// Title Announcement title
	Title string `json:"title"`
}

type CreateGroupGalleryParams

type CreateGroupGalleryParams struct {
	GroupId string `json:"groupId"`
}

CreateGroupGalleryParams represents the parameters for the CreateGroupGallery request

type CreateGroupGalleryRequest

type CreateGroupGalleryRequest struct {
	// Description Description of the gallery.
	Description string `json:"description,omitempty"`

	// MembersOnly Whether the gallery is members only.
	MembersOnly bool `json:"membersOnly,omitempty"`

	// Name Name of the gallery.
	Name string `json:"name"`

	// RoleIdsToAutoApprove
	RoleIdsToAutoApprove []GroupRoleId `json:"roleIdsToAutoApprove,omitempty"`

	// RoleIdsToManage
	RoleIdsToManage []GroupRoleId `json:"roleIdsToManage,omitempty"`

	// RoleIdsToSubmit
	RoleIdsToSubmit []GroupRoleId `json:"roleIdsToSubmit,omitempty"`

	// RoleIdsToView
	RoleIdsToView []GroupRoleId `json:"roleIdsToView,omitempty"`
}

type CreateGroupInviteParams

type CreateGroupInviteParams struct {
	GroupId string `json:"groupId"`
}

CreateGroupInviteParams represents the parameters for the CreateGroupInvite request

type CreateGroupInviteRequest

type CreateGroupInviteRequest struct {
	ConfirmOverrideBlock bool `json:"confirmOverrideBlock,omitempty"`

	// UserId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	UserId UserId `json:"userId"`
}

type CreateGroupPostRequest

type CreateGroupPostRequest struct {
	ImageId FileId `json:"imageId,omitempty"`

	// RoleIds
	RoleIds GroupRoleIdList `json:"roleIds,omitempty"`

	// SendNotification Send notification to group members.
	SendNotification bool `json:"sendNotification"`

	// Text Post text
	Text string `json:"text"`

	// Title Post title
	Title      string              `json:"title"`
	Visibility GroupPostVisibility `json:"visibility"`
}

type CreateGroupRequest

type CreateGroupRequest struct {
	BannerId     string            `json:"bannerId,omitempty"`
	Description  string            `json:"description,omitempty"`
	IconId       string            `json:"iconId,omitempty"`
	JoinState    GroupJoinState    `json:"joinState,omitempty"`
	Name         string            `json:"name"`
	Privacy      GroupPrivacy      `json:"privacy,omitempty"`
	RoleTemplate GroupRoleTemplate `json:"roleTemplate"`
	ShortCode    string            `json:"shortCode"`
}

type CreateGroupRoleParams

type CreateGroupRoleParams struct {
	GroupId string `json:"groupId"`
}

CreateGroupRoleParams represents the parameters for the CreateGroupRole request

type CreateGroupRoleRequest

type CreateGroupRoleRequest struct {
	Description      string   `json:"description,omitempty"`
	Id               string   `json:"id,omitempty"`
	IsSelfAssignable bool     `json:"isSelfAssignable,omitempty"`
	Name             string   `json:"name,omitempty"`
	Permissions      []string `json:"permissions,omitempty"`
}

type CreateInstanceRequest

type CreateInstanceRequest struct {
	// CanRequestInvite Only applies to invite type instances to make them invite+
	CanRequestInvite bool `json:"canRequestInvite,omitempty"`

	// ClosedAt The time after which users won't be allowed to join the instance. This doesn't work for public instances.
	ClosedAt time.Time `json:"closedAt,omitempty"`

	// GroupAccessType Group access type when the instance type is "group"
	GroupAccessType GroupAccessType `json:"groupAccessType,omitempty"`

	// HardClose Currently unused, but will eventually be a flag to set if the closing of the instance should kick people.
	HardClose  bool `json:"hardClose,omitempty"`
	InviteOnly bool `json:"inviteOnly,omitempty"`

	// OwnerId A groupId if the instance type is "group", null if instance type is public, or a userId otherwise
	OwnerId      InstanceOwnerId `json:"ownerId,omitempty"`
	QueueEnabled bool            `json:"queueEnabled,omitempty"`

	// Region Instance region
	Region InstanceRegion `json:"region"`

	// RoleIds Group roleIds that are allowed to join if the type is "group" and groupAccessType is "member"
	RoleIds []GroupRoleId `json:"roleIds,omitempty"`
	Type    InstanceType  `json:"type"`

	// WorldId WorldID be "offline" on User profiles if you are not friends with that user.
	WorldId WorldId `json:"worldId"`
}

type CreateWorldRequest

type CreateWorldRequest struct {
	AssetUrl     string `json:"assetUrl"`
	AssetVersion int64  `json:"assetVersion,omitempty"`

	// AuthorId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	AuthorId    UserId `json:"authorId,omitempty"`
	AuthorName  string `json:"authorName,omitempty"`
	Capacity    int64  `json:"capacity,omitempty"`
	Description string `json:"description,omitempty"`

	// Id WorldID be "offline" on User profiles if you are not friends with that user.
	Id       WorldId `json:"id,omitempty"`
	ImageUrl string  `json:"imageUrl"`
	Name     string  `json:"name"`

	// Platform This can be `standalonewindows` or `android`, but can also pretty much be any random Unity verison such as `2019.2.4-801-Release` or `2019.2.2-772-Release` or even `unknownplatform`.
	Platform      Platform      `json:"platform,omitempty"`
	ReleaseStatus ReleaseStatus `json:"releaseStatus,omitempty"`

	// Tags
	Tags            []Tag  `json:"tags,omitempty"`
	UnityPackageUrl string `json:"unityPackageUrl,omitempty"`
	UnityVersion    string `json:"unityVersion,omitempty"`
}

type CurrentAvatarImageUrl

type CurrentAvatarImageUrl string

CurrentAvatarImageUrl When profilePicOverride is not empty, use it instead.

type CurrentAvatarThumbnailImageUrl

type CurrentAvatarThumbnailImageUrl string

CurrentAvatarThumbnailImageUrl When profilePicOverride is not empty, use it instead.

type CurrentOnlineUsersResponse

type CurrentOnlineUsersResponse int64

CurrentOnlineUsersResponse Number of online users

type CurrentUser

type CurrentUser struct {
	AcceptedPrivacyVersion int64  `json:"acceptedPrivacyVersion,omitempty"`
	AcceptedTosVersion     int64  `json:"acceptedTOSVersion"`
	AccountDeletionDate    string `json:"accountDeletionDate,omitempty"`

	// AccountDeletionLog
	AccountDeletionLog []AccountDeletionLog `json:"accountDeletionLog,omitempty"`

	// ActiveFriends
	ActiveFriends      []UserId `json:"activeFriends,omitempty"`
	AllowAvatarCopying bool     `json:"allowAvatarCopying"`

	// Badges
	Badges []Badge `json:"badges,omitempty"`
	Bio    string  `json:"bio"`

	// BioLinks
	BioLinks              []string `json:"bioLinks"`
	CurrentAvatar         AvatarId `json:"currentAvatar"`
	CurrentAvatarAssetUrl string   `json:"currentAvatarAssetUrl"`

	// CurrentAvatarImageUrl When profilePicOverride is not empty, use it instead.
	CurrentAvatarImageUrl CurrentAvatarImageUrl `json:"currentAvatarImageUrl"`
	CurrentAvatarTags     []Tag                 `json:"currentAvatarTags"`

	// CurrentAvatarThumbnailImageUrl When profilePicOverride is not empty, use it instead.
	CurrentAvatarThumbnailImageUrl CurrentAvatarThumbnailImageUrl `json:"currentAvatarThumbnailImageUrl"`
	DateJoined                     string                         `json:"date_joined"`

	// DeveloperType "none" User is a normal user
	// "trusted" Unknown
	// "internal" Is a VRChat Developer
	// "moderator" Is a VRChat Moderator
	//
	// Staff can hide their developerType at will.
	DeveloperType  DeveloperType `json:"developerType"`
	DisplayName    string        `json:"displayName"`
	EmailVerified  bool          `json:"emailVerified"`
	FallbackAvatar AvatarId      `json:"fallbackAvatar,omitempty"`

	// FriendGroupNames Always empty array.
	FriendGroupNames          []string `json:"friendGroupNames"`
	FriendKey                 string   `json:"friendKey"`
	Friends                   []UserId `json:"friends"`
	GoogleDetails             any      `json:"googleDetails,omitempty"`
	GoogleId                  string   `json:"googleId,omitempty"`
	HasBirthday               bool     `json:"hasBirthday"`
	HasEmail                  bool     `json:"hasEmail"`
	HasLoggedInFromClient     bool     `json:"hasLoggedInFromClient"`
	HasPendingEmail           bool     `json:"hasPendingEmail"`
	HideContentFilterSettings bool     `json:"hideContentFilterSettings,omitempty"`

	// HomeLocation WorldID be "offline" on User profiles if you are not friends with that user.
	HomeLocation WorldId `json:"homeLocation"`

	// Id A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	Id               UserId    `json:"id"`
	IsBoopingEnabled bool      `json:"isBoopingEnabled,omitempty"`
	IsFriend         bool      `json:"isFriend"`
	LastActivity     time.Time `json:"last_activity,omitempty"`
	LastLogin        time.Time `json:"last_login"`
	LastMobile       time.Time `json:"last_mobile"`

	// LastPlatform This can be `standalonewindows` or `android`, but can also pretty much be any random Unity verison such as `2019.2.4-801-Release` or `2019.2.2-772-Release` or even `unknownplatform`.
	LastPlatform           Platform `json:"last_platform"`
	ObfuscatedEmail        string   `json:"obfuscatedEmail"`
	ObfuscatedPendingEmail string   `json:"obfuscatedPendingEmail"`
	OculusId               string   `json:"oculusId"`
	OfflineFriends         []UserId `json:"offlineFriends,omitempty"`
	OnlineFriends          []UserId `json:"onlineFriends,omitempty"`

	// PastDisplayNames
	PastDisplayNames            []PastDisplayName   `json:"pastDisplayNames"`
	PicoId                      string              `json:"picoId,omitempty"`
	Presence                    CurrentUserPresence `json:"presence,omitempty"`
	ProfilePicOverride          string              `json:"profilePicOverride"`
	ProfilePicOverrideThumbnail string              `json:"profilePicOverrideThumbnail"`
	Pronouns                    string              `json:"pronouns"`

	// State * "online" User is online in VRChat
	// * "active" User is online, but not in VRChat
	// * "offline" User is offline
	//
	// Always offline when returned through `getCurrentUser` (/auth/user).
	State UserState `json:"state"`

	// Status Defines the User's current status, for example "ask me", "join me" or "offline. This status is a combined indicator of their online activity and privacy preference.
	Status                   UserStatus `json:"status"`
	StatusDescription        string     `json:"statusDescription"`
	StatusFirstTime          bool       `json:"statusFirstTime"`
	StatusHistory            []string   `json:"statusHistory"`
	SteamDetails             any        `json:"steamDetails"`
	SteamId                  string     `json:"steamId"`
	Tags                     []Tag      `json:"tags"`
	TwoFactorAuthEnabled     bool       `json:"twoFactorAuthEnabled"`
	TwoFactorAuthEnabledDate time.Time  `json:"twoFactorAuthEnabledDate,omitempty"`
	Unsubscribe              bool       `json:"unsubscribe"`
	UpdatedAt                time.Time  `json:"updated_at,omitempty"`
	UserIcon                 string     `json:"userIcon"`
	UserLanguage             string     `json:"userLanguage,omitempty"`
	UserLanguageCode         string     `json:"userLanguageCode,omitempty"`

	// Username -| **DEPRECATED:** VRChat API no longer return usernames of other users. [See issue by Tupper for more information](https://github.com/pypy-vrc/VRCX/issues/429).
	Username string `json:"username,omitempty"`
	ViveId   string `json:"viveId,omitempty"`
}

type CurrentUserLoginResponse

type CurrentUserLoginResponse CurrentUser

type CurrentUserPresence

type CurrentUserPresence struct {
	AvatarThumbnail string    `json:"avatarThumbnail,omitempty"`
	DisplayName     string    `json:"displayName,omitempty"`
	Groups          []GroupId `json:"groups,omitempty"`

	// Id A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	Id       UserId `json:"id,omitempty"`
	Instance string `json:"instance,omitempty"`

	// InstanceType either an InstanceType or an empty string
	InstanceType string `json:"instanceType,omitempty"`
	IsRejoining  string `json:"isRejoining,omitempty"`

	// Platform either a Platform or an empty string
	Platform           string `json:"platform,omitempty"`
	ProfilePicOverride string `json:"profilePicOverride,omitempty"`

	// Status either a UserStatus or empty string
	Status              string `json:"status,omitempty"`
	TravelingToInstance string `json:"travelingToInstance,omitempty"`

	// TravelingToWorld WorldID be "offline" on User profiles if you are not friends with that user.
	TravelingToWorld WorldId `json:"travelingToWorld,omitempty"`

	// World WorldID be "offline" on User profiles if you are not friends with that user.
	World WorldId `json:"world,omitempty"`
}

type CurrentUserResponse

type CurrentUserResponse CurrentUser

type DeleteAvatarParams

type DeleteAvatarParams struct {
	AvatarId string `json:"avatarId"`
}

DeleteAvatarParams represents the parameters for the DeleteAvatar request

type DeleteFileParams

type DeleteFileParams struct {
	FileId string `json:"fileId"`
}

DeleteFileParams represents the parameters for the DeleteFile request

type DeleteFileVersionParams

type DeleteFileVersionParams struct {
	FileId    string `json:"fileId"`
	VersionId int64  `json:"versionId"`
}

DeleteFileVersionParams represents the parameters for the DeleteFileVersion request

type DeleteFriendRequestError

type DeleteFriendRequestError Error

type DeleteFriendRequestParams

type DeleteFriendRequestParams struct {
	UserId string `json:"userId"`
}

DeleteFriendRequestParams represents the parameters for the DeleteFriendRequest request

type DeleteFriendSuccess

type DeleteFriendSuccess Success

type DeleteGroupAnnouncementParams

type DeleteGroupAnnouncementParams struct {
	GroupId string `json:"groupId"`
}

DeleteGroupAnnouncementParams represents the parameters for the DeleteGroupAnnouncement request

type DeleteGroupAnnouncementSuccess

type DeleteGroupAnnouncementSuccess Success

type DeleteGroupGalleryImageParams

type DeleteGroupGalleryImageParams struct {
	GroupId             string `json:"groupId"`
	GroupGalleryId      string `json:"groupGalleryId"`
	GroupGalleryImageId string `json:"groupGalleryImageId"`
}

DeleteGroupGalleryImageParams represents the parameters for the DeleteGroupGalleryImage request

type DeleteGroupGalleryImageSuccess

type DeleteGroupGalleryImageSuccess Success

type DeleteGroupGalleryParams

type DeleteGroupGalleryParams struct {
	GroupId        string `json:"groupId"`
	GroupGalleryId string `json:"groupGalleryId"`
}

DeleteGroupGalleryParams represents the parameters for the DeleteGroupGallery request

type DeleteGroupGallerySuccess

type DeleteGroupGallerySuccess Success

type DeleteGroupInviteBadRequestError

type DeleteGroupInviteBadRequestError Error

type DeleteGroupInviteParams

type DeleteGroupInviteParams struct {
	GroupId string `json:"groupId"`
	UserId  string `json:"userId"`
}

DeleteGroupInviteParams represents the parameters for the DeleteGroupInvite request

type DeleteGroupParams

type DeleteGroupParams struct {
	GroupId string `json:"groupId"`
}

DeleteGroupParams represents the parameters for the DeleteGroup request

type DeleteGroupPostParams

type DeleteGroupPostParams struct {
	GroupId        string `json:"groupId"`
	NotificationId string `json:"notificationId"`
}

DeleteGroupPostParams represents the parameters for the DeleteGroupPost request

type DeleteGroupRoleParams

type DeleteGroupRoleParams struct {
	GroupId     string `json:"groupId"`
	GroupRoleId string `json:"groupRoleId"`
}

DeleteGroupRoleParams represents the parameters for the DeleteGroupRole request

type DeleteGroupSuccess

type DeleteGroupSuccess Success

type DeleteNotificationParams

type DeleteNotificationParams struct {
	NotificationId string `json:"notificationId"`
}

DeleteNotificationParams represents the parameters for the DeleteNotification request

type DeleteUserParams

type DeleteUserParams struct {
	UserId string `json:"userId"`
}

DeleteUserParams represents the parameters for the DeleteUser request

type DeleteUserResponse

type DeleteUserResponse CurrentUser

type DeleteWorldParams

type DeleteWorldParams struct {
	WorldId string `json:"worldId"`
}

DeleteWorldParams represents the parameters for the DeleteWorld request

type DeploymentGroup

type DeploymentGroup string

DeploymentGroup Used to identify which API deployment cluster is currently responding.

`blue` and `green` are used by Production. `grape`and `cherry` are used during Development.

[Blue Green Deployment by Martin Fowler](https://martinfowler.com/bliki/BlueGreenDeployment.html)

const (
	DeploymentGroupBlue   DeploymentGroup = "blue"
	DeploymentGroupGreen  DeploymentGroup = "green"
	DeploymentGroupGrape  DeploymentGroup = "grape"
	DeploymentGroupCherry DeploymentGroup = "cherry"
)

type DetailedInstanceResponse added in v0.2.7

type DetailedInstanceResponse struct {
	Active          bool   `json:"active"`
	AgeGate         bool   `json:"ageGate"`
	Capacity        int    `json:"capacity"`
	ClientNumber    string `json:"clientNumber"`
	ContentSettings struct {
		AllowAvatarCopying bool `json:"allowAvatarCopying"`
		AllowUploads       bool `json:"allowUploads"`
		Platform           struct {
			Android           bool `json:"android"`
			Standalonewindows bool `json:"standalonewindows"`
		} `json:"platform"`
	} `json:"contentSettings"`
	DisplayName              string   `json:"displayName"`
	Id                       string   `json:"id"`
	InstanceId               string   `json:"instanceId"`
	Location                 string   `json:"location"`
	NUsers                   int      `json:"n_users"`
	Name                     string   `json:"name"`
	OwnerId                  string   `json:"ownerId"`
	PhotonRegion             string   `json:"photonRegion"`
	Platforms                []string `json:"platforms"`
	PlayerPersistenceEnabled bool     `json:"playerPersistenceEnabled"`
	Private                  bool     `json:"private"`
	QueueEnabled             bool     `json:"queueEnabled"`
	RecommendedCapacity      int      `json:"recommendedCapacity"`
	RoleRestricted           bool     `json:"roleRestricted"`
	Strict                   bool     `json:"strict"`
	UserCount                int      `json:"userCount"`
	World                    struct {
		AuthorId            string    `json:"authorId"`
		AuthorName          string    `json:"authorName"`
		Capacity            int       `json:"capacity"`
		CreatedAt           time.Time `json:"created_at"`
		Description         string    `json:"description"`
		Favorites           int       `json:"favorites"`
		Featured            bool      `json:"featured"`
		Heat                int       `json:"heat"`
		Id                  string    `json:"id"`
		ImageUrl            string    `json:"imageUrl"`
		LabsPublicationDate string    `json:"labsPublicationDate"`
		Name                string    `json:"name"`
		Namespace           string    `json:"namespace"`
		Occupants           int       `json:"occupants"`
		Organization        string    `json:"organization"`
		Popularity          int       `json:"popularity"`
		PreviewYoutubeId    string    `json:"previewYoutubeId"`
		PublicationDate     string    `json:"publicationDate"`
		ReleaseStatus       string    `json:"releaseStatus"`
		Tags                []string  `json:"tags"`
		ThumbnailImageUrl   string    `json:"thumbnailImageUrl"`
		UnityPackages       []struct {
			AssetUrl       string `json:"assetUrl"`
			AssetUrlObject struct {
				Url string `json:"url"`
			} `json:"assetUrlObject"`
			AssetVersion    int    `json:"assetVersion"`
			CreatedAt       string `json:"created_at"`
			Id              string `json:"id"`
			Platform        string `json:"platform"`
			PluginUrl       string `json:"pluginUrl"`
			PluginUrlObject struct {
				Url string `json:"url"`
			} `json:"pluginUrlObject"`
			UnitySortNumber int    `json:"unitySortNumber"`
			UnityVersion    string `json:"unityVersion"`
		} `json:"unityPackages"`
		UpdatedAt time.Time `json:"updated_at"`
		Version   int       `json:"version"`
		Visits    int       `json:"visits"`
	} `json:"world"`
	Users []struct {
		AllowAvatarCopying             bool     `json:"allowAvatarCopying"`
		Bio                            string   `json:"bio"`
		BioLinks                       []string `json:"bioLinks"`
		CurrentAvatarImageUrl          string   `json:"currentAvatarImageUrl"`
		CurrentAvatarThumbnailImageUrl string   `json:"currentAvatarThumbnailImageUrl"`
		DateJoined                     string   `json:"date_joined"`
		DeveloperType                  string   `json:"developerType"`
		DisplayName                    string   `json:"displayName"`
		FriendKey                      string   `json:"friendKey"`
		Id                             string   `json:"id"`
		InstanceId                     string   `json:"instanceId"`
		IsFriend                       bool     `json:"isFriend"`
		LastActivity                   string   `json:"last_activity"`
		LastLogin                      string   `json:"last_login"`
		LastPlatform                   string   `json:"last_platform"`
		Location                       string   `json:"location"`
		Note                           string   `json:"note"`
		ProfilePicOverride             string   `json:"profilePicOverride"`
		State                          string   `json:"state"`
		Status                         string   `json:"status"`
		StatusDescription              string   `json:"statusDescription"`
		Tags                           []string `json:"tags"`
		TravelingToInstance            string   `json:"travelingToInstance"`
		TravelingToLocation            string   `json:"travelingToLocation"`
		TravelingToWorld               string   `json:"travelingToWorld"`
		UserIcon                       string   `json:"userIcon"`
		WorldId                        string   `json:"worldId"`
	} `json:"users"`
	GroupAccessType   string    `json:"groupAccessType"`
	HasCapacityForYou bool      `json:"hasCapacityForYou"`
	Nonce             string    `json:"nonce"`
	ClosedAt          time.Time `json:"closedAt"`
	HardClose         bool      `json:"hardClose"`
}

DetailedInstanceResponse is a detailed version of InstanceResponse with additional fields

type DeveloperType

type DeveloperType string

DeveloperType "none" User is a normal user "trusted" Unknown "internal" Is a VRChat Developer "moderator" Is a VRChat Moderator

Staff can hide their developerType at will.

const (
	DeveloperTypeNone      DeveloperType = "none"
	DeveloperTypeTrusted   DeveloperType = "trusted"
	DeveloperTypeInternal  DeveloperType = "internal"
	DeveloperTypeModerator DeveloperType = "moderator"
)

type DownloadFileVersionParams

type DownloadFileVersionParams struct {
	FileId    string `json:"fileId"`
	VersionId int64  `json:"versionId"`
}

DownloadFileVersionParams represents the parameters for the DownloadFileVersion request

type DownloadSourceCodeAccessError

type DownloadSourceCodeAccessError Error

type DynamicContentRow

type DynamicContentRow struct {
	Index int64  `json:"index,omitempty"`
	Name  string `json:"name"`

	// Platform Usually "ThisPlatformSupported", but can also be other values such as "all" or platform specific identifiers.
	Platform      string `json:"platform"`
	SortHeading   string `json:"sortHeading"`
	SortOrder     string `json:"sortOrder"`
	SortOwnership string `json:"sortOwnership"`

	// Tag Tag to filter content for this row.
	Tag string `json:"tag,omitempty"`

	// Type Type is not present if it is a world.
	Type string `json:"type,omitempty"`
}

type Error

type Error struct {
	Error Response `json:"error,omitempty"`
}

type Favorite

type Favorite struct {
	// FavoriteId MUST be either AvatarID, UserID or WorldID.
	FavoriteId string     `json:"favoriteId"`
	Id         FavoriteId `json:"id"`

	// Tags
	Tags []Tag        `json:"tags"`
	Type FavoriteType `json:"type"`
}

type FavoriteAddAlreadyFavoritedError

type FavoriteAddAlreadyFavoritedError Error

type FavoriteAddNotFriendsError

type FavoriteAddNotFriendsError Error

type FavoriteGroup

type FavoriteGroup struct {
	DisplayName      string          `json:"displayName"`
	Id               FavoriteGroupId `json:"id"`
	Name             string          `json:"name"`
	OwnerDisplayName string          `json:"ownerDisplayName"`

	// OwnerId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	OwnerId UserId `json:"ownerId"`

	// Tags
	Tags       []Tag                   `json:"tags"`
	Type       FavoriteType            `json:"type"`
	Visibility FavoriteGroupVisibility `json:"visibility"`
}

type FavoriteGroupClearedSuccess

type FavoriteGroupClearedSuccess Success

type FavoriteGroupId

type FavoriteGroupId string

type FavoriteGroupListResponse

type FavoriteGroupListResponse []FavoriteGroup

type FavoriteGroupResponse

type FavoriteGroupResponse FavoriteGroup

type FavoriteGroupVisibility

type FavoriteGroupVisibility string
const (
	FavoriteGroupVisibilityPrivate FavoriteGroupVisibility = "private"
	FavoriteGroupVisibilityFriends FavoriteGroupVisibility = "friends"
	FavoriteGroupVisibilityPublic  FavoriteGroupVisibility = "public"
)

type FavoriteId

type FavoriteId string

type FavoriteListResponse

type FavoriteListResponse []Favorite

type FavoriteNotFoundError

type FavoriteNotFoundError Error

type FavoriteRemovedSuccess

type FavoriteRemovedSuccess Success

type FavoriteResponse

type FavoriteResponse Favorite

type FavoriteType

type FavoriteType string
const (
	FavoriteTypeWorld  FavoriteType = "world"
	FavoriteTypeFriend FavoriteType = "friend"
	FavoriteTypeAvatar FavoriteType = "avatar"
)

type FeaturedSetNotAdminError

type FeaturedSetNotAdminError Error

type File

type File struct {
	Extension string   `json:"extension"`
	Id        FileId   `json:"id"`
	MimeType  MimeType `json:"mimeType"`
	Name      string   `json:"name"`

	// OwnerId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	OwnerId UserId `json:"ownerId"`

	// Tags
	Tags []Tag `json:"tags"`

	// Versions
	Versions []FileVersion `json:"versions"`
}

type FileData

type FileData struct {
	Category    string     `json:"category"`
	FileName    string     `json:"fileName"`
	Md5         string     `json:"md5,omitempty"`
	SizeInBytes int64      `json:"sizeInBytes"`
	Status      FileStatus `json:"status"`
	UploadId    string     `json:"uploadId"`
	Url         string     `json:"url"`
}

type FileDeletedError

type FileDeletedError Error

type FileId

type FileId string

type FileListResponse

type FileListResponse []File

type FileNotFoundError

type FileNotFoundError Error

type FileResponse

type FileResponse File

type FileStatus

type FileStatus string
const (
	FileStatusWaiting  FileStatus = "waiting"
	FileStatusComplete FileStatus = "complete"
	FileStatusNone     FileStatus = "none"
	FileStatusQueued   FileStatus = "queued"
)

type FileUploadAlreadyFinishedError

type FileUploadAlreadyFinishedError Error

type FileUploadUrl

type FileUploadUrl struct {
	Url string `json:"url"`
}

type FileUploadUrlResponse

type FileUploadUrlResponse FileUploadUrl

type FileVersion

type FileVersion struct {
	CreatedAt time.Time `json:"created_at"`

	// Deleted Usually only present if `true`
	Deleted   bool       `json:"deleted,omitempty"`
	Delta     FileData   `json:"delta,omitempty"`
	File      FileData   `json:"file,omitempty"`
	Signature FileData   `json:"signature,omitempty"`
	Status    FileStatus `json:"status"`

	// Version Incremental version counter, can only be increased.
	Version int64 `json:"version"`
}

type FileVersionDeleteInitialError

type FileVersionDeleteInitialError Error

type FileVersionDeleteMiddleError

type FileVersionDeleteMiddleError Error

type FileVersionUploadStatus

type FileVersionUploadStatus struct {
	// Etags Unknown
	Etags          []any   `json:"etags"`
	FileName       string  `json:"fileName"`
	MaxParts       float64 `json:"maxParts"`
	NextPartNumber float64 `json:"nextPartNumber"`
	Parts          []any   `json:"parts"`
	UploadId       string  `json:"uploadId"`
}

type FileVersionUploadStatusResponse

type FileVersionUploadStatusResponse FileVersionUploadStatus

type FinishFileDataUploadParams

type FinishFileDataUploadParams struct {
	FileId    string `json:"fileId"`
	VersionId int64  `json:"versionId"`
	// FileType enum
	FileType string `json:"fileType"`
}

FinishFileDataUploadParams represents the parameters for the FinishFileDataUpload request

type FinishFileDataUploadRequest

type FinishFileDataUploadRequest struct {
	// Etags Array of ETags uploaded.
	Etags []string `json:"etags,omitempty"`

	// MaxParts Always a zero in string form, despite how many parts uploaded.
	MaxParts string `json:"maxParts"`

	// NextPartNumber Always a zero in string form, despite how many parts uploaded.
	NextPartNumber string `json:"nextPartNumber"`
}

type FriendBadRequestError

type FriendBadRequestError Error

type FriendParams

type FriendParams struct {
	UserId string `json:"userId"`
}

FriendParams represents the parameters for the Friend request

type FriendStatus

type FriendStatus struct {
	IncomingRequest bool `json:"incomingRequest"`
	IsFriend        bool `json:"isFriend"`
	OutgoingRequest bool `json:"outgoingRequest"`
}

type FriendStatusResponse

type FriendStatusResponse FriendStatus

type FriendSuccess

type FriendSuccess Success

type GetActiveWorldsParams

type GetActiveWorldsParams struct {
	Featured        bool          `json:"featured"`
	Sort            SortOption    `json:"sort"`
	N               int64         `json:"n"`
	Order           OrderOption   `json:"order"`
	Offset          int64         `json:"offset"`
	Search          string        `json:"search"`
	Tag             string        `json:"tag"`
	Notag           string        `json:"notag"`
	ReleaseStatus   ReleaseStatus `json:"releaseStatus"`
	MaxUnityVersion string        `json:"maxUnityVersion"`
	MinUnityVersion string        `json:"minUnityVersion"`
	Platform        string        `json:"platform"`
}

GetActiveWorldsParams represents the parameters for the GetActiveWorlds request

type GetAvatarParams

type GetAvatarParams struct {
	AvatarId string `json:"avatarId"`
}

GetAvatarParams represents the parameters for the GetAvatar request

type GetCssParams

type GetCssParams struct {
	// Variant enum
	Variant string `json:"variant"`
	Branch  string `json:"branch"`
}

GetCssParams represents the parameters for the GetCss request

type GetFavoriteGroupParams

type GetFavoriteGroupParams struct {
	// FavoriteGroupType enum
	FavoriteGroupType string `json:"favoriteGroupType"`
	FavoriteGroupName string `json:"favoriteGroupName"`
	UserId            string `json:"userId"`
}

GetFavoriteGroupParams represents the parameters for the GetFavoriteGroup request

type GetFavoriteGroupsParams

type GetFavoriteGroupsParams struct {
	N      int64 `json:"n"`
	Offset int64 `json:"offset"`
}

GetFavoriteGroupsParams represents the parameters for the GetFavoriteGroups request

type GetFavoriteParams

type GetFavoriteParams struct {
	FavoriteId string `json:"favoriteId"`
}

GetFavoriteParams represents the parameters for the GetFavorite request

type GetFavoritedAvatarsParams

type GetFavoritedAvatarsParams struct {
	Featured        bool          `json:"featured"`
	Sort            SortOption    `json:"sort"`
	N               int64         `json:"n"`
	Order           OrderOption   `json:"order"`
	Offset          int64         `json:"offset"`
	Search          string        `json:"search"`
	Tag             string        `json:"tag"`
	Notag           string        `json:"notag"`
	ReleaseStatus   ReleaseStatus `json:"releaseStatus"`
	MaxUnityVersion string        `json:"maxUnityVersion"`
	MinUnityVersion string        `json:"minUnityVersion"`
	Platform        string        `json:"platform"`
	UserId          string        `json:"userId"`
}

GetFavoritedAvatarsParams represents the parameters for the GetFavoritedAvatars request

type GetFavoritedWorldsParams

type GetFavoritedWorldsParams struct {
	Featured        bool          `json:"featured"`
	Sort            SortOption    `json:"sort"`
	N               int64         `json:"n"`
	Order           OrderOption   `json:"order"`
	Offset          int64         `json:"offset"`
	Search          string        `json:"search"`
	Tag             string        `json:"tag"`
	Notag           string        `json:"notag"`
	ReleaseStatus   ReleaseStatus `json:"releaseStatus"`
	MaxUnityVersion string        `json:"maxUnityVersion"`
	MinUnityVersion string        `json:"minUnityVersion"`
	Platform        string        `json:"platform"`
	UserId          string        `json:"userId"`
}

GetFavoritedWorldsParams represents the parameters for the GetFavoritedWorlds request

type GetFavoritesParams

type GetFavoritesParams struct {
	N      int64  `json:"n"`
	Offset int64  `json:"offset"`
	Tag    string `json:"tag"`
}

GetFavoritesParams represents the parameters for the GetFavorites request

type GetFileDataUploadStatusParams

type GetFileDataUploadStatusParams struct {
	FileId    string `json:"fileId"`
	VersionId int64  `json:"versionId"`
	// FileType enum
	FileType string `json:"fileType"`
}

GetFileDataUploadStatusParams represents the parameters for the GetFileDataUploadStatus request

type GetFileParams

type GetFileParams struct {
	FileId string `json:"fileId"`
}

GetFileParams represents the parameters for the GetFile request

type GetFilesParams

type GetFilesParams struct {
	N      int64 `json:"n"`
	Offset int64 `json:"offset"`
}

GetFilesParams represents the parameters for the GetFiles request

type GetFriendStatusParams

type GetFriendStatusParams struct {
	UserId string `json:"userId"`
}

GetFriendStatusParams represents the parameters for the GetFriendStatus request

type GetFriendsParams

type GetFriendsParams struct {
	Offset  int64 `json:"offset"`
	N       int64 `json:"n"`
	Offline bool  `json:"offline"`
}

GetFriendsParams represents the parameters for the GetFriends request

type GetGroupAnnouncementsParams

type GetGroupAnnouncementsParams struct {
	GroupId string `json:"groupId"`
}

GetGroupAnnouncementsParams represents the parameters for the GetGroupAnnouncements request

type GetGroupAuditLogsParams

type GetGroupAuditLogsParams struct {
	GroupId   string    `json:"groupId"`
	N         int64     `json:"n"`
	Offset    int64     `json:"offset"`
	StartDate time.Time `json:"startDate"`
	EndDate   time.Time `json:"endDate"`
}

GetGroupAuditLogsParams represents the parameters for the GetGroupAuditLogs request

type GetGroupBansParams

type GetGroupBansParams struct {
	GroupId string `json:"groupId"`
	N       int64  `json:"n"`
	Offset  int64  `json:"offset"`
}

GetGroupBansParams represents the parameters for the GetGroupBans request

type GetGroupGalleryImagesParams

type GetGroupGalleryImagesParams struct {
	GroupId        string `json:"groupId"`
	GroupGalleryId string `json:"groupGalleryId"`
	N              int64  `json:"n"`
	Offset         int64  `json:"offset"`
}

GetGroupGalleryImagesParams represents the parameters for the GetGroupGalleryImages request

type GetGroupInstancesParams

type GetGroupInstancesParams struct {
	GroupId string `json:"groupId"`
}

GetGroupInstancesParams represents the parameters for the GetGroupInstances request

type GetGroupInvitesParams

type GetGroupInvitesParams struct {
	GroupId string `json:"groupId"`
	N       int64  `json:"n"`
	Offset  int64  `json:"offset"`
}

GetGroupInvitesParams represents the parameters for the GetGroupInvites request

type GetGroupMemberParams

type GetGroupMemberParams struct {
	GroupId string `json:"groupId"`
	UserId  string `json:"userId"`
}

GetGroupMemberParams represents the parameters for the GetGroupMember request

type GetGroupMembersParams

type GetGroupMembersParams struct {
	GroupId string          `json:"groupId"`
	N       int64           `json:"n"`
	Offset  int64           `json:"offset"`
	Sort    GroupSearchSort `json:"sort"`
}

GetGroupMembersParams represents the parameters for the GetGroupMembers request

type GetGroupParams

type GetGroupParams struct {
	GroupId string `json:"groupId"`
}

GetGroupParams represents the parameters for the GetGroup request

type GetGroupPermissionsParams

type GetGroupPermissionsParams struct {
	GroupId string `json:"groupId"`
}

GetGroupPermissionsParams represents the parameters for the GetGroupPermissions request

type GetGroupPostParams

type GetGroupPostParams struct {
	GroupId string `json:"groupId"`
	N       int64  `json:"n"`
	Offset  int64  `json:"offset"`
}

GetGroupPostParams represents the parameters for the GetGroupPost request

type GetGroupRequestsParams

type GetGroupRequestsParams struct {
	GroupId string `json:"groupId"`
	N       int64  `json:"n"`
	Offset  int64  `json:"offset"`
}

GetGroupRequestsParams represents the parameters for the GetGroupRequests request

type GetGroupRolesParams

type GetGroupRolesParams struct {
	GroupId string `json:"groupId"`
}

GetGroupRolesParams represents the parameters for the GetGroupRoles request

type GetInfoPushParams

type GetInfoPushParams struct {
	Require string `json:"require"`
	Include string `json:"include"`
}

GetInfoPushParams represents the parameters for the GetInfoPush request

type GetInstanceParams

type GetInstanceParams struct {
	WorldId    string `json:"worldId"`
	InstanceId string `json:"instanceId"`
}

GetInstanceParams represents the parameters for the GetInstance request

type GetInviteMessageParams

type GetInviteMessageParams struct {
	UserId      string            `json:"userId"`
	MessageType InviteMessageType `json:"messageType"`
	Slot        int64             `json:"slot"`
}

GetInviteMessageParams represents the parameters for the GetInviteMessage request

type GetInviteMessagesParams

type GetInviteMessagesParams struct {
	UserId      string            `json:"userId"`
	MessageType InviteMessageType `json:"messageType"`
}

GetInviteMessagesParams represents the parameters for the GetInviteMessages request

type GetJavaScriptParams

type GetJavaScriptParams struct {
	// Variant enum
	Variant string `json:"variant"`
	Branch  string `json:"branch"`
}

GetJavaScriptParams represents the parameters for the GetJavaScript request

type GetLicenseGroupParams

type GetLicenseGroupParams struct {
	LicenseGroupId string `json:"licenseGroupId"`
}

GetLicenseGroupParams represents the parameters for the GetLicenseGroup request

type GetNotificationsParams

type GetNotificationsParams struct {
	N      int64 `json:"n"`
	Offset int64 `json:"offset"`
}

GetNotificationsParams represents the parameters for the GetNotifications request

type GetOwnAvatarParams

type GetOwnAvatarParams struct {
	UserId string `json:"userId"`
}

GetOwnAvatarParams represents the parameters for the GetOwnAvatar request

type GetPermissionParams

type GetPermissionParams struct {
	PermissionId string `json:"permissionId"`
}

GetPermissionParams represents the parameters for the GetPermission request

type GetRecentWorldsParams

type GetRecentWorldsParams struct {
	Featured        bool          `json:"featured"`
	Sort            SortOption    `json:"sort"`
	N               int64         `json:"n"`
	Order           OrderOption   `json:"order"`
	Offset          int64         `json:"offset"`
	Search          string        `json:"search"`
	Tag             string        `json:"tag"`
	Notag           string        `json:"notag"`
	ReleaseStatus   ReleaseStatus `json:"releaseStatus"`
	MaxUnityVersion string        `json:"maxUnityVersion"`
	MinUnityVersion string        `json:"minUnityVersion"`
	Platform        string        `json:"platform"`
	UserId          string        `json:"userId"`
}

GetRecentWorldsParams represents the parameters for the GetRecentWorlds request

type GetShortNameParams

type GetShortNameParams struct {
	WorldId    string `json:"worldId"`
	InstanceId string `json:"instanceId"`
}

GetShortNameParams represents the parameters for the GetShortName request

type GetSteamTransactionParams

type GetSteamTransactionParams struct {
	TransactionId string `json:"transactionId"`
}

GetSteamTransactionParams represents the parameters for the GetSteamTransaction request

type GetUserGroupRequestsParams

type GetUserGroupRequestsParams struct {
	UserId string `json:"userId"`
}

GetUserGroupRequestsParams represents the parameters for the GetUserGroupRequests request

type GetUserGroupsParams

type GetUserGroupsParams struct {
	UserId string `json:"userId"`
}

GetUserGroupsParams represents the parameters for the GetUserGroups request

type GetUserInstancesGroupsParams added in v0.2.4

type GetUserInstancesGroupsParams struct {
	UserId string `json:"userId"`
}

type GetUserParams

type GetUserParams struct {
	UserId string `json:"userId"`
}

GetUserParams represents the parameters for the GetUser request

type GetUserRepresentedGroupParams

type GetUserRepresentedGroupParams struct {
	UserId string `json:"userId"`
}

GetUserRepresentedGroupParams represents the parameters for the GetUserRepresentedGroup request

type GetWorldInstanceParams

type GetWorldInstanceParams struct {
	WorldId    string `json:"worldId"`
	InstanceId string `json:"instanceId"`
}

GetWorldInstanceParams represents the parameters for the GetWorldInstance request

type GetWorldMetadataParams

type GetWorldMetadataParams struct {
	WorldId string `json:"worldId"`
}

GetWorldMetadataParams represents the parameters for the GetWorldMetadata request

type GetWorldParams

type GetWorldParams struct {
	WorldId string `json:"worldId"`
}

GetWorldParams represents the parameters for the GetWorld request

type GetWorldPublishStatusParams

type GetWorldPublishStatusParams struct {
	WorldId string `json:"worldId"`
}

GetWorldPublishStatusParams represents the parameters for the GetWorldPublishStatus request

type Group

type Group struct {
	BannerId            string             `json:"bannerId,omitempty"`
	BannerUrl           string             `json:"bannerUrl,omitempty"`
	CreatedAt           time.Time          `json:"createdAt,omitempty"`
	Description         string             `json:"description,omitempty"`
	Discriminator       GroupDiscriminator `json:"discriminator,omitempty"`
	Galleries           []GroupGallery     `json:"galleries,omitempty"`
	IconId              string             `json:"iconId,omitempty"`
	IconUrl             string             `json:"iconUrl,omitempty"`
	Id                  GroupId            `json:"id,omitempty"`
	IsVerified          bool               `json:"isVerified,omitempty"`
	JoinState           GroupJoinState     `json:"joinState,omitempty"`
	Languages           []string           `json:"languages,omitempty"`
	LastPostCreatedAt   time.Time          `json:"lastPostCreatedAt,omitempty"`
	Links               []string           `json:"links,omitempty"`
	MemberCount         int64              `json:"memberCount,omitempty"`
	MemberCountSyncedAt time.Time          `json:"memberCountSyncedAt,omitempty"`
	MembershipStatus    GroupMemberStatus  `json:"membershipStatus,omitempty"`
	MyMember            GroupMyMember      `json:"myMember,omitempty"`
	Name                string             `json:"name,omitempty"`
	OnlineMemberCount   int64              `json:"onlineMemberCount,omitempty"`

	// OwnerId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	OwnerId UserId       `json:"ownerId,omitempty"`
	Privacy GroupPrivacy `json:"privacy,omitempty"`

	// Roles Only returned if ?includeRoles=true is specified.
	Roles     []GroupRole    `json:"roles,omitempty"`
	Rules     string         `json:"rules,omitempty"`
	ShortCode GroupShortCode `json:"shortCode,omitempty"`
	Tags      []Tag          `json:"tags,omitempty"`

	// TransferTargetId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	TransferTargetId UserId    `json:"transferTargetId,omitempty"`
	UpdatedAt        time.Time `json:"updatedAt,omitempty"`
}

type GroupAccessType

type GroupAccessType string

GroupAccessType Group access type when the instance type is "group"

const (
	GroupAccessTypePublic  GroupAccessType = "public"
	GroupAccessTypePlus    GroupAccessType = "plus"
	GroupAccessTypeMembers GroupAccessType = "members"
)

type GroupAlreadyMemberError

type GroupAlreadyMemberError Error

type GroupAnnouncement

type GroupAnnouncement struct {
	// AuthorId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	AuthorId  UserId              `json:"authorId,omitempty"`
	CreatedAt time.Time           `json:"createdAt,omitempty"`
	GroupId   GroupId             `json:"groupId,omitempty"`
	Id        GroupAnnouncementId `json:"id,omitempty"`
	ImageId   FileId              `json:"imageId,omitempty"`
	ImageUrl  string              `json:"imageUrl,omitempty"`
	Text      string              `json:"text,omitempty"`
	Title     string              `json:"title,omitempty"`
	UpdatedAt time.Time           `json:"updatedAt,omitempty"`
}

type GroupAnnouncementId

type GroupAnnouncementId string

type GroupAnnouncementResponse

type GroupAnnouncementResponse GroupAnnouncement

type GroupAuditLogEntry

type GroupAuditLogEntry struct {
	ActorDisplayName string `json:"actorDisplayName,omitempty"`

	// ActorId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	ActorId   UserId    `json:"actorId,omitempty"`
	CreatedAt time.Time `json:"created_at,omitempty"`

	// Data The data associated with the event. The format of this data is dependent on the event type.
	Data any `json:"data,omitempty"`

	// Description A human-readable description of the event.
	Description string `json:"description,omitempty"`

	// EventType The type of event that occurred. This is a string that is prefixed with the type of object that the event occurred on. For example, a group role update event would be prefixed with `group.role`.
	EventType string          `json:"eventType,omitempty"`
	GroupId   GroupId         `json:"groupId,omitempty"`
	Id        GroupAuditLogId `json:"id,omitempty"`

	// TargetId Typically GroupID or GroupRoleID, but could be other types of IDs.
	TargetId string `json:"targetId,omitempty"`
}

type GroupAuditLogId

type GroupAuditLogId string

type GroupAuditLogListResponse

type GroupAuditLogListResponse PaginatedGroupAuditLogEntryList

type GroupDiscriminator

type GroupDiscriminator string

type GroupGallery

type GroupGallery struct {
	CreatedAt time.Time `json:"createdAt,omitempty"`

	// Description Description of the gallery.
	Description string         `json:"description,omitempty"`
	Id          GroupGalleryId `json:"id,omitempty"`

	// MembersOnly Whether the gallery is members only.
	MembersOnly bool `json:"membersOnly,omitempty"`

	// Name Name of the gallery.
	Name string `json:"name,omitempty"`

	// RoleIdsToAutoApprove
	RoleIdsToAutoApprove []GroupRoleId `json:"roleIdsToAutoApprove,omitempty"`

	// RoleIdsToManage
	RoleIdsToManage []GroupRoleId `json:"roleIdsToManage,omitempty"`

	// RoleIdsToSubmit
	RoleIdsToSubmit []GroupRoleId `json:"roleIdsToSubmit,omitempty"`

	// RoleIdsToView
	RoleIdsToView []GroupRoleId `json:"roleIdsToView,omitempty"`
	UpdatedAt     time.Time     `json:"updatedAt,omitempty"`
}

type GroupGalleryId

type GroupGalleryId string

type GroupGalleryImage

type GroupGalleryImage struct {
	Approved   bool      `json:"approved,omitempty"`
	ApprovedAt time.Time `json:"approvedAt,omitempty"`

	// ApprovedByUserId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	ApprovedByUserId UserId              `json:"approvedByUserId,omitempty"`
	CreatedAt        time.Time           `json:"createdAt,omitempty"`
	FileId           FileId              `json:"fileId,omitempty"`
	GalleryId        GroupGalleryId      `json:"galleryId,omitempty"`
	GroupId          GroupId             `json:"groupId,omitempty"`
	Id               GroupGalleryImageId `json:"id,omitempty"`
	ImageUrl         string              `json:"imageUrl,omitempty"`

	// SubmittedByUserId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	SubmittedByUserId UserId `json:"submittedByUserId,omitempty"`
}

type GroupGalleryImageDeleteForbiddenError

type GroupGalleryImageDeleteForbiddenError Error

type GroupGalleryImageId

type GroupGalleryImageId string

type GroupGalleryImageListResponse

type GroupGalleryImageListResponse []GroupGalleryImage

type GroupGalleryImageResponse

type GroupGalleryImageResponse GroupGalleryImage

type GroupGalleryResponse

type GroupGalleryResponse GroupGallery

type GroupId

type GroupId string

type GroupInstance

type GroupInstance struct {
	InstanceId string `json:"instanceId"`

	// Location 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.
	Location    InstanceId `json:"location"`
	MemberCount int64      `json:"memberCount"`
	World       World      `json:"world"`
}

type GroupInstanceListResponse

type GroupInstanceListResponse []GroupInstance

type GroupInviteBadRequestError

type GroupInviteBadRequestError Error

type GroupInviteForbiddenError

type GroupInviteForbiddenError Error

type GroupJoinRequestAction

type GroupJoinRequestAction string
const (
	GroupJoinRequestActionAccept GroupJoinRequestAction = "accept"
	GroupJoinRequestActionReject GroupJoinRequestAction = "reject"
)

type GroupJoinRequestResponseBadRequestError

type GroupJoinRequestResponseBadRequestError Error

type GroupJoinState

type GroupJoinState string
const (
	GroupJoinStateClosed  GroupJoinState = "closed"
	GroupJoinStateInvite  GroupJoinState = "invite"
	GroupJoinStateRequest GroupJoinState = "request"
	GroupJoinStateOpen    GroupJoinState = "open"
)

type GroupLimitedMember

type GroupLimitedMember struct {
	// BannedAt Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user.
	BannedAt time.Time `json:"bannedAt,omitempty"`

	// CreatedAt Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user.
	CreatedAt             time.Time     `json:"createdAt,omitempty"`
	GroupId               GroupId       `json:"groupId,omitempty"`
	HasJoinedFromPurchase bool          `json:"hasJoinedFromPurchase,omitempty"`
	Id                    GroupMemberId `json:"id,omitempty"`

	// IsRepresenting Whether the user is representing the group. This makes the group show up above the name tag in-game.
	IsRepresenting              bool          `json:"isRepresenting,omitempty"`
	IsSubscribedToAnnouncements bool          `json:"isSubscribedToAnnouncements,omitempty"`
	JoinedAt                    time.Time     `json:"joinedAt,omitempty"`
	LastPostReadAt              time.Time     `json:"lastPostReadAt,omitempty"`
	MRoleIds                    []GroupRoleId `json:"mRoleIds,omitempty"`

	// ManagerNotes Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user.
	ManagerNotes     string            `json:"managerNotes,omitempty"`
	MembershipStatus GroupMemberStatus `json:"membershipStatus,omitempty"`
	RoleIds          []GroupRoleId     `json:"roleIds,omitempty"`

	// UserId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	UserId     UserId `json:"userId,omitempty"`
	Visibility string `json:"visibility,omitempty"`
}

type GroupLimitedMemberResponse

type GroupLimitedMemberResponse GroupLimitedMember

type GroupListResponse

type GroupListResponse []Group

type GroupMember

type GroupMember struct {
	// BannedAt Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user.
	BannedAt time.Time `json:"bannedAt,omitempty"`

	// CreatedAt Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user.
	CreatedAt             time.Time     `json:"createdAt,omitempty"`
	GroupId               GroupId       `json:"groupId,omitempty"`
	HasJoinedFromPurchase bool          `json:"hasJoinedFromPurchase,omitempty"`
	Id                    GroupMemberId `json:"id,omitempty"`

	// IsRepresenting Whether the user is representing the group. This makes the group show up above the name tag in-game.
	IsRepresenting              bool          `json:"isRepresenting,omitempty"`
	IsSubscribedToAnnouncements bool          `json:"isSubscribedToAnnouncements,omitempty"`
	JoinedAt                    time.Time     `json:"joinedAt,omitempty"`
	LastPostReadAt              time.Time     `json:"lastPostReadAt,omitempty"`
	MRoleIds                    []GroupRoleId `json:"mRoleIds,omitempty"`

	// ManagerNotes Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user.
	ManagerNotes     string            `json:"managerNotes,omitempty"`
	MembershipStatus GroupMemberStatus `json:"membershipStatus,omitempty"`
	RoleIds          []GroupRoleId     `json:"roleIds,omitempty"`

	// User Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user.
	User GroupMemberLimitedUser `json:"user,omitempty"`

	// UserId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	UserId     UserId `json:"userId,omitempty"`
	Visibility string `json:"visibility,omitempty"`
}

type GroupMemberId

type GroupMemberId string

type GroupMemberLimitedUser

type GroupMemberLimitedUser struct {
	CurrentAvatarTags              []Tag  `json:"currentAvatarTags,omitempty"`
	CurrentAvatarThumbnailImageUrl string `json:"currentAvatarThumbnailImageUrl,omitempty"`
	DisplayName                    string `json:"displayName,omitempty"`
	IconUrl                        string `json:"iconUrl,omitempty"`

	// Id A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	Id                 UserId `json:"id,omitempty"`
	ProfilePicOverride string `json:"profilePicOverride,omitempty"`
	ThumbnailUrl       string `json:"thumbnailUrl,omitempty"`
}

GroupMemberLimitedUser Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user.

type GroupMemberListResponse

type GroupMemberListResponse []GroupMember

type GroupMemberResponse

type GroupMemberResponse GroupMember

type GroupMemberStatus

type GroupMemberStatus string
const (
	GroupMemberStatusInactive    GroupMemberStatus = "inactive"
	GroupMemberStatusMember      GroupMemberStatus = "member"
	GroupMemberStatusRequested   GroupMemberStatus = "requested"
	GroupMemberStatusInvited     GroupMemberStatus = "invited"
	GroupMemberStatusBanned      GroupMemberStatus = "banned"
	GroupMemberStatusUserblocked GroupMemberStatus = "userblocked"
)

type GroupMyMember

type GroupMyMember struct {
	AcceptedByDisplayName string `json:"acceptedByDisplayName,omitempty"`

	// AcceptedById A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	AcceptedById                UserId        `json:"acceptedById,omitempty"`
	BannedAt                    string        `json:"bannedAt,omitempty"`
	CreatedAt                   time.Time     `json:"createdAt,omitempty"`
	GroupId                     GroupId       `json:"groupId,omitempty"`
	Has2Fa                      bool          `json:"has2FA,omitempty"`
	HasJoinedFromPurchase       bool          `json:"hasJoinedFromPurchase,omitempty"`
	Id                          GroupMemberId `json:"id,omitempty"`
	IsRepresenting              bool          `json:"isRepresenting,omitempty"`
	IsSubscribedToAnnouncements bool          `json:"isSubscribedToAnnouncements,omitempty"`
	JoinedAt                    time.Time     `json:"joinedAt,omitempty"`
	LastPostReadAt              time.Time     `json:"lastPostReadAt,omitempty"`
	MRoleIds                    []string      `json:"mRoleIds,omitempty"`
	ManagerNotes                string        `json:"managerNotes,omitempty"`
	MembershipStatus            string        `json:"membershipStatus,omitempty"`
	Permissions                 []string      `json:"permissions,omitempty"`
	RoleIds                     []GroupRoleId `json:"roleIds,omitempty"`

	// UserId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	UserId     UserId `json:"userId,omitempty"`
	Visibility string `json:"visibility,omitempty"`
}

type GroupNotFoundError

type GroupNotFoundError Error

type GroupNotMemberError

type GroupNotMemberError Error

type GroupPermission

type GroupPermission struct {
	// AllowedToAdd Whether the user is allowed to add this permission to a role.
	AllowedToAdd bool `json:"allowedToAdd,omitempty"`

	// DisplayName The display name of the permission.
	DisplayName string `json:"displayName,omitempty"`

	// Help Human-readable description of the permission.
	Help string `json:"help,omitempty"`

	// IsManagementPermission Whether this permission is a "management" permission.
	IsManagementPermission bool `json:"isManagementPermission,omitempty"`

	// Name The name of the permission.
	Name string `json:"name,omitempty"`
}

GroupPermission A permission that can be granted to a role in a group.

type GroupPermissionListResponse

type GroupPermissionListResponse []GroupPermission

type GroupPost

type GroupPost struct {
	// AuthorId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	AuthorId  UserId    `json:"authorId,omitempty"`
	CreatedAt time.Time `json:"createdAt,omitempty"`

	// EditorId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	EditorId UserId         `json:"editorId,omitempty"`
	GroupId  GroupId        `json:"groupId,omitempty"`
	Id       NotificationId `json:"id,omitempty"`
	ImageId  FileId         `json:"imageId,omitempty"`
	ImageUrl string         `json:"imageUrl,omitempty"`

	// RoleId
	RoleId     GroupRoleIdList     `json:"roleId,omitempty"`
	Text       string              `json:"text,omitempty"`
	Title      string              `json:"title,omitempty"`
	UpdatedAt  time.Time           `json:"updatedAt,omitempty"`
	Visibility GroupPostVisibility `json:"visibility,omitempty"`
}

type GroupPostResponse

type GroupPostResponse GroupPost

type GroupPostResponseSuccess

type GroupPostResponseSuccess Success

type GroupPostVisibility

type GroupPostVisibility string
const (
	GroupPostVisibilityGroup  GroupPostVisibility = "group"
	GroupPostVisibilityPublic GroupPostVisibility = "public"
)

type GroupPrivacy

type GroupPrivacy string
const (
	GroupPrivacyDefault GroupPrivacy = "default"
	GroupPrivacyPrivate GroupPrivacy = "private"
)

type GroupResponse

type GroupResponse Group

type GroupRole

type GroupRole struct {
	CreatedAt         time.Time   `json:"createdAt,omitempty"`
	Description       string      `json:"description,omitempty"`
	GroupId           GroupId     `json:"groupId,omitempty"`
	Id                GroupRoleId `json:"id,omitempty"`
	IsManagementRole  bool        `json:"isManagementRole,omitempty"`
	IsSelfAssignable  bool        `json:"isSelfAssignable,omitempty"`
	Name              string      `json:"name,omitempty"`
	Order             int64       `json:"order,omitempty"`
	Permissions       []string    `json:"permissions,omitempty"`
	RequiresPurchase  bool        `json:"requiresPurchase,omitempty"`
	RequiresTwoFactor bool        `json:"requiresTwoFactor,omitempty"`
	UpdatedAt         time.Time   `json:"updatedAt,omitempty"`
}

type GroupRoleId

type GroupRoleId string

type GroupRoleIdList

type GroupRoleIdList []GroupRoleId

GroupRoleIdList

type GroupRoleIdListResponse

type GroupRoleIdListResponse GroupRoleIdList

GroupRoleIdListResponse

type GroupRoleListResponse

type GroupRoleListResponse []GroupRole

type GroupRoleResponse

type GroupRoleResponse GroupRole

type GroupRoleTemplate

type GroupRoleTemplate string
const (
	GroupRoleTemplateDefault        GroupRoleTemplate = "default"
	GroupRoleTemplateManagedFree    GroupRoleTemplate = "managedFree"
	GroupRoleTemplateManagedInvite  GroupRoleTemplate = "managedInvite"
	GroupRoleTemplateManagedRequest GroupRoleTemplate = "managedRequest"
)

type GroupSearchSort

type GroupSearchSort string
const (
	GroupSearchSortJoinedAtAsc  GroupSearchSort = "joinedAt:asc"
	GroupSearchSortJoinedAtDesc GroupSearchSort = "joinedAt:desc"
)

type GroupShortCode

type GroupShortCode string

type GroupUserVisibility

type GroupUserVisibility string
const (
	GroupUserVisibilityVisible GroupUserVisibility = "visible"
	GroupUserVisibilityHidden  GroupUserVisibility = "hidden"
	GroupUserVisibilityFriends GroupUserVisibility = "friends"
)

type InfoPush

type InfoPush struct {
	CreatedAt time.Time    `json:"createdAt"`
	Data      InfoPushData `json:"data"`
	EndDate   time.Time    `json:"endDate,omitempty"`

	// Hash Unknown usage, MD5
	Hash          string        `json:"hash"`
	Id            string        `json:"id"`
	IsEnabled     bool          `json:"isEnabled"`
	Priority      int64         `json:"priority"`
	ReleaseStatus ReleaseStatus `json:"releaseStatus"`
	StartDate     time.Time     `json:"startDate,omitempty"`

	// Tags
	Tags      []Tag     `json:"tags"`
	UpdatedAt time.Time `json:"updatedAt"`
}

type InfoPushData

type InfoPushData struct {
	Article     InfoPushDataArticle   `json:"article,omitempty"`
	ContentList DynamicContentRow     `json:"contentList,omitempty"`
	Description string                `json:"description,omitempty"`
	ImageUrl    string                `json:"imageUrl,omitempty"`
	Name        string                `json:"name,omitempty"`
	OnPressed   InfoPushDataClickable `json:"onPressed,omitempty"`
	Template    string                `json:"template,omitempty"`
	Version     string                `json:"version,omitempty"`
}

type InfoPushDataArticle

type InfoPushDataArticle struct {
	Content InfoPushDataArticleContent `json:"content,omitempty"`
}

type InfoPushDataArticleContent

type InfoPushDataArticleContent struct {
	ImageUrl  string                `json:"imageUrl,omitempty"`
	OnPressed InfoPushDataClickable `json:"onPressed,omitempty"`
	Text      string                `json:"text,omitempty"`
}

type InfoPushDataClickable

type InfoPushDataClickable struct {
	Command string `json:"command"`

	// Parameters In case of OpenURL, this would contain the link.
	Parameters []string `json:"parameters,omitempty"`
}

type InfoPushListResponse

type InfoPushListResponse []InfoPush

type Instance

type Instance struct {
	Active           bool  `json:"active"`
	CanRequestInvite bool  `json:"canRequestInvite"`
	Capacity         int64 `json:"capacity"`

	// ClientNumber Always returns "unknown".
	ClientNumber string    `json:"clientNumber"`
	ClosedAt     time.Time `json:"closedAt,omitempty"`

	// Friends A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	Friends UserId `json:"friends,omitempty"`
	Full    bool   `json:"full"`

	// GroupAccessType Group access type when the instance type is "group"
	GroupAccessType   GroupAccessType `json:"groupAccessType,omitempty"`
	HardClose         bool            `json:"hardClose,omitempty"`
	HasCapacityForYou bool            `json:"hasCapacityForYou,omitempty"`

	// Hidden A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	Hidden UserId `json:"hidden,omitempty"`

	// Id 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.
	Id         InstanceId `json:"id"`
	InstanceId string     `json:"instanceId"`

	// Location 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.
	Location InstanceId `json:"location"`
	NUsers   int64      `json:"n_users"`
	Name     string     `json:"name"`
	Nonce    string     `json:"nonce,omitempty"`

	// OwnerId A groupId if the instance type is "group", null if instance type is public, or a userId otherwise
	OwnerId   InstanceOwnerId `json:"ownerId,omitempty"`
	Permanent bool            `json:"permanent"`

	// PhotonRegion API/Photon region.
	PhotonRegion Region            `json:"photonRegion"`
	Platforms    InstancePlatforms `json:"platforms"`

	// Private A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	Private             UserId `json:"private,omitempty"`
	QueueEnabled        bool   `json:"queueEnabled"`
	QueueSize           int64  `json:"queueSize"`
	RecommendedCapacity int64  `json:"recommendedCapacity"`

	// Region Instance region
	Region         InstanceRegion `json:"region"`
	RoleRestricted bool           `json:"roleRestricted,omitempty"`
	SecureName     string         `json:"secureName"`
	ShortName      string         `json:"shortName,omitempty"`
	Strict         bool           `json:"strict"`

	// Tags The tags array on Instances usually contain the language tags of the people in the instance.
	Tags      []Tag        `json:"tags"`
	Type      InstanceType `json:"type"`
	UserCount int64        `json:"userCount"`

	// Users The users field is present on instances created by the requesting user.
	Users []LimitedUser `json:"users,omitempty"`
	World World         `json:"world"`

	// WorldId WorldID be "offline" on User profiles if you are not friends with that user.
	WorldId WorldId `json:"worldId"`
}

Instance * `hidden` field is only present if InstanceType is `hidden` aka "Friends+", and is instance creator. * `friends` field is only present if InstanceType is `friends` aka "Friends", and is instance creator. * `private` field is only present if InstanceType is `private` aka "Invite" or "Invite+", and is instance creator.

type InstanceCloseForbiddenError

type InstanceCloseForbiddenError Error

type InstanceId

type InstanceId string

InstanceId 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.

type InstanceNotFoundError

type InstanceNotFoundError Error

type InstanceOwnerId

type InstanceOwnerId string

InstanceOwnerId A groupId if the instance type is "group", null if instance type is public, or a userId otherwise

type InstancePlatforms

type InstancePlatforms struct {
	Android           int64 `json:"android"`
	Standalonewindows int64 `json:"standalonewindows"`
}

type InstanceRegion

type InstanceRegion string

InstanceRegion Instance region

const (
	InstanceRegionUs      InstanceRegion = "us"
	InstanceRegionUse     InstanceRegion = "use"
	InstanceRegionEu      InstanceRegion = "eu"
	InstanceRegionJp      InstanceRegion = "jp"
	InstanceRegionUnknown InstanceRegion = "unknown"
)

type InstanceResponse

type InstanceResponse Instance

InstanceResponse * `hidden` field is only present if InstanceType is `hidden` aka "Friends+", and is instance creator. * `friends` field is only present if InstanceType is `friends` aka "Friends", and is instance creator. * `private` field is only present if InstanceType is `private` aka "Invite" or "Invite+", and is instance creator.

type InstanceSelfInviteSuccess

type InstanceSelfInviteSuccess Success

type InstanceShortNameResponse

type InstanceShortNameResponse struct {
	SecureName string `json:"secureName"`
	ShortName  string `json:"shortName,omitempty"`
}

type InstanceType

type InstanceType string
const (
	InstanceTypePublic  InstanceType = "public"
	InstanceTypeHidden  InstanceType = "hidden"
	InstanceTypeFriends InstanceType = "friends"
	InstanceTypePrivate InstanceType = "private"
	InstanceTypeGroup   InstanceType = "group"
)

type InvalidAdminCredentialsError

type InvalidAdminCredentialsError Error

type InviteMessage

type InviteMessage struct {
	CanBeUpdated bool              `json:"canBeUpdated"`
	Id           InviteMessageId   `json:"id"`
	Message      string            `json:"message"`
	MessageType  InviteMessageType `json:"messageType"`

	// RemainingCooldownMinutes Changes to 60 when updated, although probably server-side configurable.
	RemainingCooldownMinutes int64     `json:"remainingCooldownMinutes"`
	Slot                     int64     `json:"slot"`
	UpdatedAt                time.Time `json:"updatedAt"`
}

type InviteMessageGetNegativeSlotError

type InviteMessageGetNegativeSlotError Error

type InviteMessageGetTooHighSlotError

type InviteMessageGetTooHighSlotError Error

type InviteMessageId

type InviteMessageId string

type InviteMessageInvalidSlotNumberError

type InviteMessageInvalidSlotNumberError Error

type InviteMessageListResponse

type InviteMessageListResponse []InviteMessage

type InviteMessageNoEntryForSlotError

type InviteMessageNoEntryForSlotError Error

type InviteMessageResponse

type InviteMessageResponse InviteMessage

type InviteMessageType

type InviteMessageType string
const (
	InviteMessageTypeMessage         InviteMessageType = "message"
	InviteMessageTypeResponse        InviteMessageType = "response"
	InviteMessageTypeRequest         InviteMessageType = "request"
	InviteMessageTypeRequestResponse InviteMessageType = "requestResponse"
)

type InviteMessageUpdateRateLimitError

type InviteMessageUpdateRateLimitError Error

type InviteMustBeFriendsError

type InviteMustBeFriendsError Error

type InviteMyselfToParams

type InviteMyselfToParams struct {
	WorldId    string `json:"worldId"`
	InstanceId string `json:"instanceId"`
}

InviteMyselfToParams represents the parameters for the InviteMyselfTo request

type InviteRequest

type InviteRequest struct {
	// InstanceId 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.
	InstanceId  InstanceId `json:"instanceId"`
	MessageSlot int64      `json:"messageSlot,omitempty"`
}

type InviteResponse

type InviteResponse struct {
	ResponseSlot int64 `json:"responseSlot"`
}

type InviteResponse400Error

type InviteResponse400Error Error

type InviteUserParams

type InviteUserParams struct {
	UserId string `json:"userId"`
}

InviteUserParams represents the parameters for the InviteUser request

type JoinGroupParams

type JoinGroupParams struct {
	GroupId string `json:"groupId"`
}

JoinGroupParams represents the parameters for the JoinGroup request

type KickGroupMemberParams

type KickGroupMemberParams struct {
	GroupId string `json:"groupId"`
	UserId  string `json:"userId"`
}

KickGroupMemberParams represents the parameters for the KickGroupMember request

type LeaveGroupParams

type LeaveGroupParams struct {
	GroupId string `json:"groupId"`
}

LeaveGroupParams represents the parameters for the LeaveGroup request

type License

type License struct {
	ForAction LicenseAction `json:"forAction"`

	// ForId Either a AvatarID, LicenseGroupID, PermissionID or ProductID. This depends on the `forType` field.
	ForId   string      `json:"forId"`
	ForName string      `json:"forName"`
	ForType LicenseType `json:"forType"`
}

type LicenseAction

type LicenseAction string
const (
	LicenseActionWear LicenseAction = "wear"
	LicenseActionHave LicenseAction = "have"
)

type LicenseGroup

type LicenseGroup struct {
	Description string         `json:"description"`
	Id          LicenseGroupId `json:"id"`
	Licenses    []License      `json:"licenses"`
	Name        string         `json:"name"`
}

type LicenseGroupId

type LicenseGroupId string

type LicenseGroupListResponse

type LicenseGroupListResponse []LicenseGroup

type LicenseGroupResponse

type LicenseGroupResponse LicenseGroup

type LicenseType

type LicenseType string
const (
	LicenseTypeAvatar       LicenseType = "avatar"
	LicenseTypeLicenseGroup LicenseType = "licenseGroup"
	LicenseTypePermission   LicenseType = "permission"
	LicenseTypeProduct      LicenseType = "product"
)

type LimitedGroup

type LimitedGroup struct {
	BannerId      string             `json:"bannerId,omitempty"`
	BannerUrl     string             `json:"bannerUrl,omitempty"`
	CreatedAt     time.Time          `json:"createdAt,omitempty"`
	Description   string             `json:"description,omitempty"`
	Discriminator GroupDiscriminator `json:"discriminator,omitempty"`

	// Galleries
	Galleries        []GroupGallery    `json:"galleries,omitempty"`
	IconId           string            `json:"iconId,omitempty"`
	IconUrl          string            `json:"iconUrl,omitempty"`
	Id               GroupId           `json:"id,omitempty"`
	IsSearchable     bool              `json:"isSearchable,omitempty"`
	MemberCount      int64             `json:"memberCount,omitempty"`
	MembershipStatus GroupMemberStatus `json:"membershipStatus,omitempty"`
	Name             string            `json:"name,omitempty"`

	// OwnerId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	OwnerId   UserId         `json:"ownerId,omitempty"`
	Rules     string         `json:"rules,omitempty"`
	ShortCode GroupShortCode `json:"shortCode,omitempty"`

	// Tags
	Tags []Tag `json:"tags,omitempty"`
}

type LimitedGroupListResponse

type LimitedGroupListResponse []LimitedGroup

type LimitedUnityPackage

type LimitedUnityPackage struct {
	// Platform This can be `standalonewindows` or `android`, but can also pretty much be any random Unity verison such as `2019.2.4-801-Release` or `2019.2.2-772-Release` or even `unknownplatform`.
	Platform     Platform `json:"platform"`
	UnityVersion string   `json:"unityVersion"`
}

type LimitedUser

type LimitedUser struct {
	Bio string `json:"bio,omitempty"`

	// BioLinks
	BioLinks []string `json:"bioLinks,omitempty"`

	// CurrentAvatarImageUrl When profilePicOverride is not empty, use it instead.
	CurrentAvatarImageUrl CurrentAvatarImageUrl `json:"currentAvatarImageUrl,omitempty"`
	CurrentAvatarTags     []Tag                 `json:"currentAvatarTags,omitempty"`

	// CurrentAvatarThumbnailImageUrl When profilePicOverride is not empty, use it instead.
	CurrentAvatarThumbnailImageUrl CurrentAvatarThumbnailImageUrl `json:"currentAvatarThumbnailImageUrl,omitempty"`

	// DeveloperType "none" User is a normal user
	// "trusted" Unknown
	// "internal" Is a VRChat Developer
	// "moderator" Is a VRChat Moderator
	//
	// Staff can hide their developerType at will.
	DeveloperType  DeveloperType `json:"developerType"`
	DisplayName    string        `json:"displayName"`
	FallbackAvatar AvatarId      `json:"fallbackAvatar,omitempty"`
	FriendKey      string        `json:"friendKey,omitempty"`

	// Id A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	Id       UserId `json:"id"`
	IsFriend bool   `json:"isFriend"`

	// LastPlatform This can be `standalonewindows` or `android`, but can also pretty much be any random Unity verison such as `2019.2.4-801-Release` or `2019.2.2-772-Release` or even `unknownplatform`.
	LastPlatform       Platform `json:"last_platform"`
	Location           string   `json:"location,omitempty"`
	ProfilePicOverride string   `json:"profilePicOverride,omitempty"`
	Pronouns           string   `json:"pronouns,omitempty"`

	// Status Defines the User's current status, for example "ask me", "join me" or "offline. This status is a combined indicator of their online activity and privacy preference.
	Status            UserStatus `json:"status"`
	StatusDescription string     `json:"statusDescription"`

	// Tags <- Always empty.
	Tags     []Tag  `json:"tags"`
	UserIcon string `json:"userIcon,omitempty"`

	// Username -| **DEPRECATED:** VRChat API no longer return usernames of other users. [See issue by Tupper for more information](https://github.com/pypy-vrc/VRCX/issues/429).
	Username string `json:"username,omitempty"`
}

type LimitedUserGroupListResponse

type LimitedUserGroupListResponse []LimitedUserGroups

type LimitedUserGroups

type LimitedUserGroups struct {
	BannerId          string             `json:"bannerId,omitempty"`
	BannerUrl         string             `json:"bannerUrl,omitempty"`
	Description       string             `json:"description,omitempty"`
	Discriminator     GroupDiscriminator `json:"discriminator,omitempty"`
	GroupId           GroupId            `json:"groupId,omitempty"`
	IconId            string             `json:"iconId,omitempty"`
	IconUrl           string             `json:"iconUrl,omitempty"`
	Id                GroupMemberId      `json:"id,omitempty"`
	IsRepresenting    bool               `json:"isRepresenting,omitempty"`
	LastPostCreatedAt time.Time          `json:"lastPostCreatedAt,omitempty"`
	LastPostReadAt    time.Time          `json:"lastPostReadAt,omitempty"`
	MemberCount       int64              `json:"memberCount,omitempty"`
	MemberVisibility  string             `json:"memberVisibility,omitempty"`
	MutualGroup       bool               `json:"mutualGroup,omitempty"`
	Name              string             `json:"name,omitempty"`

	// OwnerId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	OwnerId   UserId         `json:"ownerId,omitempty"`
	Privacy   string         `json:"privacy,omitempty"`
	ShortCode GroupShortCode `json:"shortCode,omitempty"`
}

type LimitedUserListResponse

type LimitedUserListResponse []LimitedUser

type LimitedWorld

type LimitedWorld struct {
	// AuthorId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	AuthorId   UserId    `json:"authorId"`
	AuthorName string    `json:"authorName"`
	Capacity   int64     `json:"capacity"`
	CreatedAt  time.Time `json:"created_at"`
	Favorites  int64     `json:"favorites"`
	Heat       int64     `json:"heat"`

	// Id WorldID be "offline" on User profiles if you are not friends with that user.
	Id                  WorldId       `json:"id"`
	ImageUrl            string        `json:"imageUrl"`
	LabsPublicationDate string        `json:"labsPublicationDate"`
	Name                string        `json:"name"`
	Occupants           int64         `json:"occupants"`
	Organization        string        `json:"organization"`
	Popularity          int64         `json:"popularity"`
	PreviewYoutubeId    string        `json:"previewYoutubeId,omitempty"`
	PublicationDate     string        `json:"publicationDate"`
	RecommendedCapacity int64         `json:"recommendedCapacity,omitempty"`
	ReleaseStatus       ReleaseStatus `json:"releaseStatus"`

	// Tags
	Tags              []Tag           `json:"tags"`
	ThumbnailImageUrl string          `json:"thumbnailImageUrl"`
	UdonProducts      []UdonProductId `json:"udonProducts,omitempty"`

	// UnityPackages
	UnityPackages []LimitedUnityPackage `json:"unityPackages"`
	UpdatedAt     time.Time             `json:"updated_at"`
	Visits        int64                 `json:"visits,omitempty"`
}

type LimitedWorldListResponse

type LimitedWorldListResponse []LimitedWorld

type LogoutSuccess

type LogoutSuccess Success

type MarkNotificationAsReadParams

type MarkNotificationAsReadParams struct {
	NotificationId string `json:"notificationId"`
}

MarkNotificationAsReadParams represents the parameters for the MarkNotificationAsRead request

type MimeType

type MimeType string
const (
	MimeTypeImageJpeg                  MimeType = "image/jpeg"
	MimeTypeImageJpg                   MimeType = "image/jpg"
	MimeTypeImagePng                   MimeType = "image/png"
	MimeTypeImageWebp                  MimeType = "image/webp"
	MimeTypeImageGif                   MimeType = "image/gif"
	MimeTypeImageBmp                   MimeType = "image/bmp"
	MimeTypeImageSvgXml                MimeType = "image/svg+xml"
	MimeTypeImageTiff                  MimeType = "image/tiff"
	MimeTypeApplicationXAvatar         MimeType = "application/x-avatar"
	MimeTypeApplicationXWorld          MimeType = "application/x-world"
	MimeTypeApplicationGzip            MimeType = "application/gzip"
	MimeTypeApplicationXRsyncSignature MimeType = "application/x-rsync-signature"
	MimeTypeApplicationXRsyncDelta     MimeType = "application/x-rsync-delta"
	MimeTypeApplicationOctetStream     MimeType = "application/octet-stream"
)

type MissingCredentialsError

type MissingCredentialsError Error

type MissingParameterError

type MissingParameterError Error

type ModerateUserRequest

type ModerateUserRequest struct {
	// Moderated A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	Moderated UserId               `json:"moderated"`
	Type      PlayerModerationType `json:"type"`
}

type NoPermission

type NoPermission Error

type NotAuthorizedActionError

type NotAuthorizedActionError Error

type NotFriendsError

type NotFriendsError Error

type Notification

type Notification struct {
	CreatedAt time.Time `json:"created_at"`

	// Details **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.
	Details string `json:"details"`
	Id      string `json:"id"`
	Message string `json:"message"`

	// ReceiverUserId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	ReceiverUserId UserId `json:"receiverUserId,omitempty"`

	// Seen Not included in notification objects received from the Websocket API
	Seen bool `json:"seen,omitempty"`

	// SenderUserId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	SenderUserId UserId `json:"senderUserId"`

	// SenderUsername -| **DEPRECATED:** VRChat API no longer return usernames of other users. [See issue by Tupper for more information](https://github.com/pypy-vrc/VRCX/issues/429).
	SenderUsername string           `json:"senderUsername,omitempty"`
	Type           NotificationType `json:"type"`
}

type NotificationDetailInvite

type NotificationDetailInvite struct {
	InviteMessage string `json:"inviteMessage,omitempty"`

	// WorldId WorldID be "offline" on User profiles if you are not friends with that user.
	WorldId   WorldId `json:"worldId"`
	WorldName string  `json:"worldName"`
}

type NotificationDetailInviteResponse

type NotificationDetailInviteResponse struct {
	InResponseTo    NotificationId `json:"inResponseTo"`
	ResponseMessage string         `json:"responseMessage"`
}

type NotificationDetailRequestInvite

type NotificationDetailRequestInvite struct {
	// Platform TODO: Does this still exist?
	Platform string `json:"platform,omitempty"`

	// RequestMessage Used when using InviteMessage Slot.
	RequestMessage string `json:"requestMessage,omitempty"`
}

type NotificationDetailRequestInviteResponse

type NotificationDetailRequestInviteResponse struct {
	InResponseTo NotificationId `json:"inResponseTo"`

	// RequestMessage Used when using InviteMessage Slot.
	RequestMessage string `json:"requestMessage,omitempty"`
}

type NotificationDetailVoteToKick

type NotificationDetailVoteToKick struct {
	// InitiatorUserId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	InitiatorUserId UserId `json:"initiatorUserId"`

	// UserToKickId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	UserToKickId UserId `json:"userToKickId"`
}

type NotificationId

type NotificationId string

type NotificationListResponse

type NotificationListResponse []Notification

type NotificationResponse

type NotificationResponse Notification

type NotificationType

type NotificationType string
const (
	NotificationTypeFriendRequest         NotificationType = "friendRequest"
	NotificationTypeInvite                NotificationType = "invite"
	NotificationTypeInviteResponse        NotificationType = "inviteResponse"
	NotificationTypeMessage               NotificationType = "message"
	NotificationTypeRequestInvite         NotificationType = "requestInvite"
	NotificationTypeRequestInviteResponse NotificationType = "requestInviteResponse"
	NotificationTypeVotetokick            NotificationType = "votetokick"
)

type OrderOption

type OrderOption string
const (
	OrderOptionAscending  OrderOption = "ascending"
	OrderOptionDescending OrderOption = "descending"
)

type PaginatedGroupAuditLogEntryList

type PaginatedGroupAuditLogEntryList struct {
	// HasNext Whether there are more results after this page.
	HasNext bool `json:"hasNext,omitempty"`

	// Results
	Results []GroupAuditLogEntry `json:"results,omitempty"`

	// TotalCount The total number of results that the query would return if there were no pagination.
	TotalCount int64 `json:"totalCount,omitempty"`
}

type PastDisplayName

type PastDisplayName struct {
	DisplayName string    `json:"displayName"`
	UpdatedAt   time.Time `json:"updated_at"`
}

type Permission

type Permission struct {
	Data             any          `json:"data,omitempty"`
	Id               PermissionId `json:"id"`
	Name             string       `json:"name"`
	OwnerDisplayName string       `json:"ownerDisplayName"`

	// OwnerId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	OwnerId UserId `json:"ownerId"`
}

type PermissionId

type PermissionId string

type PermissionListResponse

type PermissionListResponse []Permission

type PermissionResponse

type PermissionResponse Permission

type Platform

type Platform string

Platform This can be `standalonewindows` or `android`, but can also pretty much be any random Unity verison such as `2019.2.4-801-Release` or `2019.2.2-772-Release` or even `unknownplatform`.

type PlayerModeration

type PlayerModeration struct {
	Created           time.Time          `json:"created"`
	Id                PlayerModerationId `json:"id"`
	SourceDisplayName string             `json:"sourceDisplayName"`

	// SourceUserId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	SourceUserId      UserId `json:"sourceUserId"`
	TargetDisplayName string `json:"targetDisplayName"`

	// TargetUserId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	TargetUserId UserId               `json:"targetUserId"`
	Type         PlayerModerationType `json:"type"`
}

type PlayerModerationClearAllSuccess

type PlayerModerationClearAllSuccess Success

type PlayerModerationDeleteOthersError

type PlayerModerationDeleteOthersError Error

type PlayerModerationId

type PlayerModerationId string

type PlayerModerationListResponse

type PlayerModerationListResponse []PlayerModeration

type PlayerModerationNotFoundError

type PlayerModerationNotFoundError Error

type PlayerModerationRemovedSuccess

type PlayerModerationRemovedSuccess Success

type PlayerModerationResponse

type PlayerModerationResponse PlayerModeration

type PlayerModerationType

type PlayerModerationType string
const (
	PlayerModerationTypeMute        PlayerModerationType = "mute"
	PlayerModerationTypeUnmute      PlayerModerationType = "unmute"
	PlayerModerationTypeBlock       PlayerModerationType = "block"
	PlayerModerationTypeUnblock     PlayerModerationType = "unblock"
	PlayerModerationTypeInteractOn  PlayerModerationType = "interactOn"
	PlayerModerationTypeInteractOff PlayerModerationType = "interactOff"
)

type PlayerModerationUnmoderatedSuccess

type PlayerModerationUnmoderatedSuccess Success

type ProxyConfig

type ProxyConfig struct {
	Host     string
	Port     string
	Username string
	Password string
}

ProxyConfig holds proxy configuration parameters

type PublishWorldParams

type PublishWorldParams struct {
	WorldId string `json:"worldId"`
}

PublishWorldParams represents the parameters for the PublishWorld request

type RateLimiter added in v0.2.7

type RateLimiter struct {
	// contains filtered or unexported fields
}

RateLimiter holds the state for rate limiting

func NewRateLimiter added in v0.2.7

func NewRateLimiter(minInterval time.Duration) *RateLimiter

NewRateLimiter creates a new rate limiter with the specified minimum interval

func (*RateLimiter) Middleware added in v0.2.7

func (rl *RateLimiter) Middleware() resty.RequestMiddleware

Middleware returns a middleware function that enforces rate limiting

type RawFileResponse

type RawFileResponse any

RawFileResponse Raw file

type Region

type Region string

Region API/Photon region.

const (
	RegionUs      Region = "us"
	RegionUse     Region = "use"
	RegionUsw     Region = "usw"
	RegionEu      Region = "eu"
	RegionJp      Region = "jp"
	RegionUnknown Region = "unknown"
)

type ReleaseStatus

type ReleaseStatus string
const (
	ReleaseStatusPublic  ReleaseStatus = "public"
	ReleaseStatusPrivate ReleaseStatus = "private"
	ReleaseStatusHidden  ReleaseStatus = "hidden"
	ReleaseStatusAll     ReleaseStatus = "all"
)

type RemoveFavoriteParams

type RemoveFavoriteParams struct {
	FavoriteId string `json:"favoriteId"`
}

RemoveFavoriteParams represents the parameters for the RemoveFavorite request

type RemoveGroupMemberRoleParams

type RemoveGroupMemberRoleParams struct {
	GroupId     string `json:"groupId"`
	UserId      string `json:"userId"`
	GroupRoleId string `json:"groupRoleId"`
}

RemoveGroupMemberRoleParams represents the parameters for the RemoveGroupMemberRole request

type RepresentedGroup

type RepresentedGroup struct {
	BannerId         string              `json:"bannerId,omitempty"`
	BannerUrl        string              `json:"bannerUrl,omitempty"`
	Description      string              `json:"description,omitempty"`
	Discriminator    GroupDiscriminator  `json:"discriminator,omitempty"`
	GroupId          GroupId             `json:"groupId,omitempty"`
	IconId           string              `json:"iconId,omitempty"`
	IconUrl          string              `json:"iconUrl,omitempty"`
	IsRepresenting   bool                `json:"isRepresenting,omitempty"`
	MemberCount      int64               `json:"memberCount,omitempty"`
	MemberVisibility GroupUserVisibility `json:"memberVisibility,omitempty"`
	Name             string              `json:"name,omitempty"`

	// OwnerId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	OwnerId   UserId         `json:"ownerId,omitempty"`
	Privacy   GroupPrivacy   `json:"privacy,omitempty"`
	ShortCode GroupShortCode `json:"shortCode,omitempty"`
}

type RequestInviteParams

type RequestInviteParams struct {
	UserId string `json:"userId"`
}

RequestInviteParams represents the parameters for the RequestInvite request

type RequestInviteRequest

type RequestInviteRequest struct {
	MessageSlot int64 `json:"messageSlot,omitempty"`
}

type ResetInviteMessageParams

type ResetInviteMessageParams struct {
	UserId      string            `json:"userId"`
	MessageType InviteMessageType `json:"messageType"`
	Slot        int64             `json:"slot"`
}

ResetInviteMessageParams represents the parameters for the ResetInviteMessage request

type RespondGroupJoinRequest

type RespondGroupJoinRequest struct {
	Action GroupJoinRequestAction `json:"action"`

	// Block Whether to block the user from requesting again
	Block bool `json:"block,omitempty"`
}

type RespondGroupJoinRequestParams

type RespondGroupJoinRequestParams struct {
	GroupId string `json:"groupId"`
	UserId  string `json:"userId"`
}

RespondGroupJoinRequestParams represents the parameters for the RespondGroupJoinRequest request

type RespondInviteParams

type RespondInviteParams struct {
	NotificationId string `json:"notificationId"`
}

RespondInviteParams represents the parameters for the RespondInvite request

type Response

type Response struct {
	Message    string `json:"message,omitempty"`
	StatusCode int64  `json:"status_code"`
}

type SearchAvatarsParams

type SearchAvatarsParams struct {
	Featured        bool          `json:"featured"`
	Sort            SortOption    `json:"sort"`
	UserId          string        `json:"userId"`
	N               int64         `json:"n"`
	Order           OrderOption   `json:"order"`
	Offset          int64         `json:"offset"`
	Tag             string        `json:"tag"`
	Notag           string        `json:"notag"`
	ReleaseStatus   ReleaseStatus `json:"releaseStatus"`
	MaxUnityVersion string        `json:"maxUnityVersion"`
	MinUnityVersion string        `json:"minUnityVersion"`
	Platform        string        `json:"platform"`
}

SearchAvatarsParams represents the parameters for the SearchAvatars request

type SearchGroupsParams

type SearchGroupsParams struct {
	Offset int64  `json:"offset"`
	N      int64  `json:"n"`
	Query  string `json:"query"`
}

SearchGroupsParams represents the parameters for the SearchGroups request

type SearchUsersParams

type SearchUsersParams struct {
	N      int64 `json:"n"`
	Offset int64 `json:"offset"`
}

SearchUsersParams represents the parameters for the SearchUsers request

type SearchWorldsParams

type SearchWorldsParams struct {
	Featured        bool          `json:"featured"`
	Sort            SortOption    `json:"sort"`
	UserId          string        `json:"userId"`
	N               int64         `json:"n"`
	Order           OrderOption   `json:"order"`
	Offset          int64         `json:"offset"`
	Search          string        `json:"search"`
	Tag             string        `json:"tag"`
	Notag           string        `json:"notag"`
	ReleaseStatus   ReleaseStatus `json:"releaseStatus"`
	MaxUnityVersion string        `json:"maxUnityVersion"`
	MinUnityVersion string        `json:"minUnityVersion"`
	Platform        string        `json:"platform"`
	Fuzzy           bool          `json:"fuzzy"`
}

SearchWorldsParams represents the parameters for the SearchWorlds request

type SelectAvatarParams

type SelectAvatarParams struct {
	AvatarId string `json:"avatarId"`
}

SelectAvatarParams represents the parameters for the SelectAvatar request

type SelectFallbackAvatarParams

type SelectFallbackAvatarParams struct {
	AvatarId string `json:"avatarId"`
}

SelectFallbackAvatarParams represents the parameters for the SelectFallbackAvatar request

type SendNotificationResponse

type SendNotificationResponse SentNotification

type SendSelfInviteParams

type SendSelfInviteParams struct {
	WorldId    string `json:"worldId"`
	InstanceId string `json:"instanceId"`
}

SendSelfInviteParams represents the parameters for the SendSelfInvite request

type SentNotification

type SentNotification struct {
	CreatedAt time.Time `json:"created_at"`
	Details   any       `json:"details"`
	Id        string    `json:"id"`
	Message   string    `json:"message"`

	// ReceiverUserId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	ReceiverUserId UserId `json:"receiverUserId"`

	// SenderUserId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	SenderUserId UserId `json:"senderUserId"`

	// SenderUsername -| **DEPRECATED:** VRChat API no longer return usernames of other users. [See issue by Tupper for more information](https://github.com/pypy-vrc/VRCX/issues/429).
	SenderUsername string           `json:"senderUsername,omitempty"`
	Type           NotificationType `json:"type"`
}

type SortOption

type SortOption string
const (
	SortOptionPopularity          SortOption = "popularity"
	SortOptionHeat                SortOption = "heat"
	SortOptionTrust               SortOption = "trust"
	SortOptionShuffle             SortOption = "shuffle"
	SortOptionRandom              SortOption = "random"
	SortOptionFavorites           SortOption = "favorites"
	SortOptionReportScore         SortOption = "reportScore"
	SortOptionReportCount         SortOption = "reportCount"
	SortOptionPublicationDate     SortOption = "publicationDate"
	SortOptionLabsPublicationDate SortOption = "labsPublicationDate"
	SortOptionCreated             SortOption = "created"
	SortOptionCreatedAt           SortOption = "_created_at"
	SortOptionUpdated             SortOption = "updated"
	SortOptionUpdatedAt           SortOption = "_updated_at"
	SortOptionOrder               SortOption = "order"
	SortOptionRelevance           SortOption = "relevance"
	SortOptionMagic               SortOption = "magic"
	SortOptionName                SortOption = "name"
)

type StartFileDataUploadParams

type StartFileDataUploadParams struct {
	FileId    string `json:"fileId"`
	VersionId int64  `json:"versionId"`
	// FileType enum
	FileType string `json:"fileType"`
}

StartFileDataUploadParams represents the parameters for the StartFileDataUpload request

type Subscription

type Subscription struct {
	Amount          float64            `json:"amount"`
	Description     string             `json:"description"`
	GooglePlanId    string             `json:"googlePlanId,omitempty"`
	GoogleProductId string             `json:"googleProductId,omitempty"`
	Id              string             `json:"id"`
	OculusSku       string             `json:"oculusSku,omitempty"`
	Period          SubscriptionPeriod `json:"period"`
	PicoSku         string             `json:"picoSku,omitempty"`
	SteamItemId     string             `json:"steamItemId"`
	Tier            float64            `json:"tier"`
}

type SubscriptionListResponse

type SubscriptionListResponse []Subscription

type SubscriptionPeriod

type SubscriptionPeriod string
const (
	SubscriptionPeriodHour  SubscriptionPeriod = "hour"
	SubscriptionPeriodDay   SubscriptionPeriod = "day"
	SubscriptionPeriodWeek  SubscriptionPeriod = "week"
	SubscriptionPeriodMonth SubscriptionPeriod = "month"
	SubscriptionPeriodYear  SubscriptionPeriod = "year"
)

type Success

type Success struct {
	Success Response `json:"success,omitempty"`
}

type SystemTimeResponse

type SystemTimeResponse time.Time

SystemTimeResponse Does not return millisecond precision. Always returns time in UTC.

type Tag

type Tag string

Tag Tags are a way to grant various access, assign restrictions or other kinds of metadata to various to objects such as worlds, users and avatars.

System tags starting with `system_` are granted automatically by the system, while admin tags with `admin_` are granted manually. More prefixes such as `language_ ` (to indicate that a player can speak the tagged language), and `author_tag_` (provided by a world author for search and sorting) exist as well.

type Transaction

type Transaction struct {
	// Agreement Represents a single Transaction, which is likely between VRChat and Steam.
	Agreement       TransactionAgreement `json:"agreement,omitempty"`
	CreatedAt       time.Time            `json:"created_at"`
	Error           string               `json:"error"`
	Id              TransactionId        `json:"id"`
	IsGift          bool                 `json:"isGift,omitempty"`
	IsTokens        bool                 `json:"isTokens,omitempty"`
	Sandbox         bool                 `json:"sandbox"`
	Status          TransactionStatus    `json:"status"`
	Steam           TransactionSteamInfo `json:"steam,omitempty"`
	Subscription    Subscription         `json:"subscription"`
	UpdatedAt       time.Time            `json:"updated_at"`
	UserDisplayName string               `json:"userDisplayName,omitempty"`

	// UserId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	UserId UserId `json:"userId,omitempty"`
}

type TransactionAgreement

type TransactionAgreement struct {
	Agreement      string  `json:"agreement"`
	AgreementId    string  `json:"agreementId"`
	BillingType    string  `json:"billingType"`
	Currency       string  `json:"currency"`
	EndDate        string  `json:"endDate"`
	FailedAttempts float64 `json:"failedAttempts"`
	Frequency      float64 `json:"frequency"`
	ItemId         float64 `json:"itemId"`
	LastAmount     float64 `json:"lastAmount"`
	LastAmountVat  float64 `json:"lastAmountVat"`
	LastPayment    string  `json:"lastPayment"`
	NextPayment    string  `json:"nextPayment"`
	Outstanding    float64 `json:"outstanding"`
	Period         string  `json:"period"`
	RecurringAmt   float64 `json:"recurringAmt"`
	StartDate      string  `json:"startDate"`

	// Status This is NOT TransactionStatus, but whatever Steam return.
	Status      string `json:"status"`
	TimeCreated string `json:"timeCreated"`
}

TransactionAgreement Represents a single Transaction, which is likely between VRChat and Steam.

type TransactionId

type TransactionId string

type TransactionListResponse

type TransactionListResponse []Transaction

type TransactionResponse

type TransactionResponse Transaction

type TransactionStatus

type TransactionStatus string
const (
	TransactionStatusActive     TransactionStatus = "active"
	TransactionStatusFailed     TransactionStatus = "failed"
	TransactionStatusExpired    TransactionStatus = "expired"
	TransactionStatusChargeback TransactionStatus = "chargeback"
)

type TransactionSteamInfo

type TransactionSteamInfo struct {
	// OrderId Steam Order ID
	OrderId string `json:"orderId"`

	// SteamId Steam User ID
	SteamId string `json:"steamId"`

	// SteamUrl Empty
	SteamUrl string `json:"steamUrl"`

	// TransId Steam Transaction ID, NOT the same as VRChat TransactionID
	TransId    string                     `json:"transId"`
	WalletInfo TransactionSteamWalletInfo `json:"walletInfo"`
}

type TransactionSteamWalletInfo

type TransactionSteamWalletInfo struct {
	Country  string `json:"country"`
	Currency string `json:"currency"`
	State    string `json:"state"`
	Status   string `json:"status"`
}

type TwoFactorAuthCode

type TwoFactorAuthCode struct {
	Code string `json:"code"`
}

type TwoFactorEmailCode

type TwoFactorEmailCode struct {
	Code string `json:"code"`
}

type UdonProductId

type UdonProductId string

UdonProductId A unique ID of a Udon Product

type UnbanGroupMemberParams

type UnbanGroupMemberParams struct {
	GroupId string `json:"groupId"`
	UserId  string `json:"userId"`
}

UnbanGroupMemberParams represents the parameters for the UnbanGroupMember request

type UnfriendParams

type UnfriendParams struct {
	UserId string `json:"userId"`
}

UnfriendParams represents the parameters for the Unfriend request

type UnfriendSuccess

type UnfriendSuccess Success

type UnityPackage

type UnityPackage struct {
	AssetUrl       string         `json:"assetUrl,omitempty"`
	AssetUrlObject any            `json:"assetUrlObject,omitempty"`
	AssetVersion   int64          `json:"assetVersion"`
	CreatedAt      time.Time      `json:"created_at,omitempty"`
	Id             UnityPackageId `json:"id"`
	ImpostorUrl    string         `json:"impostorUrl,omitempty"`

	// Platform This can be `standalonewindows` or `android`, but can also pretty much be any random Unity verison such as `2019.2.4-801-Release` or `2019.2.2-772-Release` or even `unknownplatform`.
	Platform        Platform `json:"platform"`
	PluginUrl       string   `json:"pluginUrl,omitempty"`
	PluginUrlObject any      `json:"pluginUrlObject,omitempty"`
	ScanStatus      string   `json:"scanStatus,omitempty"`
	UnitySortNumber int64    `json:"unitySortNumber,omitempty"`
	UnityVersion    string   `json:"unityVersion"`
	Variant         string   `json:"variant,omitempty"`
}

type UnityPackageId

type UnityPackageId string

type UnpublishWorldParams

type UnpublishWorldParams struct {
	WorldId string `json:"worldId"`
}

UnpublishWorldParams represents the parameters for the UnpublishWorld request

type UpdateAvatarParams

type UpdateAvatarParams struct {
	AvatarId string `json:"avatarId"`
}

UpdateAvatarParams represents the parameters for the UpdateAvatar request

type UpdateAvatarRequest

type UpdateAvatarRequest struct {
	AssetUrl      string        `json:"assetUrl,omitempty"`
	Description   string        `json:"description,omitempty"`
	Id            AvatarId      `json:"id,omitempty"`
	ImageUrl      string        `json:"imageUrl,omitempty"`
	Name          string        `json:"name,omitempty"`
	ReleaseStatus ReleaseStatus `json:"releaseStatus,omitempty"`

	// Tags
	Tags            []Tag   `json:"tags,omitempty"`
	UnityPackageUrl string  `json:"unityPackageUrl,omitempty"`
	UnityVersion    string  `json:"unityVersion,omitempty"`
	Version         float64 `json:"version,omitempty"`
}

type UpdateFavoriteGroupParams

type UpdateFavoriteGroupParams struct {
	// FavoriteGroupType enum
	FavoriteGroupType string `json:"favoriteGroupType"`
	FavoriteGroupName string `json:"favoriteGroupName"`
	UserId            string `json:"userId"`
}

UpdateFavoriteGroupParams represents the parameters for the UpdateFavoriteGroup request

type UpdateFavoriteGroupRequest

type UpdateFavoriteGroupRequest struct {
	DisplayName string `json:"displayName,omitempty"`

	// Tags Tags on FavoriteGroups are believed to do nothing.
	Tags       []Tag                   `json:"tags,omitempty"`
	Visibility FavoriteGroupVisibility `json:"visibility,omitempty"`
}

type UpdateGroupGalleryParams

type UpdateGroupGalleryParams struct {
	GroupId        string `json:"groupId"`
	GroupGalleryId string `json:"groupGalleryId"`
}

UpdateGroupGalleryParams represents the parameters for the UpdateGroupGallery request

type UpdateGroupGalleryRequest

type UpdateGroupGalleryRequest struct {
	// Description Description of the gallery.
	Description string `json:"description,omitempty"`

	// MembersOnly Whether the gallery is members only.
	MembersOnly bool `json:"membersOnly,omitempty"`

	// Name Name of the gallery.
	Name string `json:"name,omitempty"`

	// RoleIdsToAutoApprove
	RoleIdsToAutoApprove []GroupRoleId `json:"roleIdsToAutoApprove,omitempty"`

	// RoleIdsToManage
	RoleIdsToManage []GroupRoleId `json:"roleIdsToManage,omitempty"`

	// RoleIdsToSubmit
	RoleIdsToSubmit []GroupRoleId `json:"roleIdsToSubmit,omitempty"`

	// RoleIdsToView
	RoleIdsToView []GroupRoleId `json:"roleIdsToView,omitempty"`
}

type UpdateGroupMemberParams

type UpdateGroupMemberParams struct {
	GroupId string `json:"groupId"`
	UserId  string `json:"userId"`
}

UpdateGroupMemberParams represents the parameters for the UpdateGroupMember request

type UpdateGroupMemberRequest

type UpdateGroupMemberRequest struct {
	IsSubscribedToAnnouncements bool                `json:"isSubscribedToAnnouncements,omitempty"`
	ManagerNotes                string              `json:"managerNotes,omitempty"`
	Visibility                  GroupUserVisibility `json:"visibility,omitempty"`
}

type UpdateGroupParams

type UpdateGroupParams struct {
	GroupId string `json:"groupId"`
}

UpdateGroupParams represents the parameters for the UpdateGroup request

type UpdateGroupPostParams

type UpdateGroupPostParams struct {
	GroupId        string `json:"groupId"`
	NotificationId string `json:"notificationId"`
}

UpdateGroupPostParams represents the parameters for the UpdateGroupPost request

type UpdateGroupRequest

type UpdateGroupRequest struct {
	BannerId    string         `json:"bannerId,omitempty"`
	Description string         `json:"description,omitempty"`
	IconId      string         `json:"iconId,omitempty"`
	JoinState   GroupJoinState `json:"joinState,omitempty"`

	// Languages 3 letter language code
	Languages []string `json:"languages,omitempty"`
	Links     []string `json:"links,omitempty"`
	Name      string   `json:"name,omitempty"`
	Rules     string   `json:"rules,omitempty"`
	ShortCode string   `json:"shortCode,omitempty"`

	// Tags
	Tags []Tag `json:"tags,omitempty"`
}

type UpdateGroupRoleParams

type UpdateGroupRoleParams struct {
	GroupId     string `json:"groupId"`
	GroupRoleId string `json:"groupRoleId"`
}

UpdateGroupRoleParams represents the parameters for the UpdateGroupRole request

type UpdateGroupRoleRequest

type UpdateGroupRoleRequest struct {
	Description      string   `json:"description,omitempty"`
	IsSelfAssignable bool     `json:"isSelfAssignable,omitempty"`
	Name             string   `json:"name,omitempty"`
	Order            int64    `json:"order,omitempty"`
	Permissions      []string `json:"permissions,omitempty"`
}

type UpdateInviteMessageParams

type UpdateInviteMessageParams struct {
	UserId      string            `json:"userId"`
	MessageType InviteMessageType `json:"messageType"`
	Slot        int64             `json:"slot"`
}

UpdateInviteMessageParams represents the parameters for the UpdateInviteMessage request

type UpdateInviteMessageRequest

type UpdateInviteMessageRequest struct {
	Message string `json:"message"`
}

type UpdateUserParams

type UpdateUserParams struct {
	UserId string `json:"userId"`
}

UpdateUserParams represents the parameters for the UpdateUser request

type UpdateUserRequest

type UpdateUserRequest struct {
	AcceptedTosVersion float64  `json:"acceptedTOSVersion,omitempty"`
	Bio                string   `json:"bio,omitempty"`
	BioLinks           []string `json:"bioLinks,omitempty"`
	Birthday           string   `json:"birthday,omitempty"`
	Email              string   `json:"email,omitempty"`
	IsBoopingEnabled   bool     `json:"isBoopingEnabled,omitempty"`
	Pronouns           string   `json:"pronouns,omitempty"`

	// Status Defines the User's current status, for example "ask me", "join me" or "offline. This status is a combined indicator of their online activity and privacy preference.
	Status            UserStatus `json:"status,omitempty"`
	StatusDescription string     `json:"statusDescription,omitempty"`

	// Tags
	Tags []Tag `json:"tags,omitempty"`

	// UserIcon MUST be a valid VRChat /file/ url.
	UserIcon string `json:"userIcon,omitempty"`
}

type UpdateWorldParams

type UpdateWorldParams struct {
	WorldId string `json:"worldId"`
}

UpdateWorldParams represents the parameters for the UpdateWorld request

type UpdateWorldRequest

type UpdateWorldRequest struct {
	AssetUrl     string `json:"assetUrl,omitempty"`
	AssetVersion string `json:"assetVersion,omitempty"`

	// AuthorId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	AuthorId    UserId `json:"authorId,omitempty"`
	AuthorName  string `json:"authorName,omitempty"`
	Capacity    int64  `json:"capacity,omitempty"`
	Description string `json:"description,omitempty"`
	ImageUrl    string `json:"imageUrl,omitempty"`
	Name        string `json:"name,omitempty"`

	// Platform This can be `standalonewindows` or `android`, but can also pretty much be any random Unity verison such as `2019.2.4-801-Release` or `2019.2.2-772-Release` or even `unknownplatform`.
	Platform      Platform      `json:"platform,omitempty"`
	ReleaseStatus ReleaseStatus `json:"releaseStatus,omitempty"`

	// Tags
	Tags            []Tag  `json:"tags,omitempty"`
	UnityPackageUrl string `json:"unityPackageUrl,omitempty"`
	UnityVersion    string `json:"unityVersion,omitempty"`
}

type User

type User struct {
	AllowAvatarCopying bool `json:"allowAvatarCopying"`

	// Badges
	Badges   []Badge  `json:"badges,omitempty"`
	Bio      string   `json:"bio"`
	BioLinks []string `json:"bioLinks"`

	// CurrentAvatarImageUrl When profilePicOverride is not empty, use it instead.
	CurrentAvatarImageUrl CurrentAvatarImageUrl `json:"currentAvatarImageUrl"`
	CurrentAvatarTags     []Tag                 `json:"currentAvatarTags"`

	// CurrentAvatarThumbnailImageUrl When profilePicOverride is not empty, use it instead.
	CurrentAvatarThumbnailImageUrl CurrentAvatarThumbnailImageUrl `json:"currentAvatarThumbnailImageUrl"`
	DateJoined                     string                         `json:"date_joined"`

	// DeveloperType "none" User is a normal user
	// "trusted" Unknown
	// "internal" Is a VRChat Developer
	// "moderator" Is a VRChat Moderator
	//
	// Staff can hide their developerType at will.
	DeveloperType DeveloperType `json:"developerType"`

	// DisplayName A users visual display name. This is what shows up in-game, and can different from their `username`. Changing display name is restricted to a cooldown period.
	DisplayName         string `json:"displayName"`
	FriendKey           string `json:"friendKey"`
	FriendRequestStatus string `json:"friendRequestStatus,omitempty"`

	// Id A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	Id UserId `json:"id"`

	// InstanceId 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.
	InstanceId InstanceId `json:"instanceId,omitempty"`

	// IsFriend Either their `friendKey`, or empty string if you are not friends. Unknown usage.
	IsFriend bool `json:"isFriend"`

	// LastActivity Either a date-time or empty string.
	LastActivity string `json:"last_activity"`

	// LastLogin Either a date-time or empty string.
	LastLogin string `json:"last_login"`

	// LastPlatform This can be `standalonewindows` or `android`, but can also pretty much be any random Unity verison such as `2019.2.4-801-Release` or `2019.2.2-772-Release` or even `unknownplatform`.
	LastPlatform Platform `json:"last_platform"`

	// Location WorldID be "offline" on User profiles if you are not friends with that user.
	Location                    WorldId `json:"location,omitempty"`
	Note                        string  `json:"note,omitempty"`
	Platform                    string  `json:"platform"`
	ProfilePicOverride          string  `json:"profilePicOverride"`
	ProfilePicOverrideThumbnail string  `json:"profilePicOverrideThumbnail"`
	Pronouns                    string  `json:"pronouns"`

	// State * "online" User is online in VRChat
	// * "active" User is online, but not in VRChat
	// * "offline" User is offline
	//
	// Always offline when returned through `getCurrentUser` (/auth/user).
	State UserState `json:"state"`

	// Status Defines the User's current status, for example "ask me", "join me" or "offline. This status is a combined indicator of their online activity and privacy preference.
	Status            UserStatus `json:"status"`
	StatusDescription string     `json:"statusDescription"`

	// Tags
	Tags                []Tag  `json:"tags"`
	TravelingToInstance string `json:"travelingToInstance,omitempty"`
	TravelingToLocation string `json:"travelingToLocation,omitempty"`
	TravelingToWorld    string `json:"travelingToWorld,omitempty"`
	UserIcon            string `json:"userIcon"`

	// Username -| A users unique name, used during login. This is different from `displayName` which is what shows up in-game. A users `username` can never be changed.'
	// **DEPRECATED:** VRChat API no longer return usernames of other users. [See issue by Tupper for more information](https://github.com/pypy-vrc/VRCX/issues/429).
	Username string `json:"username,omitempty"`

	// WorldId WorldID be "offline" on User profiles if you are not friends with that user.
	WorldId WorldId `json:"worldId,omitempty"`
}

type UserDoesntExistError

type UserDoesntExistError Error

type UserExists

type UserExists struct {
	// NameOk Is the username valid?
	NameOk bool `json:"nameOk"`

	// UserExists Status if a user exist with that username or userId.
	UserExists bool `json:"userExists"`
}

UserExists Status object representing if a queried user by username or userId exists or not. This model is primarily used by the `/auth/exists` endpoint, which in turn is used during registration. Please see the documentation on that endpoint for more information on usage.

type UserExistsResponse

type UserExistsResponse UserExists

UserExistsResponse Status object representing if a queried user by username or userId exists or not. This model is primarily used by the `/auth/exists` endpoint, which in turn is used during registration. Please see the documentation on that endpoint for more information on usage.

type UserGroupInstanceFull added in v0.2.4

type UserGroupInstanceFull struct {
	Active                   bool               `json:"active"`
	AgeGate                  bool               `json:"ageGate"`
	CanRequestInvite         bool               `json:"canRequestInvite"`
	Capacity                 int                `json:"capacity"`
	ClientNumber             string             `json:"clientNumber"`
	DisplayName              string             `json:"displayName"`
	Full                     bool               `json:"full"`
	GameServerVersion        int                `json:"gameServerVersion"`
	ID                       string             `json:"id"`
	InstanceId               InstanceId         `json:"instanceId"`
	Location                 string             `json:"location"`
	NUsers                   int                `json:"n_users"`
	Name                     string             `json:"name"`
	OwnerId                  UserId             `json:"ownerId"`
	Permanent                bool               `json:"permanent"`
	PhotonRegion             string             `json:"photonRegion"`
	PlayerPersistenceEnabled bool               `json:"playerPersistenceEnabled"`
	Region                   InstanceRegion     `json:"region"`
	SecureName               string             `json:"secureName"`
	ShortName                string             `json:"shortName"`
	Tags                     []string           `json:"tags"`
	Type                     string             `json:"type"`
	WorldId                  WorldId            `json:"worldId"`
	Hidden                   string             `json:"hidden"`
	Friends                  string             `json:"friends"`
	Private                  string             `json:"private"`
	QueueEnabled             bool               `json:"queueEnabled"`
	QueueSize                int                `json:"queueSize"`
	RecommendedCapacity      int                `json:"recommendedCapacity"`
	RoleRestricted           bool               `json:"roleRestricted"`
	Strict                   bool               `json:"strict"`
	UserCount                int                `json:"userCount"`
	GroupAccessType          GroupAccessType    `json:"groupAccessType"`
	HasCapacityForYou        bool               `json:"hasCapacityForYou"`
	Nonce                    string             `json:"nonce"`
	ClosedAt                 string             `json:"closedAt"`
	HardClose                bool               `json:"hardClose"`
	World                    UserInstanceWorld  `json:"world"`
	Users                    []UserInstanceUser `json:"users"`
}

type UserGroupRequest added in v0.2.58

type UserGroupRequest struct {
	Id               string             `json:"id"`
	GroupId          GroupId            `json:"groupId"`
	Name             string             `json:"name"`
	ShortCode        string             `json:"shortCode"`
	Discriminator    GroupDiscriminator `json:"discriminator"`
	Description      string             `json:"description"`
	IconUrl          string             `json:"iconUrl"`
	BannerUrl        string             `json:"bannerUrl"`
	OwnerId          UserId             `json:"ownerId"`
	Privacy          GroupPrivacy       `json:"privacy"`
	MemberCount      int64              `json:"memberCount"`
	MembershipStatus GroupMemberStatus  `json:"membershipStatus"`
}

UserGroupRequest mirrors one entry of GET /users/{userId}/groups/requested.

The endpoint returns group *membership* objects, not groups: `id` is the membership id (gmem_...) and the group is in `groupId` (grp_...). The generated Group schema has no groupId field and binds `id` instead, so GroupListResponse silently drops the only field callers need.

type UserGroupRequestsResponse added in v0.2.58

type UserGroupRequestsResponse []UserGroupRequest

type UserId

type UserId string

UserId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.

type UserInstanceUnityPackage added in v0.2.4

type UserInstanceUnityPackage struct {
	ID                  string                 `json:"id"`
	AssetUrl            string                 `json:"assetUrl"`
	AssetUrlObject      map[string]interface{} `json:"assetUrlObject"`
	AssetVersion        int                    `json:"assetVersion"`
	CreatedAt           string                 `json:"created_at"`
	ImpostorizerVersion string                 `json:"impostorizerVersion"`
	PerformanceRating   string                 `json:"performanceRating"`
	Platform            string                 `json:"platform"`
	PluginUrl           string                 `json:"pluginUrl"`
	PluginUrlObject     map[string]interface{} `json:"pluginUrlObject"`
	UnitySortNumber     int                    `json:"unitySortNumber"`
	UnityVersion        string                 `json:"unityVersion"`
	WorldSignature      string                 `json:"worldSignature"`
	ImpostorUrl         string                 `json:"impostorUrl"`
	ScanStatus          string                 `json:"scanStatus"`
	Variant             string                 `json:"variant"`
}

type UserInstanceUser added in v0.2.4

type UserInstanceUser struct {
	Bio                            string   `json:"bio"`
	BioLinks                       []string `json:"bioLinks"`
	CurrentAvatarImageUrl          string   `json:"currentAvatarImageUrl"`
	CurrentAvatarThumbnailImageUrl string   `json:"currentAvatarThumbnailImageUrl"`
	CurrentAvatarTags              []string `json:"currentAvatarTags"`
	DeveloperType                  string   `json:"developerType"`
	DisplayName                    string   `json:"displayName"`
	FallbackAvatar                 string   `json:"fallbackAvatar"`
	ID                             string   `json:"id"`
	IsFriend                       bool     `json:"isFriend"`
	LastPlatform                   string   `json:"last_platform"`
	LastLogin                      string   `json:"last_login"`
	ProfilePicOverride             string   `json:"profilePicOverride"`
	Pronouns                       string   `json:"pronouns"`
	Status                         string   `json:"status"`
	StatusDescription              string   `json:"statusDescription"`
	Tags                           []string `json:"tags"`
	UserIcon                       string   `json:"userIcon"`
	Username                       string   `json:"username"`
	Location                       string   `json:"location"`
	FriendKey                      string   `json:"friendKey"`
}

type UserInstanceWorld added in v0.2.4

type UserInstanceWorld struct {
	AuthorId               UserId                     `json:"authorId"`
	AuthorName             string                     `json:"authorName"`
	Capacity               int                        `json:"capacity"`
	RecommendedCapacity    int                        `json:"recommendedCapacity"`
	CreatedAt              string                     `json:"created_at"`
	DefaultContentSettings map[string]bool            `json:"defaultContentSettings"`
	Description            string                     `json:"description"`
	Favorites              int                        `json:"favorites"`
	Featured               bool                       `json:"featured"`
	Heat                   int                        `json:"heat"`
	ID                     string                     `json:"id"`
	ImageUrl               string                     `json:"imageUrl"`
	Instances              [][]interface{}            `json:"instances"`
	LabsPublicationDate    string                     `json:"labsPublicationDate"`
	Name                   string                     `json:"name"`
	Namespace              string                     `json:"namespace"`
	Occupants              int                        `json:"occupants"`
	Organization           string                     `json:"organization"`
	Popularity             int                        `json:"popularity"`
	PreviewYoutubeId       string                     `json:"previewYoutubeId"`
	PrivateOccupants       int                        `json:"privateOccupants"`
	PublicOccupants        int                        `json:"publicOccupants"`
	PublicationDate        string                     `json:"publicationDate"`
	ReleaseStatus          string                     `json:"releaseStatus"`
	StoreId                string                     `json:"storeId"`
	Tags                   []string                   `json:"tags"`
	ThumbnailImageUrl      string                     `json:"thumbnailImageUrl"`
	UnityPackages          []UserInstanceUnityPackage `json:"unityPackages"`
	UpdatedAt              string                     `json:"updated_at"`
	UrlList                []string                   `json:"urlList"`
	Version                int                        `json:"version"`
	Visits                 int                        `json:"visits"`
	UdonProducts           []string                   `json:"udonProducts"`
}

type UserInstancesGroupsResponseFull added in v0.2.4

type UserInstancesGroupsResponseFull struct {
	FetchedAt string                  `json:"fetchedAt"`
	Instances []UserGroupInstanceFull `json:"instances"`
}

UserInstancesGroupsResponseFull mirrors the full JSON response for /users/{userId}/instances/groups Only the most relevant fields are included for now; expand as needed.

type UserResponse

type UserResponse User

type UserState

type UserState string

UserState * "online" User is online in VRChat * "active" User is online, but not in VRChat * "offline" User is offline

Always offline when returned through `getCurrentUser` (/auth/user).

const (
	UserStateOffline UserState = "offline"
	UserStateActive  UserState = "active"
	UserStateOnline  UserState = "online"
)

type UserStatus

type UserStatus string

UserStatus Defines the User's current status, for example "ask me", "join me" or "offline. This status is a combined indicator of their online activity and privacy preference.

const (
	UserStatusActive  UserStatus = "active"
	UserStatusJoinMe  UserStatus = "join me"
	UserStatusAskMe   UserStatus = "ask me"
	UserStatusBusy    UserStatus = "busy"
	UserStatusOffline UserStatus = "offline"
)

type UserSubscription

type UserSubscription struct {
	Active        bool               `json:"active"`
	Amount        float64            `json:"amount"`
	CreatedAt     time.Time          `json:"created_at"`
	Description   string             `json:"description"`
	Expires       time.Time          `json:"expires"`
	Id            string             `json:"id"`
	IsGift        bool               `json:"isGift"`
	LicenseGroups []LicenseGroupId   `json:"licenseGroups"`
	Period        SubscriptionPeriod `json:"period"`
	Starts        string             `json:"starts,omitempty"`
	Status        TransactionStatus  `json:"status"`
	SteamItemId   string             `json:"steamItemId,omitempty"`

	// Store Which "Store" it came from. Right now only Stores are "Steam" and "Admin".
	Store         string        `json:"store"`
	Tier          float64       `json:"tier"`
	TransactionId TransactionId `json:"transactionId"`
	UpdatedAt     time.Time     `json:"updated_at"`
}

type UserSubscriptionListResponse

type UserSubscriptionListResponse []UserSubscription

type UsersInvalidSearchError

type UsersInvalidSearchError Error

type Verify2FaEmailCodeResponse

type Verify2FaEmailCodeResponse Verify2FaEmailCodeResult

type Verify2FaEmailCodeResult

type Verify2FaEmailCodeResult struct {
	Verified bool `json:"verified"`
}

type Verify2FaResponse

type Verify2FaResponse Verify2FaResult

type Verify2FaResult

type Verify2FaResult struct {
	Verified bool `json:"verified"`
}

type VerifyAuthTokenResponse

type VerifyAuthTokenResponse VerifyAuthTokenResult

type VerifyAuthTokenResult

type VerifyAuthTokenResult struct {
	Ok    bool   `json:"ok"`
	Token string `json:"token"`
}

type World

type World struct {
	// AuthorId A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
	AuthorId    UserId    `json:"authorId"`
	AuthorName  string    `json:"authorName"`
	Capacity    int64     `json:"capacity"`
	CreatedAt   time.Time `json:"created_at"`
	Description string    `json:"description"`
	Favorites   int64     `json:"favorites,omitempty"`
	Featured    bool      `json:"featured"`
	Heat        int64     `json:"heat"`

	// Id WorldID be "offline" on User profiles if you are not friends with that user.
	Id       WorldId `json:"id"`
	ImageUrl string  `json:"imageUrl"`

	// Instances Will always be an empty list when unauthenticated.
	Instances           [][]any `json:"instances,omitempty"`
	LabsPublicationDate string  `json:"labsPublicationDate"`
	Name                string  `json:"name"`
	Namespace           string  `json:"namespace,omitempty"`

	// Occupants Will always be `0` when unauthenticated.
	Occupants        int64  `json:"occupants,omitempty"`
	Organization     string `json:"organization"`
	Popularity       int64  `json:"popularity"`
	PreviewYoutubeId string `json:"previewYoutubeId,omitempty"`

	// PrivateOccupants Will always be `0` when unauthenticated.
	PrivateOccupants int64 `json:"privateOccupants,omitempty"`

	// PublicOccupants Will always be `0` when unauthenticated.
	PublicOccupants     int64         `json:"publicOccupants,omitempty"`
	PublicationDate     string        `json:"publicationDate"`
	RecommendedCapacity int64         `json:"recommendedCapacity"`
	ReleaseStatus       ReleaseStatus `json:"releaseStatus"`

	// Tags
	Tags              []Tag           `json:"tags"`
	ThumbnailImageUrl string          `json:"thumbnailImageUrl"`
	UdonProducts      []UdonProductId `json:"udonProducts,omitempty"`

	// UnityPackages Empty if unauthenticated.
	UnityPackages []UnityPackage `json:"unityPackages,omitempty"`
	UpdatedAt     time.Time      `json:"updated_at"`
	Version       int64          `json:"version"`
	Visits        int64          `json:"visits"`
}

type WorldCreateNotAllowedYetError

type WorldCreateNotAllowedYetError Error

type WorldId

type WorldId string

WorldId WorldID be "offline" on User profiles if you are not friends with that user.

type WorldMetadata

type WorldMetadata struct {
	// Id WorldID be "offline" on User profiles if you are not friends with that user.
	Id       WorldId `json:"id"`
	Metadata any     `json:"metadata"`
}

type WorldMetadataResponse

type WorldMetadataResponse WorldMetadata

type WorldNotFoundError

type WorldNotFoundError Error

type WorldPublishStatus

type WorldPublishStatus struct {
	CanPublish bool `json:"canPublish"`
}

type WorldPublishStatusResponse

type WorldPublishStatusResponse WorldPublishStatus

type WorldResponse

type WorldResponse World

type WorldSeeOtherUserFavoritesError

type WorldSeeOtherUserFavoritesError Error

type WorldSeeOtherUserRecentsError

type WorldSeeOtherUserRecentsError Error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL