stashapp-api
Version:
Easy to use adapter for interaction with a Stash server through GraphQL.
1,176 lines • 197 kB
TypeScript
import { GraphQLClient, RequestOptions } from 'graphql-request';
export type Maybe<T> = T | null;
export type InputMaybe<T> = Maybe<T>;
export type Exact<T extends {
[key: string]: unknown;
}> = {
[K in keyof T]: T[K];
};
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & {
[SubKey in K]?: Maybe<T[SubKey]>;
};
export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {
[SubKey in K]: Maybe<T[SubKey]>;
};
export type MakeEmpty<T extends {
[key: string]: unknown;
}, K extends keyof T> = {
[_ in K]?: never;
};
export type Incremental<T> = T | {
[P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never;
};
type GraphQLClientRequestHeaders = RequestOptions['requestHeaders'];
/** All built-in and custom scalars, mapped to their actual values */
export type Scalars = {
ID: {
input: string;
output: string;
};
String: {
input: string;
output: string;
};
Boolean: {
input: boolean;
output: boolean;
};
Int: {
input: number;
output: number;
};
Float: {
input: number;
output: number;
};
Any: {
input: any;
output: any;
};
BoolMap: {
input: any;
output: any;
};
Int64: {
input: any;
output: any;
};
Map: {
input: any;
output: any;
};
PluginConfigMap: {
input: any;
output: any;
};
Time: {
input: any;
output: any;
};
Timestamp: {
input: any;
output: any;
};
Upload: {
input: any;
output: any;
};
};
export type AddTempDlnaipInput = {
address: Scalars['String']['input'];
/** Duration to enable, in minutes. 0 or null for indefinite. */
duration?: InputMaybe<Scalars['Int']['input']>;
};
export type AnonymiseDatabaseInput = {
download?: InputMaybe<Scalars['Boolean']['input']>;
};
export type AssignSceneFileInput = {
file_id: Scalars['ID']['input'];
scene_id: Scalars['ID']['input'];
};
export type AutoTagMetadataInput = {
/** Paths to tag, null for all files */
paths?: InputMaybe<Array<Scalars['String']['input']>>;
/** IDs of performers to tag files with, or "*" for all */
performers?: InputMaybe<Array<Scalars['String']['input']>>;
/** IDs of studios to tag files with, or "*" for all */
studios?: InputMaybe<Array<Scalars['String']['input']>>;
/** IDs of tags to tag files with, or "*" for all */
tags?: InputMaybe<Array<Scalars['String']['input']>>;
};
export type AutoTagMetadataOptions = {
__typename?: 'AutoTagMetadataOptions';
/** IDs of performers to tag files with, or "*" for all */
performers?: Maybe<Array<Scalars['String']['output']>>;
/** IDs of studios to tag files with, or "*" for all */
studios?: Maybe<Array<Scalars['String']['output']>>;
/** IDs of tags to tag files with, or "*" for all */
tags?: Maybe<Array<Scalars['String']['output']>>;
};
export type BackupDatabaseInput = {
download?: InputMaybe<Scalars['Boolean']['input']>;
};
export type BaseFile = {
basename: Scalars['String']['output'];
created_at: Scalars['Time']['output'];
fingerprint?: Maybe<Scalars['String']['output']>;
fingerprints: Array<Fingerprint>;
id: Scalars['ID']['output'];
mod_time: Scalars['Time']['output'];
parent_folder_id: Scalars['ID']['output'];
path: Scalars['String']['output'];
size: Scalars['Int64']['output'];
updated_at: Scalars['Time']['output'];
zip_file_id?: Maybe<Scalars['ID']['output']>;
};
export type BaseFileFingerprintArgs = {
type: Scalars['String']['input'];
};
export declare enum BlobsStorageType {
/** Database */
Database = "DATABASE",
/** Filesystem */
Filesystem = "FILESYSTEM"
}
export type BulkGalleryUpdateInput = {
clientMutationId?: InputMaybe<Scalars['String']['input']>;
code?: InputMaybe<Scalars['String']['input']>;
date?: InputMaybe<Scalars['String']['input']>;
details?: InputMaybe<Scalars['String']['input']>;
ids?: InputMaybe<Array<Scalars['ID']['input']>>;
organized?: InputMaybe<Scalars['Boolean']['input']>;
performer_ids?: InputMaybe<BulkUpdateIds>;
photographer?: InputMaybe<Scalars['String']['input']>;
rating100?: InputMaybe<Scalars['Int']['input']>;
scene_ids?: InputMaybe<BulkUpdateIds>;
studio_id?: InputMaybe<Scalars['ID']['input']>;
tag_ids?: InputMaybe<BulkUpdateIds>;
url?: InputMaybe<Scalars['String']['input']>;
urls?: InputMaybe<BulkUpdateStrings>;
};
export type BulkGroupUpdateInput = {
clientMutationId?: InputMaybe<Scalars['String']['input']>;
containing_groups?: InputMaybe<BulkUpdateGroupDescriptionsInput>;
director?: InputMaybe<Scalars['String']['input']>;
ids?: InputMaybe<Array<Scalars['ID']['input']>>;
rating100?: InputMaybe<Scalars['Int']['input']>;
studio_id?: InputMaybe<Scalars['ID']['input']>;
sub_groups?: InputMaybe<BulkUpdateGroupDescriptionsInput>;
tag_ids?: InputMaybe<BulkUpdateIds>;
urls?: InputMaybe<BulkUpdateStrings>;
};
export type BulkImageUpdateInput = {
clientMutationId?: InputMaybe<Scalars['String']['input']>;
code?: InputMaybe<Scalars['String']['input']>;
date?: InputMaybe<Scalars['String']['input']>;
details?: InputMaybe<Scalars['String']['input']>;
gallery_ids?: InputMaybe<BulkUpdateIds>;
ids?: InputMaybe<Array<Scalars['ID']['input']>>;
organized?: InputMaybe<Scalars['Boolean']['input']>;
performer_ids?: InputMaybe<BulkUpdateIds>;
photographer?: InputMaybe<Scalars['String']['input']>;
rating100?: InputMaybe<Scalars['Int']['input']>;
studio_id?: InputMaybe<Scalars['ID']['input']>;
tag_ids?: InputMaybe<BulkUpdateIds>;
title?: InputMaybe<Scalars['String']['input']>;
url?: InputMaybe<Scalars['String']['input']>;
urls?: InputMaybe<BulkUpdateStrings>;
};
export type BulkMovieUpdateInput = {
clientMutationId?: InputMaybe<Scalars['String']['input']>;
director?: InputMaybe<Scalars['String']['input']>;
ids?: InputMaybe<Array<Scalars['ID']['input']>>;
rating100?: InputMaybe<Scalars['Int']['input']>;
studio_id?: InputMaybe<Scalars['ID']['input']>;
tag_ids?: InputMaybe<BulkUpdateIds>;
urls?: InputMaybe<BulkUpdateStrings>;
};
export type BulkPerformerUpdateInput = {
alias_list?: InputMaybe<BulkUpdateStrings>;
birthdate?: InputMaybe<Scalars['String']['input']>;
career_length?: InputMaybe<Scalars['String']['input']>;
circumcised?: InputMaybe<CircumisedEnum>;
clientMutationId?: InputMaybe<Scalars['String']['input']>;
country?: InputMaybe<Scalars['String']['input']>;
custom_fields?: InputMaybe<CustomFieldsInput>;
death_date?: InputMaybe<Scalars['String']['input']>;
details?: InputMaybe<Scalars['String']['input']>;
disambiguation?: InputMaybe<Scalars['String']['input']>;
ethnicity?: InputMaybe<Scalars['String']['input']>;
eye_color?: InputMaybe<Scalars['String']['input']>;
fake_tits?: InputMaybe<Scalars['String']['input']>;
favorite?: InputMaybe<Scalars['Boolean']['input']>;
gender?: InputMaybe<GenderEnum>;
hair_color?: InputMaybe<Scalars['String']['input']>;
height_cm?: InputMaybe<Scalars['Int']['input']>;
ids?: InputMaybe<Array<Scalars['ID']['input']>>;
ignore_auto_tag?: InputMaybe<Scalars['Boolean']['input']>;
instagram?: InputMaybe<Scalars['String']['input']>;
measurements?: InputMaybe<Scalars['String']['input']>;
penis_length?: InputMaybe<Scalars['Float']['input']>;
piercings?: InputMaybe<Scalars['String']['input']>;
rating100?: InputMaybe<Scalars['Int']['input']>;
tag_ids?: InputMaybe<BulkUpdateIds>;
tattoos?: InputMaybe<Scalars['String']['input']>;
twitter?: InputMaybe<Scalars['String']['input']>;
url?: InputMaybe<Scalars['String']['input']>;
urls?: InputMaybe<BulkUpdateStrings>;
weight?: InputMaybe<Scalars['Int']['input']>;
};
export type BulkSceneUpdateInput = {
clientMutationId?: InputMaybe<Scalars['String']['input']>;
code?: InputMaybe<Scalars['String']['input']>;
date?: InputMaybe<Scalars['String']['input']>;
details?: InputMaybe<Scalars['String']['input']>;
director?: InputMaybe<Scalars['String']['input']>;
gallery_ids?: InputMaybe<BulkUpdateIds>;
group_ids?: InputMaybe<BulkUpdateIds>;
ids?: InputMaybe<Array<Scalars['ID']['input']>>;
movie_ids?: InputMaybe<BulkUpdateIds>;
organized?: InputMaybe<Scalars['Boolean']['input']>;
performer_ids?: InputMaybe<BulkUpdateIds>;
rating100?: InputMaybe<Scalars['Int']['input']>;
studio_id?: InputMaybe<Scalars['ID']['input']>;
tag_ids?: InputMaybe<BulkUpdateIds>;
title?: InputMaybe<Scalars['String']['input']>;
url?: InputMaybe<Scalars['String']['input']>;
urls?: InputMaybe<BulkUpdateStrings>;
};
export type BulkTagUpdateInput = {
aliases?: InputMaybe<BulkUpdateStrings>;
child_ids?: InputMaybe<BulkUpdateIds>;
description?: InputMaybe<Scalars['String']['input']>;
favorite?: InputMaybe<Scalars['Boolean']['input']>;
ids?: InputMaybe<Array<Scalars['ID']['input']>>;
ignore_auto_tag?: InputMaybe<Scalars['Boolean']['input']>;
parent_ids?: InputMaybe<BulkUpdateIds>;
};
export type BulkUpdateGroupDescriptionsInput = {
groups: Array<GroupDescriptionInput>;
mode: BulkUpdateIdMode;
};
export declare enum BulkUpdateIdMode {
Add = "ADD",
Remove = "REMOVE",
Set = "SET"
}
export type BulkUpdateIds = {
ids?: InputMaybe<Array<Scalars['ID']['input']>>;
mode: BulkUpdateIdMode;
};
export type BulkUpdateStrings = {
mode: BulkUpdateIdMode;
values?: InputMaybe<Array<Scalars['String']['input']>>;
};
export type CircumcisionCriterionInput = {
modifier: CriterionModifier;
value?: InputMaybe<Array<CircumisedEnum>>;
};
export declare enum CircumisedEnum {
Cut = "CUT",
Uncut = "UNCUT"
}
export type CleanGeneratedInput = {
/** Clean blob files without blob entries */
blobFiles?: InputMaybe<Scalars['Boolean']['input']>;
/** Do a dry run. Don't delete any files */
dryRun?: InputMaybe<Scalars['Boolean']['input']>;
/** Clean image thumbnails/clips without image entries */
imageThumbnails?: InputMaybe<Scalars['Boolean']['input']>;
/** Clean marker files without marker entries */
markers?: InputMaybe<Scalars['Boolean']['input']>;
/** Clean preview files without scene entries */
screenshots?: InputMaybe<Scalars['Boolean']['input']>;
/** Clean sprite and vtt files without scene entries */
sprites?: InputMaybe<Scalars['Boolean']['input']>;
/** Clean scene transcodes without scene entries */
transcodes?: InputMaybe<Scalars['Boolean']['input']>;
};
export type CleanMetadataInput = {
/** Do a dry run. Don't delete any files */
dryRun: Scalars['Boolean']['input'];
paths?: InputMaybe<Array<Scalars['String']['input']>>;
};
export type ConfigDlnaInput = {
/** True if DLNA service should be enabled by default */
enabled?: InputMaybe<Scalars['Boolean']['input']>;
/** List of interfaces to run DLNA on. Empty for all */
interfaces?: InputMaybe<Array<Scalars['String']['input']>>;
/** Defaults to 1338 */
port?: InputMaybe<Scalars['Int']['input']>;
serverName?: InputMaybe<Scalars['String']['input']>;
/** Order to sort videos */
videoSortOrder?: InputMaybe<Scalars['String']['input']>;
/** List of IPs whitelisted for DLNA service */
whitelistedIPs?: InputMaybe<Array<Scalars['String']['input']>>;
};
export type ConfigDlnaResult = {
__typename?: 'ConfigDLNAResult';
/** True if DLNA service should be enabled by default */
enabled: Scalars['Boolean']['output'];
/** List of interfaces to run DLNA on. Empty for all */
interfaces: Array<Scalars['String']['output']>;
/** Defaults to 1338 */
port: Scalars['Int']['output'];
serverName: Scalars['String']['output'];
/** Order to sort videos */
videoSortOrder: Scalars['String']['output'];
/** List of IPs whitelisted for DLNA service */
whitelistedIPs: Array<Scalars['String']['output']>;
};
export type ConfigDefaultSettingsInput = {
autoTag?: InputMaybe<AutoTagMetadataInput>;
/** If true, delete file checkbox will be checked by default */
deleteFile?: InputMaybe<Scalars['Boolean']['input']>;
/** If true, delete generated files checkbox will be checked by default */
deleteGenerated?: InputMaybe<Scalars['Boolean']['input']>;
generate?: InputMaybe<GenerateMetadataInput>;
identify?: InputMaybe<IdentifyMetadataInput>;
scan?: InputMaybe<ScanMetadataInput>;
};
export type ConfigDefaultSettingsResult = {
__typename?: 'ConfigDefaultSettingsResult';
autoTag?: Maybe<AutoTagMetadataOptions>;
/** If true, delete file checkbox will be checked by default */
deleteFile?: Maybe<Scalars['Boolean']['output']>;
/** If true, delete generated supporting files checkbox will be checked by default */
deleteGenerated?: Maybe<Scalars['Boolean']['output']>;
generate?: Maybe<GenerateMetadataOptions>;
identify?: Maybe<IdentifyMetadataTaskOptions>;
scan?: Maybe<ScanMetadataOptions>;
};
export type ConfigDisableDropdownCreate = {
__typename?: 'ConfigDisableDropdownCreate';
movie: Scalars['Boolean']['output'];
performer: Scalars['Boolean']['output'];
studio: Scalars['Boolean']['output'];
tag: Scalars['Boolean']['output'];
};
export type ConfigDisableDropdownCreateInput = {
movie?: InputMaybe<Scalars['Boolean']['input']>;
performer?: InputMaybe<Scalars['Boolean']['input']>;
studio?: InputMaybe<Scalars['Boolean']['input']>;
tag?: InputMaybe<Scalars['Boolean']['input']>;
};
export type ConfigGeneralInput = {
/** Path to backup directory */
backupDirectoryPath?: InputMaybe<Scalars['String']['input']>;
/** Path to blobs - required for filesystem blob storage */
blobsPath?: InputMaybe<Scalars['String']['input']>;
/** Where to store blobs */
blobsStorage?: InputMaybe<BlobsStorageType>;
/** Path to cache */
cachePath?: InputMaybe<Scalars['String']['input']>;
/** Whether to calculate MD5 checksums for scene video files */
calculateMD5?: InputMaybe<Scalars['Boolean']['input']>;
/** True if galleries should be created from folders with images */
createGalleriesFromFolders?: InputMaybe<Scalars['Boolean']['input']>;
/** Create Image Clips from Video extensions when Videos are disabled in Library */
createImageClipsFromVideos?: InputMaybe<Scalars['Boolean']['input']>;
/** Custom Performer Image Location */
customPerformerImageLocation?: InputMaybe<Scalars['String']['input']>;
/** Path to the SQLite database */
databasePath?: InputMaybe<Scalars['String']['input']>;
/** whether to include range in generated funscript heatmaps */
drawFunscriptHeatmapRange?: InputMaybe<Scalars['Boolean']['input']>;
/** Array of file regexp to exclude from Video Scans */
excludes?: InputMaybe<Array<Scalars['String']['input']>>;
/** Path to the ffmpeg binary. If empty, stash will attempt to find it in the path or config directory */
ffmpegPath?: InputMaybe<Scalars['String']['input']>;
/** Path to the ffprobe binary. If empty, stash will attempt to find it in the path or config directory */
ffprobePath?: InputMaybe<Scalars['String']['input']>;
/** Regex used to identify images as gallery covers */
galleryCoverRegex?: InputMaybe<Scalars['String']['input']>;
/** Array of gallery zip file extensions */
galleryExtensions?: InputMaybe<Array<Scalars['String']['input']>>;
/** Path to generated files */
generatedPath?: InputMaybe<Scalars['String']['input']>;
/** Array of file regexp to exclude from Image Scans */
imageExcludes?: InputMaybe<Array<Scalars['String']['input']>>;
/** Array of image file extensions */
imageExtensions?: InputMaybe<Array<Scalars['String']['input']>>;
/**
* ffmpeg stream input args - injected before input file
* These are applied when live transcoding
*/
liveTranscodeInputArgs?: InputMaybe<Array<Scalars['String']['input']>>;
/**
* ffmpeg stream output args - injected before output file
* These are applied when live transcoding
*/
liveTranscodeOutputArgs?: InputMaybe<Array<Scalars['String']['input']>>;
/** Whether to log http access */
logAccess?: InputMaybe<Scalars['Boolean']['input']>;
/** Name of the log file */
logFile?: InputMaybe<Scalars['String']['input']>;
/** Minimum log level */
logLevel?: InputMaybe<Scalars['String']['input']>;
/** Whether to also output to stderr */
logOut?: InputMaybe<Scalars['Boolean']['input']>;
/** Maximum session cookie age */
maxSessionAge?: InputMaybe<Scalars['Int']['input']>;
/** Max streaming transcode size */
maxStreamingTranscodeSize?: InputMaybe<StreamingResolutionEnum>;
/** Max generated transcode size */
maxTranscodeSize?: InputMaybe<StreamingResolutionEnum>;
/** Path to import/export files */
metadataPath?: InputMaybe<Scalars['String']['input']>;
/** Number of parallel tasks to start during scan/generate */
parallelTasks?: InputMaybe<Scalars['Int']['input']>;
/** Password */
password?: InputMaybe<Scalars['String']['input']>;
/** Source of plugin packages */
pluginPackageSources?: InputMaybe<Array<PackageSourceInput>>;
/** Path to plugins */
pluginsPath?: InputMaybe<Scalars['String']['input']>;
/** Include audio stream in previews */
previewAudio?: InputMaybe<Scalars['Boolean']['input']>;
/** Duration of end of video to exclude when generating previews */
previewExcludeEnd?: InputMaybe<Scalars['String']['input']>;
/** Duration of start of video to exclude when generating previews */
previewExcludeStart?: InputMaybe<Scalars['String']['input']>;
/** Preset when generating preview */
previewPreset?: InputMaybe<PreviewPreset>;
/** Preview segment duration, in seconds */
previewSegmentDuration?: InputMaybe<Scalars['Float']['input']>;
/** Number of segments in a preview file */
previewSegments?: InputMaybe<Scalars['Int']['input']>;
/** Python path - resolved using path if unset */
pythonPath?: InputMaybe<Scalars['String']['input']>;
/** Source of scraper packages */
scraperPackageSources?: InputMaybe<Array<PackageSourceInput>>;
/** Path to scrapers */
scrapersPath?: InputMaybe<Scalars['String']['input']>;
/** Stash-box instances used for tagging */
stashBoxes?: InputMaybe<Array<StashBoxInput>>;
/** Array of file paths to content */
stashes?: InputMaybe<Array<StashConfigInput>>;
/** Transcode Hardware Acceleration */
transcodeHardwareAcceleration?: InputMaybe<Scalars['Boolean']['input']>;
/**
* ffmpeg transcode input args - injected before input file
* These are applied to generated transcodes (previews and transcodes)
*/
transcodeInputArgs?: InputMaybe<Array<Scalars['String']['input']>>;
/**
* ffmpeg transcode output args - injected before output file
* These are applied to generated transcodes (previews and transcodes)
*/
transcodeOutputArgs?: InputMaybe<Array<Scalars['String']['input']>>;
/** Username */
username?: InputMaybe<Scalars['String']['input']>;
/** Array of video file extensions */
videoExtensions?: InputMaybe<Array<Scalars['String']['input']>>;
/** Hash algorithm to use for generated file naming */
videoFileNamingAlgorithm?: InputMaybe<HashAlgorithm>;
/** Write image thumbnails to disk when generating on the fly */
writeImageThumbnails?: InputMaybe<Scalars['Boolean']['input']>;
};
export type ConfigGeneralResult = {
__typename?: 'ConfigGeneralResult';
/** API Key */
apiKey: Scalars['String']['output'];
/** Path to backup directory */
backupDirectoryPath: Scalars['String']['output'];
/** Path to blobs - required for filesystem blob storage */
blobsPath: Scalars['String']['output'];
/** Where to store blobs */
blobsStorage: BlobsStorageType;
/** Path to cache */
cachePath: Scalars['String']['output'];
/** Whether to calculate MD5 checksums for scene video files */
calculateMD5: Scalars['Boolean']['output'];
/** Path to the config file used */
configFilePath: Scalars['String']['output'];
/** True if galleries should be created from folders with images */
createGalleriesFromFolders: Scalars['Boolean']['output'];
/** Create Image Clips from Video extensions when Videos are disabled in Library */
createImageClipsFromVideos: Scalars['Boolean']['output'];
/** Custom Performer Image Location */
customPerformerImageLocation?: Maybe<Scalars['String']['output']>;
/** Path to the SQLite database */
databasePath: Scalars['String']['output'];
/** whether to include range in generated funscript heatmaps */
drawFunscriptHeatmapRange: Scalars['Boolean']['output'];
/** Array of file regexp to exclude from Video Scans */
excludes: Array<Scalars['String']['output']>;
/** Path to the ffmpeg binary. If empty, stash will attempt to find it in the path or config directory */
ffmpegPath: Scalars['String']['output'];
/** Path to the ffprobe binary. If empty, stash will attempt to find it in the path or config directory */
ffprobePath: Scalars['String']['output'];
/** Regex used to identify images as gallery covers */
galleryCoverRegex: Scalars['String']['output'];
/** Array of gallery zip file extensions */
galleryExtensions: Array<Scalars['String']['output']>;
/** Path to generated files */
generatedPath: Scalars['String']['output'];
/** Array of file regexp to exclude from Image Scans */
imageExcludes: Array<Scalars['String']['output']>;
/** Array of image file extensions */
imageExtensions: Array<Scalars['String']['output']>;
/**
* ffmpeg stream input args - injected before input file
* These are applied when live transcoding
*/
liveTranscodeInputArgs: Array<Scalars['String']['output']>;
/**
* ffmpeg stream output args - injected before output file
* These are applied when live transcoding
*/
liveTranscodeOutputArgs: Array<Scalars['String']['output']>;
/** Whether to log http access */
logAccess: Scalars['Boolean']['output'];
/** Name of the log file */
logFile?: Maybe<Scalars['String']['output']>;
/** Minimum log level */
logLevel: Scalars['String']['output'];
/** Whether to also output to stderr */
logOut: Scalars['Boolean']['output'];
/** Maximum session cookie age */
maxSessionAge: Scalars['Int']['output'];
/** Max streaming transcode size */
maxStreamingTranscodeSize?: Maybe<StreamingResolutionEnum>;
/** Max generated transcode size */
maxTranscodeSize?: Maybe<StreamingResolutionEnum>;
/** Path to import/export files */
metadataPath: Scalars['String']['output'];
/** Number of parallel tasks to start during scan/generate */
parallelTasks: Scalars['Int']['output'];
/** Password */
password: Scalars['String']['output'];
/** Source of plugin packages */
pluginPackageSources: Array<PackageSource>;
/** Path to plugins */
pluginsPath: Scalars['String']['output'];
/** Include audio stream in previews */
previewAudio: Scalars['Boolean']['output'];
/** Duration of end of video to exclude when generating previews */
previewExcludeEnd: Scalars['String']['output'];
/** Duration of start of video to exclude when generating previews */
previewExcludeStart: Scalars['String']['output'];
/** Preset when generating preview */
previewPreset: PreviewPreset;
/** Preview segment duration, in seconds */
previewSegmentDuration: Scalars['Float']['output'];
/** Number of segments in a preview file */
previewSegments: Scalars['Int']['output'];
/** Python path - resolved using path if unset */
pythonPath: Scalars['String']['output'];
/** Source of scraper packages */
scraperPackageSources: Array<PackageSource>;
/** Path to scrapers */
scrapersPath: Scalars['String']['output'];
/** Stash-box instances used for tagging */
stashBoxes: Array<StashBox>;
/** Array of file paths to content */
stashes: Array<StashConfig>;
/** Transcode Hardware Acceleration */
transcodeHardwareAcceleration: Scalars['Boolean']['output'];
/**
* ffmpeg transcode input args - injected before input file
* These are applied to generated transcodes (previews and transcodes)
*/
transcodeInputArgs: Array<Scalars['String']['output']>;
/**
* ffmpeg transcode output args - injected before output file
* These are applied to generated transcodes (previews and transcodes)
*/
transcodeOutputArgs: Array<Scalars['String']['output']>;
/** Username */
username: Scalars['String']['output'];
/** Array of video file extensions */
videoExtensions: Array<Scalars['String']['output']>;
/** Hash algorithm to use for generated file naming */
videoFileNamingAlgorithm: HashAlgorithm;
/** Write image thumbnails to disk when generating on the fly */
writeImageThumbnails: Scalars['Boolean']['output'];
};
export type ConfigImageLightboxInput = {
displayMode?: InputMaybe<ImageLightboxDisplayMode>;
resetZoomOnNav?: InputMaybe<Scalars['Boolean']['input']>;
scaleUp?: InputMaybe<Scalars['Boolean']['input']>;
scrollAttemptsBeforeChange?: InputMaybe<Scalars['Int']['input']>;
scrollMode?: InputMaybe<ImageLightboxScrollMode>;
slideshowDelay?: InputMaybe<Scalars['Int']['input']>;
};
export type ConfigImageLightboxResult = {
__typename?: 'ConfigImageLightboxResult';
displayMode?: Maybe<ImageLightboxDisplayMode>;
resetZoomOnNav?: Maybe<Scalars['Boolean']['output']>;
scaleUp?: Maybe<Scalars['Boolean']['output']>;
scrollAttemptsBeforeChange: Scalars['Int']['output'];
scrollMode?: Maybe<ImageLightboxScrollMode>;
slideshowDelay?: Maybe<Scalars['Int']['output']>;
};
export type ConfigInterfaceInput = {
/** If true, video will autostart on load in the scene player */
autostartVideo?: InputMaybe<Scalars['Boolean']['input']>;
/** If true, video will autostart when loading from play random or play selected */
autostartVideoOnPlaySelected?: InputMaybe<Scalars['Boolean']['input']>;
/** If true, next scene in playlist will be played at video end by default */
continuePlaylistDefault?: InputMaybe<Scalars['Boolean']['input']>;
/** Custom CSS */
css?: InputMaybe<Scalars['String']['input']>;
cssEnabled?: InputMaybe<Scalars['Boolean']['input']>;
/** Custom Locales */
customLocales?: InputMaybe<Scalars['String']['input']>;
customLocalesEnabled?: InputMaybe<Scalars['Boolean']['input']>;
/** Set to true to disable creating new objects via the dropdown menus */
disableDropdownCreate?: InputMaybe<ConfigDisableDropdownCreateInput>;
/** Funscript Time Offset */
funscriptOffset?: InputMaybe<Scalars['Int']['input']>;
/** Handy Connection Key */
handyKey?: InputMaybe<Scalars['String']['input']>;
imageLightbox?: InputMaybe<ConfigImageLightboxInput>;
/** Custom Javascript */
javascript?: InputMaybe<Scalars['String']['input']>;
javascriptEnabled?: InputMaybe<Scalars['Boolean']['input']>;
/** Interface language */
language?: InputMaybe<Scalars['String']['input']>;
/** Maximum duration (in seconds) in which a scene video will loop in the scene player */
maximumLoopDuration?: InputMaybe<Scalars['Int']['input']>;
/** Ordered list of items that should be shown in the menu */
menuItems?: InputMaybe<Array<Scalars['String']['input']>>;
/** True if we should not auto-open a browser window on startup */
noBrowser?: InputMaybe<Scalars['Boolean']['input']>;
/** True if we should send notifications to the desktop */
notificationsEnabled?: InputMaybe<Scalars['Boolean']['input']>;
/** Show scene scrubber by default */
showScrubber?: InputMaybe<Scalars['Boolean']['input']>;
/** If true, studio overlays will be shown as text instead of logo images */
showStudioAsText?: InputMaybe<Scalars['Boolean']['input']>;
/** Enable sound on mouseover previews */
soundOnPreview?: InputMaybe<Scalars['Boolean']['input']>;
/** Whether to use Stash Hosted Funscript */
useStashHostedFunscript?: InputMaybe<Scalars['Boolean']['input']>;
/** Wall playback type */
wallPlayback?: InputMaybe<Scalars['String']['input']>;
/** Show title and tags in wall view */
wallShowTitle?: InputMaybe<Scalars['Boolean']['input']>;
};
export type ConfigInterfaceResult = {
__typename?: 'ConfigInterfaceResult';
/** If true, video will autostart on load in the scene player */
autostartVideo?: Maybe<Scalars['Boolean']['output']>;
/** If true, video will autostart when loading from play random or play selected */
autostartVideoOnPlaySelected?: Maybe<Scalars['Boolean']['output']>;
/** If true, next scene in playlist will be played at video end by default */
continuePlaylistDefault?: Maybe<Scalars['Boolean']['output']>;
/** Custom CSS */
css?: Maybe<Scalars['String']['output']>;
cssEnabled?: Maybe<Scalars['Boolean']['output']>;
/** Custom Locales */
customLocales?: Maybe<Scalars['String']['output']>;
customLocalesEnabled?: Maybe<Scalars['Boolean']['output']>;
/** Fields are true if creating via dropdown menus are disabled */
disableDropdownCreate: ConfigDisableDropdownCreate;
/** Funscript Time Offset */
funscriptOffset?: Maybe<Scalars['Int']['output']>;
/** Handy Connection Key */
handyKey?: Maybe<Scalars['String']['output']>;
imageLightbox: ConfigImageLightboxResult;
/** Custom Javascript */
javascript?: Maybe<Scalars['String']['output']>;
javascriptEnabled?: Maybe<Scalars['Boolean']['output']>;
/** Interface language */
language?: Maybe<Scalars['String']['output']>;
/** Maximum duration (in seconds) in which a scene video will loop in the scene player */
maximumLoopDuration?: Maybe<Scalars['Int']['output']>;
/** Ordered list of items that should be shown in the menu */
menuItems?: Maybe<Array<Scalars['String']['output']>>;
/** True if we should not auto-open a browser window on startup */
noBrowser?: Maybe<Scalars['Boolean']['output']>;
/** True if we should send desktop notifications */
notificationsEnabled?: Maybe<Scalars['Boolean']['output']>;
/** Show scene scrubber by default */
showScrubber?: Maybe<Scalars['Boolean']['output']>;
/** If true, studio overlays will be shown as text instead of logo images */
showStudioAsText?: Maybe<Scalars['Boolean']['output']>;
/** Enable sound on mouseover previews */
soundOnPreview?: Maybe<Scalars['Boolean']['output']>;
/** Whether to use Stash Hosted Funscript */
useStashHostedFunscript?: Maybe<Scalars['Boolean']['output']>;
/** Wall playback type */
wallPlayback?: Maybe<Scalars['String']['output']>;
/** Show title and tags in wall view */
wallShowTitle?: Maybe<Scalars['Boolean']['output']>;
};
/** All configuration settings */
export type ConfigResult = {
__typename?: 'ConfigResult';
defaults: ConfigDefaultSettingsResult;
dlna: ConfigDlnaResult;
general: ConfigGeneralResult;
interface: ConfigInterfaceResult;
plugins: Scalars['PluginConfigMap']['output'];
scraping: ConfigScrapingResult;
ui: Scalars['Map']['output'];
};
/** All configuration settings */
export type ConfigResultPluginsArgs = {
include?: InputMaybe<Array<Scalars['ID']['input']>>;
};
export type ConfigScrapingInput = {
/** Tags blacklist during scraping */
excludeTagPatterns?: InputMaybe<Array<Scalars['String']['input']>>;
/** Scraper CDP path. Path to chrome executable or remote address */
scraperCDPPath?: InputMaybe<Scalars['String']['input']>;
/** Whether the scraper should check for invalid certificates */
scraperCertCheck?: InputMaybe<Scalars['Boolean']['input']>;
/** Scraper user agent string */
scraperUserAgent?: InputMaybe<Scalars['String']['input']>;
};
export type ConfigScrapingResult = {
__typename?: 'ConfigScrapingResult';
/** Tags blacklist during scraping */
excludeTagPatterns: Array<Scalars['String']['output']>;
/** Scraper CDP path. Path to chrome executable or remote address */
scraperCDPPath?: Maybe<Scalars['String']['output']>;
/** Whether the scraper should check for invalid certificates */
scraperCertCheck: Scalars['Boolean']['output'];
/** Scraper user agent string */
scraperUserAgent?: Maybe<Scalars['String']['output']>;
};
export declare enum CriterionModifier {
/** >= AND <= */
Between = "BETWEEN",
/** = */
Equals = "EQUALS",
Excludes = "EXCLUDES",
/** > */
GreaterThan = "GREATER_THAN",
Includes = "INCLUDES",
/** INCLUDES ALL */
IncludesAll = "INCLUDES_ALL",
/** IS NULL */
IsNull = "IS_NULL",
/** < */
LessThan = "LESS_THAN",
/** MATCHES REGEX */
MatchesRegex = "MATCHES_REGEX",
/** < OR > */
NotBetween = "NOT_BETWEEN",
/** != */
NotEquals = "NOT_EQUALS",
/** NOT MATCHES REGEX */
NotMatchesRegex = "NOT_MATCHES_REGEX",
/** IS NOT NULL */
NotNull = "NOT_NULL"
}
export type CustomFieldCriterionInput = {
field: Scalars['String']['input'];
modifier: CriterionModifier;
value?: InputMaybe<Array<Scalars['Any']['input']>>;
};
export type CustomFieldsInput = {
/** If populated, the entire custom fields map will be replaced with this value */
full?: InputMaybe<Scalars['Map']['input']>;
/** If populated, only the keys in this map will be updated */
partial?: InputMaybe<Scalars['Map']['input']>;
};
export type Dlnaip = {
__typename?: 'DLNAIP';
ipAddress: Scalars['String']['output'];
/** Time until IP will be no longer allowed/disallowed */
until?: Maybe<Scalars['Time']['output']>;
};
export type DlnaStatus = {
__typename?: 'DLNAStatus';
allowedIPAddresses: Array<Dlnaip>;
recentIPAddresses: Array<Scalars['String']['output']>;
running: Scalars['Boolean']['output'];
/** If not currently running, time until it will be started. If running, time until it will be stopped */
until?: Maybe<Scalars['Time']['output']>;
};
export type DateCriterionInput = {
modifier: CriterionModifier;
value: Scalars['String']['input'];
value2?: InputMaybe<Scalars['String']['input']>;
};
export type DestroyFilterInput = {
id: Scalars['ID']['input'];
};
/** Directory structure of a path */
export type Directory = {
__typename?: 'Directory';
directories: Array<Scalars['String']['output']>;
parent?: Maybe<Scalars['String']['output']>;
path: Scalars['String']['output'];
};
export type DisableDlnaInput = {
/** Duration to enable, in minutes. 0 or null for indefinite. */
duration?: InputMaybe<Scalars['Int']['input']>;
};
export type EnableDlnaInput = {
/** Duration to enable, in minutes. 0 or null for indefinite. */
duration?: InputMaybe<Scalars['Int']['input']>;
};
export type ExportObjectTypeInput = {
all?: InputMaybe<Scalars['Boolean']['input']>;
ids?: InputMaybe<Array<Scalars['String']['input']>>;
};
export type ExportObjectsInput = {
galleries?: InputMaybe<ExportObjectTypeInput>;
groups?: InputMaybe<ExportObjectTypeInput>;
images?: InputMaybe<ExportObjectTypeInput>;
includeDependencies?: InputMaybe<Scalars['Boolean']['input']>;
movies?: InputMaybe<ExportObjectTypeInput>;
performers?: InputMaybe<ExportObjectTypeInput>;
scenes?: InputMaybe<ExportObjectTypeInput>;
studios?: InputMaybe<ExportObjectTypeInput>;
tags?: InputMaybe<ExportObjectTypeInput>;
};
export type FileSetFingerprintsInput = {
/** only supplied fingerprint types will be modified */
fingerprints: Array<SetFingerprintsInput>;
id: Scalars['ID']['input'];
};
export declare enum FilterMode {
Galleries = "GALLERIES",
Groups = "GROUPS",
Images = "IMAGES",
Movies = "MOVIES",
Performers = "PERFORMERS",
Scenes = "SCENES",
SceneMarkers = "SCENE_MARKERS",
Studios = "STUDIOS",
Tags = "TAGS"
}
export type FindFilterType = {
direction?: InputMaybe<SortDirectionEnum>;
page?: InputMaybe<Scalars['Int']['input']>;
/** use per_page = -1 to indicate all results. Defaults to 25. */
per_page?: InputMaybe<Scalars['Int']['input']>;
q?: InputMaybe<Scalars['String']['input']>;
sort?: InputMaybe<Scalars['String']['input']>;
};
export type FindGalleriesResultType = {
__typename?: 'FindGalleriesResultType';
count: Scalars['Int']['output'];
galleries: Array<Gallery>;
};
export type FindGalleryChaptersResultType = {
__typename?: 'FindGalleryChaptersResultType';
chapters: Array<GalleryChapter>;
count: Scalars['Int']['output'];
};
export type FindGroupsResultType = {
__typename?: 'FindGroupsResultType';
count: Scalars['Int']['output'];
groups: Array<Group>;
};
export type FindImagesResultType = {
__typename?: 'FindImagesResultType';
count: Scalars['Int']['output'];
/** Total file size in bytes */
filesize: Scalars['Float']['output'];
images: Array<Image>;
/** Total megapixels of the images */
megapixels: Scalars['Float']['output'];
};
export type FindJobInput = {
id: Scalars['ID']['input'];
};
export type FindMoviesResultType = {
__typename?: 'FindMoviesResultType';
count: Scalars['Int']['output'];
movies: Array<Movie>;
};
export type FindPerformersResultType = {
__typename?: 'FindPerformersResultType';
count: Scalars['Int']['output'];
performers: Array<Performer>;
};
export type FindSceneMarkersResultType = {
__typename?: 'FindSceneMarkersResultType';
count: Scalars['Int']['output'];
scene_markers: Array<SceneMarker>;
};
export type FindScenesResultType = {
__typename?: 'FindScenesResultType';
count: Scalars['Int']['output'];
/** Total duration in seconds */
duration: Scalars['Float']['output'];
/** Total file size in bytes */
filesize: Scalars['Float']['output'];
scenes: Array<Scene>;
};
export type FindStudiosResultType = {
__typename?: 'FindStudiosResultType';
count: Scalars['Int']['output'];
studios: Array<Studio>;
};
export type FindTagsResultType = {
__typename?: 'FindTagsResultType';
count: Scalars['Int']['output'];
tags: Array<Tag>;
};
export type Fingerprint = {
__typename?: 'Fingerprint';
type: Scalars['String']['output'];
value: Scalars['String']['output'];
};
export type FloatCriterionInput = {
modifier: CriterionModifier;
value: Scalars['Float']['input'];
value2?: InputMaybe<Scalars['Float']['input']>;
};
export type Folder = {
__typename?: 'Folder';
created_at: Scalars['Time']['output'];
id: Scalars['ID']['output'];
mod_time: Scalars['Time']['output'];
parent_folder_id?: Maybe<Scalars['ID']['output']>;
path: Scalars['String']['output'];
updated_at: Scalars['Time']['output'];
zip_file_id?: Maybe<Scalars['ID']['output']>;
};
/** Gallery type */
export type Gallery = {
__typename?: 'Gallery';
chapters: Array<GalleryChapter>;
code?: Maybe<Scalars['String']['output']>;
cover?: Maybe<Image>;
created_at: Scalars['Time']['output'];
date?: Maybe<Scalars['String']['output']>;
details?: Maybe<Scalars['String']['output']>;
files: Array<GalleryFile>;
folder?: Maybe<Folder>;
id: Scalars['ID']['output'];
image: Image;
image_count: Scalars['Int']['output'];
organized: Scalars['Boolean']['output'];
paths: GalleryPathsType;
performers: Array<Performer>;
photographer?: Maybe<Scalars['String']['output']>;
rating100?: Maybe<Scalars['Int']['output']>;
scenes: Array<Scene>;
studio?: Maybe<Studio>;
tags: Array<Tag>;
title?: Maybe<Scalars['String']['output']>;
updated_at: Scalars['Time']['output'];
/** @deprecated Use urls */
url?: Maybe<Scalars['String']['output']>;
urls: Array<Scalars['String']['output']>;
};
/** Gallery type */
export type GalleryImageArgs = {
index: Scalars['Int']['input'];
};
export type GalleryAddInput = {
gallery_id: Scalars['ID']['input'];
image_ids: Array<Scalars['ID']['input']>;
};
export type GalleryChapter = {
__typename?: 'GalleryChapter';
created_at: Scalars['Time']['output'];
gallery: Gallery;
id: Scalars['ID']['output'];
image_index: Scalars['Int']['output'];
title: Scalars['String']['output'];
updated_at: Scalars['Time']['output'];
};
export type GalleryChapterCreateInput = {
gallery_id: Scalars['ID']['input'];
image_index: Scalars['Int']['input'];
title: Scalars['String']['input'];
};
export type GalleryChapterUpdateInput = {
gallery_id?: InputMaybe<Scalars['ID']['input']>;
id: Scalars['ID']['input'];
image_index?: InputMaybe<Scalars['Int']['input']>;
title?: InputMaybe<Scalars['String']['input']>;
};
export type GalleryCreateInput = {
code?: InputMaybe<Scalars['String']['input']>;
date?: InputMaybe<Scalars['String']['input']>;
details?: InputMaybe<Scalars['String']['input']>;
organized?: InputMaybe<Scalars['Boolean']['input']>;
performer_ids?: InputMaybe<Array<Scalars['ID']['input']>>;
photographer?: InputMaybe<Scalars['String']['input']>;
rating100?: InputMaybe<Scalars['Int']['input']>;
scene_ids?: InputMaybe<Array<Scalars['ID']['input']>>;
studio_id?: InputMaybe<Scalars['ID']['input']>;
tag_ids?: InputMaybe<Array<Scalars['ID']['input']>>;
title: Scalars['String']['input'];
url?: InputMaybe<Scalars['String']['input']>;
urls?: InputMaybe<Array<Scalars['String']['input']>>;
};
export type GalleryDestroyInput = {
/**
* If true, then the zip file will be deleted if the gallery is zip-file-based.
* If gallery is folder-based, then any files not associated with other
* galleries will be deleted, along with the folder, if it is not empty.
*/
delete_file?: InputMaybe<Scalars['Boolean']['input']>;
delete_generated?: InputMaybe<Scalars['Boolean']['input']>;
ids: Array<Scalars['ID']['input']>;
};
export type GalleryFile = BaseFile & {
__typename?: 'GalleryFile';
basename: Scalars['String']['output'];
created_at: Scalars['Time']['output'];
fingerprint?: Maybe<Scalars['String']['output']>;
fingerprints: Array<Fingerprint>;
id: Scalars['ID']['output'];
mod_time: Scalars['Time']['output'];
parent_folder_id: Scalars['ID']['output'];
path: Scalars['String']['output'];
size: Scalars['Int64']['output'];
updated_at: Scalars['Time']['output'];
zip_file_id?: Maybe<Scalars['ID']['output']>;
};
export type GalleryFileFingerprintArgs = {
type: Scalars['String']['input'];
};
export type GalleryFilterType = {
AND?: InputMaybe<GalleryFilterType>;
NOT?: InputMaybe<GalleryFilterType>;
OR?: InputMaybe<GalleryFilterType>;
/** Filter by average image resolution */
average_resolution?: InputMaybe<ResolutionCriterionInput>;
/** Filter by file checksum */
checksum?: InputMaybe<StringCriterionInput>;
/** Filter by studio code */
code?: InputMaybe<StringCriterionInput>;
/** Filter by creation time */
created_at?: InputMaybe<TimestampCriterionInput>;
/** Filter by date */
date?: InputMaybe<DateCriterionInput>;
details?: InputMaybe<StringCriterionInput>;
/** Filter by zip-file count */
file_count?: InputMaybe<IntCriterionInput>;
/** Filter to only include galleries that have chapters. `true` or `false` */
has_chapters?: InputMaybe<Scalars['String']['input']>;
id?: InputMaybe<IntCriterionInput>;
/** Filter by number of images in this gallery */
image_count?: InputMaybe<IntCriterionInput>;
/** Filter by related images that meet this criteria */
images_filter?: InputMaybe<ImageFilterType>;
/** Filter to only include galleries missing this property */
is_missing?: InputMaybe<Scalars['String']['input']>;
/** Filter to include/exclude galleries that were created from zip */
is_zip?: InputMaybe<Scalars['Boolean']['input']>;
/** Filter by organized */
organized?: InputMaybe<Scalars['Boolean']['input']>;
/** Filter by path */
path?: InputMaybe<StringCriterionInput>;
/** Filter galleries by performer age at time of gallery */
performer_age?: InputMaybe<IntCriterionInput>;
/** Filter by performer count */
performer_count?: InputMaybe<IntCriterionInput>;
/** Filter galleries that have performers that have been favorited */
performer_favorite?: InputMaybe<Scalars['Boolean']['input']>;
/** Filter to only include galleries with performers with these tags */
performer_tags?: InputMaybe<HierarchicalMultiCriterionInput>;
/** Filter to only include galleries with these performers */
performers?: InputMaybe<MultiCriterionInput>;
/** Filter by related performers that meet this criteria */
performers_filter?: InputMaybe<PerformerFilterType>;
/** Filter by photographer */
photographer?: InputMaybe<StringCriterionInput>;
rating100?: InputMaybe<IntCriterionInput>;
/** Filter to only include galleries with these scenes */
scenes?: InputMaybe<MultiCriterionInput>;
/** Filter by related scenes that meet this criteria */
scenes_filter?: InputMaybe<SceneFilterType>;
/** Filter to only include galleries with this studio */
studios?: InputMaybe<HierarchicalMultiCriterionInput>;
/** Filter by related studios that meet this criteria */
studios_filter?: InputMaybe<StudioFilterType>;
/** Filter by tag count */
tag_count?: InputMaybe<IntCriterionInput>;
/** Filter to only include galleries with these tags */
tags?: InputMaybe<HierarchicalMultiCriterionInput>;
/** Filter by related tags that meet this criteria */
tags_filter?: InputMaybe<TagFilterType>;
title?: InputMaybe<StringCriterionInput>;
/** Filter by last update time */
updated_at?: InputMaybe<TimestampCriterionInput>;
/** Filter by url */
url?: InputMaybe<StringCriterionInput>;
};
export type GalleryPathsType = {
__typename?: 'GalleryPathsType';
cover: Scalars['String']['output'];
preview: Scalars['String']['output'];
};
export type GalleryRemoveInput = {
gallery_id: Scalars['ID']['input'];
image_ids: Array<Scalars['ID']['input']>;
};
export type GalleryResetCoverInput = {
gallery_id: Scalars['ID']['input'];
};
export type GallerySetCoverInput = {
cover_image_id: Scalars['ID']['input'];
gallery_id: Scalars['ID']['input'];
};
export type GalleryUpdateInput = {
clientMutationId?: InputMaybe<Scalars['String']['input']>;
code?: InputMaybe<Scalars['String']['input']>;
date?: InputMaybe<Scalars['String']['input']>;
details?: InputMaybe<Scalars['String']['input']>;
id: Scalars['ID']['input'];
organized?: InputMaybe<Scalars['Boolean']['input']>;
performer_ids?: InputMaybe<Array<Scalars['ID']['input']>>;
photographer?: InputMaybe<Scalars['String']['input']>;
primary_file_id?: InputMaybe<Scalars['ID']['input']>;
rating100?: InputMaybe<Scalars['Int']['input']>;
scene_ids?: InputMaybe<Array<Scalars['ID']['input']>>;
studio_id?: InputMaybe<Scalars['ID']['input']>;
tag_ids?: InputMaybe<Array<Scalars['ID']['input']>>;
title?: InputMaybe<Scalars['String']['input']>;
url?: InputMaybe<Scalars['String']['input']>;
urls?: InputMaybe<Array<Scalars['String']['input']>>;
};
export type GenderCriterionInput = {
modifier: CriterionModifier;
value?: InputMaybe<GenderEnum>;
value_list?: InputMaybe<Array<GenderEnum>>;
};
export declare enum GenderEnum {
Female = "FEMALE",
Intersex = "INTERSEX",
Male = "MALE",
NonBinary = "NON_BINARY",
TransgenderFemale = "TRANSGENDER_FEMALE",
TransgenderMale = "TRANSGENDER_MALE"
}
export type GenerateApiKeyInput = {
clear?: InputMaybe<Scalars['Boolean']['input']>;
};
export type GenerateMetadataInput = {
clipPreviews?: InputMaybe<Scalars['Boolean']['input']>;
covers?: InputMaybe<Scalars['Boolean']['input']>;
/** Generate transcodes even if not required */
forceTranscodes?: InputMaybe<Scalars['Boolean']['input']>;
imagePreviews?: InputMaybe<Scalars['Boolean']['input']>;
imageThumbnails?: InputMaybe<Scalars['Boolean']['input']>;
interactiveHeatmapsSpeeds?: InputMaybe<Scalars['Boolean']['input']>;
/** marker ids to generate for */
markerIDs?: InputMaybe<Array<Scalars['ID']['input']>>;
markerImagePreviews?: InputMaybe<Scalars['Boolean']['input']>;
markerScreenshots?: InputMaybe<Scalars['Boolean']['input']>;
markers?: InputMaybe<Scalars['Boolean']['input']>;
/** overwrite existing media */
overwrite?: InputMaybe<Scalars['Boolean']['input']>;
phashes?: InputMaybe<Scalars['Boolean']['input']>;
previewOptions?: InputMaybe<GeneratePreviewOptionsInput>;
previews?: InputMaybe<Scalars['Boolean']['input']>;
/** scene ids to generate for */
sceneIDs?: InputMaybe<Array<Scalars['ID']['input']>>;
sprites?: InputMaybe<Scalars['Boolean']['input']>;
transcodes?: InputMaybe<Scalars['Boolean']['input']>;
};
export type GenerateMetadataOptions = {
__typename?: 'GenerateMetadataOptions';
clipPreviews?: Maybe<Scalars['Boolean']['output']>;
covers?: Maybe<Scalars['Boolean']['output']>;
imagePreviews?: Maybe<Scalars['Boolean']['output']>;
imageThumbnails?: Maybe<Scalars['Boolean']['output']>;
interactiveHeatmapsSpeeds?: Maybe<Scalars['Boolean']['output']>;
markerImagePreviews?: Maybe<Scalars['Boolean']['output']>;
markerScreenshots?: Maybe<Scalars['Boolean']['output']>;
markers?: Maybe<Scalars['Boolean']['output']>;
phashes?: Maybe<Scalars