vrchat

package module
v0.1.9 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2024 License: Apache-2.0 Imports: 8 Imported by: 0

README

VRChat API Go Library

This is a generated API library for the VRChat API using OpenAPI Generator.

Requirements

  • Go 1.20 or later (Recommended 1.23)
  • Java SDK 11 or later

Generating the Library

To generate the library, run the appropriate script for your operating system:

Unix/Linux
./generate.sh
Windows
.\generate.ps1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

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 AgeVerificationStatus added in v0.1.9

type AgeVerificationStatus string
const (
	AgeVerificationStatusHidden   AgeVerificationStatus = "hidden"
	AgeVerificationStatusVerified AgeVerificationStatus = "verified"
	AgeVerificationStatus18       AgeVerificationStatus = "18+"
)

type ApiConfig

type ApiConfig struct {
	// Address VRChat's office address
	Address                      string `json:"address"`
	AgeVerificationP             bool   `json:"ageVerificationP"`
	AgeVerificationStatusVisible bool   `json:"ageVerificationStatusVisible"`

	// AnalyticsSegmentNewUiPctOfUsers Unknown
	AnalyticsSegmentNewUiPctOfUsers int64 `json:"analyticsSegment_NewUI_PctOfUsers"`

	// AnalyticsSegmentNewUiSalt Unknown
	AnalyticsSegmentNewUiSalt string `json:"analyticsSegment_NewUI_Salt"`

	// 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"`

	AvatarPerfLimiter struct {
		// AndroidMobile Info about the performance limits on a platform
		AndroidMobile PerformanceLimiterInfo `json:"AndroidMobile"`

		// IOsMobile Info about the performance limits on a platform
		IOsMobile PerformanceLimiterInfo `json:"iOSMobile"`

		// Pc Info about the performance limits on a platform
		Pc PerformanceLimiterInfo `json:"PC"`

		// Pico Info about the performance limits on a platform
		Pico PerformanceLimiterInfo `json:"Pico"`

		// Quest Info about the performance limits on a platform
		Quest PerformanceLimiterInfo `json:"Quest"`

		// XrElite Info about the performance limits on a platform
		XrElite PerformanceLimiterInfo `json:"XRElite"`
	} `json:"avatarPerfLimiter"`

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

	// ChatboxLogBufferSeconds Unknown
	ChatboxLogBufferSeconds int64 `json:"chatboxLogBufferSeconds"`

	// 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"`

	// ClientNetDispatchThreadMobile Unknown
	ClientNetDispatchThreadMobile bool `json:"clientNetDispatchThreadMobile"`

	// 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"`

	// Constants Constants
	Constants ApiConfigConstants `json:"constants"`

	// 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"`
	DefaultStickerSet string   `json:"defaultStickerSet"`

	// 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"`

	// ForceUseLatestWorld Unknown
	ForceUseLatestWorld bool `json:"forceUseLatestWorld"`

	// GoogleApiClientId Unknown
	GoogleApiClientId string `json:"googleApiClientId"`

	// 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"`

	MinSupportedClientBuildNumber struct {
		// AppStore Build information for a platform
		AppStore PlatformBuildInfo `json:"AppStore"`

		// Default Build information for a platform
		Default PlatformBuildInfo `json:"Default"`

		// Firebase Build information for a platform
		Firebase PlatformBuildInfo `json:"Firebase"`

		// FirebaseiOs Build information for a platform
		FirebaseiOs PlatformBuildInfo `json:"FirebaseiOS"`

		// GooglePlay Build information for a platform
		GooglePlay PlatformBuildInfo `json:"GooglePlay"`

		// Pc Build information for a platform
		Pc PlatformBuildInfo `json:"PC"`

		// PicoStore Build information for a platform
		PicoStore PlatformBuildInfo `json:"PicoStore"`

		// QuestAppLab Build information for a platform
		QuestAppLab PlatformBuildInfo `json:"QuestAppLab"`

		// QuestStore Build information for a platform
		QuestStore PlatformBuildInfo `json:"QuestStore"`

		// TestFlight Build information for a platform
		TestFlight PlatformBuildInfo `json:"TestFlight"`

		// XrElite Build information for a platform
		XrElite PlatformBuildInfo `json:"XRElite"`
	} `json:"minSupportedClientBuildNumber"`

	// MinimumUnityVersionForUploads Minimum Unity version required for uploading assets
	MinimumUnityVersionForUploads string `json:"minimumUnityVersionForUploads"`

	// 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"`

	OfflineAnalysis struct {
		// Android Whether to allow offline analysis
		Android bool `json:"android,omitempty"`

		// Standalonewindows Whether to allow offline analysis
		Standalonewindows bool `json:"standalonewindows,omitempty"`
	} `json:"offlineAnalysis"`

	// PhotonNameserverOverrides Unknown
	PhotonNameserverOverrides []string `json:"photonNameserverOverrides"`

	// PhotonPublicKeys Unknown
	PhotonPublicKeys []string `json:"photonPublicKeys"`

	// 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"`

	ReportCategories struct {
		// Avatar A category used for reporting content
		Avatar ReportCategory `json:"avatar"`

		// Behavior A category used for reporting content
		Behavior ReportCategory `json:"behavior"`

		// Chat A category used for reporting content
		Chat ReportCategory `json:"chat"`

		// Emoji A category used for reporting content
		Emoji ReportCategory `json:"emoji,omitempty"`

		// Environment A category used for reporting content
		Environment ReportCategory `json:"environment"`

		// Groupstore A category used for reporting content
		Groupstore ReportCategory `json:"groupstore"`

		// Image A category used for reporting content
		Image ReportCategory `json:"image"`

		// Sticker A category used for reporting content
		Sticker ReportCategory `json:"sticker,omitempty"`

		// Text A category used for reporting content
		Text ReportCategory `json:"text"`

		// Warnings A category used for reporting content
		Warnings ReportCategory `json:"warnings"`

		// Worldimage A category used for reporting content
		Worldimage ReportCategory `json:"worldimage"`

		// Worldstore A category used for reporting content
		Worldstore ReportCategory `json:"worldstore"`
	} `json:"reportCategories"`

	// ReportFormUrl URL to the report form
	ReportFormUrl string `json:"reportFormUrl"`

	// ReportOptions Options for reporting content
	ReportOptions any `json:"reportOptions"`

	ReportReasons struct {
		// Billing A reason used for reporting users
		Billing ReportReason `json:"billing"`

		// Botting A reason used for reporting users
		Botting ReportReason `json:"botting"`

		// Cancellation A reason used for reporting users
		Cancellation ReportReason `json:"cancellation"`

		// Gore A reason used for reporting users
		Gore ReportReason `json:"gore"`

		// Hacking A reason used for reporting users
		Hacking ReportReason `json:"hacking"`

		// Harassing A reason used for reporting users
		Harassing ReportReason `json:"harassing"`

		// Hateful A reason used for reporting users
		Hateful ReportReason `json:"hateful"`

		// Impersonation A reason used for reporting users
		Impersonation ReportReason `json:"impersonation"`

		// Inappropriate A reason used for reporting users
		Inappropriate ReportReason `json:"inappropriate"`

		// Leaking A reason used for reporting users
		Leaking ReportReason `json:"leaking"`

		// Malicious A reason used for reporting users
		Malicious ReportReason `json:"malicious"`

		// Missing A reason used for reporting users
		Missing ReportReason `json:"missing"`

		// Nudity A reason used for reporting users
		Nudity ReportReason `json:"nudity"`

		// Renewal A reason used for reporting users
		Renewal ReportReason `json:"renewal"`

		// Security A reason used for reporting users
		Security ReportReason `json:"security"`

		// Service A reason used for reporting users
		Service ReportReason `json:"service"`

		// Sexual A reason used for reporting users
		Sexual ReportReason `json:"sexual"`

		// Threatening A reason used for reporting users
		Threatening ReportReason `json:"threatening"`

		// Visuals A reason used for reporting users
		Visuals ReportReason `json:"visuals"`
	} `json:"reportReasons"`

	// 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"`

	// SupportFormUrl VRChat's support form
	SupportFormUrl string `json:"supportFormUrl"`

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

	// Timekeeping Unknown
	Timekeeping bool `json:"timekeeping"`

	// 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"`

	// WebsocketMaxFriendsRefreshDelay Unknown
	WebsocketMaxFriendsRefreshDelay int64 `json:"websocketMaxFriendsRefreshDelay"`

	// WebsocketQuickReconnectTime Unknown
	WebsocketQuickReconnectTime int64 `json:"websocketQuickReconnectTime"`

	// WebsocketReconnectMaxDelay Unknown
	WebsocketReconnectMaxDelay int64 `json:"websocketReconnectMaxDelay"`

	// 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 ApiConfigConstants

type ApiConfigConstants struct {
	Groups struct {
		// Capacity Maximum group capacity
		Capacity int64 `json:"CAPACITY,omitempty"`

		// GroupTransferRequirements Requirements for transferring group ownership
		GroupTransferRequirements []string `json:"GROUP_TRANSFER_REQUIREMENTS,omitempty"`

		// MaxInvitesRequests Maximum number of invite requests
		MaxInvitesRequests int64 `json:"MAX_INVITES_REQUESTS,omitempty"`

		// MaxJoined Maximum number of joined groups
		MaxJoined int64 `json:"MAX_JOINED,omitempty"`

		// MaxJoinedPlus Maximum number of joined groups for VRChat Plus members
		MaxJoinedPlus int64 `json:"MAX_JOINED_PLUS,omitempty"`

		// MaxLanguages Maximum number of supported languages
		MaxLanguages int64 `json:"MAX_LANGUAGES,omitempty"`

		// MaxLinks Maximum number of group links
		MaxLinks int64 `json:"MAX_LINKS,omitempty"`

		// MaxManagementRoles Maximum number of management roles in a group
		MaxManagementRoles int64 `json:"MAX_MANAGEMENT_ROLES,omitempty"`

		// MaxOwned Maximum number of groups a user can own
		MaxOwned int64 `json:"MAX_OWNED,omitempty"`

		// MaxRoles Maximum number of roles in a group
		MaxRoles int64 `json:"MAX_ROLES,omitempty"`
	} `json:"GROUPS"`

	Instance struct {
		PopulationBrackets struct {
			Crowded struct {
				// Max Maximum population for a crowded instance
				Max int64 `json:"max,omitempty"`

				// Min Minimum population for a crowded instance
				Min int64 `json:"min,omitempty"`
			} `json:"CROWDED,omitempty"`

			Few struct {
				// Max Maximum population for a few instance
				Max int64 `json:"max,omitempty"`

				// Min Minimum population for a few instance
				Min int64 `json:"min,omitempty"`
			} `json:"FEW,omitempty"`

			Many struct {
				// Max Maximum population for a many instance
				Max int64 `json:"max,omitempty"`

				// Min Minimum population for a many instance
				Min int64 `json:"min,omitempty"`
			} `json:"MANY,omitempty"`
		} `json:"POPULATION_BRACKETS,omitempty"`
	} `json:"INSTANCE"`

	Language struct {
		// SpokenLanguageOptions Supported spoken language options
		SpokenLanguageOptions any `json:"SPOKEN_LANGUAGE_OPTIONS,omitempty"`
	} `json:"LANGUAGE"`
}

ApiConfigConstants Constants

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"`

	Styles struct {
		Primary       string   `json:"primary,omitempty"`
		Secondary     string   `json:"secondary,omitempty"`
		Supplementary []string `json:"supplementary,omitempty"`
	} `json:"styles"`

	// 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 Balance added in v0.1.9

type Balance struct {
	Balance        int64 `json:"balance"`
	NoTransactions bool  `json:"noTransactions,omitempty"`
	TiliaResponse  bool  `json:"tiliaResponse,omitempty"`
}

type BalanceResponse added in v0.1.9

type BalanceResponse Balance

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, UserAgent string) *Client

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 string) (string, error)

