openblox
Version:
Roblox API Wrapper For Both Classic And OpenCloud APIs.
911 lines (910 loc) • 41.5 kB
TypeScript
import type { Identifier, ISODateTime, ObjectPrettify, UnionPrettify, ObjectKeysToCamelCase } from "typeforge";
type UrlProtocol = `http${"s" | ""}://`;
export type RawGroupInfoData<GroupId extends Identifier> = ObjectPrettify<{
id: GroupId;
name: string;
description: string;
owner: {
hasVerifiedBadge: boolean;
userId: number;
username: string;
displayName: string;
};
shout?: {
body: string;
poster: {
hasVerifiedBadge: boolean;
userId: string;
username: string;
displayName: string;
};
created: string;
updated: string;
};
memberCount: number;
isBuildersClubOnly: boolean;
publicEntryAllowed: boolean;
hasVerifiedBadge: boolean;
}>;
export type PrettifiedGroupInfoData<GroupId extends Identifier> = ObjectPrettify<Omit<RawGroupInfoData<GroupId>, "shout"> & {
shout?: {
body: string;
poster: {
hasVerifiedBadge: boolean;
userId: string;
username: string;
displayName: string;
};
created: Date;
updated: Date;
};
}>;
export type GroupAuditLogActionType = "Delete Post" | "Remove Member" | "Accept Join Request" | "Decline Join Request" | "Post Status" | "Change Rank" | "Buy Ad" | "Send Ally Request" | "Create Enemy" | "Accept Ally Request" | "Decline Ally Request" | "Delete Ally" | "Delete Enemy" | "Add Group Place" | "Remove Group Place" | "Create Items" | "Configure Items" | "Spend Group Funds" | "Change Owner" | "Delete" | "Adjust Currency Amounts" | "Abandon" | "Claim" | "Rename" | "Change Description" | "Invite To Clan" | "Kick From Clan" | "Cancel Clan Invite" | "Buy Clan" | "Create Group Asset" | "Update Group Asset" | "Configure Group Asset" | "Revert Group Asset" | "Create Group Developer Product" | "Configure Group Game" | "Create Group Developer Subscription Product" | "Lock" | "Unlock" | "Create Game Pass" | "Create Badge" | "Configure Badge" | "Save Place" | "Publish Place" | "Update Roleset Rank" | "Update Roleset Data";
type GroupAuditLogBase<ActionType extends GroupAuditLogActionType, Description extends Record<any, any>> = {
actionType: ActionType;
actor: {
user: {
hasVerifiedBadge: boolean;
userId: number;
username: string;
displayName: string;
};
role: {
id: number;
name: string;
rank: number;
};
};
description: Description;
created: string;
};
type GroupAuditLog_DeletePost = GroupAuditLogBase<"Delete Post", {
PostDec: string;
TargetId: number;
TargetName: string;
}>;
type GroupAuditLog_RemoveMember_AcceptJoinRequest_DeclineJoinRequest = GroupAuditLogBase<"Remove Member" | "Accept Join Request" | "Decline Join Request", {
TargetId: number;
TargetName: string;
}>;
type GroupAuditLog_PostStatus = GroupAuditLogBase<"Post Status", {
Text: string;
}>;
type GroupAuditLog_ChangeRank = GroupAuditLogBase<"Change Rank", {
TargetId: number;
NewRoleSetId: number;
OldRoleSetId: number;
TargetName: string;
NewRoleSetName: string;
OldRoleSetName: string;
}>;
type GroupAuditLog_BuyAd = GroupAuditLogBase<"Buy Ad", {
AdName: string;
Bid: number;
CurrencyTypeId: number;
CurrencyTypeName: string;
}>;
type GroupAuditLog_SendAllyRequest_CreateEnemy_AcceptAllyRequest_DeclineAllyRequest_DeleteAlly_DeleteEnemy = GroupAuditLogBase<"Send Ally Request" | "Create Enemy" | "Accept Ally Request" | "Decline Ally Request" | "Delete Ally" | "Delete Enemy", {
TargetGroupId: number;
TargetGroupName: string;
}>;
type GroupAuditLog_CreateItems_CreateGroupDeveloperProduct = GroupAuditLogBase<"Create Items" | "Create Group Developer Product", {
AssetId: number;
AssetName: string;
}>;
type GroupAuditLog_SpendGroupFunds = GroupAuditLogBase<"Spend Group Funds", {
Amount: number;
CurrencyTypeId: number;
ItemDescription: string;
CurrencyTypeName: string;
}>;
type GroupAuditLog_ChangeOwner = GroupAuditLogBase<"Change Owner", {
IsRoblox: boolean;
NewOwnerId: number;
NewOwnerName: string;
OldOwnerId: number;
OldOwnerName: string;
}>;
type GroupAuditLog_Abandon = GroupAuditLogBase<"Abandon", {}>;
type GroupAuditLog_Claim = GroupAuditLogBase<"Claim", {}>;
type GroupAuditLog_Rename = GroupAuditLogBase<"Rename", {
NewName: string;
}>;
type GroupAuditLog_ChangeDescription = GroupAuditLogBase<"Change Description", {
NewDescription: string;
}>;
type GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems = (GroupAuditLogBase<"Invite To Clan" | "Kick From Clan" | "Cancel Clan Invite" | "Buy Clan" | "Adjust Currency Amounts" | "Revert Group Asset" | "Create Group Developer Subscription Product" | "Lock" | "Unlock" | "Configure Badge" | "Publish Place" | "Add Group Place" | "Remove Group Place" | "Configure Items" | "Delete", {}>);
type GroupAuditLog_CreateGroupAsset_UpdateGroupAsset = GroupAuditLogBase<"Create Group Asset" | "Update Group Asset", {
AssetId: number;
AssetName: string;
VersionNumber: number;
RevertVersionNumber: number | null;
}>;
type GroupAuditLog_ConfigureGroupAsset = GroupAuditLogBase<"Configure Group Asset", {
AssetId: number;
AssetName: string;
Actions: number[] | null;
}>;
type GroupAuditLog_ConfigureGroupGame = GroupAuditLogBase<"Configure Group Game", {
Actions: number[];
Type: number;
TargetId: number;
TargetName: string;
UniverseId: number | null;
UniverseName: string;
}>;
type GroupAuditLog_CreateGamePass = GroupAuditLogBase<"Create Game Pass", {
GamePassId: number;
PlaceId: number;
GamePassName: string;
PlaceName: string;
}>;
type GroupAuditLog_CreateBadge = GroupAuditLogBase<"Create Badge", {
BadgeId: number;
BadgeName: string;
Type: null;
}>;
type GroupAuditLog_SavePlace = GroupAuditLogBase<"Save Place", {
AssetId: number;
AssetName: string;
VersionNumber: number;
}>;
type GroupAuditLog_UpdateRolesetRank = GroupAuditLogBase<"Update Roleset Rank", {
NewRank: number;
OldRank: number;
RoleSetId: number;
RoleSetName: string;
}>;
type GroupAuditLog_UpdateRolesetData = GroupAuditLogBase<"Update Roleset Data", {
NewDescription: string;
NewName: string;
OldDescription: string;
OldName: string;
RoleSetId: number;
RoleSetName: string;
}>;
type RawGroupAuditLogs_NameToType = {
"Delete Post": GroupAuditLog_DeletePost;
"Remove Member": GroupAuditLog_RemoveMember_AcceptJoinRequest_DeclineJoinRequest;
"Accept Join Request": GroupAuditLog_RemoveMember_AcceptJoinRequest_DeclineJoinRequest;
"Decline Join Request": GroupAuditLog_RemoveMember_AcceptJoinRequest_DeclineJoinRequest;
"Post Status": GroupAuditLog_PostStatus;
"Change Rank": GroupAuditLog_ChangeRank;
"Buy Ad": GroupAuditLog_BuyAd;
"Send Ally Request": GroupAuditLog_SendAllyRequest_CreateEnemy_AcceptAllyRequest_DeclineAllyRequest_DeleteAlly_DeleteEnemy;
"Create Enemy": GroupAuditLog_SendAllyRequest_CreateEnemy_AcceptAllyRequest_DeclineAllyRequest_DeleteAlly_DeleteEnemy;
"Accept Ally Request": GroupAuditLog_SendAllyRequest_CreateEnemy_AcceptAllyRequest_DeclineAllyRequest_DeleteAlly_DeleteEnemy;
"Decline Ally Request": GroupAuditLog_SendAllyRequest_CreateEnemy_AcceptAllyRequest_DeclineAllyRequest_DeleteAlly_DeleteEnemy;
"Delete Ally": GroupAuditLog_SendAllyRequest_CreateEnemy_AcceptAllyRequest_DeclineAllyRequest_DeleteAlly_DeleteEnemy;
"Delete Enemy": GroupAuditLog_SendAllyRequest_CreateEnemy_AcceptAllyRequest_DeclineAllyRequest_DeleteAlly_DeleteEnemy;
"Add Group Place": GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems;
"Remove Group Place": GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems;
"Create Items": GroupAuditLog_CreateItems_CreateGroupDeveloperProduct;
"Configure Items": GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems;
"Spend Group Funds": GroupAuditLog_SpendGroupFunds;
"Change Owner": GroupAuditLog_ChangeOwner;
"Delete": GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems;
"Adjust Currency Amounts": GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems;
"Abandon": GroupAuditLog_Abandon;
"Claim": GroupAuditLog_Claim;
"Rename": GroupAuditLog_Rename;
"Change Description": GroupAuditLog_ChangeDescription;
"Invite To Clan": GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems;
"Kick From Clan": GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems;
"Cancel Clan Invite": GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems;
"Buy Clan": GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems;
"Create Group Asset": GroupAuditLog_CreateGroupAsset_UpdateGroupAsset;
"Update Group Asset": GroupAuditLog_CreateGroupAsset_UpdateGroupAsset;
"Configure Group Asset": GroupAuditLog_ConfigureGroupAsset;
"Revert Group Asset": GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems;
"Create Group Developer Product": GroupAuditLog_CreateItems_CreateGroupDeveloperProduct;
"Configure Group Game": GroupAuditLog_ConfigureGroupGame;
"Create Group Developer Subscription Product": GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems;
"Lock": GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems;
"Unlock": GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems;
"Create Game Pass": GroupAuditLog_CreateGamePass;
"Create Badge": GroupAuditLog_CreateBadge;
"Configure Badge": GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems;
"Save Place": GroupAuditLog_SavePlace;
"Publish Place": GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems;
"Update Roleset Rank": GroupAuditLog_UpdateRolesetRank;
"Update Roleset Data": GroupAuditLog_UpdateRolesetData;
};
type PrettifiedGroupAuditLogs_NameToType = {
"Delete Post": ObjectKeysToCamelCase<GroupAuditLog_DeletePost>;
"Remove Member": ObjectKeysToCamelCase<GroupAuditLog_RemoveMember_AcceptJoinRequest_DeclineJoinRequest>;
"Accept Join Request": ObjectKeysToCamelCase<GroupAuditLog_RemoveMember_AcceptJoinRequest_DeclineJoinRequest>;
"Decline Join Request": ObjectKeysToCamelCase<GroupAuditLog_RemoveMember_AcceptJoinRequest_DeclineJoinRequest>;
"Post Status": ObjectKeysToCamelCase<GroupAuditLog_PostStatus>;
"Change Rank": ObjectKeysToCamelCase<GroupAuditLog_ChangeRank>;
"Buy Ad": ObjectKeysToCamelCase<GroupAuditLog_BuyAd>;
"Send Ally Request": ObjectKeysToCamelCase<GroupAuditLog_SendAllyRequest_CreateEnemy_AcceptAllyRequest_DeclineAllyRequest_DeleteAlly_DeleteEnemy>;
"Create Enemy": ObjectKeysToCamelCase<GroupAuditLog_SendAllyRequest_CreateEnemy_AcceptAllyRequest_DeclineAllyRequest_DeleteAlly_DeleteEnemy>;
"Accept Ally Request": ObjectKeysToCamelCase<GroupAuditLog_SendAllyRequest_CreateEnemy_AcceptAllyRequest_DeclineAllyRequest_DeleteAlly_DeleteEnemy>;
"Decline Ally Request": ObjectKeysToCamelCase<GroupAuditLog_SendAllyRequest_CreateEnemy_AcceptAllyRequest_DeclineAllyRequest_DeleteAlly_DeleteEnemy>;
"Delete Ally": ObjectKeysToCamelCase<GroupAuditLog_SendAllyRequest_CreateEnemy_AcceptAllyRequest_DeclineAllyRequest_DeleteAlly_DeleteEnemy>;
"Delete Enemy": ObjectKeysToCamelCase<GroupAuditLog_SendAllyRequest_CreateEnemy_AcceptAllyRequest_DeclineAllyRequest_DeleteAlly_DeleteEnemy>;
"Add Group Place": ObjectKeysToCamelCase<GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems>;
"Remove Group Place": ObjectKeysToCamelCase<GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems>;
"Create Items": ObjectKeysToCamelCase<GroupAuditLog_CreateItems_CreateGroupDeveloperProduct>;
"Configure Items": ObjectKeysToCamelCase<GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems>;
"Spend Group Funds": ObjectKeysToCamelCase<GroupAuditLog_SpendGroupFunds>;
"Change Owner": ObjectKeysToCamelCase<GroupAuditLog_ChangeOwner>;
"Delete": ObjectKeysToCamelCase<GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems>;
"Adjust Currency Amounts": ObjectKeysToCamelCase<GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems>;
"Abandon": ObjectKeysToCamelCase<GroupAuditLog_Abandon>;
"Claim": ObjectKeysToCamelCase<GroupAuditLog_Claim>;
"Rename": ObjectKeysToCamelCase<GroupAuditLog_Rename>;
"Change Description": ObjectKeysToCamelCase<GroupAuditLog_ChangeDescription>;
"Invite To Clan": ObjectKeysToCamelCase<GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems>;
"Kick From Clan": ObjectKeysToCamelCase<GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems>;
"Cancel Clan Invite": ObjectKeysToCamelCase<GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems>;
"Buy Clan": ObjectKeysToCamelCase<GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems>;
"Create Group Asset": ObjectKeysToCamelCase<GroupAuditLog_CreateGroupAsset_UpdateGroupAsset>;
"Update Group Asset": ObjectKeysToCamelCase<GroupAuditLog_CreateGroupAsset_UpdateGroupAsset>;
"Configure Group Asset": ObjectKeysToCamelCase<GroupAuditLog_ConfigureGroupAsset>;
"Revert Group Asset": ObjectKeysToCamelCase<GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems>;
"Create Group Developer Product": ObjectKeysToCamelCase<GroupAuditLog_CreateItems_CreateGroupDeveloperProduct>;
"Configure Group Game": ObjectKeysToCamelCase<GroupAuditLog_ConfigureGroupGame>;
"Create Group Developer Subscription Product": ObjectKeysToCamelCase<GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems>;
"Lock": ObjectKeysToCamelCase<GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems>;
"Unlock": ObjectKeysToCamelCase<GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems>;
"Create Game Pass": ObjectKeysToCamelCase<GroupAuditLog_CreateGamePass>;
"Create Badge": ObjectKeysToCamelCase<GroupAuditLog_CreateBadge>;
"Configure Badge": ObjectKeysToCamelCase<GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems>;
"Save Place": ObjectKeysToCamelCase<GroupAuditLog_SavePlace>;
"Publish Place": ObjectKeysToCamelCase<GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems>;
"Update Roleset Rank": ObjectKeysToCamelCase<GroupAuditLog_UpdateRolesetRank>;
"Update Roleset Data": ObjectKeysToCamelCase<GroupAuditLog_UpdateRolesetData>;
};
type AllGroupAuditLogs = GroupAuditLog_DeletePost | GroupAuditLog_RemoveMember_AcceptJoinRequest_DeclineJoinRequest | GroupAuditLog_PostStatus | GroupAuditLog_ChangeRank | GroupAuditLog_BuyAd | GroupAuditLog_SpendGroupFunds | GroupAuditLog_ChangeOwner | GroupAuditLog_Abandon | GroupAuditLog_Claim | GroupAuditLog_Rename | GroupAuditLog_ChangeDescription | GroupAuditLog_CreateGroupAsset_UpdateGroupAsset | GroupAuditLog_ConfigureGroupAsset | GroupAuditLog_ConfigureGroupGame | GroupAuditLog_CreateGamePass | GroupAuditLog_CreateBadge | GroupAuditLog_SavePlace | GroupAuditLog_UpdateRolesetRank | GroupAuditLog_SendAllyRequest_CreateEnemy_AcceptAllyRequest_DeclineAllyRequest_DeleteAlly_DeleteEnemy | GroupAuditLog_UpdateRolesetData | GroupAuditLog_CreateItems_CreateGroupDeveloperProduct | GroupAuditLog_InviteToClan_KickFromClan_CancelClanInvite_BuyClan_AdjustCurrencyAmounts_RevertGroupAsset_CreateGroupDeveloperSubscriptionProduct_Lock_Unlock_ConfigureBadge_PublishPlace_AddGroupPlace_RemoveGroupPlace_ConfigureItems;
type RawGroupAuditLogsData_Data<LogType extends GroupAuditLogActionType | undefined = undefined> = (LogType extends keyof RawGroupAuditLogs_NameToType ? ObjectPrettify<({
actionType: LogType;
} & Omit<RawGroupAuditLogs_NameToType[LogType], "actionType">)> : AllGroupAuditLogs);
type FormattedGroupAuditLogDatas_Data<LogType extends GroupAuditLogActionType | undefined> = (LogType extends GroupAuditLogActionType ? ObjectPrettify<({
actionType: LogType;
} & Omit<PrettifiedGroupAuditLogs_NameToType[LogType], "actionType">)> : AllGroupAuditLogs);
export type RawGroupAuditLogsData<LogType extends GroupAuditLogActionType | undefined = undefined> = ObjectPrettify<{
previousPageCursor?: string;
nextPageCursor?: string;
data: RawGroupAuditLogsData_Data<LogType>[];
}>;
export type PrettifiedGroupAuditLogsData<Type extends GroupAuditLogActionType | undefined = undefined> = (FormattedGroupAuditLogDatas_Data<Type>[]);
type GroupNameHistoryData<TemporalType> = {
name: string;
created: TemporalType;
}[];
export type RawGroupNameHistoryData = {
previousPageCursor?: string;
nextPageCursor?: string;
data: GroupNameHistoryData<ISODateTime>;
};
export type PrettifiedGroupNameHistoryData = GroupNameHistoryData<Date>;
export type GroupSettingsData = ObjectPrettify<{
isApprovalRequired: boolean;
isBuildersClubRequired: boolean;
areEnemiesAllowed: boolean;
areGroupFundsVisible: boolean;
areGroupGamesVisible: boolean;
isGroupNameChangeEnabled: boolean;
}>;
export type GroupsConfigMetadataData = ObjectPrettify<{
groupConfiguration: {
nameMaxLength: number;
descriptionMaxLength: number;
iconMaxFileSizeMb: number;
cost: number;
isUsingTwoStepWebviewComponent: boolean;
};
recurringPayoutsConfiguration: {
maxPayoutPartners: number;
};
roleConfiguration: {
nameMaxLength: number;
descriptionMaxLength: number;
limit: number;
cost: number;
minRank: number;
maxRank: number;
};
groupNameChangeConfiguration: {
cost: number;
cooldownInDays: number;
ownershipCooldownInDays: number;
};
isPremiumPayoutsEnabled: boolean;
isDefaultEmblemPolicyEnabled: boolean;
}>;
export type GroupsMetadataData = ObjectPrettify<{
groupLimit: number;
currentGroupCount: number;
groupStatusMaxLength: number;
groupPostMaxLengt: number;
isGroupWallNotificationsEnabled: boolean;
groupWallNotificationsSubscribeIntervalInMilliseconds: number;
areProfileGroupsHidden: boolean;
isGroupDetailsPolicyEnabled: boolean;
showPreviousGroupNames: boolean;
}>;
export type RawGroupPolicyInfoData<GroupId extends Identifier> = {
groups: {
canViewGroup: boolean;
groupId: GroupId;
}[];
};
export type PrettifiedGroupPolicyInfoData<GroupId extends Identifier> = {
[Id in GroupId]: {
canViewGroup: boolean;
};
};
type GroupShoutData<NewShout extends string, TemporalType> = ObjectPrettify<{
body: NewShout;
poster: {
buildersClubMembershipType: number;
hasVerifiedBadge: boolean;
userId: number;
username: string;
displayName: string;
};
created: TemporalType;
updated: TemporalType;
}>;
export type RawGroupShoutData<NewShout extends string> = GroupShoutData<NewShout, ISODateTime>;
export type PrettifiedGroupShoutData<NewShout extends string> = GroupShoutData<NewShout, Date>;
type GroupJoinRequest<UserId extends Identifier, TemporalType> = ObjectPrettify<{
requester: {
buildersClubMembershipType: number;
hasVerifiedBadge: true;
userId: UserId;
username: string;
displayName: string;
};
created: TemporalType;
}>;
export type RawGroupJoinRequests = ObjectPrettify<{
previousPageCursor?: string;
nextPageCursor?: string;
data: GroupJoinRequest<Identifier, ISODateTime>[];
}>;
export type PrettifiedGroupJoinRequests = GroupJoinRequest<Identifier, Date>[];
export type RawGroupJoinRequestForUser<UserId extends Identifier> = GroupJoinRequest<UserId, ISODateTime> | {};
export type PrettifiedGroupJoinRequestForUser<UserId extends Identifier> = GroupJoinRequest<UserId, Date> | {};
export type AuthenticatedUserGroupMembershipInfoData<GroupId extends Identifier> = ObjectPrettify<{
groupId: GroupId;
isPrimary: boolean;
isPendingJoin: boolean;
userRole: {
user: {
buildersClubMembershipType: number;
hasVerifiedBadge: boolean;
userId: number;
username: string;
displayName: string;
};
role: {
id: number;
name: string;
description: string;
rank: number;
memberCount: number;
};
};
permissions: {
groupPostsPermissions: {
viewWall: boolean;
postToWall: boolean;
deleteFromWall: boolean;
viewStatus: boolean;
postToStatus: boolean;
};
groupMembershipPermissions: {
changeRank: boolean;
inviteMembers: boolean;
removeMembers: boolean;
};
groupManagementPermissions: {
manageRelationships: boolean;
manageClan: boolean;
viewAuditLogs: boolean;
};
groupEconomyPermissions: {
spendGroupFunds: boolean;
advertiseGroup: boolean;
createItems: boolean;
manageItems: boolean;
addGroupPlaces: boolean;
manageGroupGames: boolean;
viewGroupPayouts: boolean;
viewAnalytics: boolean;
};
groupOpenCloudPermissions: {
useCloudAuthentication: boolean;
administerCloudAuthentication: boolean;
};
};
areGroupGamesVisible: boolean;
areGroupFundsVisible: boolean;
areEnemiesAllowed: boolean;
canConfigure: boolean;
}>;
export type PrettifiedAllRolesForGroupData = ObjectPrettify<{
id: number;
name: string;
description: string;
rank: number;
memberCount: number;
}[]>;
export type RawAllRolesForGroupData<GroupId extends Identifier> = ObjectPrettify<{
groupId: GroupId;
roles: PrettifiedAllRolesForGroupData;
}>;
export type PrettifiedGroupMembersWithRoleData = ObjectPrettify<{
hasVerifiedBadge: boolean;
userId: Identifier;
username: string;
displayName: string;
}>[];
export type RawGroupMembersWithRoleData = ObjectPrettify<{
previousPageCursor?: string;
nextPageCursor?: string;
data: PrettifiedGroupMembersWithRoleData;
}>;
export type PrettifiedGroupMembersData = ObjectPrettify<{
user: {
hasVerifiedBadge: boolean;
userId: number;
username: string;
displayName: string;
};
role: {
id: number;
name: string;
rank: number;
};
}>[];
export type RawGroupMembersData = ObjectPrettify<{
previousPageCursor?: string;
nextPageCursor?: string;
data: PrettifiedGroupMembersData;
}>;
type AuthenticatedUserPendingGroupsData<TemporalType> = ObjectPrettify<{
id: number;
name: string;
description: string;
owner: {
hasVerifiedBadge: boolean;
userId: number;
username: string;
displayName: string;
};
shout: {
body: string;
poster: {
hasVerifiedBadge: boolean;
userId: number;
username: string;
displayName: string;
};
created: TemporalType;
updated: TemporalType;
} | null;
isBuildersClubOnly: boolean;
publicEntryAllowed: boolean;
hasVerifiedBadge: boolean;
}>[];
export type RawAuthenticatedUserPendingGroupsData = AuthenticatedUserPendingGroupsData<ISODateTime>;
export type PrettifiedAuthenticatedUserPendingGroupsData = AuthenticatedUserPendingGroupsData<Date>;
type GroupsThatUsersFriendsAreInData<TemporalType> = ObjectPrettify<{
user: {
hasVerifiedBadge: boolean;
userId: number;
username: string;
displayName: string;
};
groups: [
{
group: {
id: number;
name: string;
description: string;
owner: {
hasVerifiedBadge: boolean;
userId: number;
username: string;
displayName: string;
};
shout: {
body: string;
poster: {
hasVerifiedBadge: boolean;
userId: number;
username: string;
displayName: string;
};
created: TemporalType;
updated: TemporalType;
} | null;
isBuildersClubOnly: boolean;
publicEntryAllowed: boolean;
hasVerifiedBadge: boolean;
};
role: {
id: number;
name: string;
rank: number;
};
}
];
}[]>;
export type RawGroupsThatUsersFriendsAreInData = ObjectPrettify<{
data: GroupsThatUsersFriendsAreInData<ISODateTime>;
}>;
export type PrettifiedGroupsThatUsersFriendsAreInData = GroupsThatUsersFriendsAreInData<Date>;
type AllGroupRolesForUserData_V1<TemporalType> = ObjectPrettify<{
group: {
id: number;
name: string;
description: string;
owner: {
hasVerifiedBadge: boolean;
userId: number;
username: string;
displayName: string;
};
shout: {
body: string;
poster: {
hasVerifiedBadge: boolean;
userId: number;
username: string;
displayName: string;
};
created: TemporalType;
updated: TemporalType;
} | null;
memberCount: number;
isBuildersClubOnly: boolean;
publicEntryAllowed: boolean;
hasVerifiedBadge: boolean;
};
role: {
id: number;
name: string;
description: string;
rank: number;
memberCount: number;
};
isPrimaryGroup: boolean;
}>[];
export type RawAllGroupRolesForUserData_V1 = ObjectPrettify<{
data: AllGroupRolesForUserData_V1<ISODateTime>;
}>;
export type FormattedAllGroupRolesForUserData_V1 = AllGroupRolesForUserData_V1<Date>;
export type GroupPayoutRestrictionsInfoData = ObjectPrettify<{
canUseRecurringPayout: boolean;
canUseOneTimePayout: boolean;
}>;
export type PrettifiedGroupPayoutsInfoData = ObjectPrettify<{
user: {
hasVerifiedBadge: boolean;
userId: number;
username: string;
displayName: string;
};
percentage: number;
}>[];
export type RawGroupPayoutsInfoData = ObjectPrettify<{
data: PrettifiedGroupPayoutsInfoData;
}>;
export type GroupRelationshipType = "Enemies" | "Allies";
type GroupRelationshipsData<GroupId extends Identifier, TimeType> = ObjectPrettify<{
groupId: GroupId;
relationshipType: GroupRelationshipType;
totalGroupCount: number;
relatedGroups: {
id: number;
name: string;
description: string;
owner: {
hasVerifiedBadge: boolean;
userId: number;
username: string;
displayName: string;
};
shout: {
body: string;
poster: {
buildersClubMembershipType: number;
hasVerifiedBadge: boolean;
userId: number;
username: string;
displayName: string;
};
created: TimeType;
updated: TimeType;
} | null;
memberCount: number;
isBuildersClubOnly: number;
publicEntryAllowed: boolean;
hasVerifiedBadge: boolean;
}[];
nextRowIndex: number;
}>;
export type RawGroupRelationshipsData<GroupId extends Identifier> = GroupRelationshipsData<GroupId, ISODateTime>;
export type PrettifiedGroupRelationshipsData<GroupId extends Identifier> = GroupRelationshipsData<GroupId, Date>;
export type GroupRolePermissionsData<GroupId extends Identifier, RoleSetId extends Identifier, Name extends string = string, Rank extends number = number> = ObjectPrettify<{
groupId: GroupId;
role: {
id: RoleSetId;
name: Name;
description: string;
rank: Rank;
};
permissions: {
groupPostsPermissions: {
viewWall: boolean;
postToWall: boolean;
deleteFromWall: boolean;
viewStatus: boolean;
postToStatus: boolean;
};
groupMembershipPermissions: {
changeRank: boolean;
inviteMembers: boolean;
removeMembers: boolean;
};
groupManagementPermissions: {
manageRelationships: boolean;
manageClan: boolean;
viewAuditLogs: boolean;
};
groupEconomyPermissions: {
spendGroupFunds: boolean;
advertiseGroup: boolean;
createItems: boolean;
manageItems: boolean;
addGroupPlaces: boolean;
manageGroupGames: boolean;
viewGroupPayouts: boolean;
viewAnalytics: boolean;
};
groupOpenCloudPermissions: {
useCloudAuthentication: boolean;
administerCloudAuthentication: boolean;
};
};
}>;
export type GroupRolePermissions = ObjectKeysToCamelCase<{
DeleteFromWall?: boolean;
PostToWall?: boolean;
InviteMembers?: boolean;
PostToStatus?: boolean;
RemoveMembers?: boolean;
ViewStatus?: boolean;
ViewWall?: boolean;
ChangeRank?: boolean;
AdvertiseGroup?: boolean;
ManageRelationships?: boolean;
AddGroupPlaces?: boolean;
ViewAuditLogs?: boolean;
CreateItems?: boolean;
ManageItems?: boolean;
SpendGroupFunds?: boolean;
ManageClan?: boolean;
ManageGroupGames?: boolean;
UseCloudAuthentication?: boolean;
AdministerCloudAuthentication?: boolean;
ViewAnalytics?: boolean;
}>;
export type RawGroupPermissionsForAllRoles<GroupId extends Identifier> = ObjectPrettify<{
data: GroupRolePermissionsData<GroupId, number>[];
}>;
export type PrettifiedGroupPermissionsForAllRoles<GroupId extends Identifier> = GroupRolePermissionsData<GroupId, number>[];
type GroupSocialLinkType = UnionPrettify<'Facebook' | 'Twitter' | 'YouTube' | 'Twitch' | 'GooglePlus' | 'Discord' | 'RobloxGroup' | 'Amazon' | 'Guilded'>;
type AddGroupSocialLinksWithUrl = {
"Facebook": `${UrlProtocol}facebook.com/${string}`;
"Twitter": `${UrlProtocol}twitter.com/${string}`;
"Youtube": `${UrlProtocol}youtube.com/${string}`;
"Twitch": `${UrlProtocol}twitch.tv/${string}`;
"Discord": `${UrlProtocol}discord.gg/${string}`;
"Guilded": `${UrlProtocol}guilded.gg/${string}`;
};
export type NewSocialLinkRequest = {
[Key in keyof AddGroupSocialLinksWithUrl as number]: {
type: Key;
url: AddGroupSocialLinksWithUrl[Key];
title: `${string & any}`;
};
}[number];
export type PrettifiedGroupSocialLinksData = ObjectPrettify<{
id: Identifier;
type: GroupSocialLinkType;
url: `${"https" | "http"}://${string}`;
title: string;
}[]>;
export type RawGroupSocialLinksData = ObjectPrettify<{
data: PrettifiedGroupSocialLinksData;
}>;
export type AddGroupSocialLinkData<NewSocial extends NewSocialLinkRequest, SocialLinkId extends Identifier = Identifier> = ObjectPrettify<{
id: SocialLinkId;
} & {
-readonly [Key in keyof NewSocial]: NewSocial[Key];
}>;
export type GroupWallPostsData_V1<TimeType> = ObjectPrettify<{
id: number;
poster: {
hasVerifiedBadge: boolean;
userId: number;
username: string;
displayName: string;
};
body: string;
created: TimeType;
updated: TimeType;
}[]>;
export type RawGroupWallPostsData_V1 = ObjectPrettify<{
previousPageCursor?: string;
nextPageCursor?: string;
data: GroupWallPostsData_V1<ISODateTime>;
}>;
export type PrettifiedGroupWallPostsData_V1 = ObjectPrettify<GroupWallPostsData_V1<Date>>;
type GroupSearchData<TimeType> = ObjectPrettify<{
id: number;
name: string;
description: string;
memberCount: number;
previousName: string;
publicEntryAllowed: true;
created: TimeType;
updated: TimeType;
hasVerifiedBadge: true;
}[]>;
export type RawGroupSearchData = ObjectPrettify<{
previousPageCursor?: string;
nextPageCursor?: string;
keyword: string;
data: GroupSearchData<string>;
}>;
export type PrettifiedGroupSearchData = GroupSearchData<Date>;
export type PrettifiedGroupLookupSearch = ObjectPrettify<{
id: number;
name: string;
memberCount: number;
hasVerifiedBadge: boolean;
}[]>;
export type RawGroupLookupSearch = ObjectPrettify<{
data: PrettifiedGroupLookupSearch;
}>;
export type RawGroupSearchMetadata = ObjectPrettify<{
SuggestedGroupKeywords: string[];
ShowFriendsGroupsSort: boolean;
}>;
export type PrettifiedGroupSearchMetadata = ObjectPrettify<ObjectKeysToCamelCase<RawGroupSearchMetadata>>;
export type RawGroupRolesFromIdsData<RoleId extends Identifier> = {
data: {
groupId: number;
id: RoleId;
name: string;
rank: number;
}[];
};
export type PrettifiedGroupRolesFromIdsData<RoleId extends Identifier> = {
[Key in RoleId]: ObjectPrettify<{
groupId: number;
name: string;
rank: number;
}> | undefined;
};
type PrimaryGroupForUserData<TemporalType> = ObjectPrettify<{
group: {
id: number;
name: string;
description: string;
owner: {
hasVerifiedBadge: boolean;
userId: number;
username: string;
displayName: string;
};
shout: {
body: string;
poster: {
buildersClubMembershipType: number;
hasVerifiedBadge: boolean;
userId: number;
username: string;
displayName: string;
};
created: TemporalType;
updated: TemporalType;
} | null;
isBuildersClubOnly: boolean;
publicEntryAllowed: boolean;
hasVerifiedBadge: boolean;
};
role: {
id: number;
name: string;
rank: number;
};
}>;
export type RawPrimaryGroupForUserData = PrimaryGroupForUserData<string>;
export type PrettifiedPrimaryGroupForUserData = PrimaryGroupForUserData<Date>;
export type UpdateRoleSetRequest = {
name: `${any}`;
description: `${any}`;
rank: number;
};
export type UpdateRoleSetData<NewRoleData extends UpdateRoleSetRequest> = ObjectPrettify<{
id: number;
name: NewRoleData["name"];
description: NewRoleData["description"];
rank: NewRoleData["rank"];
}>;
export type RawGroupIdsToGroupsInfoData<GroupId extends Identifier> = {
data: {
id: GroupId;
name: string;
description: string;
owner: {
id: number;
type: string;
};
created: string;
hasVerifiedBadge: boolean;
}[];
};
export type PrettifiedGroupIdsToGroupsInfoData<GroupId extends Identifier> = {
[Key in GroupId]: {
name: string;
description: string;
owner: {
id: number;
type: string;
};
created: Date;
hasVerifiedBadge: boolean;
} | undefined;
};
export type PrettifiedAllGroupRolesForUserData_V2 = ObjectPrettify<{
group: {
id: number;
name: string;
memberCount: number;
hasVerifiedBadge: boolean;
};
role: {
id: number;
name: string;
rank: number;
};
}[]>;
export type RawAllGroupRolesForUserData_V2 = ObjectPrettify<{
data: PrettifiedAllGroupRolesForUserData_V2;
}>;
type GroupWallPostsData_V2<TemporalType> = ObjectPrettify<{
id: number;
poster: {
user: {
hasVerifiedBadge: boolean;
userId: number;
username: string;
displayName: string;
};
role: {
id: number;
name: string;
rank: number;
};
};
body: string;
created: TemporalType;
updated: TemporalType;
}[]>;
export type RawGroupWallPostsData_V2 = ObjectPrettify<{
previousPageCursor?: string;
nextPageCursor?: string;
data: GroupWallPostsData_V2<ISODateTime>;
}>;
export type PrettifiedGroupWallPostsData_V2 = GroupWallPostsData_V2<Date>;
export {};