openblox
Version:
Roblox API Wrapper For Both Classic And OpenCloud APIs.
526 lines (524 loc) • 25.6 kB
TypeScript
import type { Identifier, StringIsLiteral } from "typeforge";
import type { UpdateUserRestrictionsData } from "./userRestrictions.types";
/**
* Gets restrictions for a user.
* @endpoint
* PATCH /v2/universes/{universe}/user-restrictions/{user-restriction}
* PATCH /v2/universes/{universeId}/places/{placeId}/user-restrictions/{userId}
*
* @param universeId The ID of the universe to get restrictions for.
* @param placeId The ID of the place to get restrictions for.
* @param userId The ID of the uset to get restrictions to get.
*
* @example
* const { data:restrictions } = await UserRestrictionsApi.listRestrictions({
universeId: 5795192361, placeId: 18210254887, userId: 6193495014
})
* @exampleData {"path":"universes/5795192361/places/18210254887/user-restrictions/6193495014","user":"users/6193495014","gameJoinRestriction":{"active":true,"startTime":"2024-06-25T22:56:58.873Z","duration":"31540000s","privateReason":"Being a meanie :/","displayReason":"Annoying other players.","excludeAltAccounts":false,"inherited":false}}
* @exampleRawBody {"path":"universes/5795192361/places/18210254887/user-restrictions/6193495014","user":"users/6193495014","gameJoinRestriction":{"active":true,"startTime":"2024-06-25T22:56:58.873Z","duration":"31540000s","privateReason":"Being a meanie :/","displayReason":"Annoying other players.","excludeAltAccounts":false,"inherited":false}}
*/
export declare const listRestrictions: <UniverseId extends Identifier, UserId extends Identifier, PlaceId extends Identifier | undefined = undefined>(this: any, args: {
universeId: UniverseId;
placeId?: PlaceId | undefined;
userId: UserId;
}) => Promise<{
data: {
path: PlaceId extends Identifier ? `universes/${UniverseId}/places/${PlaceId}/user-restrictions/${UserId}` : `universes/${UniverseId}/user-restrictions/${UserId}`;
user: `users/${UserId}`;
gameJoinRestriction: {
active: boolean;
startTime: string;
duration?: `${number}s` | undefined;
privateReason: string;
displayReason: string;
excludeAltAccounts: boolean;
inherited: boolean;
};
};
response: {
fullResponse: unknown;
url: `https://${string}`;
method: import("../../../utils/utils.types").RestMethod;
success: boolean;
statusCode: number;
headers: Headers;
body: {
path: PlaceId extends Identifier ? `universes/${UniverseId}/places/${PlaceId}/user-restrictions/${UserId}` : `universes/${UniverseId}/user-restrictions/${UserId}`;
user: `users/${UserId}`;
gameJoinRestriction: {
active: boolean;
startTime: string;
duration?: `${number}s` | undefined;
privateReason: string;
displayReason: string;
excludeAltAccounts: boolean;
inherited: boolean;
};
};
};
} & {
again: () => Promise<{
data: {
path: PlaceId extends Identifier ? `universes/${UniverseId}/places/${PlaceId}/user-restrictions/${UserId}` : `universes/${UniverseId}/user-restrictions/${UserId}`;
user: `users/${UserId}`;
gameJoinRestriction: {
active: boolean;
startTime: string;
duration?: `${number}s` | undefined;
privateReason: string;
displayReason: string;
excludeAltAccounts: boolean;
inherited: boolean;
};
};
response: {
fullResponse: unknown;
url: `https://${string}`;
method: import("../../../utils/utils.types").RestMethod;
success: boolean;
statusCode: number;
headers: Headers;
body: {
path: PlaceId extends Identifier ? `universes/${UniverseId}/places/${PlaceId}/user-restrictions/${UserId}` : `universes/${UniverseId}/user-restrictions/${UserId}`;
user: `users/${UserId}`;
gameJoinRestriction: {
active: boolean;
startTime: string;
duration?: `${number}s` | undefined;
privateReason: string;
displayReason: string;
excludeAltAccounts: boolean;
inherited: boolean;
};
};
};
}>;
}>;
/**
* Gets the active restriction for a user in a given universe.
* @endpoint GET /cloud/v2/universes/{universeId}/user-restrictions/{userId}
*
* @param universeId The ID of the universe to get restriction from.
* @param userId The ID of the user to get restriction for.
*
* @example
* @exampleData
* @exampleRawBody
*/
export declare const restrictionForUser: <UniverseId extends Identifier, UserId extends Identifier, PlaceId extends Identifier>(this: any, args: {
universeId: Identifier;
placeId?: Identifier | undefined;
userId: Identifier;
}) => Promise<{
data: {
path: PlaceId extends Identifier ? `universes/${UniverseId}/places/${PlaceId}/user-restrictions/${UserId}` : `universes/${UniverseId}/user-restrictions/${UserId}`;
user: `users/${UserId}`;
gameJoinRestriction: {
active: boolean;
startTime: string;
duration?: `${number}s` | undefined;
privateReason: string;
displayReason: string;
excludeAltAccounts: boolean;
inherited: boolean;
};
};
response: {
fullResponse: unknown;
url: `https://${string}`;
method: import("../../../utils/utils.types").RestMethod;
success: boolean;
statusCode: number;
headers: Headers;
body: {
path: PlaceId extends Identifier ? `universes/${UniverseId}/places/${PlaceId}/user-restrictions/${UserId}` : `universes/${UniverseId}/user-restrictions/${UserId}`;
user: `users/${UserId}`;
gameJoinRestriction: {
active: boolean;
startTime: string;
duration?: `${number}s` | undefined;
privateReason: string;
displayReason: string;
excludeAltAccounts: boolean;
inherited: boolean;
};
};
};
} & {
again: () => Promise<{
data: {
path: PlaceId extends Identifier ? `universes/${UniverseId}/places/${PlaceId}/user-restrictions/${UserId}` : `universes/${UniverseId}/user-restrictions/${UserId}`;
user: `users/${UserId}`;
gameJoinRestriction: {
active: boolean;
startTime: string;
duration?: `${number}s` | undefined;
privateReason: string;
displayReason: string;
excludeAltAccounts: boolean;
inherited: boolean;
};
};
response: {
fullResponse: unknown;
url: `https://${string}`;
method: import("../../../utils/utils.types").RestMethod;
success: boolean;
statusCode: number;
headers: Headers;
body: {
path: PlaceId extends Identifier ? `universes/${UniverseId}/places/${PlaceId}/user-restrictions/${UserId}` : `universes/${UniverseId}/user-restrictions/${UserId}`;
user: `users/${UserId}`;
gameJoinRestriction: {
active: boolean;
startTime: string;
duration?: `${number}s` | undefined;
privateReason: string;
displayReason: string;
excludeAltAccounts: boolean;
inherited: boolean;
};
};
};
}>;
}>;
/**
* Updates restrctions for a user.
* @endpoint
* PATCH /v2/universes/{universe}/user-restrictions/{user-restriction}
* PATCH /v2/universes/{universeId}/places/{placeId}/user-restrictions/{userId}
*
* @param universeId The ID of the universe to set restrictions for.
* @param placeId The ID of the place to set restrictions for.
* @param userId The ID of the uset to set restrictions to get.
* @param updatedData The new restrictions.
* @param idempotencyKey The unique key to use for idempotency.
* @param firstSent The timestamp at which the first request was sent. If this is further in the past than the lifetime of the idempotency key (which may exceed the annotated minimum lifetime), the server must return an error.
*
* @example
* import { v4 as uuidv4 } from "uuid"
const idempotencyKey = uuidv4(), firstSent = new Date()
const { data:updatedRestrictions } = await UserRestrictionsApi.updateRestrictionsForUser({
universeId: 5795192361, placeId: 18210254887, userId: 6193495014, idempotencyKey, firstSent, updatedData: {
gameJoinRestriction: {
active: true,
duration: "31540000s", // 1 year.
privateReason: "Being a meanie :/",
displayReason: "Annoying other players.",
excludeAltAccounts: false
}
}
})
* @exampleData {"path":"universes/5795192361/places/18210254887/user-restrictions/6193495014","user":"users/6193495014","gameJoinRestriction":{"active":true,"startTime":"2024-06-25T22:54:39.245Z","duration":"31540000s","privateReason":"Being a meanie :/","displayReason":"Annoying other players.","excludeAltAccounts":false,"inherited":false}}
* @exampleRawBody {"path":"universes/5795192361/places/18210254887/user-restrictions/6193495014","user":"users/6193495014","gameJoinRestriction":{"active":true,"startTime":"2024-06-25T22:54:39.245Z","duration":"31540000s","privateReason":"Being a meanie :/","displayReason":"Annoying other players.","excludeAltAccounts":false,"inherited":false}}
*/
export declare const updateRestrictionsForUser: <UniverseId extends Identifier, UserId extends Identifier, const UpdatedData extends UpdateUserRestrictionsData, PlaceId extends Identifier | undefined = undefined>(this: any, args: {
universeId: UniverseId;
placeId?: PlaceId | undefined;
userId: UserId;
updatedData: UpdatedData;
idempotencyKey?: string | undefined;
firstSent?: Date | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}+${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z+${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}+${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}Z` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}Z+${number}${number}${number}${number}` | undefined;
}) => Promise<{
data: {
path: PlaceId extends Identifier ? `universes/${UniverseId}/places/${PlaceId}/user-restrictions/${UserId}` : `universes/${UniverseId}/user-restrictions/${UserId}`;
user: `users/${UserId}`;
gameJoinRestriction: { [Key in keyof Omit<{
active: UpdatedData["gameJoinRestriction"]["active"];
startTime: string;
duration: UpdatedData["gameJoinRestriction"]["duration"];
privateReason: UpdatedData["gameJoinRestriction"]["privateReason"];
displayReason: UpdatedData["gameJoinRestriction"]["displayReason"];
excludeAltAccounts: UpdatedData["gameJoinRestriction"]["excludeAltAccounts"];
inherited: boolean;
}, StringIsLiteral<UpdatedData["gameJoinRestriction"]["duration"]> extends true ? "" : "duration">]: Omit<{
active: UpdatedData["gameJoinRestriction"]["active"];
startTime: string;
duration: UpdatedData["gameJoinRestriction"]["duration"];
privateReason: UpdatedData["gameJoinRestriction"]["privateReason"];
displayReason: UpdatedData["gameJoinRestriction"]["displayReason"];
excludeAltAccounts: UpdatedData["gameJoinRestriction"]["excludeAltAccounts"];
inherited: boolean;
}, StringIsLiteral<UpdatedData["gameJoinRestriction"]["duration"]> extends true ? "" : "duration">[Key]; };
};
response: {
fullResponse: unknown;
url: `https://${string}`;
method: import("../../../utils/utils.types").RestMethod;
success: boolean;
statusCode: number;
headers: Headers;
body: {
path: PlaceId extends Identifier ? `universes/${UniverseId}/places/${PlaceId}/user-restrictions/${UserId}` : `universes/${UniverseId}/user-restrictions/${UserId}`;
user: `users/${UserId}`;
gameJoinRestriction: { [Key in keyof Omit<{
active: UpdatedData["gameJoinRestriction"]["active"];
startTime: string;
duration: UpdatedData["gameJoinRestriction"]["duration"];
privateReason: UpdatedData["gameJoinRestriction"]["privateReason"];
displayReason: UpdatedData["gameJoinRestriction"]["displayReason"];
excludeAltAccounts: UpdatedData["gameJoinRestriction"]["excludeAltAccounts"];
inherited: boolean;
}, StringIsLiteral<UpdatedData["gameJoinRestriction"]["duration"]> extends true ? "" : "duration">]: Omit<{
active: UpdatedData["gameJoinRestriction"]["active"];
startTime: string;
duration: UpdatedData["gameJoinRestriction"]["duration"];
privateReason: UpdatedData["gameJoinRestriction"]["privateReason"];
displayReason: UpdatedData["gameJoinRestriction"]["displayReason"];
excludeAltAccounts: UpdatedData["gameJoinRestriction"]["excludeAltAccounts"];
inherited: boolean;
}, StringIsLiteral<UpdatedData["gameJoinRestriction"]["duration"]> extends true ? "" : "duration">[Key]; };
};
};
} & {
again: () => Promise<{
data: {
path: PlaceId extends Identifier ? `universes/${UniverseId}/places/${PlaceId}/user-restrictions/${UserId}` : `universes/${UniverseId}/user-restrictions/${UserId}`;
user: `users/${UserId}`;
gameJoinRestriction: { [Key in keyof Omit<{
active: UpdatedData["gameJoinRestriction"]["active"];
startTime: string;
duration: UpdatedData["gameJoinRestriction"]["duration"];
privateReason: UpdatedData["gameJoinRestriction"]["privateReason"];
displayReason: UpdatedData["gameJoinRestriction"]["displayReason"];
excludeAltAccounts: UpdatedData["gameJoinRestriction"]["excludeAltAccounts"];
inherited: boolean;
}, StringIsLiteral<UpdatedData["gameJoinRestriction"]["duration"]> extends true ? "" : "duration">]: Omit<{
active: UpdatedData["gameJoinRestriction"]["active"];
startTime: string;
duration: UpdatedData["gameJoinRestriction"]["duration"];
privateReason: UpdatedData["gameJoinRestriction"]["privateReason"];
displayReason: UpdatedData["gameJoinRestriction"]["displayReason"];
excludeAltAccounts: UpdatedData["gameJoinRestriction"]["excludeAltAccounts"];
inherited: boolean;
}, StringIsLiteral<UpdatedData["gameJoinRestriction"]["duration"]> extends true ? "" : "duration">[Key]; };
};
response: {
fullResponse: unknown;
url: `https://${string}`;
method: import("../../../utils/utils.types").RestMethod;
success: boolean;
statusCode: number;
headers: Headers;
body: {
path: PlaceId extends Identifier ? `universes/${UniverseId}/places/${PlaceId}/user-restrictions/${UserId}` : `universes/${UniverseId}/user-restrictions/${UserId}`;
user: `users/${UserId}`;
gameJoinRestriction: { [Key in keyof Omit<{
active: UpdatedData["gameJoinRestriction"]["active"];
startTime: string;
duration: UpdatedData["gameJoinRestriction"]["duration"];
privateReason: UpdatedData["gameJoinRestriction"]["privateReason"];
displayReason: UpdatedData["gameJoinRestriction"]["displayReason"];
excludeAltAccounts: UpdatedData["gameJoinRestriction"]["excludeAltAccounts"];
inherited: boolean;
}, StringIsLiteral<UpdatedData["gameJoinRestriction"]["duration"]> extends true ? "" : "duration">]: Omit<{
active: UpdatedData["gameJoinRestriction"]["active"];
startTime: string;
duration: UpdatedData["gameJoinRestriction"]["duration"];
privateReason: UpdatedData["gameJoinRestriction"]["privateReason"];
displayReason: UpdatedData["gameJoinRestriction"]["displayReason"];
excludeAltAccounts: UpdatedData["gameJoinRestriction"]["excludeAltAccounts"];
inherited: boolean;
}, StringIsLiteral<UpdatedData["gameJoinRestriction"]["duration"]> extends true ? "" : "duration">[Key]; };
};
};
}>;
}>;
/**
* Gets a list of restriction logs from a specific universe.
* @endpoint GET /v2/universes/{universeId}/user-restrictions:listLogs
*
* @param universeId The ID of the universe to get restriction logs for.
* @param placeId The ID of the place to get restriction logs for.
* @param userId The ID of the uset to get restriction logs to get.
* @param limit The maximum number of items to return.
* @param cursor Provide to request the next set of data.
*
* @example
* const { data:logs } = await UserRestrictionsApi.listRestrictionLogs({
* universeId: 5795192361, placeId: 18210254887, userId: 6193495014
* })
* @exampleData [{"user":"users/6193495014","place":"18210254887","moderator":{"robloxUser":"45348281"},"createTime":"2024-06-25T22:56:58.873Z","active":true,"startTime":"2024-06-25T22:56:58.873Z","duration":"31540000s","privateReason":"Being a meanie :/","displayReason":"Annoying other players.","excludeAltAccounts":false}]
* @exampleRawBody {"logs":[{"user":"users/6193495014","place":"18210254887","moderator":{"robloxUser":"45348281"},"createTime":"2024-06-25T22:56:58.873Z","active":true,"startTime":"2024-06-25T22:56:58.873Z","duration":"31540000s","privateReason":"Being a meanie :/","displayReason":"Annoying other players.","excludeAltAccounts":false}],"nextPageToken":"id_2zwAAAZBRnd35xBBXeienIm9K54uMH01-RpcT"}
*/
export declare const listRestrictionLogs: <UniverseId extends Identifier, UserId extends Identifier = Identifier, PlaceId extends Identifier = Identifier>(this: any, args: {
universeId: UniverseId;
placeId?: PlaceId | undefined;
userId?: UserId | undefined;
limit?: number | undefined;
cursor?: string | undefined;
}) => Promise<{
data: {
user: `users/${UserId}`;
place: `${PlaceId}`;
moderator: {
robloxUser: `${number}`;
};
createTime: Date;
active: boolean;
startTime: Date;
duration: `${number}s`;
privateReason: string;
displayReason: string;
excludeAltAccounts: boolean;
}[];
response: {
fullResponse: unknown;
url: `https://${string}`;
method: import("../../../utils/utils.types").RestMethod;
success: boolean;
statusCode: number;
headers: Headers;
body: {
logs: {
user: `users/${UserId}`;
place: `${PlaceId}`;
moderator: {
robloxUser: `${number}`;
};
createTime: string;
active: boolean;
startTime: string;
duration: `${number}s`;
privateReason: string;
displayReason: string;
excludeAltAccounts: boolean;
}[];
nextPageToken: string;
};
};
cursors: {
previous: import("../../apiGroup/apiGroup.types").Cursor;
next: import("../../apiGroup/apiGroup.types").Cursor;
};
[Symbol.asyncIterator]: () => AsyncGenerator<{
data: {
user: `users/${UserId}`;
place: `${PlaceId}`;
moderator: {
robloxUser: `${number}`;
};
createTime: Date;
active: boolean;
startTime: Date;
duration: `${number}s`;
privateReason: string;
displayReason: string;
excludeAltAccounts: boolean;
}[];
response: {
fullResponse: unknown;
url: `https://${string}`;
method: import("../../../utils/utils.types").RestMethod;
success: boolean;
statusCode: number;
headers: Headers;
body: {
logs: {
user: `users/${UserId}`;
place: `${PlaceId}`;
moderator: {
robloxUser: `${number}`;
};
createTime: string;
active: boolean;
startTime: string;
duration: `${number}s`;
privateReason: string;
displayReason: string;
excludeAltAccounts: boolean;
}[];
nextPageToken: string;
};
};
cursors: {
previous: import("../../apiGroup/apiGroup.types").Cursor;
next: import("../../apiGroup/apiGroup.types").Cursor;
};
[Symbol.asyncIterator]: null;
} & {
again: () => Promise<{
data: {
user: `users/${UserId}`;
place: `${PlaceId}`;
moderator: {
robloxUser: `${number}`;
};
createTime: Date;
active: boolean;
startTime: Date;
duration: `${number}s`;
privateReason: string;
displayReason: string;
excludeAltAccounts: boolean;
}[];
response: {
fullResponse: unknown;
url: `https://${string}`;
method: import("../../../utils/utils.types").RestMethod;
success: boolean;
statusCode: number;
headers: Headers;
body: {
logs: {
user: `users/${UserId}`;
place: `${PlaceId}`;
moderator: {
robloxUser: `${number}`;
};
createTime: string;
active: boolean;
startTime: string;
duration: `${number}s`;
privateReason: string;
displayReason: string;
excludeAltAccounts: boolean;
}[];
nextPageToken: string;
};
};
}>;
}, any, unknown>;
} & {
again: () => Promise<{
data: {
user: `users/${UserId}`;
place: `${PlaceId}`;
moderator: {
robloxUser: `${number}`;
};
createTime: Date;
active: boolean;
startTime: Date;
duration: `${number}s`;
privateReason: string;
displayReason: string;
excludeAltAccounts: boolean;
}[];
response: {
fullResponse: unknown;
url: `https://${string}`;
method: import("../../../utils/utils.types").RestMethod;
success: boolean;
statusCode: number;
headers: Headers;
body: {
logs: {
user: `users/${UserId}`;
place: `${PlaceId}`;
moderator: {
robloxUser: `${number}`;
};
createTime: string;
active: boolean;
startTime: string;
duration: `${number}s`;
privateReason: string;
displayReason: string;
excludeAltAccounts: boolean;
}[];
nextPageToken: string;
};
};
}>;
}>;