Authenticate authenticates the client with the VRChat API using the username and password.

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) 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) 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) GetBalance added in v0.1.9

func (c *Client) GetBalance(params GetBalanceParams) (*BalanceResponse, error)

func (*Client) GetConfig

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

func (*Client) GetCookies added in v0.1.3

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) GetFavoriteLimits added in v0.1.9

func (c *Client) GetFavoriteLimits() (*FavoriteLimitsResponse, error)

func (*Client) GetFavoritedAvatars

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

func (*Client) GetFavoritedWorlds

func (c *Client) GetFavoritedWorlds(params GetFavoritedWorldsParams) (*FavoritedWorldListResponse, 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) GetFileAnalysis added in v0.1.9

func (c *Client) GetFileAnalysis(params GetFileAnalysisParams) (*FileAnalysisResponse, error)

func (*Client) GetFileAnalysisSecurity added in v0.1.9

func (c *Client) GetFileAnalysisSecurity(params GetFileAnalysisSecurityParams) (*FileAnalysisResponse, error)

func (*Client) GetFileAnalysisStandard added in v0.1.9

func (c *Client) GetFileAnalysisStandard(params GetFileAnalysisStandardParams) (*FileAnalysisResponse, 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) (*InstanceResponse, 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) GetJam

func (c *Client) GetJam(params GetJamParams) (*JamResponse, error)

func (*Client) GetJamSubmissions

func (c *Client) GetJamSubmissions(params GetJamSubmissionsParams) (*SubmissionListResponse, error)

func (*Client) GetJams

func (c *Client) GetJams() (*JamListResponse, error)

func (*Client) GetJavaScript

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

func (*Client) GetLicenseGroup

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

func (*Client) GetNotification

func (c *Client) GetNotification(params GetNotificationParams) (*NotificationResponse, 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) GetPlayerModerations

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

func (*Client) GetProductListing added in v0.1.9

func (c *Client) GetProductListing(params GetProductListingParams) (*ProductListingResponse, error)

func (*Client) GetProductListings added in v0.1.9

func (c *Client) GetProductListings(params GetProductListingsParams) (*ProductListingListResponse, 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) GetTiliaStatus added in v0.1.9

func (c *Client) GetTiliaStatus() (*TiliaStatusResponse, error)

func (*Client) GetTiliaTos added in v0.1.9

func (c *Client) GetTiliaTos(params GetTiliaTosParams) (*TiliaTosResponse, error)

func (*Client) GetTokenBundles added in v0.1.9

func (c *Client) GetTokenBundles() (*TokenBundleListResponse, error)

func (*Client) GetUser

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

func (*Client) GetUserByName

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

func (*Client) GetUserFeedback added in v0.1.9

func (c *Client) GetUserFeedback(params GetUserFeedbackParams) (*FeedbackListResponse, error)

func (*Client) GetUserGroupInstances added in v0.1.9

func (c *Client) GetUserGroupInstances(params GetUserGroupInstancesParams) (*UserGroupInstanceListResponse, error)

func (*Client) GetUserGroupRequests

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

func (*Client) GetUserGroups

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

func (*Client) GetUserNote added in v0.1.9

func (c *Client) GetUserNote(params GetUserNoteParams) (*UserNoteResponse, error)

func (*Client) GetUserNotes added in v0.1.9

func (c *Client) GetUserNotes(params GetUserNotesParams) (*UserNoteListResponse, 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) 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) SetCookie added in v0.1.3

func (c *Client) SetCookie(cookie *http.Cookie)

func (*Client) StartFileDataUpload

func (c *Client) StartFileDataUpload(params StartFileDataUploadParams) (*FileUploadUrlResponse, 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(userId UpdateUserParams, params UpdateUserRequest) (*CurrentUserResponse, error)

func (*Client) UpdateUserNote added in v0.1.9

func (c *Client) UpdateUserNote() (*UserNoteResponse, 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) VerifyEmailOTP added in v0.1.5

func (c *Client) VerifyEmailOTP(username, password, totp string) (string, error)

VerifyEmailOTP authenticates the client with the VRChat API using the email OTP code.

func (*Client) VerifyRecoveryCode

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

func (*Client) VerifyRecoveryOTP added in v0.1.5

func (c *Client) VerifyRecoveryOTP(username, password, totp string) (string, error)

VerifyRecoveryOTP authenticates the client with the VRChat API using the email recovery OTP code.

func (*Client) VerifyTOTP added in v0.1.5

func (c *Client) VerifyTOTP(username, password, totp string) (string, error)

VerifyTOTP authenticates the client with the VRChat API using the TOTP code.

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         int64  `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      int64  `json:"fileSizeInBytes,omitempty"`
	SignatureMd5         string `json:"signatureMd5"`
	SignatureSizeInBytes int64  `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      GroupPermissions `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"`
	AgeVerificationStatus AgeVerificationStatus `json:"ageVerificationStatus"`
	AgeVerified           bool                  `json:"ageVerified"`
	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"`
	IsAdult          bool      `json:"isAdult"`
	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"`
	QueuedInstance              string              `json:"queuedInstance,omitempty"`
	ReceiveMobileInvitations    bool                `json:"receiveMobileInvitations,omitempty"`

	// 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"`
	CurrentAvatarTags string    `json:"currentAvatarTags,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"`
	UserIcon         string  `json:"userIcon,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 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 FavoriteGroupLimits added in v0.1.9

type FavoriteGroupLimits struct {
	Avatar int64 `json:"avatar"`
	Friend int64 `json:"friend"`
	World  int64 `json:"world"`
}

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 FavoriteLimits added in v0.1.9

type FavoriteLimits struct {
	DefaultMaxFavoriteGroups    int64               `json:"defaultMaxFavoriteGroups"`
	DefaultMaxFavoritesPerGroup int64               `json:"defaultMaxFavoritesPerGroup"`
	MaxFavoriteGroups           FavoriteGroupLimits `json:"maxFavoriteGroups"`
	MaxFavoritesPerGroup        FavoriteGroupLimits `json:"maxFavoritesPerGroup"`
}

type FavoriteLimitsResponse added in v0.1.9

type FavoriteLimitsResponse FavoriteLimits

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 FavoritedWorld

type FavoritedWorld 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"`
	FavoriteGroup string     `json:"favoriteGroup"`
	FavoriteId    FavoriteId `json:"favoriteId"`
	Favorites     int64      `json:"favorites"`
	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"`
	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 []UnityPackage `json:"unityPackages"`
	UpdatedAt     time.Time      `json:"updated_at"`
	UrlList       []string       `json:"urlList"`
	Version       int64          `json:"version"`
	Visits        int64          `json:"visits,omitempty"`
}

type FavoritedWorldListResponse

type FavoritedWorldListResponse []FavoritedWorld

type FeaturedSetNotAdminError

type FeaturedSetNotAdminError Error

type Feedback added in v0.1.9

type Feedback struct {
	// CommenterId 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.
	CommenterId   UserId `json:"commenterId"`
	CommenterName string `json:"commenterName"`

	// ContentAuthorId 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.
	ContentAuthorId   UserId     `json:"contentAuthorId"`
	ContentAuthorName string     `json:"contentAuthorName"`
	ContentId         string     `json:"contentId"`
	ContentName       string     `json:"contentName,omitempty"`
	ContentType       string     `json:"contentType"`
	ContentVersion    int64      `json:"contentVersion"`
	Description       string     `json:"description,omitempty"`
	Id                FeedbackId `json:"id"`
	Reason            string     `json:"reason"`
	Tags              []Tag      `json:"tags"`
	Type              string     `json:"type"`
}

type FeedbackId added in v0.1.9

type FeedbackId string

type FeedbackListResponse added in v0.1.9

type FeedbackListResponse []Feedback

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 FileAnalysis added in v0.1.9

type FileAnalysis struct {
	AvatarStats      FileAnalysisAvatarStats `json:"avatarStats"`
	CreatedAt        time.Time               `json:"created_at,omitempty"`
	FileSize         int64                   `json:"fileSize"`
	Success          bool                    `json:"success"`
	UncompressedSize int64                   `json:"uncompressedSize"`
}

type FileAnalysisAvatarStats added in v0.1.9

type FileAnalysisAvatarStats struct {
	AnimatorCount               int64     `json:"animatorCount"`
	AudioSourceCount            int64     `json:"audioSourceCount"`
	BlendShapeCount             int64     `json:"blendShapeCount"`
	BoneCount                   int64     `json:"boneCount"`
	Bounds                      []float64 `json:"bounds"`
	CameraCount                 int64     `json:"cameraCount,omitempty"`
	ClothCount                  int64     `json:"clothCount"`
	ConstraintCount             int64     `json:"constraintCount"`
	ContactCount                int64     `json:"contactCount"`
	CustomExpressions           bool      `json:"customExpressions"`
	CustomizeAnimationLayers    bool      `json:"customizeAnimationLayers"`
	EnableEyeLook               bool      `json:"enableEyeLook"`
	LightCount                  int64     `json:"lightCount"`
	LineRendererCount           int64     `json:"lineRendererCount"`
	LipSync                     int64     `json:"lipSync"`
	MaterialCount               int64     `json:"materialCount"`
	MaterialSlotsUsed           int64     `json:"materialSlotsUsed"`
	MeshCount                   int64     `json:"meshCount"`
	MeshIndices                 int64     `json:"meshIndices"`
	MeshParticleMaxPolygons     int64     `json:"meshParticleMaxPolygons"`
	MeshPolygons                int64     `json:"meshPolygons"`
	MeshVertices                int64     `json:"meshVertices"`
	ParticleCollisionEnabled    bool      `json:"particleCollisionEnabled"`
	ParticleSystemCount         int64     `json:"particleSystemCount"`
	ParticleTrailsEnabled       bool      `json:"particleTrailsEnabled"`
	PhysBoneColliderCount       int64     `json:"physBoneColliderCount"`
	PhysBoneCollisionCheckCount int64     `json:"physBoneCollisionCheckCount"`
	PhysBoneComponentCount      int64     `json:"physBoneComponentCount"`
	PhysBoneTransformCount      int64     `json:"physBoneTransformCount"`
	PhysicsColliders            int64     `json:"physicsColliders"`
	PhysicsRigidbodies          int64     `json:"physicsRigidbodies"`
	SkinnedMeshCount            int64     `json:"skinnedMeshCount"`
	SkinnedMeshIndices          int64     `json:"skinnedMeshIndices"`
	SkinnedMeshPolygons         int64     `json:"skinnedMeshPolygons"`
	SkinnedMeshVertices         int64     `json:"skinnedMeshVertices"`
	TotalClothVertices          int64     `json:"totalClothVertices"`
	TotalIndices                int64     `json:"totalIndices"`
	TotalMaxParticles           int64     `json:"totalMaxParticles"`
	TotalPolygons               int64     `json:"totalPolygons"`
	TotalTextureUsage           int64     `json:"totalTextureUsage"`
	TotalVertices               int64     `json:"totalVertices"`
	TrailRendererCount          int64     `json:"trailRendererCount"`
	WriteDefaultsUsed           bool      `json:"writeDefaultsUsed"`
}

type FileAnalysisResponse added in v0.1.9

type FileAnalysisResponse FileAnalysis

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       int64  `json:"maxParts"`
	NextPartNumber int64  `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 GetBalanceParams added in v0.1.9

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

GetBalanceParams represents the parameters for the GetBalance 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 GetFileAnalysisParams added in v0.1.9

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

GetFileAnalysisParams represents the parameters for the GetFileAnalysis request

type GetFileAnalysisSecurityParams added in v0.1.9

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

GetFileAnalysisSecurityParams represents the parameters for the GetFileAnalysisSecurity request

type GetFileAnalysisStandardParams added in v0.1.9

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

GetFileAnalysisStandardParams represents the parameters for the GetFileAnalysisStandard 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"`
	RoleId  GroupRoleId     `json:"roleId"`
}

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 GetJamParams

type GetJamParams struct {
	JamId string `json:"jamId"`
}

GetJamParams represents the parameters for the GetJam request

type GetJamSubmissionsParams

type GetJamSubmissionsParams struct {
	JamId string `json:"jamId"`
}

GetJamSubmissionsParams represents the parameters for the GetJamSubmissions 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 GetNotificationParams

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

GetNotificationParams represents the parameters for the GetNotification 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 GetProductListingParams added in v0.1.9

type GetProductListingParams struct {
	ProductId string `json:"productId"`
	Hydrate   bool   `json:"hydrate"`
}

GetProductListingParams represents the parameters for the GetProductListing request

type GetProductListingsParams added in v0.1.9

type GetProductListingsParams struct {
	UserId  string `json:"userId"`
	N       int64  `json:"n"`
	Offset  int64  `json:"offset"`
	Hydrate bool   `json:"hydrate"`
	GroupId string `json:"groupId"`
	Active  bool   `json:"active"`
}

GetProductListingsParams represents the parameters for the GetProductListings 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 GetTiliaTosParams added in v0.1.9

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

GetTiliaTosParams represents the parameters for the GetTiliaTos request

type GetUserFeedbackParams added in v0.1.9

type GetUserFeedbackParams struct {
	UserId    string `json:"userId"`
	ContentId bool   `json:"contentId"`
	N         int64  `json:"n"`
	Offset    int64  `json:"offset"`
}

GetUserFeedbackParams represents the parameters for the GetUserFeedback request

type GetUserGroupInstancesParams added in v0.1.9

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

GetUserGroupInstancesParams represents the parameters for the GetUserGroupInstances 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"`
}

type GetUserNoteParams added in v0.1.9

type GetUserNoteParams struct {
	UserNoteId string `json:"userNoteId"`
}

GetUserNoteParams represents the parameters for the GetUserNote request

type GetUserNotesParams added in v0.1.9

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

GetUserNotesParams represents the parameters for the GetUserNotes request

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 {
	AgeVerificationBetaCode       string             `json:"ageVerificationBetaCode,omitempty"`
	AgeVerificationBetaSlots      float64            `json:"ageVerificationBetaSlots,omitempty"`
	AgeVerificationSlotsAvailable bool               `json:"ageVerificationSlotsAvailable,omitempty"`
	Badges                        []string           `json:"badges,omitempty"`
	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 {
	AcceptedByDisplayName string `json:"acceptedByDisplayName,omitempty"`
	AcceptedById          string `json:"acceptedById,omitempty"`

	// 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                string           `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                 GroupPermissions `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 GroupPermissions added in v0.1.9

type GroupPermissions []string

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       GroupPermissions `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"`
	AgeGate          bool  `json:"ageGate,omitempty"`
	CanRequestInvite bool  `json:"canRequestInvite"`
	Capacity         int64 `json:"capacity"`

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

	// 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"`
	GameServerVersion int64  `json:"gameServerVersion"`

	// 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"`
	InstancePersistenceEnabled string     `json:"instancePersistenceEnabled"`

	// 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"`
	PlayerPersistenceEnabled bool              `json:"playerPersistenceEnabled"`

	// 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"`
	Ios               int64 `json:"ios,omitempty"`
	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 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 Jam

type Jam struct {
	Description string `json:"description"`
	Id          string `json:"id"`
	IsVisible   bool   `json:"isVisible"`
	MoreInfo    string `json:"moreInfo"`

	// State One of:
	// - submissions_open
	// - closed
	State string `json:"state"`

	StateChangeDates struct {
		Closed            time.Time `json:"closed,omitempty"`
		SubmissionsClosed time.Time `json:"submissionsClosed,omitempty"`
		SubmissionsOpened time.Time `json:"submissionsOpened,omitempty"`
		WinnersSelected   time.Time `json:"winnersSelected,omitempty"`
	} `json:"stateChangeDates"`
	SubmissionContentGateDate time.Time `json:"submissionContentGateDate"`
	SubmissionContentGated    bool      `json:"submissionContentGated"`
	Title                     string    `json:"title"`
	UpdatedAt                 time.Time `json:"updated_at"`
}

type JamListResponse

type JamListResponse []Jam

type JamNotFoundError

type JamNotFoundError Error

type JamResponse

type JamResponse Jam

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 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"`
	LastLogin time.Time `json:"last_login,omitempty"`

	// 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 NotificationNotFoundError

type NotificationNotFoundError Error

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 PerformanceLimiterInfo

type PerformanceLimiterInfo struct {
	Allowed bool `json:"allowed"`

	// MaxSeats Maximum amount of seats. -1 means no limit.
	MaxSeats int64 `json:"maxSeats"`
}

PerformanceLimiterInfo Info about the performance limits on a platform

type PerformanceRatings

type PerformanceRatings string

PerformanceRatings Avatar Performance ratings.

const (
	PerformanceRatingsNone      PerformanceRatings = "None"
	PerformanceRatingsExcellent PerformanceRatings = "Excellent"
	PerformanceRatingsGood      PerformanceRatings = "Good"
	PerformanceRatingsMedium    PerformanceRatings = "Medium"
	PerformanceRatingsPoor      PerformanceRatings = "Poor"
	PerformanceRatingsVeryPoor  PerformanceRatings = "VeryPoor"
)

type Permission

type Permission struct {
	Data             any          `json:"data,omitempty"`
	Description      string       `json:"description,omitempty"`
	DisplayName      string       `json:"displayName,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    string `json:"type,omitempty"`
}

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 PlatformBuildInfo

type PlatformBuildInfo struct {
	// MinBuildNumber Minimum build number required for the platform
	MinBuildNumber int64 `json:"minBuildNumber"`

	// RedirectionAddress Redirection URL for updating the app
	RedirectionAddress string `json:"redirectionAddress"`
}

PlatformBuildInfo Build information for a platform

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 PlayerModerationId

type PlayerModerationId string

type PlayerModerationListResponse

type PlayerModerationListResponse []PlayerModeration

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 Product added in v0.1.9

type Product struct {
	Archived             bool        `json:"archived"`
	Created              time.Time   `json:"created"`
	Description          string      `json:"description"`
	DisplayName          string      `json:"displayName"`
	GroupAccess          bool        `json:"groupAccess,omitempty"`
	GroupAccessRemove    bool        `json:"groupAccessRemove,omitempty"`
	GroupId              GroupId     `json:"groupId,omitempty"`
	GroupRoleId          GroupRoleId `json:"groupRoleId,omitempty"`
	Id                   ProductId   `json:"id"`
	ImageId              FileId      `json:"imageId"`
	ParentListings       []ProductId `json:"parentListings"`
	ProductType          ProductType `json:"productType"`
	SellerDisplayName    string      `json:"sellerDisplayName"`
	SellerId             string      `json:"sellerId"`
	Tags                 []Tag       `json:"tags"`
	Updated              time.Time   `json:"updated"`
	UseForSubscriberList bool        `json:"useForSubscriberList,omitempty"`
}

type ProductId added in v0.1.9

type ProductId string

type ProductListing added in v0.1.9

type ProductListing struct {
	Active            bool                    `json:"active"`
	Archived          bool                    `json:"archived"`
	BuyerRefundable   bool                    `json:"buyerRefundable"`
	Created           time.Time               `json:"created"`
	Description       string                  `json:"description"`
	DisplayName       string                  `json:"displayName"`
	Duration          int64                   `json:"duration,omitempty"`
	DurationType      string                  `json:"durationType,omitempty"`
	GroupIcon         FileId                  `json:"groupIcon"`
	GroupId           GroupId                 `json:"groupId"`
	GroupName         string                  `json:"groupName"`
	HydratedProducts  []Product               `json:"hydratedProducts,omitempty"`
	Id                ProductId               `json:"id"`
	ImageId           FileId                  `json:"imageId"`
	Instant           bool                    `json:"instant"`
	ListingType       ProductListingType      `json:"listingType"`
	ListingVariants   []ProductListingVariant `json:"listingVariants"`
	Permanent         bool                    `json:"permanent"`
	PriceTokens       int64                   `json:"priceTokens"`
	ProductIds        []ProductId             `json:"productIds"`
	ProductType       ProductType             `json:"productType"`
	Products          []any                   `json:"products"`
	Quantifiable      bool                    `json:"quantifiable,omitempty"`
	Recurrable        bool                    `json:"recurrable"`
	Refundable        bool                    `json:"refundable"`
	SellerDisplayName string                  `json:"sellerDisplayName"`
	SellerId          string                  `json:"sellerId"`
	Stackable         bool                    `json:"stackable"`
	StoreIds          []string                `json:"storeIds"`
	Tags              []Tag                   `json:"tags"`
	Updated           time.Time               `json:"updated"`
}

type ProductListingListResponse added in v0.1.9

type ProductListingListResponse []ProductListing

type ProductListingResponse added in v0.1.9

type ProductListingResponse ProductListing

type ProductListingType added in v0.1.9

type ProductListingType string
const (
	ProductListingTypeSubscription ProductListingType = "subscription"
)

type ProductListingVariant added in v0.1.9

type ProductListingVariant struct {
	EffectiveFrom    time.Time               `json:"effectiveFrom,omitempty"`
	ListingVariantId ProductListingVariantId `json:"listingVariantId"`
	NonRefundable    bool                    `json:"nonRefundable"`
	Quantity         int64                   `json:"quantity"`
	SellerVariant    bool                    `json:"sellerVariant"`
	UnitPriceTokens  int64                   `json:"unitPriceTokens"`
}

type ProductListingVariantId added in v0.1.9

type ProductListingVariantId string

type ProductType added in v0.1.9

type ProductType string
const (
	ProductTypeListing ProductType = "listing"
	ProductTypeRole    ProductType = "role"
	ProductTypeUdon    ProductType = "udon"
)

type PublishWorldParams

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

PublishWorldParams represents the parameters for the PublishWorld request

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"
	RegionUsx     Region = "usx"
	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 ReportCategory

type ReportCategory struct {
	// Text The label of the report category
	Text string `json:"text"`

	// Tooltip The tooltip that describes the category
	Tooltip string `json:"tooltip"`
}

ReportCategory A category used for reporting content

type ReportReason

type ReportReason struct {
	// Text The label or name of the report reason
	Text string `json:"text"`

	// Tooltip A brief explanation of what this reason entails
	Tooltip string `json:"tooltip"`
}

ReportReason A reason used for reporting users

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"`
}

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 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 Submission

type Submission struct {
	// ContentId Either world ID or avatar ID
	ContentId   string    `json:"contentId"`
	CreatedAt   time.Time `json:"created_at"`
	Description string    `json:"description"`
	Id          string    `json:"id"`
	JamId       string    `json:"jamId"`
	RatingScore int64     `json:"ratingScore,omitempty"`

	// SubmitterId 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.
	SubmitterId UserId `json:"submitterId"`
}

type SubmissionListResponse

type SubmissionListResponse []Submission

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            int64              `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 TiliaStatus added in v0.1.9

type TiliaStatus struct {
	EconomyOnline bool `json:"economyOnline"`
}

type TiliaStatusResponse added in v0.1.9

type TiliaStatusResponse TiliaStatus

type TiliaTos added in v0.1.9

type TiliaTos struct {
	SignedTos bool `json:"signed_tos"`
}

type TiliaTosResponse added in v0.1.9

type TiliaTosResponse TiliaTos

type TokenBundle added in v0.1.9

type TokenBundle struct {
	// Amount price of the bundle
	Amount      int64  `json:"amount"`
	Description string `json:"description"`
	Id          string `json:"id"`

	// ImageUrl direct url to image
	ImageUrl    string `json:"imageUrl"`
	OculusSku   string `json:"oculusSku"`
	SteamItemId string `json:"steamItemId"`

	// Tokens number of tokens received
	Tokens int64 `json:"tokens"`
}

type TokenBundleListResponse added in v0.1.9

type TokenBundleListResponse []TokenBundle

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 int64   `json:"failedAttempts"`
	Frequency      int64   `json:"frequency"`
	ItemId         int64   `json:"itemId"`
	LastAmount     float64 `json:"lastAmount"`
	LastAmountVat  float64 `json:"lastAmountVat"`
	LastPayment    string  `json:"lastPayment"`
	NextPayment    string  `json:"nextPayment"`
	Outstanding    int64   `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"`
	ImpostorizerVersion string         `json:"impostorizerVersion,omitempty"`

	// PerformanceRating Avatar Performance ratings.
	PerformanceRating PerformanceRatings `json:"performanceRating,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"`
	WorldSignature  string   `json:"worldSignature,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         int64  `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      GroupPermissions `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 UpdateUserNoteRequest added in v0.1.9

type UpdateUserNoteRequest struct {
	Note string `json:"note"`

	// 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 UpdateUserParams

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

UpdateUserParams represents the parameters for the UpdateUser request

type UpdateUserRequest

type UpdateUserRequest struct {
	AcceptedTosVersion int64    `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 {
	AgeVerificationStatus AgeVerificationStatus `json:"ageVerificationStatus"`
	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"`
	LastMobile string `json:"last_mobile,omitempty"`

	// 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,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"`

	// 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,omitempty"`

	// 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 UserGroupInstanceListResponse added in v0.1.9

type UserGroupInstanceListResponse struct {
	FetchedAt time.Time  `json:"fetchedAt,omitempty"`
	Instances []Instance `json:"instances,omitempty"`
}

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 UserMustBeOwnError added in v0.1.9

type UserMustBeOwnError Error

type UserNote added in v0.1.9

type UserNote struct {
	CreatedAt time.Time  `json:"createdAt"`
	Id        UserNoteId `json:"id"`
	Note      string     `json:"note"`

	TargetUser struct {
		CurrentAvatarTags []Tag `json:"currentAvatarTags,omitempty"`

		// CurrentAvatarThumbnailImageUrl When profilePicOverride is not empty, use it instead.
		CurrentAvatarThumbnailImageUrl CurrentAvatarThumbnailImageUrl `json:"currentAvatarThumbnailImageUrl,omitempty"`
		DisplayName                    string                         `json:"displayName,omitempty"`
		Id                             UserNoteId                     `json:"id,omitempty"`
		ProfilePicOverride             string                         `json:"profilePicOverride,omitempty"`
		UserIcon                       string                         `json:"userIcon,omitempty"`
	} `json:"targetUser,omitempty"`

	// 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"`

	// 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 UserNoteId added in v0.1.9

type UserNoteId string

type UserNoteListResponse added in v0.1.9

type UserNoteListResponse []UserNote

type UserNoteResponse added in v0.1.9

type UserNoteResponse UserNote

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"`
	IsBulkGift    bool               `json:"isBulkGift"`
	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          int64         `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"`
	UrlList       []string       `json:"urlList,omitempty"`
	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