// This file is auto-generated by @hey-api/openapi-ts

export type ClientOptions = {
    baseUrl: `${string}://${string}` | (string & {});
};

/**
 * AddFirmwareResponse
 */
export type AddFirmwareResponse = {
    /**
     * Uploaded
     */
    uploaded: number;
    /**
     * Firmware
     */
    firmware: Array<FirmwareSchema>;
};

/**
 * Body_add_collection_api_collections_post
 */
export type BodyAddCollectionApiCollectionsPost = {
    /**
     * Artwork
     */
    artwork?: Blob | File | null;
};

/**
 * Body_add_firmware_api_firmware_post
 */
export type BodyAddFirmwareApiFirmwarePost = {
    /**
     * Files
     */
    files: Array<Blob | File>;
};

/**
 * Body_add_platform_api_platforms_post
 */
export type BodyAddPlatformApiPlatformsPost = {
    /**
     * Fs Slug
     *
     * Platform slug.
     */
    fs_slug: string;
};

/**
 * Body_add_user_api_users_post
 */
export type BodyAddUserApiUsersPost = {
    /**
     * Username
     */
    username: string;
    /**
     * Email
     */
    email: string;
    /**
     * Password
     */
    password: string;
    /**
     * Role
     */
    role: string;
};

/**
 * Body_confirm_download_api_saves__id__downloaded_post
 */
export type BodyConfirmDownloadApiSavesIdDownloadedPost = {
    /**
     * Device Id
     */
    device_id: string;
};

/**
 * Body_create_user_from_invite_api_users_register_post
 */
export type BodyCreateUserFromInviteApiUsersRegisterPost = {
    /**
     * Username
     */
    username: string;
    /**
     * Email
     */
    email: string;
    /**
     * Password
     */
    password: string;
    /**
     * Token
     */
    token: string;
};

/**
 * Body_delete_firmware_api_firmware_delete_post
 */
export type BodyDeleteFirmwareApiFirmwareDeletePost = {
    /**
     * Firmware
     *
     * List of firmware ids to delete from database.
     */
    firmware: Array<number>;
    /**
     * Delete From Fs
     *
     * List of firmware ids to delete from filesystem.
     */
    delete_from_fs?: Array<number>;
};

/**
 * Body_delete_roms_api_roms_delete_post
 */
export type BodyDeleteRomsApiRomsDeletePost = {
    /**
     * Roms
     *
     * List of rom ids to delete from database.
     */
    roms: Array<number>;
    /**
     * Delete From Fs
     *
     * List of rom ids to delete from filesystem.
     */
    delete_from_fs?: Array<number>;
};

/**
 * Body_delete_saves_api_saves_delete_post
 */
export type BodyDeleteSavesApiSavesDeletePost = {
    /**
     * Saves
     *
     * List of save ids to delete from database.
     */
    saves: Array<number>;
};

/**
 * Body_delete_states_api_states_delete_post
 */
export type BodyDeleteStatesApiStatesDeletePost = {
    /**
     * States
     *
     * List of states ids to delete from database.
     */
    states: Array<number>;
};

/**
 * Body_refresh_retro_achievements_api_users__id__ra_refresh_post
 */
export type BodyRefreshRetroAchievementsApiUsersIdRaRefreshPost = {
    /**
     * Incremental
     *
     * Whether to only retrieve RetroAchievements progression incrementally.
     */
    incremental?: boolean;
};

/**
 * Body_request_password_reset_api_forgot_password_post
 */
export type BodyRequestPasswordResetApiForgotPasswordPost = {
    /**
     * Username
     */
    username: string;
};

/**
 * Body_reset_password_api_reset_password_post
 */
export type BodyResetPasswordApiResetPasswordPost = {
    /**
     * Token
     */
    token: string;
    /**
     * New Password
     */
    new_password: string;
};

/**
 * Body_token_api_token_post
 */
export type BodyTokenApiTokenPost = {
    /**
     * Grant Type
     */
    grant_type?: string;
    /**
     * Scope
     */
    scope?: string;
    /**
     * Username
     */
    username?: string | null;
    /**
     * Password
     */
    password?: string | null;
    /**
     * Client Id
     */
    client_id?: string | null;
    /**
     * Client Secret
     */
    client_secret?: string | null;
    /**
     * Refresh Token
     */
    refresh_token?: string | null;
};

/**
 * Body_track_save_api_saves__id__track_post
 */
export type BodyTrackSaveApiSavesIdTrackPost = {
    /**
     * Device Id
     */
    device_id: string;
};

/**
 * Body_untrack_save_api_saves__id__untrack_post
 */
export type BodyUntrackSaveApiSavesIdUntrackPost = {
    /**
     * Device Id
     */
    device_id: string;
};

/**
 * Body_update_collection_api_collections__id__put
 */
export type BodyUpdateCollectionApiCollectionsIdPut = {
    /**
     * Artwork
     */
    artwork?: Blob | File | null;
};

/**
 * Body_update_platform_api_platforms__id__put
 */
export type BodyUpdatePlatformApiPlatformsIdPut = {
    /**
     * Aspect Ratio
     *
     * Cover aspect ratio.
     */
    aspect_ratio?: string | null;
    /**
     * Custom Name
     *
     * Custom platform name.
     */
    custom_name?: string | null;
};

/**
 * Body_update_rom_api_roms__id__put
 */
export type BodyUpdateRomApiRomsIdPut = {
    /**
     * Artwork
     *
     * Custom artwork to set as cover.
     */
    artwork?: Blob | File | null;
};

/**
 * Body_update_rom_user_api_roms__id__props_put
 */
export type BodyUpdateRomUserApiRomsIdPropsPut = {
    /**
     * Update Last Played
     *
     * Whether to update the last played date.
     */
    update_last_played?: boolean;
    /**
     * Remove Last Played
     *
     * Whether to remove the last played date.
     */
    remove_last_played?: boolean;
};

/**
 * BulkOperationResponse
 */
export type BulkOperationResponse = {
    /**
     * Successful Items
     */
    successful_items: number;
    /**
     * Failed Items
     */
    failed_items: number;
    /**
     * Errors
     */
    errors: Array<string>;
};

/**
 * CleanupStats
 */
export type CleanupStats = {
    /**
     * Platforms In Db
     */
    platforms_in_db: number;
    /**
     * Roms In Db
     */
    roms_in_db: number;
    /**
     * Platforms In Fs
     */
    platforms_in_fs: number;
    /**
     * Roms In Fs
     */
    roms_in_fs: number;
    /**
     * Removed Fs Platforms
     */
    removed_fs_platforms: number;
    /**
     * Removed Fs Roms
     */
    removed_fs_roms: number;
};

/**
 * CleanupTaskMeta
 */
export type CleanupTaskMeta = {
    cleanup_stats: CleanupStats | null;
};

/**
 * CleanupTaskStatusResponse
 */
export type CleanupTaskStatusResponse = {
    /**
     * Task Name
     */
    task_name: string;
    /**
     * Task Id
     */
    task_id: string;
    status: JobStatus;
    /**
     * Created At
     */
    created_at: string | null;
    /**
     * Enqueued At
     */
    enqueued_at: string | null;
    /**
     * Started At
     */
    started_at: string | null;
    /**
     * Ended At
     */
    ended_at: string | null;
    /**
     * Task Type
     */
    task_type: 'cleanup';
    meta: CleanupTaskMeta;
};

/**
 * CollectionSchema
 */
export type CollectionSchema = {
    /**
     * Name
     */
    name: string;
    /**
     * Description
     */
    description: string;
    /**
     * Rom Ids
     */
    rom_ids: Array<number>;
    /**
     * Rom Count
     */
    rom_count: number;
    /**
     * Path Cover Small
     */
    path_cover_small: string | null;
    /**
     * Path Cover Large
     */
    path_cover_large: string | null;
    /**
     * Path Covers Small
     */
    path_covers_small: Array<string>;
    /**
     * Path Covers Large
     */
    path_covers_large: Array<string>;
    /**
     * Is Public
     */
    is_public?: boolean;
    /**
     * Is Favorite
     */
    is_favorite?: boolean;
    /**
     * Is Virtual
     */
    is_virtual?: boolean;
    /**
     * Is Smart
     */
    is_smart?: boolean;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
    /**
     * Id
     */
    id: number;
    /**
     * Url Cover
     */
    url_cover: string | null;
    /**
     * User Id
     */
    user_id: number;
    /**
     * Owner Username
     */
    owner_username: string;
};

/**
 * ConfigResponse
 */
export type ConfigResponse = {
    /**
     * Config File Mounted
     */
    CONFIG_FILE_MOUNTED: boolean;
    /**
     * Config File Writable
     */
    CONFIG_FILE_WRITABLE: boolean;
    /**
     * Excluded Platforms
     */
    EXCLUDED_PLATFORMS: Array<string>;
    /**
     * Excluded Single Ext
     */
    EXCLUDED_SINGLE_EXT: Array<string>;
    /**
     * Excluded Single Files
     */
    EXCLUDED_SINGLE_FILES: Array<string>;
    /**
     * Excluded Multi Files
     */
    EXCLUDED_MULTI_FILES: Array<string>;
    /**
     * Excluded Multi Parts Ext
     */
    EXCLUDED_MULTI_PARTS_EXT: Array<string>;
    /**
     * Excluded Multi Parts Files
     */
    EXCLUDED_MULTI_PARTS_FILES: Array<string>;
    /**
     * Platforms Binding
     */
    PLATFORMS_BINDING: {
        [key: string]: string;
    };
    /**
     * Platforms Versions
     */
    PLATFORMS_VERSIONS: {
        [key: string]: string;
    };
    /**
     * Skip Hash Calculation
     */
    SKIP_HASH_CALCULATION: boolean;
    /**
     * Ejs Debug
     */
    EJS_DEBUG: boolean;
    /**
     * Ejs Cache Limit
     */
    EJS_CACHE_LIMIT: number | null;
    /**
     * Ejs Disable Auto Unload
     */
    EJS_DISABLE_AUTO_UNLOAD: boolean;
    /**
     * Ejs Disable Batch Bootup
     */
    EJS_DISABLE_BATCH_BOOTUP: boolean;
    /**
     * Ejs Netplay Enabled
     */
    EJS_NETPLAY_ENABLED: boolean;
    /**
     * Ejs Netplay Ice Servers
     */
    EJS_NETPLAY_ICE_SERVERS: Array<NetplayIceServer>;
    /**
     * Ejs Settings
     */
    EJS_SETTINGS: {
        [key: string]: {
            [key: string]: string;
        };
    };
    /**
     * Ejs Controls
     */
    EJS_CONTROLS: {
        [key: string]: EjsControls;
    };
    /**
     * Scan Metadata Priority
     */
    SCAN_METADATA_PRIORITY: Array<string>;
    /**
     * Scan Artwork Priority
     */
    SCAN_ARTWORK_PRIORITY: Array<string>;
    /**
     * Scan Region Priority
     */
    SCAN_REGION_PRIORITY: Array<string>;
    /**
     * Scan Language Priority
     */
    SCAN_LANGUAGE_PRIORITY: Array<string>;
    /**
     * Scan Media
     */
    SCAN_MEDIA: Array<string>;
};

/**
 * ConversionStats
 */
export type ConversionStats = {
    /**
     * Processed
     */
    processed: number;
    /**
     * Errors
     */
    errors: number;
    /**
     * Total
     */
    total: number;
};

/**
 * ConversionTaskMeta
 */
export type ConversionTaskMeta = {
    conversion_stats: ConversionStats | null;
};

/**
 * ConversionTaskStatusResponse
 */
export type ConversionTaskStatusResponse = {
    /**
     * Task Name
     */
    task_name: string;
    /**
     * Task Id
     */
    task_id: string;
    status: JobStatus;
    /**
     * Created At
     */
    created_at: string | null;
    /**
     * Enqueued At
     */
    enqueued_at: string | null;
    /**
     * Started At
     */
    started_at: string | null;
    /**
     * Ended At
     */
    ended_at: string | null;
    /**
     * Task Type
     */
    task_type: 'conversion';
    meta: ConversionTaskMeta;
};

/**
 * CustomLimitOffsetPage[SimpleRomSchema]
 */
export type CustomLimitOffsetPageSimpleRomSchema = {
    /**
     * Items
     */
    items: Array<SimpleRomSchema>;
    /**
     * Total
     */
    total: number;
    /**
     * Limit
     */
    limit: number;
    /**
     * Offset
     */
    offset: number;
    /**
     * Char Index
     */
    char_index: {
        [key: string]: number;
    };
    /**
     * Rom Id Index
     */
    rom_id_index: Array<number>;
    filter_values: RomFiltersDict;
};

/**
 * DetailedRomSchema
 */
export type DetailedRomSchema = {
    /**
     * Id
     */
    id: number;
    /**
     * Igdb Id
     */
    igdb_id: number | null;
    /**
     * Sgdb Id
     */
    sgdb_id: number | null;
    /**
     * Moby Id
     */
    moby_id: number | null;
    /**
     * Ss Id
     */
    ss_id: number | null;
    /**
     * Ra Id
     */
    ra_id: number | null;
    /**
     * Launchbox Id
     */
    launchbox_id: number | null;
    /**
     * Hasheous Id
     */
    hasheous_id: number | null;
    /**
     * Tgdb Id
     */
    tgdb_id: number | null;
    /**
     * Flashpoint Id
     */
    flashpoint_id: string | null;
    /**
     * Hltb Id
     */
    hltb_id: number | null;
    /**
     * Gamelist Id
     */
    gamelist_id: string | null;
    /**
     * Platform Id
     */
    platform_id: number;
    /**
     * Platform Slug
     */
    platform_slug: string;
    /**
     * Platform Fs Slug
     */
    platform_fs_slug: string;
    /**
     * Platform Custom Name
     */
    platform_custom_name: string | null;
    /**
     * Platform Display Name
     */
    platform_display_name: string;
    /**
     * Fs Name
     */
    fs_name: string;
    /**
     * Fs Name No Tags
     */
    fs_name_no_tags: string;
    /**
     * Fs Name No Ext
     */
    fs_name_no_ext: string;
    /**
     * Fs Extension
     */
    fs_extension: string;
    /**
     * Fs Path
     */
    fs_path: string;
    /**
     * Fs Size Bytes
     */
    fs_size_bytes: number;
    /**
     * Name
     */
    name: string | null;
    /**
     * Slug
     */
    slug: string | null;
    /**
     * Summary
     */
    summary: string | null;
    /**
     * Alternative Names
     */
    alternative_names: Array<string>;
    /**
     * Youtube Video Id
     */
    youtube_video_id: string | null;
    metadatum: RomMetadataSchema;
    igdb_metadata: RomIgdbMetadata | null;
    moby_metadata: RomMobyMetadata | null;
    ss_metadata: RomSsMetadata | null;
    launchbox_metadata: RomLaunchboxMetadata | null;
    hasheous_metadata: RomHasheousMetadata | null;
    flashpoint_metadata: RomFlashpointMetadata | null;
    hltb_metadata: RomHltbMetadata | null;
    gamelist_metadata: RomGamelistMetadata | null;
    manual_metadata: ManualMetadata | null;
    /**
     * Path Cover Small
     */
    path_cover_small: string | null;
    /**
     * Path Cover Large
     */
    path_cover_large: string | null;
    /**
     * Url Cover
     */
    url_cover: string | null;
    /**
     * Has Manual
     */
    has_manual: boolean;
    /**
     * Path Manual
     */
    path_manual: string | null;
    /**
     * Url Manual
     */
    url_manual: string | null;
    /**
     * Is Identifying
     */
    is_identifying?: boolean;
    /**
     * Is Unidentified
     */
    is_unidentified: boolean;
    /**
     * Is Identified
     */
    is_identified: boolean;
    /**
     * Revision
     */
    revision: string | null;
    /**
     * Regions
     */
    regions: Array<string>;
    /**
     * Languages
     */
    languages: Array<string>;
    /**
     * Tags
     */
    tags: Array<string>;
    /**
     * Crc Hash
     */
    crc_hash: string | null;
    /**
     * Md5 Hash
     */
    md5_hash: string | null;
    /**
     * Sha1 Hash
     */
    sha1_hash: string | null;
    /**
     * Ra Hash
     */
    ra_hash: string | null;
    /**
     * Has Simple Single File
     */
    has_simple_single_file: boolean;
    /**
     * Has Nested Single File
     */
    has_nested_single_file: boolean;
    /**
     * Has Multiple Files
     */
    has_multiple_files: boolean;
    /**
     * Files
     */
    files: Array<RomFileSchema>;
    /**
     * Full Path
     */
    full_path: string;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
    /**
     * Missing From Fs
     */
    missing_from_fs: boolean;
    /**
     * Has Notes
     */
    has_notes: boolean;
    /**
     * Siblings
     */
    siblings: Array<SiblingRomSchema>;
    rom_user: RomUserSchema;
    /**
     * Merged Screenshots
     */
    merged_screenshots: Array<string>;
    merged_ra_metadata: RomRaMetadata | null;
    /**
     * User Saves
     */
    user_saves: Array<SaveSchema>;
    /**
     * User States
     */
    user_states: Array<StateSchema>;
    /**
     * User Screenshots
     */
    user_screenshots: Array<ScreenshotSchema>;
    /**
     * User Collections
     */
    user_collections: Array<UserCollectionSchema>;
    /**
     * All User Notes
     */
    all_user_notes: Array<UserNoteSchema>;
};

/**
 * DeviceCreatePayload
 */
export type DeviceCreatePayload = {
    /**
     * Name
     */
    name?: string | null;
    /**
     * Platform
     */
    platform?: string | null;
    /**
     * Client
     */
    client?: string | null;
    /**
     * Client Version
     */
    client_version?: string | null;
    /**
     * Ip Address
     */
    ip_address?: string | null;
    /**
     * Mac Address
     */
    mac_address?: string | null;
    /**
     * Hostname
     */
    hostname?: string | null;
    /**
     * Allow Existing
     */
    allow_existing?: boolean;
    /**
     * Allow Duplicate
     */
    allow_duplicate?: boolean;
    /**
     * Reset Syncs
     */
    reset_syncs?: boolean;
};

/**
 * DeviceCreateResponse
 */
export type DeviceCreateResponse = {
    /**
     * Device Id
     */
    device_id: string;
    /**
     * Name
     */
    name: string | null;
    /**
     * Created At
     */
    created_at: string;
};

/**
 * DeviceSchema
 */
export type DeviceSchema = {
    /**
     * Id
     */
    id: string;
    /**
     * User Id
     */
    user_id: number;
    /**
     * Name
     */
    name: string | null;
    /**
     * Platform
     */
    platform: string | null;
    /**
     * Client
     */
    client: string | null;
    /**
     * Client Version
     */
    client_version: string | null;
    /**
     * Ip Address
     */
    ip_address: string | null;
    /**
     * Mac Address
     */
    mac_address: string | null;
    /**
     * Hostname
     */
    hostname: string | null;
    sync_mode: SyncMode;
    /**
     * Sync Enabled
     */
    sync_enabled: boolean;
    /**
     * Last Seen
     */
    last_seen: string | null;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
};

/**
 * DeviceSyncSchema
 */
export type DeviceSyncSchema = {
    /**
     * Device Id
     */
    device_id: string;
    /**
     * Device Name
     */
    device_name: string | null;
    /**
     * Last Synced At
     */
    last_synced_at: string;
    /**
     * Is Untracked
     */
    is_untracked: boolean;
    /**
     * Is Current
     */
    is_current: boolean;
};

/**
 * DeviceUpdatePayload
 */
export type DeviceUpdatePayload = {
    /**
     * Name
     */
    name?: string | null;
    /**
     * Platform
     */
    platform?: string | null;
    /**
     * Client
     */
    client?: string | null;
    /**
     * Client Version
     */
    client_version?: string | null;
    /**
     * Ip Address
     */
    ip_address?: string | null;
    /**
     * Mac Address
     */
    mac_address?: string | null;
    /**
     * Hostname
     */
    hostname?: string | null;
    /**
     * Sync Enabled
     */
    sync_enabled?: boolean | null;
};

/**
 * EarnedAchievement
 */
export type EarnedAchievement = {
    /**
     * Id
     */
    id: string;
    /**
     * Date
     */
    date: string;
    /**
     * Date Hardcore
     */
    date_hardcore?: string;
};

/**
 * EjsControls
 */
export type EjsControls = {
    /**
     * 0
     */
    _0: {
        [key: string]: EjsControlsButton;
    };
    /**
     * 1
     */
    _1: {
        [key: string]: EjsControlsButton;
    };
    /**
     * 2
     */
    _2: {
        [key: string]: EjsControlsButton;
    };
    /**
     * 3
     */
    _3: {
        [key: string]: EjsControlsButton;
    };
};

/**
 * EjsControlsButton
 */
export type EjsControlsButton = {
    /**
     * Value
     */
    value?: string;
    /**
     * Value2
     */
    value2?: string;
};

/**
 * EmulationDict
 */
export type EmulationDict = {
    /**
     * Disable Emulator Js
     */
    DISABLE_EMULATOR_JS: boolean;
    /**
     * Disable Ruffle Rs
     */
    DISABLE_RUFFLE_RS: boolean;
};

/**
 * FilesystemDict
 */
export type FilesystemDict = {
    /**
     * Fs Platforms
     */
    FS_PLATFORMS: Array<string>;
};

/**
 * FirmwareSchema
 */
export type FirmwareSchema = {
    /**
     * Id
     */
    id: number;
    /**
     * File Name
     */
    file_name: string;
    /**
     * File Name No Tags
     */
    file_name_no_tags: string;
    /**
     * File Name No Ext
     */
    file_name_no_ext: string;
    /**
     * File Extension
     */
    file_extension: string;
    /**
     * File Path
     */
    file_path: string;
    /**
     * File Size Bytes
     */
    file_size_bytes: number;
    /**
     * Full Path
     */
    full_path: string;
    /**
     * Is Verified
     */
    is_verified: boolean;
    /**
     * Crc Hash
     */
    crc_hash: string;
    /**
     * Md5 Hash
     */
    md5_hash: string;
    /**
     * Sha1 Hash
     */
    sha1_hash: string;
    /**
     * Missing From Fs
     */
    missing_from_fs: boolean;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
};

/**
 * FrontendDict
 */
export type FrontendDict = {
    /**
     * Upload Timeout
     */
    UPLOAD_TIMEOUT: number;
    /**
     * Disable Userpass Login
     */
    DISABLE_USERPASS_LOGIN: boolean;
    /**
     * Youtube Base Url
     */
    YOUTUBE_BASE_URL: string;
};

/**
 * GenericTaskMeta
 */
export type GenericTaskMeta = {
    [key: string]: unknown;
};

/**
 * GenericTaskStatusResponse
 */
export type GenericTaskStatusResponse = {
    /**
     * Task Name
     */
    task_name: string;
    /**
     * Task Id
     */
    task_id: string;
    status: JobStatus;
    /**
     * Created At
     */
    created_at: string | null;
    /**
     * Enqueued At
     */
    enqueued_at: string | null;
    /**
     * Started At
     */
    started_at: string | null;
    /**
     * Ended At
     */
    ended_at: string | null;
    /**
     * Task Type
     */
    task_type: 'generic';
    meta: GenericTaskMeta;
};

/**
 * HTTPValidationError
 */
export type HttpValidationError = {
    /**
     * Detail
     */
    detail?: Array<ValidationError>;
};

/**
 * HeartbeatResponse
 */
export type HeartbeatResponse = {
    SYSTEM: SystemDict;
    METADATA_SOURCES: MetadataSourcesDict;
    FILESYSTEM: FilesystemDict;
    EMULATION: EmulationDict;
    FRONTEND: FrontendDict;
    OIDC: OidcDict;
    TASKS: TasksDict;
};

/**
 * IGDBAgeRating
 */
export type IgdbAgeRating = {
    /**
     * Rating
     */
    rating: string;
    /**
     * Category
     */
    category: string;
    /**
     * Rating Cover Url
     */
    rating_cover_url: string;
};

/**
 * IGDBMetadataMultiplayerMode
 */
export type IgdbMetadataMultiplayerMode = {
    /**
     * Campaigncoop
     */
    campaigncoop: boolean;
    /**
     * Dropin
     */
    dropin: boolean;
    /**
     * Lancoop
     */
    lancoop: boolean;
    /**
     * Offlinecoop
     */
    offlinecoop: boolean;
    /**
     * Offlinecoopmax
     */
    offlinecoopmax: number;
    /**
     * Offlinemax
     */
    offlinemax: number;
    /**
     * Onlinecoop
     */
    onlinecoop: number;
    /**
     * Onlinecoopmax
     */
    onlinecoopmax: number;
    /**
     * Onlinemax
     */
    onlinemax: number;
    /**
     * Splitscreen
     */
    splitscreen: boolean;
    /**
     * Splitscreenonline
     */
    splitscreenonline: boolean;
    platform: IgdbMetadataPlatform;
};

/**
 * IGDBMetadataPlatform
 */
export type IgdbMetadataPlatform = {
    /**
     * Igdb Id
     */
    igdb_id: number;
    /**
     * Name
     */
    name: string;
};

/**
 * IGDBRelatedGame
 */
export type IgdbRelatedGame = {
    /**
     * Id
     */
    id: number;
    /**
     * Name
     */
    name: string;
    /**
     * Slug
     */
    slug: string;
    /**
     * Type
     */
    type: string;
    /**
     * Cover Url
     */
    cover_url: string;
};

/**
 * InviteLinkSchema
 */
export type InviteLinkSchema = {
    /**
     * Token
     */
    token: string;
};

/**
 * JobStatus
 *
 * The Status of Job within its lifecycle at any given time.
 */
export type JobStatus = 'queued' | 'finished' | 'failed' | 'started' | 'deferred' | 'scheduled' | 'stopped' | 'canceled';

/**
 * LaunchboxImage
 */
export type LaunchboxImage = {
    /**
     * Url
     */
    url: string;
    /**
     * Type
     */
    type?: string;
    /**
     * Region
     */
    region?: string;
};

/**
 * ManualMetadata
 */
export type ManualMetadata = {
    /**
     * Genres
     */
    genres?: Array<string> | null;
    /**
     * Franchises
     */
    franchises?: Array<string> | null;
    /**
     * Companies
     */
    companies?: Array<string> | null;
    /**
     * Game Modes
     */
    game_modes?: Array<string> | null;
    /**
     * Age Ratings
     */
    age_ratings?: Array<string> | null;
    /**
     * First Release Date
     */
    first_release_date?: number | null;
    /**
     * Youtube Video Id
     */
    youtube_video_id?: string | null;
};

/**
 * MetadataSourcesDict
 */
export type MetadataSourcesDict = {
    /**
     * Any Source Enabled
     */
    ANY_SOURCE_ENABLED: boolean;
    /**
     * Igdb Api Enabled
     */
    IGDB_API_ENABLED: boolean;
    /**
     * Ss Api Enabled
     */
    SS_API_ENABLED: boolean;
    /**
     * Moby Api Enabled
     */
    MOBY_API_ENABLED: boolean;
    /**
     * Steamgriddb Api Enabled
     */
    STEAMGRIDDB_API_ENABLED: boolean;
    /**
     * Ra Api Enabled
     */
    RA_API_ENABLED: boolean;
    /**
     * Launchbox Api Enabled
     */
    LAUNCHBOX_API_ENABLED: boolean;
    /**
     * Hasheous Api Enabled
     */
    HASHEOUS_API_ENABLED: boolean;
    /**
     * Playmatch Api Enabled
     */
    PLAYMATCH_API_ENABLED: boolean;
    /**
     * Tgdb Api Enabled
     */
    TGDB_API_ENABLED: boolean;
    /**
     * Flashpoint Api Enabled
     */
    FLASHPOINT_API_ENABLED: boolean;
    /**
     * Hltb Api Enabled
     */
    HLTB_API_ENABLED: boolean;
};

/**
 * MobyMetadataPlatform
 */
export type MobyMetadataPlatform = {
    /**
     * Moby Id
     */
    moby_id: number;
    /**
     * Name
     */
    name: string;
};

/**
 * NetplayICEServer
 */
export type NetplayIceServer = {
    /**
     * Urls
     */
    urls: string;
    /**
     * Username
     */
    username?: string;
    /**
     * Credential
     */
    credential?: string;
};

/**
 * OIDCDict
 */
export type OidcDict = {
    /**
     * Enabled
     */
    ENABLED: boolean;
    /**
     * Autologin
     */
    AUTOLOGIN: boolean;
    /**
     * Provider
     */
    PROVIDER: string;
};

/**
 * PlatformSchema
 */
export type PlatformSchema = {
    /**
     * Id
     */
    id: number;
    /**
     * Slug
     */
    slug: string;
    /**
     * Fs Slug
     */
    fs_slug: string;
    /**
     * Rom Count
     */
    rom_count: number;
    /**
     * Name
     */
    name: string;
    /**
     * Igdb Slug
     */
    igdb_slug: string | null;
    /**
     * Moby Slug
     */
    moby_slug: string | null;
    /**
     * Hltb Slug
     */
    hltb_slug: string | null;
    /**
     * Custom Name
     */
    custom_name?: string | null;
    /**
     * Igdb Id
     */
    igdb_id?: number | null;
    /**
     * Sgdb Id
     */
    sgdb_id?: number | null;
    /**
     * Moby Id
     */
    moby_id?: number | null;
    /**
     * Launchbox Id
     */
    launchbox_id?: number | null;
    /**
     * Ss Id
     */
    ss_id?: number | null;
    /**
     * Ra Id
     */
    ra_id?: number | null;
    /**
     * Hasheous Id
     */
    hasheous_id?: number | null;
    /**
     * Tgdb Id
     */
    tgdb_id?: number | null;
    /**
     * Flashpoint Id
     */
    flashpoint_id?: number | null;
    /**
     * Category
     */
    category?: string | null;
    /**
     * Generation
     */
    generation?: number | null;
    /**
     * Family Name
     */
    family_name?: string | null;
    /**
     * Family Slug
     */
    family_slug?: string | null;
    /**
     * Url
     */
    url?: string | null;
    /**
     * Url Logo
     */
    url_logo?: string | null;
    /**
     * Firmware
     */
    firmware?: Array<FirmwareSchema>;
    /**
     * Aspect Ratio
     */
    aspect_ratio?: string;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
    /**
     * Fs Size Bytes
     */
    fs_size_bytes: number;
    /**
     * Is Unidentified
     */
    is_unidentified: boolean;
    /**
     * Is Identified
     */
    is_identified: boolean;
    /**
     * Missing From Fs
     */
    missing_from_fs: boolean;
    /**
     * Display Name
     */
    readonly display_name: string;
};

/**
 * RAGameRomAchievement
 */
export type RaGameRomAchievement = {
    /**
     * Ra Id
     */
    ra_id: number | null;
    /**
     * Title
     */
    title: string | null;
    /**
     * Description
     */
    description: string | null;
    /**
     * Points
     */
    points: number | null;
    /**
     * Num Awarded
     */
    num_awarded: number | null;
    /**
     * Num Awarded Hardcore
     */
    num_awarded_hardcore: number | null;
    /**
     * Badge Id
     */
    badge_id: string | null;
    /**
     * Badge Url Lock
     */
    badge_url_lock: string | null;
    /**
     * Badge Path Lock
     */
    badge_path_lock: string | null;
    /**
     * Badge Url
     */
    badge_url: string | null;
    /**
     * Badge Path
     */
    badge_path: string | null;
    /**
     * Display Order
     */
    display_order: number | null;
    /**
     * Type
     */
    type: string | null;
};

/**
 * RAProgression
 */
export type RaProgression = {
    /**
     * Total
     */
    total?: number;
    /**
     * Results
     */
    results?: Array<RaUserGameProgression>;
};

/**
 * RAUserGameProgression
 */
export type RaUserGameProgression = {
    /**
     * Rom Ra Id
     */
    rom_ra_id: number | null;
    /**
     * Max Possible
     */
    max_possible: number | null;
    /**
     * Num Awarded
     */
    num_awarded: number | null;
    /**
     * Num Awarded Hardcore
     */
    num_awarded_hardcore: number | null;
    /**
     * Most Recent Awarded Date
     */
    most_recent_awarded_date?: string | null;
    /**
     * Earned Achievements
     */
    earned_achievements: Array<EarnedAchievement>;
};

/**
 * Role
 */
export type Role = 'viewer' | 'editor' | 'admin';

/**
 * RomFileCategory
 */
export type RomFileCategory = 'game' | 'dlc' | 'hack' | 'manual' | 'patch' | 'update' | 'mod' | 'demo' | 'translation' | 'prototype' | 'cheat';

/**
 * RomFileSchema
 */
export type RomFileSchema = {
    /**
     * Id
     */
    id: number;
    /**
     * Rom Id
     */
    rom_id: number;
    /**
     * File Name
     */
    file_name: string;
    /**
     * File Path
     */
    file_path: string;
    /**
     * File Size Bytes
     */
    file_size_bytes: number;
    /**
     * Full Path
     */
    full_path: string;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
    /**
     * Last Modified
     */
    last_modified: string;
    /**
     * Crc Hash
     */
    crc_hash: string | null;
    /**
     * Md5 Hash
     */
    md5_hash: string | null;
    /**
     * Sha1 Hash
     */
    sha1_hash: string | null;
    /**
     * Ra Hash
     */
    ra_hash: string | null;
    category: RomFileCategory | null;
};

/**
 * RomFiltersDict
 */
export type RomFiltersDict = {
    /**
     * Genres
     */
    genres: Array<string>;
    /**
     * Franchises
     */
    franchises: Array<string>;
    /**
     * Collections
     */
    collections: Array<string>;
    /**
     * Companies
     */
    companies: Array<string>;
    /**
     * Game Modes
     */
    game_modes: Array<string>;
    /**
     * Age Ratings
     */
    age_ratings: Array<string>;
    /**
     * Player Counts
     */
    player_counts: Array<string>;
    /**
     * Regions
     */
    regions: Array<string>;
    /**
     * Languages
     */
    languages: Array<string>;
    /**
     * Platforms
     */
    platforms: Array<number>;
};

/**
 * RomFlashpointMetadata
 */
export type RomFlashpointMetadata = {
    /**
     * Franchises
     */
    franchises?: Array<string>;
    /**
     * Companies
     */
    companies?: Array<string>;
    /**
     * Source
     */
    source?: string | null;
    /**
     * Genres
     */
    genres?: Array<string>;
    /**
     * First Release Date
     */
    first_release_date?: string;
    /**
     * Game Modes
     */
    game_modes?: Array<string>;
    /**
     * Status
     */
    status?: string | null;
    /**
     * Version
     */
    version?: string | null;
    /**
     * Language
     */
    language?: string | null;
    /**
     * Notes
     */
    notes?: string | null;
};

/**
 * RomGamelistMetadata
 */
export type RomGamelistMetadata = {
    /**
     * Box2D Url
     */
    box2d_url?: string | null;
    /**
     * Box2D Back Url
     */
    box2d_back_url?: string | null;
    /**
     * Box3D Url
     */
    box3d_url?: string | null;
    /**
     * Fanart Url
     */
    fanart_url?: string | null;
    /**
     * Image Url
     */
    image_url?: string | null;
    /**
     * Manual Url
     */
    manual_url?: string | null;
    /**
     * Marquee Url
     */
    marquee_url?: string | null;
    /**
     * Miximage Url
     */
    miximage_url?: string | null;
    /**
     * Physical Url
     */
    physical_url?: string | null;
    /**
     * Screenshot Url
     */
    screenshot_url?: string | null;
    /**
     * Thumbnail Url
     */
    thumbnail_url?: string | null;
    /**
     * Title Screen Url
     */
    title_screen_url?: string | null;
    /**
     * Video Url
     */
    video_url?: string | null;
    /**
     * Rating
     */
    rating?: number | null;
    /**
     * First Release Date
     */
    first_release_date?: string | null;
    /**
     * Companies
     */
    companies?: Array<string> | null;
    /**
     * Franchises
     */
    franchises?: Array<string> | null;
    /**
     * Genres
     */
    genres?: Array<string> | null;
    /**
     * Player Count
     */
    player_count?: string | null;
    /**
     * Md5 Hash
     */
    md5_hash?: string | null;
    /**
     * Box3D Path
     */
    box3d_path?: string | null;
    /**
     * Miximage Path
     */
    miximage_path?: string | null;
    /**
     * Physical Path
     */
    physical_path?: string | null;
    /**
     * Marquee Path
     */
    marquee_path?: string | null;
    /**
     * Video Path
     */
    video_path?: string | null;
};

/**
 * RomHLTBMetadata
 */
export type RomHltbMetadata = {
    /**
     * Main Story
     */
    main_story?: number;
    /**
     * Main Story Count
     */
    main_story_count?: number;
    /**
     * Main Plus Extra
     */
    main_plus_extra?: number;
    /**
     * Main Plus Extra Count
     */
    main_plus_extra_count?: number;
    /**
     * Completionist
     */
    completionist?: number;
    /**
     * Completionist Count
     */
    completionist_count?: number;
    /**
     * All Styles
     */
    all_styles?: number;
    /**
     * All Styles Count
     */
    all_styles_count?: number;
    /**
     * Release Year
     */
    release_year?: number;
    /**
     * Review Score
     */
    review_score?: number;
    /**
     * Review Count
     */
    review_count?: number;
    /**
     * Popularity
     */
    popularity?: number;
    /**
     * Completions
     */
    completions?: number;
};

/**
 * RomHasheousMetadata
 */
export type RomHasheousMetadata = {
    /**
     * Tosec Match
     */
    tosec_match?: boolean;
    /**
     * Mame Arcade Match
     */
    mame_arcade_match?: boolean;
    /**
     * Mame Mess Match
     */
    mame_mess_match?: boolean;
    /**
     * Nointro Match
     */
    nointro_match?: boolean;
    /**
     * Redump Match
     */
    redump_match?: boolean;
    /**
     * Whdload Match
     */
    whdload_match?: boolean;
    /**
     * Ra Match
     */
    ra_match?: boolean;
    /**
     * Fbneo Match
     */
    fbneo_match?: boolean;
    /**
     * Puredos Match
     */
    puredos_match?: boolean;
};

/**
 * RomIGDBMetadata
 */
export type RomIgdbMetadata = {
    /**
     * Total Rating
     */
    total_rating?: string | null;
    /**
     * Aggregated Rating
     */
    aggregated_rating?: string | null;
    /**
     * First Release Date
     */
    first_release_date?: number | null;
    /**
     * Youtube Video Id
     */
    youtube_video_id?: string | null;
    /**
     * Genres
     */
    genres?: Array<string>;
    /**
     * Franchises
     */
    franchises?: Array<string>;
    /**
     * Alternative Names
     */
    alternative_names?: Array<string>;
    /**
     * Collections
     */
    collections?: Array<string>;
    /**
     * Companies
     */
    companies?: Array<string>;
    /**
     * Game Modes
     */
    game_modes?: Array<string>;
    /**
     * Age Ratings
     */
    age_ratings?: Array<IgdbAgeRating>;
    /**
     * Platforms
     */
    platforms?: Array<IgdbMetadataPlatform>;
    /**
     * Multiplayer Modes
     */
    multiplayer_modes?: Array<IgdbMetadataMultiplayerMode>;
    /**
     * Player Count
     */
    player_count?: string;
    /**
     * Expansions
     */
    expansions?: Array<IgdbRelatedGame>;
    /**
     * Dlcs
     */
    dlcs?: Array<IgdbRelatedGame>;
    /**
     * Remasters
     */
    remasters?: Array<IgdbRelatedGame>;
    /**
     * Remakes
     */
    remakes?: Array<IgdbRelatedGame>;
    /**
     * Expanded Games
     */
    expanded_games?: Array<IgdbRelatedGame>;
    /**
     * Ports
     */
    ports?: Array<IgdbRelatedGame>;
    /**
     * Similar Games
     */
    similar_games?: Array<IgdbRelatedGame>;
};

/**
 * RomLaunchboxMetadata
 */
export type RomLaunchboxMetadata = {
    /**
     * First Release Date
     */
    first_release_date?: number | null;
    /**
     * Max Players
     */
    max_players?: number;
    /**
     * Release Type
     */
    release_type?: string;
    /**
     * Cooperative
     */
    cooperative?: boolean;
    /**
     * Youtube Video Id
     */
    youtube_video_id?: string;
    /**
     * Community Rating
     */
    community_rating?: number;
    /**
     * Community Rating Count
     */
    community_rating_count?: number;
    /**
     * Wikipedia Url
     */
    wikipedia_url?: string;
    /**
     * Esrb
     */
    esrb?: string;
    /**
     * Genres
     */
    genres?: Array<string>;
    /**
     * Companies
     */
    companies?: Array<string>;
    /**
     * Images
     */
    images?: Array<LaunchboxImage>;
};

/**
 * RomMetadataSchema
 */
export type RomMetadataSchema = {
    /**
     * Rom Id
     */
    rom_id: number;
    /**
     * Genres
     */
    genres: Array<string>;
    /**
     * Franchises
     */
    franchises: Array<string>;
    /**
     * Collections
     */
    collections: Array<string>;
    /**
     * Companies
     */
    companies: Array<string>;
    /**
     * Game Modes
     */
    game_modes: Array<string>;
    /**
     * Age Ratings
     */
    age_ratings: Array<string>;
    /**
     * Player Count
     */
    player_count: string;
    /**
     * First Release Date
     */
    first_release_date: number | null;
    /**
     * Average Rating
     */
    average_rating: number | null;
};

/**
 * RomMobyMetadata
 */
export type RomMobyMetadata = {
    /**
     * Moby Score
     */
    moby_score?: string | null;
    /**
     * Genres
     */
    genres?: Array<string>;
    /**
     * Alternate Titles
     */
    alternate_titles?: Array<string>;
    /**
     * Platforms
     */
    platforms?: Array<MobyMetadataPlatform>;
};

/**
 * RomRAMetadata
 */
export type RomRaMetadata = {
    /**
     * First Release Date
     */
    first_release_date?: number | null;
    /**
     * Genres
     */
    genres?: Array<string>;
    /**
     * Companies
     */
    companies?: Array<string>;
    /**
     * Achievements
     */
    achievements?: Array<RaGameRomAchievement>;
};

/**
 * RomSSMetadata
 */
export type RomSsMetadata = {
    /**
     * Bezel Url
     */
    bezel_url?: string | null;
    /**
     * Box2D Url
     */
    box2d_url?: string | null;
    /**
     * Box2D Side Url
     */
    box2d_side_url?: string | null;
    /**
     * Box2D Back Url
     */
    box2d_back_url?: string | null;
    /**
     * Box3D Url
     */
    box3d_url?: string | null;
    /**
     * Fanart Url
     */
    fanart_url?: string | null;
    /**
     * Fullbox Url
     */
    fullbox_url?: string | null;
    /**
     * Logo Url
     */
    logo_url?: string | null;
    /**
     * Manual Url
     */
    manual_url?: string | null;
    /**
     * Marquee Url
     */
    marquee_url?: string | null;
    /**
     * Miximage Url
     */
    miximage_url?: string | null;
    /**
     * Physical Url
     */
    physical_url?: string | null;
    /**
     * Screenshot Url
     */
    screenshot_url?: string | null;
    /**
     * Steamgrid Url
     */
    steamgrid_url?: string | null;
    /**
     * Title Screen Url
     */
    title_screen_url?: string | null;
    /**
     * Video Url
     */
    video_url?: string | null;
    /**
     * Video Normalized Url
     */
    video_normalized_url?: string | null;
    /**
     * Bezel Path
     */
    bezel_path?: string | null;
    /**
     * Box2D Back Path
     */
    box2d_back_path?: string | null;
    /**
     * Box3D Path
     */
    box3d_path?: string | null;
    /**
     * Fanart Path
     */
    fanart_path?: string | null;
    /**
     * Miximage Path
     */
    miximage_path?: string | null;
    /**
     * Physical Path
     */
    physical_path?: string | null;
    /**
     * Marquee Path
     */
    marquee_path?: string | null;
    /**
     * Logo Path
     */
    logo_path?: string | null;
    /**
     * Video Path
     */
    video_path?: string | null;
    /**
     * Ss Score
     */
    ss_score?: string | null;
    /**
     * First Release Date
     */
    first_release_date?: number | null;
    /**
     * Alternative Names
     */
    alternative_names?: Array<string>;
    /**
     * Companies
     */
    companies?: Array<string>;
    /**
     * Franchises
     */
    franchises?: Array<string>;
    /**
     * Game Modes
     */
    game_modes?: Array<string>;
    /**
     * Genres
     */
    genres?: Array<string>;
    /**
     * Player Count
     */
    player_count?: string;
};

/**
 * RomUserSchema
 */
export type RomUserSchema = {
    /**
     * Id
     */
    id: number;
    /**
     * User Id
     */
    user_id: number;
    /**
     * Rom Id
     */
    rom_id: number;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
    /**
     * Last Played
     */
    last_played: string | null;
    /**
     * Is Main Sibling
     */
    is_main_sibling: boolean;
    /**
     * Backlogged
     */
    backlogged: boolean;
    /**
     * Now Playing
     */
    now_playing: boolean;
    /**
     * Hidden
     */
    hidden: boolean;
    /**
     * Rating
     */
    rating: number;
    /**
     * Difficulty
     */
    difficulty: number;
    /**
     * Completion
     */
    completion: number;
    status: RomUserStatus | null;
};

/**
 * RomUserStatus
 */
export type RomUserStatus = 'incomplete' | 'finished' | 'completed_100' | 'retired' | 'never_playing';

/**
 * RoomsResponse
 */
export type RoomsResponse = {
    /**
     * Room Name
     */
    room_name: string;
    /**
     * Current
     */
    current: number;
    /**
     * Max
     */
    max: number;
    /**
     * Player Name
     */
    player_name: string;
    /**
     * Haspassword
     */
    hasPassword: boolean;
};

/**
 * SGDBResource
 */
export type SgdbResource = {
    /**
     * Thumb
     */
    thumb: string;
    /**
     * Url
     */
    url: string;
    /**
     * Type
     */
    type: string;
};

/**
 * SaveSchema
 */
export type SaveSchema = {
    /**
     * Id
     */
    id: number;
    /**
     * Rom Id
     */
    rom_id: number;
    /**
     * User Id
     */
    user_id: number;
    /**
     * File Name
     */
    file_name: string;
    /**
     * File Name No Tags
     */
    file_name_no_tags: string;
    /**
     * File Name No Ext
     */
    file_name_no_ext: string;
    /**
     * File Extension
     */
    file_extension: string;
    /**
     * File Path
     */
    file_path: string;
    /**
     * File Size Bytes
     */
    file_size_bytes: number;
    /**
     * Full Path
     */
    full_path: string;
    /**
     * Download Path
     */
    download_path: string;
    /**
     * Missing From Fs
     */
    missing_from_fs: boolean;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
    /**
     * Emulator
     */
    emulator: string | null;
    /**
     * Slot
     */
    slot?: string | null;
    /**
     * Content Hash
     */
    content_hash?: string | null;
    screenshot: ScreenshotSchema | null;
    /**
     * Device Syncs
     */
    device_syncs?: Array<DeviceSyncSchema>;
};

/**
 * SaveSummarySchema
 */
export type SaveSummarySchema = {
    /**
     * Total Count
     */
    total_count: number;
    /**
     * Slots
     */
    slots: Array<SlotSummarySchema>;
};

/**
 * ScanStats
 */
export type ScanStats = {
    /**
     * Total Platforms
     */
    total_platforms: number;
    /**
     * Total Roms
     */
    total_roms: number;
    /**
     * Scanned Platforms
     */
    scanned_platforms: number;
    /**
     * New Platforms
     */
    new_platforms: number;
    /**
     * Identified Platforms
     */
    identified_platforms: number;
    /**
     * Scanned Roms
     */
    scanned_roms: number;
    /**
     * New Roms
     */
    new_roms: number;
    /**
     * Identified Roms
     */
    identified_roms: number;
    /**
     * Scanned Firmware
     */
    scanned_firmware: number;
    /**
     * New Firmware
     */
    new_firmware: number;
};

/**
 * ScanTaskMeta
 */
export type ScanTaskMeta = {
    scan_stats: ScanStats | null;
};

/**
 * ScanTaskStatusResponse
 */
export type ScanTaskStatusResponse = {
    /**
     * Task Name
     */
    task_name: string;
    /**
     * Task Id
     */
    task_id: string;
    status: JobStatus;
    /**
     * Created At
     */
    created_at: string | null;
    /**
     * Enqueued At
     */
    enqueued_at: string | null;
    /**
     * Started At
     */
    started_at: string | null;
    /**
     * Ended At
     */
    ended_at: string | null;
    /**
     * Task Type
     */
    task_type: 'scan';
    meta: ScanTaskMeta;
};

/**
 * ScreenshotSchema
 */
export type ScreenshotSchema = {
    /**
     * Id
     */
    id: number;
    /**
     * Rom Id
     */
    rom_id: number;
    /**
     * User Id
     */
    user_id: number;
    /**
     * File Name
     */
    file_name: string;
    /**
     * File Name No Tags
     */
    file_name_no_tags: string;
    /**
     * File Name No Ext
     */
    file_name_no_ext: string;
    /**
     * File Extension
     */
    file_extension: string;
    /**
     * File Path
     */
    file_path: string;
    /**
     * File Size Bytes
     */
    file_size_bytes: number;
    /**
     * Full Path
     */
    full_path: string;
    /**
     * Download Path
     */
    download_path: string;
    /**
     * Missing From Fs
     */
    missing_from_fs: boolean;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
};

/**
 * SearchCoverSchema
 */
export type SearchCoverSchema = {
    /**
     * Name
     */
    name: string;
    /**
     * Resources
     */
    resources: Array<SgdbResource>;
};

/**
 * SearchRomSchema
 */
export type SearchRomSchema = {
    /**
     * Id
     */
    id?: number | null;
    /**
     * Igdb Id
     */
    igdb_id?: number | null;
    /**
     * Moby Id
     */
    moby_id?: number | null;
    /**
     * Ss Id
     */
    ss_id?: number | null;
    /**
     * Sgdb Id
     */
    sgdb_id?: number | null;
    /**
     * Flashpoint Id
     */
    flashpoint_id?: string | null;
    /**
     * Launchbox Id
     */
    launchbox_id?: number | null;
    /**
     * Platform Id
     */
    platform_id: number;
    /**
     * Name
     */
    name: string;
    /**
     * Slug
     */
    slug?: string;
    /**
     * Summary
     */
    summary?: string;
    /**
     * Igdb Url Cover
     */
    igdb_url_cover?: string;
    /**
     * Moby Url Cover
     */
    moby_url_cover?: string;
    /**
     * Ss Url Cover
     */
    ss_url_cover?: string;
    /**
     * Sgdb Url Cover
     */
    sgdb_url_cover?: string;
    /**
     * Flashpoint Url Cover
     */
    flashpoint_url_cover?: string;
    /**
     * Launchbox Url Cover
     */
    launchbox_url_cover?: string;
    /**
     * Is Unidentified
     */
    is_unidentified: boolean;
    /**
     * Is Identified
     */
    is_identified: boolean;
};

/**
 * SiblingRomSchema
 */
export type SiblingRomSchema = {
    /**
     * Id
     */
    id: number;
    /**
     * Name
     */
    name: string | null;
    /**
     * Fs Name No Tags
     */
    fs_name_no_tags: string;
    /**
     * Fs Name No Ext
     */
    fs_name_no_ext: string;
    /**
     * Sort Comparator
     */
    readonly sort_comparator: string;
};

/**
 * SimpleRomSchema
 */
export type SimpleRomSchema = {
    /**
     * Id
     */
    id: number;
    /**
     * Igdb Id
     */
    igdb_id: number | null;
    /**
     * Sgdb Id
     */
    sgdb_id: number | null;
    /**
     * Moby Id
     */
    moby_id: number | null;
    /**
     * Ss Id
     */
    ss_id: number | null;
    /**
     * Ra Id
     */
    ra_id: number | null;
    /**
     * Launchbox Id
     */
    launchbox_id: number | null;
    /**
     * Hasheous Id
     */
    hasheous_id: number | null;
    /**
     * Tgdb Id
     */
    tgdb_id: number | null;
    /**
     * Flashpoint Id
     */
    flashpoint_id: string | null;
    /**
     * Hltb Id
     */
    hltb_id: number | null;
    /**
     * Gamelist Id
     */
    gamelist_id: string | null;
    /**
     * Platform Id
     */
    platform_id: number;
    /**
     * Platform Slug
     */
    platform_slug: string;
    /**
     * Platform Fs Slug
     */
    platform_fs_slug: string;
    /**
     * Platform Custom Name
     */
    platform_custom_name: string | null;
    /**
     * Platform Display Name
     */
    platform_display_name: string;
    /**
     * Fs Name
     */
    fs_name: string;
    /**
     * Fs Name No Tags
     */
    fs_name_no_tags: string;
    /**
     * Fs Name No Ext
     */
    fs_name_no_ext: string;
    /**
     * Fs Extension
     */
    fs_extension: string;
    /**
     * Fs Path
     */
    fs_path: string;
    /**
     * Fs Size Bytes
     */
    fs_size_bytes: number;
    /**
     * Name
     */
    name: string | null;
    /**
     * Slug
     */
    slug: string | null;
    /**
     * Summary
     */
    summary: string | null;
    /**
     * Alternative Names
     */
    alternative_names: Array<string>;
    /**
     * Youtube Video Id
     */
    youtube_video_id: string | null;
    metadatum: RomMetadataSchema;
    igdb_metadata: RomIgdbMetadata | null;
    moby_metadata: RomMobyMetadata | null;
    ss_metadata: RomSsMetadata | null;
    launchbox_metadata: RomLaunchboxMetadata | null;
    hasheous_metadata: RomHasheousMetadata | null;
    flashpoint_metadata: RomFlashpointMetadata | null;
    hltb_metadata: RomHltbMetadata | null;
    gamelist_metadata: RomGamelistMetadata | null;
    manual_metadata: ManualMetadata | null;
    /**
     * Path Cover Small
     */
    path_cover_small: string | null;
    /**
     * Path Cover Large
     */
    path_cover_large: string | null;
    /**
     * Url Cover
     */
    url_cover: string | null;
    /**
     * Has Manual
     */
    has_manual: boolean;
    /**
     * Path Manual
     */
    path_manual: string | null;
    /**
     * Url Manual
     */
    url_manual: string | null;
    /**
     * Is Identifying
     */
    is_identifying?: boolean;
    /**
     * Is Unidentified
     */
    is_unidentified: boolean;
    /**
     * Is Identified
     */
    is_identified: boolean;
    /**
     * Revision
     */
    revision: string | null;
    /**
     * Regions
     */
    regions: Array<string>;
    /**
     * Languages
     */
    languages: Array<string>;
    /**
     * Tags
     */
    tags: Array<string>;
    /**
     * Crc Hash
     */
    crc_hash: string | null;
    /**
     * Md5 Hash
     */
    md5_hash: string | null;
    /**
     * Sha1 Hash
     */
    sha1_hash: string | null;
    /**
     * Ra Hash
     */
    ra_hash: string | null;
    /**
     * Has Simple Single File
     */
    has_simple_single_file: boolean;
    /**
     * Has Nested Single File
     */
    has_nested_single_file: boolean;
    /**
     * Has Multiple Files
     */
    has_multiple_files: boolean;
    /**
     * Files
     */
    files: Array<RomFileSchema>;
    /**
     * Full Path
     */
    full_path: string;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
    /**
     * Missing From Fs
     */
    missing_from_fs: boolean;
    /**
     * Has Notes
     */
    has_notes: boolean;
    /**
     * Siblings
     */
    siblings: Array<SiblingRomSchema>;
    rom_user: RomUserSchema;
    /**
     * Merged Screenshots
     */
    merged_screenshots: Array<string>;
    merged_ra_metadata: RomRaMetadata | null;
};

/**
 * SlotSummarySchema
 */
export type SlotSummarySchema = {
    /**
     * Slot
     */
    slot: string | null;
    /**
     * Count
     */
    count: number;
    latest: SaveSchema;
};

/**
 * SmartCollectionSchema
 */
export type SmartCollectionSchema = {
    /**
     * Name
     */
    name: string;
    /**
     * Description
     */
    description?: string;
    /**
     * Rom Ids
     */
    rom_ids: Array<number>;
    /**
     * Rom Count
     */
    rom_count: number;
    /**
     * Path Cover Small
     */
    path_cover_small: string | null;
    /**
     * Path Cover Large
     */
    path_cover_large: string | null;
    /**
     * Path Covers Small
     */
    path_covers_small: Array<string>;
    /**
     * Path Covers Large
     */
    path_covers_large: Array<string>;
    /**
     * Is Public
     */
    is_public?: boolean;
    /**
     * Is Favorite
     */
    is_favorite?: boolean;
    /**
     * Is Virtual
     */
    is_virtual?: boolean;
    /**
     * Is Smart
     */
    is_smart?: boolean;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
    /**
     * Id
     */
    id: number;
    /**
     * Filter Criteria
     */
    filter_criteria: {
        [key: string]: unknown;
    };
    /**
     * Filter Summary
     */
    filter_summary: string;
    /**
     * User Id
     */
    user_id: number;
    /**
     * Owner Username
     */
    owner_username: string;
};

/**
 * StateSchema
 */
export type StateSchema = {
    /**
     * Id
     */
    id: number;
    /**
     * Rom Id
     */
    rom_id: number;
    /**
     * User Id
     */
    user_id: number;
    /**
     * File Name
     */
    file_name: string;
    /**
     * File Name No Tags
     */
    file_name_no_tags: string;
    /**
     * File Name No Ext
     */
    file_name_no_ext: string;
    /**
     * File Extension
     */
    file_extension: string;
    /**
     * File Path
     */
    file_path: string;
    /**
     * File Size Bytes
     */
    file_size_bytes: number;
    /**
     * Full Path
     */
    full_path: string;
    /**
     * Download Path
     */
    download_path: string;
    /**
     * Missing From Fs
     */
    missing_from_fs: boolean;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
    /**
     * Emulator
     */
    emulator: string | null;
    screenshot: ScreenshotSchema | null;
};

/**
 * StatsReturn
 */
export type StatsReturn = {
    /**
     * Platforms
     */
    PLATFORMS: number;
    /**
     * Roms
     */
    ROMS: number;
    /**
     * Saves
     */
    SAVES: number;
    /**
     * States
     */
    STATES: number;
    /**
     * Screenshots
     */
    SCREENSHOTS: number;
    /**
     * Total Filesize Bytes
     */
    TOTAL_FILESIZE_BYTES: number;
};

/**
 * SyncMode
 */
export type SyncMode = 'api' | 'file_transfer' | 'push_pull';

/**
 * SystemDict
 */
export type SystemDict = {
    /**
     * Version
     */
    VERSION: string;
    /**
     * Show Setup Wizard
     */
    SHOW_SETUP_WIZARD: boolean;
};

/**
 * TaskExecutionResponse
 */
export type TaskExecutionResponse = {
    /**
     * Task Name
     */
    task_name: string;
    /**
     * Task Id
     */
    task_id: string;
    status: JobStatus;
    /**
     * Created At
     */
    created_at: string | null;
    /**
     * Enqueued At
     */
    enqueued_at: string | null;
};

/**
 * TaskInfo
 */
export type TaskInfo = {
    /**
     * Name
     */
    name: string;
    type: TaskType;
    /**
     * Manual Run
     */
    manual_run: boolean;
    /**
     * Title
     */
    title: string;
    /**
     * Description
     */
    description: string;
    /**
     * Enabled
     */
    enabled: boolean;
    /**
     * Cron String
     */
    cron_string: string;
};

/**
 * TaskType
 *
 * Enumeration of task types for categorization and UI display.
 */
export type TaskType = 'scan' | 'conversion' | 'cleanup' | 'update' | 'watcher' | 'generic';

/**
 * TasksDict
 */
export type TasksDict = {
    /**
     * Enable Scheduled Rescan
     */
    ENABLE_SCHEDULED_RESCAN: boolean;
    /**
     * Scheduled Rescan Cron
     */
    SCHEDULED_RESCAN_CRON: string;
    /**
     * Enable Scheduled Update Switch Titledb
     */
    ENABLE_SCHEDULED_UPDATE_SWITCH_TITLEDB: boolean;
    /**
     * Scheduled Update Switch Titledb Cron
     */
    SCHEDULED_UPDATE_SWITCH_TITLEDB_CRON: string;
    /**
     * Enable Scheduled Update Launchbox Metadata
     */
    ENABLE_SCHEDULED_UPDATE_LAUNCHBOX_METADATA: boolean;
    /**
     * Scheduled Update Launchbox Metadata Cron
     */
    SCHEDULED_UPDATE_LAUNCHBOX_METADATA_CRON: string;
    /**
     * Enable Scheduled Convert Images To Webp
     */
    ENABLE_SCHEDULED_CONVERT_IMAGES_TO_WEBP: boolean;
    /**
     * Scheduled Convert Images To Webp Cron
     */
    SCHEDULED_CONVERT_IMAGES_TO_WEBP_CRON: string;
};

/**
 * TinfoilFeedFileSchema
 */
export type TinfoilFeedFileSchema = {
    /**
     * Url
     */
    url: string;
    /**
     * Size
     */
    size: number;
};

/**
 * TinfoilFeedSchema
 */
export type TinfoilFeedSchema = {
    /**
     * Files
     */
    files: Array<TinfoilFeedFileSchema>;
    /**
     * Directories
     */
    directories: Array<string>;
    /**
     * Titledb
     */
    titledb?: {
        [key: string]: {
            [key: string]: unknown;
        };
    };
    /**
     * Success
     */
    success?: string;
    /**
     * Error
     */
    error?: string;
};

/**
 * TokenResponse
 */
export type TokenResponse = {
    /**
     * Access Token
     */
    access_token: string;
    /**
     * Refresh Token
     */
    refresh_token?: string;
    /**
     * Token Type
     */
    token_type: string;
    /**
     * Expires
     */
    expires: number;
};

/**
 * UpdateStats
 */
export type UpdateStats = {
    /**
     * Processed
     */
    processed: number;
    /**
     * Total
     */
    total: number;
};

/**
 * UpdateTaskMeta
 */
export type UpdateTaskMeta = {
    update_stats: UpdateStats | null;
};

/**
 * UpdateTaskStatusResponse
 */
export type UpdateTaskStatusResponse = {
    /**
     * Task Name
     */
    task_name: string;
    /**
     * Task Id
     */
    task_id: string;
    status: JobStatus;
    /**
     * Created At
     */
    created_at: string | null;
    /**
     * Enqueued At
     */
    enqueued_at: string | null;
    /**
     * Started At
     */
    started_at: string | null;
    /**
     * Ended At
     */
    ended_at: string | null;
    /**
     * Task Type
     */
    task_type: 'update';
    meta: UpdateTaskMeta;
};

/**
 * UserCollectionSchema
 */
export type UserCollectionSchema = {
    /**
     * Id
     */
    id: number;
    /**
     * Name
     */
    name: string;
};

/**
 * UserForm
 */
export type UserForm = {
    /**
     * Username
     */
    username?: string | null;
    /**
     * Password
     */
    password?: string | null;
    /**
     * Email
     */
    email?: string | null;
    /**
     * Role
     */
    role?: string | null;
    /**
     * Enabled
     */
    enabled?: boolean | null;
    /**
     * Ra Username
     */
    ra_username?: string | null;
    /**
     * Avatar
     */
    avatar?: Blob | File | null;
    /**
     * Ui Settings
     */
    ui_settings?: string | null;
};

/**
 * UserNoteSchema
 */
export type UserNoteSchema = {
    /**
     * Id
     */
    id: number;
    /**
     * Title
     */
    title: string;
    /**
     * Content
     */
    content: string;
    /**
     * Is Public
     */
    is_public: boolean;
    /**
     * Tags
     */
    tags?: Array<string> | null;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
    /**
     * User Id
     */
    user_id: number;
    /**
     * Username
     */
    username: string;
};

/**
 * UserSchema
 */
export type UserSchema = {
    /**
     * Id
     */
    id: number;
    /**
     * Username
     */
    username: string;
    /**
     * Email
     */
    email: string | null;
    /**
     * Enabled
     */
    enabled: boolean;
    role: Role;
    /**
     * Oauth Scopes
     */
    oauth_scopes: Array<string>;
    /**
     * Avatar Path
     */
    avatar_path: string;
    /**
     * Last Login
     */
    last_login: string | null;
    /**
     * Last Active
     */
    last_active: string | null;
    /**
     * Ra Username
     */
    ra_username?: string | null;
    ra_progression?: RaProgression | null;
    /**
     * Ui Settings
     */
    ui_settings?: {
        [key: string]: unknown;
    } | null;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
};

/**
 * ValidationError
 */
export type ValidationError = {
    /**
     * Location
     */
    loc: Array<string | number>;
    /**
     * Message
     */
    msg: string;
    /**
     * Error Type
     */
    type: string;
};

/**
 * VirtualCollectionSchema
 */
export type VirtualCollectionSchema = {
    /**
     * Name
     */
    name: string;
    /**
     * Description
     */
    description: string;
    /**
     * Rom Ids
     */
    rom_ids: Array<number>;
    /**
     * Rom Count
     */
    rom_count: number;
    /**
     * Path Cover Small
     */
    path_cover_small: string | null;
    /**
     * Path Cover Large
     */
    path_cover_large: string | null;
    /**
     * Path Covers Small
     */
    path_covers_small: Array<string>;
    /**
     * Path Covers Large
     */
    path_covers_large: Array<string>;
    /**
     * Is Public
     */
    is_public?: boolean;
    /**
     * Is Favorite
     */
    is_favorite?: boolean;
    /**
     * Is Virtual
     */
    is_virtual?: boolean;
    /**
     * Is Smart
     */
    is_smart?: boolean;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
    /**
     * Id
     */
    id: string;
    /**
     * Type
     */
    type: string;
};

/**
 * WatcherTaskMeta
 */
export type WatcherTaskMeta = {
    [key: string]: unknown;
};

/**
 * WatcherTaskStatusResponse
 */
export type WatcherTaskStatusResponse = {
    /**
     * Task Name
     */
    task_name: string;
    /**
     * Task Id
     */
    task_id: string;
    status: JobStatus;
    /**
     * Created At
     */
    created_at: string | null;
    /**
     * Enqueued At
     */
    enqueued_at: string | null;
    /**
     * Started At
     */
    started_at: string | null;
    /**
     * Ended At
     */
    ended_at: string | null;
    /**
     * Task Type
     */
    task_type: 'watcher';
    meta: WatcherTaskMeta;
};

/**
 * WebrcadeFeedCategorySchema
 */
export type WebrcadeFeedCategorySchema = {
    /**
     * Title
     */
    title: string;
    /**
     * Longtitle
     */
    longTitle?: string;
    /**
     * Background
     */
    background?: string;
    /**
     * Thumbnail
     */
    thumbnail?: string;
    /**
     * Description
     */
    description?: string;
    /**
     * Items
     */
    items: Array<WebrcadeFeedItemSchema>;
};

/**
 * WebrcadeFeedItemPropsSchema
 */
export type WebrcadeFeedItemPropsSchema = {
    /**
     * Rom
     */
    rom: string;
};

/**
 * WebrcadeFeedItemSchema
 */
export type WebrcadeFeedItemSchema = {
    /**
     * Title
     */
    title: string;
    /**
     * Longtitle
     */
    longTitle?: string;
    /**
     * Description
     */
    description?: string;
    /**
     * Type
     */
    type: string;
    /**
     * Thumbnail
     */
    thumbnail?: string;
    /**
     * Background
     */
    background?: string;
    props: WebrcadeFeedItemPropsSchema;
};

/**
 * WebrcadeFeedSchema
 */
export type WebrcadeFeedSchema = {
    /**
     * Title
     */
    title: string;
    /**
     * Longtitle
     */
    longTitle?: string;
    /**
     * Description
     */
    description?: string;
    /**
     * Thumbnail
     */
    thumbnail?: string;
    /**
     * Background
     */
    background?: string;
    /**
     * Categories
     */
    categories: Array<WebrcadeFeedCategorySchema>;
};

/**
 * CustomLimitOffsetPage[SimpleRomSchema]
 */
export type CustomLimitOffsetPageSimpleRomSchemaWritable = {
    /**
     * Items
     */
    items: Array<SimpleRomSchemaWritable>;
    /**
     * Total
     */
    total: number;
    /**
     * Limit
     */
    limit: number;
    /**
     * Offset
     */
    offset: number;
    /**
     * Char Index
     */
    char_index: {
        [key: string]: number;
    };
    /**
     * Rom Id Index
     */
    rom_id_index: Array<number>;
    filter_values: RomFiltersDict;
};

/**
 * DetailedRomSchema
 */
export type DetailedRomSchemaWritable = {
    /**
     * Id
     */
    id: number;
    /**
     * Igdb Id
     */
    igdb_id: number | null;
    /**
     * Sgdb Id
     */
    sgdb_id: number | null;
    /**
     * Moby Id
     */
    moby_id: number | null;
    /**
     * Ss Id
     */
    ss_id: number | null;
    /**
     * Ra Id
     */
    ra_id: number | null;
    /**
     * Launchbox Id
     */
    launchbox_id: number | null;
    /**
     * Hasheous Id
     */
    hasheous_id: number | null;
    /**
     * Tgdb Id
     */
    tgdb_id: number | null;
    /**
     * Flashpoint Id
     */
    flashpoint_id: string | null;
    /**
     * Hltb Id
     */
    hltb_id: number | null;
    /**
     * Gamelist Id
     */
    gamelist_id: string | null;
    /**
     * Platform Id
     */
    platform_id: number;
    /**
     * Platform Slug
     */
    platform_slug: string;
    /**
     * Platform Fs Slug
     */
    platform_fs_slug: string;
    /**
     * Platform Custom Name
     */
    platform_custom_name: string | null;
    /**
     * Platform Display Name
     */
    platform_display_name: string;
    /**
     * Fs Name
     */
    fs_name: string;
    /**
     * Fs Name No Tags
     */
    fs_name_no_tags: string;
    /**
     * Fs Name No Ext
     */
    fs_name_no_ext: string;
    /**
     * Fs Extension
     */
    fs_extension: string;
    /**
     * Fs Path
     */
    fs_path: string;
    /**
     * Fs Size Bytes
     */
    fs_size_bytes: number;
    /**
     * Name
     */
    name: string | null;
    /**
     * Slug
     */
    slug: string | null;
    /**
     * Summary
     */
    summary: string | null;
    /**
     * Alternative Names
     */
    alternative_names: Array<string>;
    /**
     * Youtube Video Id
     */
    youtube_video_id: string | null;
    metadatum: RomMetadataSchema;
    igdb_metadata: RomIgdbMetadata | null;
    moby_metadata: RomMobyMetadata | null;
    ss_metadata: RomSsMetadata | null;
    launchbox_metadata: RomLaunchboxMetadata | null;
    hasheous_metadata: RomHasheousMetadata | null;
    flashpoint_metadata: RomFlashpointMetadata | null;
    hltb_metadata: RomHltbMetadata | null;
    gamelist_metadata: RomGamelistMetadata | null;
    manual_metadata: ManualMetadata | null;
    /**
     * Path Cover Small
     */
    path_cover_small: string | null;
    /**
     * Path Cover Large
     */
    path_cover_large: string | null;
    /**
     * Url Cover
     */
    url_cover: string | null;
    /**
     * Has Manual
     */
    has_manual: boolean;
    /**
     * Path Manual
     */
    path_manual: string | null;
    /**
     * Url Manual
     */
    url_manual: string | null;
    /**
     * Is Identifying
     */
    is_identifying?: boolean;
    /**
     * Is Unidentified
     */
    is_unidentified: boolean;
    /**
     * Is Identified
     */
    is_identified: boolean;
    /**
     * Revision
     */
    revision: string | null;
    /**
     * Regions
     */
    regions: Array<string>;
    /**
     * Languages
     */
    languages: Array<string>;
    /**
     * Tags
     */
    tags: Array<string>;
    /**
     * Crc Hash
     */
    crc_hash: string | null;
    /**
     * Md5 Hash
     */
    md5_hash: string | null;
    /**
     * Sha1 Hash
     */
    sha1_hash: string | null;
    /**
     * Ra Hash
     */
    ra_hash: string | null;
    /**
     * Has Simple Single File
     */
    has_simple_single_file: boolean;
    /**
     * Has Nested Single File
     */
    has_nested_single_file: boolean;
    /**
     * Has Multiple Files
     */
    has_multiple_files: boolean;
    /**
     * Files
     */
    files: Array<RomFileSchema>;
    /**
     * Full Path
     */
    full_path: string;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
    /**
     * Missing From Fs
     */
    missing_from_fs: boolean;
    /**
     * Has Notes
     */
    has_notes: boolean;
    /**
     * Siblings
     */
    siblings: Array<SiblingRomSchemaWritable>;
    rom_user: RomUserSchema;
    /**
     * Merged Screenshots
     */
    merged_screenshots: Array<string>;
    merged_ra_metadata: RomRaMetadata | null;
    /**
     * User Saves
     */
    user_saves: Array<SaveSchema>;
    /**
     * User States
     */
    user_states: Array<StateSchema>;
    /**
     * User Screenshots
     */
    user_screenshots: Array<ScreenshotSchema>;
    /**
     * User Collections
     */
    user_collections: Array<UserCollectionSchema>;
    /**
     * All User Notes
     */
    all_user_notes: Array<UserNoteSchema>;
};

/**
 * GenericTaskMeta
 */
export type GenericTaskMetaWritable = {
    [key: string]: unknown;
};

/**
 * PlatformSchema
 */
export type PlatformSchemaWritable = {
    /**
     * Id
     */
    id: number;
    /**
     * Slug
     */
    slug: string;
    /**
     * Fs Slug
     */
    fs_slug: string;
    /**
     * Rom Count
     */
    rom_count: number;
    /**
     * Name
     */
    name: string;
    /**
     * Igdb Slug
     */
    igdb_slug: string | null;
    /**
     * Moby Slug
     */
    moby_slug: string | null;
    /**
     * Hltb Slug
     */
    hltb_slug: string | null;
    /**
     * Custom Name
     */
    custom_name?: string | null;
    /**
     * Igdb Id
     */
    igdb_id?: number | null;
    /**
     * Sgdb Id
     */
    sgdb_id?: number | null;
    /**
     * Moby Id
     */
    moby_id?: number | null;
    /**
     * Launchbox Id
     */
    launchbox_id?: number | null;
    /**
     * Ss Id
     */
    ss_id?: number | null;
    /**
     * Ra Id
     */
    ra_id?: number | null;
    /**
     * Hasheous Id
     */
    hasheous_id?: number | null;
    /**
     * Tgdb Id
     */
    tgdb_id?: number | null;
    /**
     * Flashpoint Id
     */
    flashpoint_id?: number | null;
    /**
     * Category
     */
    category?: string | null;
    /**
     * Generation
     */
    generation?: number | null;
    /**
     * Family Name
     */
    family_name?: string | null;
    /**
     * Family Slug
     */
    family_slug?: string | null;
    /**
     * Url
     */
    url?: string | null;
    /**
     * Url Logo
     */
    url_logo?: string | null;
    /**
     * Firmware
     */
    firmware?: Array<FirmwareSchema>;
    /**
     * Aspect Ratio
     */
    aspect_ratio?: string;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
    /**
     * Fs Size Bytes
     */
    fs_size_bytes: number;
    /**
     * Is Unidentified
     */
    is_unidentified: boolean;
    /**
     * Is Identified
     */
    is_identified: boolean;
    /**
     * Missing From Fs
     */
    missing_from_fs: boolean;
};

/**
 * SiblingRomSchema
 */
export type SiblingRomSchemaWritable = {
    /**
     * Id
     */
    id: number;
    /**
     * Name
     */
    name: string | null;
    /**
     * Fs Name No Tags
     */
    fs_name_no_tags: string;
    /**
     * Fs Name No Ext
     */
    fs_name_no_ext: string;
};

/**
 * SimpleRomSchema
 */
export type SimpleRomSchemaWritable = {
    /**
     * Id
     */
    id: number;
    /**
     * Igdb Id
     */
    igdb_id: number | null;
    /**
     * Sgdb Id
     */
    sgdb_id: number | null;
    /**
     * Moby Id
     */
    moby_id: number | null;
    /**
     * Ss Id
     */
    ss_id: number | null;
    /**
     * Ra Id
     */
    ra_id: number | null;
    /**
     * Launchbox Id
     */
    launchbox_id: number | null;
    /**
     * Hasheous Id
     */
    hasheous_id: number | null;
    /**
     * Tgdb Id
     */
    tgdb_id: number | null;
    /**
     * Flashpoint Id
     */
    flashpoint_id: string | null;
    /**
     * Hltb Id
     */
    hltb_id: number | null;
    /**
     * Gamelist Id
     */
    gamelist_id: string | null;
    /**
     * Platform Id
     */
    platform_id: number;
    /**
     * Platform Slug
     */
    platform_slug: string;
    /**
     * Platform Fs Slug
     */
    platform_fs_slug: string;
    /**
     * Platform Custom Name
     */
    platform_custom_name: string | null;
    /**
     * Platform Display Name
     */
    platform_display_name: string;
    /**
     * Fs Name
     */
    fs_name: string;
    /**
     * Fs Name No Tags
     */
    fs_name_no_tags: string;
    /**
     * Fs Name No Ext
     */
    fs_name_no_ext: string;
    /**
     * Fs Extension
     */
    fs_extension: string;
    /**
     * Fs Path
     */
    fs_path: string;
    /**
     * Fs Size Bytes
     */
    fs_size_bytes: number;
    /**
     * Name
     */
    name: string | null;
    /**
     * Slug
     */
    slug: string | null;
    /**
     * Summary
     */
    summary: string | null;
    /**
     * Alternative Names
     */
    alternative_names: Array<string>;
    /**
     * Youtube Video Id
     */
    youtube_video_id: string | null;
    metadatum: RomMetadataSchema;
    igdb_metadata: RomIgdbMetadata | null;
    moby_metadata: RomMobyMetadata | null;
    ss_metadata: RomSsMetadata | null;
    launchbox_metadata: RomLaunchboxMetadata | null;
    hasheous_metadata: RomHasheousMetadata | null;
    flashpoint_metadata: RomFlashpointMetadata | null;
    hltb_metadata: RomHltbMetadata | null;
    gamelist_metadata: RomGamelistMetadata | null;
    manual_metadata: ManualMetadata | null;
    /**
     * Path Cover Small
     */
    path_cover_small: string | null;
    /**
     * Path Cover Large
     */
    path_cover_large: string | null;
    /**
     * Url Cover
     */
    url_cover: string | null;
    /**
     * Has Manual
     */
    has_manual: boolean;
    /**
     * Path Manual
     */
    path_manual: string | null;
    /**
     * Url Manual
     */
    url_manual: string | null;
    /**
     * Is Identifying
     */
    is_identifying?: boolean;
    /**
     * Is Unidentified
     */
    is_unidentified: boolean;
    /**
     * Is Identified
     */
    is_identified: boolean;
    /**
     * Revision
     */
    revision: string | null;
    /**
     * Regions
     */
    regions: Array<string>;
    /**
     * Languages
     */
    languages: Array<string>;
    /**
     * Tags
     */
    tags: Array<string>;
    /**
     * Crc Hash
     */
    crc_hash: string | null;
    /**
     * Md5 Hash
     */
    md5_hash: string | null;
    /**
     * Sha1 Hash
     */
    sha1_hash: string | null;
    /**
     * Ra Hash
     */
    ra_hash: string | null;
    /**
     * Has Simple Single File
     */
    has_simple_single_file: boolean;
    /**
     * Has Nested Single File
     */
    has_nested_single_file: boolean;
    /**
     * Has Multiple Files
     */
    has_multiple_files: boolean;
    /**
     * Files
     */
    files: Array<RomFileSchema>;
    /**
     * Full Path
     */
    full_path: string;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
    /**
     * Missing From Fs
     */
    missing_from_fs: boolean;
    /**
     * Has Notes
     */
    has_notes: boolean;
    /**
     * Siblings
     */
    siblings: Array<SiblingRomSchemaWritable>;
    rom_user: RomUserSchema;
    /**
     * Merged Screenshots
     */
    merged_screenshots: Array<string>;
    merged_ra_metadata: RomRaMetadata | null;
};

/**
 * WatcherTaskMeta
 */
export type WatcherTaskMetaWritable = {
    [key: string]: unknown;
};

export type HeartbeatApiHeartbeatGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/heartbeat';
};

export type HeartbeatApiHeartbeatGetResponses = {
    /**
     * Successful Response
     */
    200: HeartbeatResponse;
};

export type HeartbeatApiHeartbeatGetResponse = HeartbeatApiHeartbeatGetResponses[keyof HeartbeatApiHeartbeatGetResponses];

export type MetadataHeartbeatApiHeartbeatMetadataSourceGetData = {
    body?: never;
    path: {
        /**
         * Source
         */
        source: string;
    };
    query?: never;
    url: '/api/heartbeat/metadata/{source}';
};

export type MetadataHeartbeatApiHeartbeatMetadataSourceGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type MetadataHeartbeatApiHeartbeatMetadataSourceGetError = MetadataHeartbeatApiHeartbeatMetadataSourceGetErrors[keyof MetadataHeartbeatApiHeartbeatMetadataSourceGetErrors];

export type MetadataHeartbeatApiHeartbeatMetadataSourceGetResponses = {
    /**
     * Response Metadata Heartbeat Api Heartbeat Metadata  Source  Get
     *
     * Successful Response
     */
    200: boolean;
};

export type MetadataHeartbeatApiHeartbeatMetadataSourceGetResponse = MetadataHeartbeatApiHeartbeatMetadataSourceGetResponses[keyof MetadataHeartbeatApiHeartbeatMetadataSourceGetResponses];

export type GetSetupLibraryInfoApiSetupLibraryGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/setup/library';
};

export type GetSetupLibraryInfoApiSetupLibraryGetResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type CreateSetupPlatformsApiSetupPlatformsPostData = {
    /**
     * Platform Slugs
     */
    body: Array<string>;
    path?: never;
    query?: never;
    url: '/api/setup/platforms';
};

export type CreateSetupPlatformsApiSetupPlatformsPostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type CreateSetupPlatformsApiSetupPlatformsPostError = CreateSetupPlatformsApiSetupPlatformsPostErrors[keyof CreateSetupPlatformsApiSetupPlatformsPostErrors];

export type CreateSetupPlatformsApiSetupPlatformsPostResponses = {
    /**
     * Successful Response
     */
    201: unknown;
};

export type LoginApiLoginPostData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/login';
};

export type LoginApiLoginPostResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type LogoutApiLogoutPostData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/logout';
};

export type LogoutApiLogoutPostResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type TokenApiTokenPostData = {
    body?: BodyTokenApiTokenPost;
    path?: never;
    query?: never;
    url: '/api/token';
};

export type TokenApiTokenPostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type TokenApiTokenPostError = TokenApiTokenPostErrors[keyof TokenApiTokenPostErrors];

export type TokenApiTokenPostResponses = {
    /**
     * Successful Response
     */
    200: TokenResponse;
};

export type TokenApiTokenPostResponse = TokenApiTokenPostResponses[keyof TokenApiTokenPostResponses];

export type LoginViaOpenidApiLoginOpenidGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/login/openid';
};

export type LoginViaOpenidApiLoginOpenidGetResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type AuthOpenidApiOauthOpenidGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/oauth/openid';
};

export type AuthOpenidApiOauthOpenidGetResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type RequestPasswordResetApiForgotPasswordPostData = {
    body: BodyRequestPasswordResetApiForgotPasswordPost;
    path?: never;
    query?: never;
    url: '/api/forgot-password';
};

export type RequestPasswordResetApiForgotPasswordPostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type RequestPasswordResetApiForgotPasswordPostError = RequestPasswordResetApiForgotPasswordPostErrors[keyof RequestPasswordResetApiForgotPasswordPostErrors];

export type RequestPasswordResetApiForgotPasswordPostResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type ResetPasswordApiResetPasswordPostData = {
    body: BodyResetPasswordApiResetPasswordPost;
    path?: never;
    query?: never;
    url: '/api/reset-password';
};

export type ResetPasswordApiResetPasswordPostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type ResetPasswordApiResetPasswordPostError = ResetPasswordApiResetPasswordPostErrors[keyof ResetPasswordApiResetPasswordPostErrors];

export type ResetPasswordApiResetPasswordPostResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type GetUsersApiUsersGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/users';
};

export type GetUsersApiUsersGetResponses = {
    /**
     * Response Get Users Api Users Get
     *
     * Successful Response
     */
    200: Array<UserSchema>;
};

export type GetUsersApiUsersGetResponse = GetUsersApiUsersGetResponses[keyof GetUsersApiUsersGetResponses];

export type AddUserApiUsersPostData = {
    body: BodyAddUserApiUsersPost;
    path?: never;
    query?: never;
    url: '/api/users';
};

export type AddUserApiUsersPostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type AddUserApiUsersPostError = AddUserApiUsersPostErrors[keyof AddUserApiUsersPostErrors];

export type AddUserApiUsersPostResponses = {
    /**
     * Successful Response
     */
    201: UserSchema;
};

export type AddUserApiUsersPostResponse = AddUserApiUsersPostResponses[keyof AddUserApiUsersPostResponses];

export type CreateInviteLinkApiUsersInviteLinkPostData = {
    body?: never;
    path?: never;
    query: {
        /**
         * Role
         */
        role: string;
    };
    url: '/api/users/invite-link';
};

export type CreateInviteLinkApiUsersInviteLinkPostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type CreateInviteLinkApiUsersInviteLinkPostError = CreateInviteLinkApiUsersInviteLinkPostErrors[keyof CreateInviteLinkApiUsersInviteLinkPostErrors];

export type CreateInviteLinkApiUsersInviteLinkPostResponses = {
    /**
     * Successful Response
     */
    201: InviteLinkSchema;
};

export type CreateInviteLinkApiUsersInviteLinkPostResponse = CreateInviteLinkApiUsersInviteLinkPostResponses[keyof CreateInviteLinkApiUsersInviteLinkPostResponses];

export type CreateUserFromInviteApiUsersRegisterPostData = {
    body: BodyCreateUserFromInviteApiUsersRegisterPost;
    path?: never;
    query?: never;
    url: '/api/users/register';
};

export type CreateUserFromInviteApiUsersRegisterPostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type CreateUserFromInviteApiUsersRegisterPostError = CreateUserFromInviteApiUsersRegisterPostErrors[keyof CreateUserFromInviteApiUsersRegisterPostErrors];

export type CreateUserFromInviteApiUsersRegisterPostResponses = {
    /**
     * Successful Response
     */
    201: UserSchema;
};

export type CreateUserFromInviteApiUsersRegisterPostResponse = CreateUserFromInviteApiUsersRegisterPostResponses[keyof CreateUserFromInviteApiUsersRegisterPostResponses];

export type GetUserIdentifiersApiUsersIdentifiersGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/users/identifiers';
};

export type GetUserIdentifiersApiUsersIdentifiersGetResponses = {
    /**
     * Response Get User Identifiers Api Users Identifiers Get
     *
     * Successful Response
     */
    200: Array<number>;
};

export type GetUserIdentifiersApiUsersIdentifiersGetResponse = GetUserIdentifiersApiUsersIdentifiersGetResponses[keyof GetUserIdentifiersApiUsersIdentifiersGetResponses];

export type GetCurrentUserApiUsersMeGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/users/me';
};

export type GetCurrentUserApiUsersMeGetResponses = {
    /**
     * Response Get Current User Api Users Me Get
     *
     * Successful Response
     */
    200: UserSchema | null;
};

export type GetCurrentUserApiUsersMeGetResponse = GetCurrentUserApiUsersMeGetResponses[keyof GetCurrentUserApiUsersMeGetResponses];

export type DeleteUserApiUsersIdDeleteData = {
    body?: never;
    path: {
        /**
         * Id
         *
         * User internal id.
         */
        id: number;
    };
    query?: never;
    url: '/api/users/{id}';
};

export type DeleteUserApiUsersIdDeleteErrors = {
    /**
     * Bad Request
     */
    400: unknown;
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type DeleteUserApiUsersIdDeleteError = DeleteUserApiUsersIdDeleteErrors[keyof DeleteUserApiUsersIdDeleteErrors];

export type DeleteUserApiUsersIdDeleteResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type GetUserApiUsersIdGetData = {
    body?: never;
    path: {
        /**
         * Id
         */
        id: number;
    };
    query?: never;
    url: '/api/users/{id}';
};

export type GetUserApiUsersIdGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetUserApiUsersIdGetError = GetUserApiUsersIdGetErrors[keyof GetUserApiUsersIdGetErrors];

export type GetUserApiUsersIdGetResponses = {
    /**
     * Successful Response
     */
    200: UserSchema;
};

export type GetUserApiUsersIdGetResponse = GetUserApiUsersIdGetResponses[keyof GetUserApiUsersIdGetResponses];

export type UpdateUserApiUsersIdPutData = {
    body: UserForm;
    path: {
        /**
         * Id
         */
        id: number;
    };
    query?: never;
    url: '/api/users/{id}';
};

export type UpdateUserApiUsersIdPutErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type UpdateUserApiUsersIdPutError = UpdateUserApiUsersIdPutErrors[keyof UpdateUserApiUsersIdPutErrors];

export type UpdateUserApiUsersIdPutResponses = {
    /**
     * Successful Response
     */
    200: UserSchema;
};

export type UpdateUserApiUsersIdPutResponse = UpdateUserApiUsersIdPutResponses[keyof UpdateUserApiUsersIdPutResponses];

export type RefreshRetroAchievementsApiUsersIdRaRefreshPostData = {
    body?: BodyRefreshRetroAchievementsApiUsersIdRaRefreshPost;
    path: {
        /**
         * Id
         *
         * User internal id.
         */
        id: number;
    };
    query?: never;
    url: '/api/users/{id}/ra/refresh';
};

export type RefreshRetroAchievementsApiUsersIdRaRefreshPostErrors = {
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type RefreshRetroAchievementsApiUsersIdRaRefreshPostError = RefreshRetroAchievementsApiUsersIdRaRefreshPostErrors[keyof RefreshRetroAchievementsApiUsersIdRaRefreshPostErrors];

export type RefreshRetroAchievementsApiUsersIdRaRefreshPostResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type GetDevicesApiDevicesGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/devices';
};

export type GetDevicesApiDevicesGetResponses = {
    /**
     * Response Get Devices Api Devices Get
     *
     * Successful Response
     */
    200: Array<DeviceSchema>;
};

export type GetDevicesApiDevicesGetResponse = GetDevicesApiDevicesGetResponses[keyof GetDevicesApiDevicesGetResponses];

export type RegisterDeviceApiDevicesPostData = {
    body: DeviceCreatePayload;
    path?: never;
    query?: never;
    url: '/api/devices';
};

export type RegisterDeviceApiDevicesPostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type RegisterDeviceApiDevicesPostError = RegisterDeviceApiDevicesPostErrors[keyof RegisterDeviceApiDevicesPostErrors];

export type RegisterDeviceApiDevicesPostResponses = {
    /**
     * Successful Response
     */
    200: DeviceCreateResponse;
};

export type RegisterDeviceApiDevicesPostResponse = RegisterDeviceApiDevicesPostResponses[keyof RegisterDeviceApiDevicesPostResponses];

export type DeleteDeviceApiDevicesDeviceIdDeleteData = {
    body?: never;
    path: {
        /**
         * Device Id
         */
        device_id: string;
    };
    query?: never;
    url: '/api/devices/{device_id}';
};

export type DeleteDeviceApiDevicesDeviceIdDeleteErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type DeleteDeviceApiDevicesDeviceIdDeleteError = DeleteDeviceApiDevicesDeviceIdDeleteErrors[keyof DeleteDeviceApiDevicesDeviceIdDeleteErrors];

export type DeleteDeviceApiDevicesDeviceIdDeleteResponses = {
    /**
     * Successful Response
     */
    204: void;
};

export type DeleteDeviceApiDevicesDeviceIdDeleteResponse = DeleteDeviceApiDevicesDeviceIdDeleteResponses[keyof DeleteDeviceApiDevicesDeviceIdDeleteResponses];

export type GetDeviceApiDevicesDeviceIdGetData = {
    body?: never;
    path: {
        /**
         * Device Id
         */
        device_id: string;
    };
    query?: never;
    url: '/api/devices/{device_id}';
};

export type GetDeviceApiDevicesDeviceIdGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetDeviceApiDevicesDeviceIdGetError = GetDeviceApiDevicesDeviceIdGetErrors[keyof GetDeviceApiDevicesDeviceIdGetErrors];

export type GetDeviceApiDevicesDeviceIdGetResponses = {
    /**
     * Successful Response
     */
    200: DeviceSchema;
};

export type GetDeviceApiDevicesDeviceIdGetResponse = GetDeviceApiDevicesDeviceIdGetResponses[keyof GetDeviceApiDevicesDeviceIdGetResponses];

export type UpdateDeviceApiDevicesDeviceIdPutData = {
    body: DeviceUpdatePayload;
    path: {
        /**
         * Device Id
         */
        device_id: string;
    };
    query?: never;
    url: '/api/devices/{device_id}';
};

export type UpdateDeviceApiDevicesDeviceIdPutErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type UpdateDeviceApiDevicesDeviceIdPutError = UpdateDeviceApiDevicesDeviceIdPutErrors[keyof UpdateDeviceApiDevicesDeviceIdPutErrors];

export type UpdateDeviceApiDevicesDeviceIdPutResponses = {
    /**
     * Successful Response
     */
    200: DeviceSchema;
};

export type UpdateDeviceApiDevicesDeviceIdPutResponse = UpdateDeviceApiDevicesDeviceIdPutResponses[keyof UpdateDeviceApiDevicesDeviceIdPutResponses];

export type GetPlatformsApiPlatformsGetData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * Updated After
         *
         * Filter platforms updated after this datetime (ISO 8601 format with timezone information).
         */
        updated_after?: string | null;
    };
    url: '/api/platforms';
};

export type GetPlatformsApiPlatformsGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetPlatformsApiPlatformsGetError = GetPlatformsApiPlatformsGetErrors[keyof GetPlatformsApiPlatformsGetErrors];

export type GetPlatformsApiPlatformsGetResponses = {
    /**
     * Response Get Platforms Api Platforms Get
     *
     * Successful Response
     */
    200: Array<PlatformSchema>;
};

export type GetPlatformsApiPlatformsGetResponse = GetPlatformsApiPlatformsGetResponses[keyof GetPlatformsApiPlatformsGetResponses];

export type AddPlatformApiPlatformsPostData = {
    body: BodyAddPlatformApiPlatformsPost;
    path?: never;
    query?: never;
    url: '/api/platforms';
};

export type AddPlatformApiPlatformsPostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type AddPlatformApiPlatformsPostError = AddPlatformApiPlatformsPostErrors[keyof AddPlatformApiPlatformsPostErrors];

export type AddPlatformApiPlatformsPostResponses = {
    /**
     * Successful Response
     */
    201: PlatformSchema;
};

export type AddPlatformApiPlatformsPostResponse = AddPlatformApiPlatformsPostResponses[keyof AddPlatformApiPlatformsPostResponses];

export type GetPlatformIdentifiersApiPlatformsIdentifiersGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/platforms/identifiers';
};

export type GetPlatformIdentifiersApiPlatformsIdentifiersGetResponses = {
    /**
     * Response Get Platform Identifiers Api Platforms Identifiers Get
     *
     * Successful Response
     */
    200: Array<number>;
};

export type GetPlatformIdentifiersApiPlatformsIdentifiersGetResponse = GetPlatformIdentifiersApiPlatformsIdentifiersGetResponses[keyof GetPlatformIdentifiersApiPlatformsIdentifiersGetResponses];

export type GetSupportedPlatformsEndpointApiPlatformsSupportedGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/platforms/supported';
};

export type GetSupportedPlatformsEndpointApiPlatformsSupportedGetResponses = {
    /**
     * Response Get Supported Platforms Endpoint Api Platforms Supported Get
     *
     * Successful Response
     */
    200: Array<PlatformSchema>;
};

export type GetSupportedPlatformsEndpointApiPlatformsSupportedGetResponse = GetSupportedPlatformsEndpointApiPlatformsSupportedGetResponses[keyof GetSupportedPlatformsEndpointApiPlatformsSupportedGetResponses];

export type DeletePlatformApiPlatformsIdDeleteData = {
    body?: never;
    path: {
        /**
         * Id
         *
         * Platform id.
         */
        id: number;
    };
    query?: never;
    url: '/api/platforms/{id}';
};

export type DeletePlatformApiPlatformsIdDeleteErrors = {
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type DeletePlatformApiPlatformsIdDeleteError = DeletePlatformApiPlatformsIdDeleteErrors[keyof DeletePlatformApiPlatformsIdDeleteErrors];

export type DeletePlatformApiPlatformsIdDeleteResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type GetPlatformApiPlatformsIdGetData = {
    body?: never;
    path: {
        /**
         * Id
         *
         * Platform id.
         */
        id: number;
    };
    query?: never;
    url: '/api/platforms/{id}';
};

export type GetPlatformApiPlatformsIdGetErrors = {
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetPlatformApiPlatformsIdGetError = GetPlatformApiPlatformsIdGetErrors[keyof GetPlatformApiPlatformsIdGetErrors];

export type GetPlatformApiPlatformsIdGetResponses = {
    /**
     * Successful Response
     */
    200: PlatformSchema;
};

export type GetPlatformApiPlatformsIdGetResponse = GetPlatformApiPlatformsIdGetResponses[keyof GetPlatformApiPlatformsIdGetResponses];

export type UpdatePlatformApiPlatformsIdPutData = {
    body?: BodyUpdatePlatformApiPlatformsIdPut;
    path: {
        /**
         * Id
         *
         * Platform id.
         */
        id: number;
    };
    query?: never;
    url: '/api/platforms/{id}';
};

export type UpdatePlatformApiPlatformsIdPutErrors = {
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type UpdatePlatformApiPlatformsIdPutError = UpdatePlatformApiPlatformsIdPutErrors[keyof UpdatePlatformApiPlatformsIdPutErrors];

export type UpdatePlatformApiPlatformsIdPutResponses = {
    /**
     * Successful Response
     */
    200: PlatformSchema;
};

export type UpdatePlatformApiPlatformsIdPutResponse = UpdatePlatformApiPlatformsIdPutResponses[keyof UpdatePlatformApiPlatformsIdPutResponses];

export type GetRomsApiRomsGetData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * With Char Index
         *
         * Whether to get the char index.
         */
        with_char_index?: boolean;
        /**
         * With Filter Values
         *
         * Whether to return filter values.
         */
        with_filter_values?: boolean;
        /**
         * Search Term
         *
         * Search term to filter roms.
         */
        search_term?: string | null;
        /**
         * Platform Ids
         *
         * Platform internal ids. Multiple values are allowed by repeating the parameter, and results that match any of the values will be returned.
         */
        platform_ids?: Array<number> | null;
        /**
         * Collection Id
         *
         * Collection internal id.
         */
        collection_id?: number | null;
        /**
         * Virtual Collection Id
         *
         * Virtual collection internal id.
         */
        virtual_collection_id?: string | null;
        /**
         * Smart Collection Id
         *
         * Smart collection internal id.
         */
        smart_collection_id?: number | null;
        /**
         * Matched
         *
         * Whether the rom matched at least one metadata source.
         */
        matched?: boolean | null;
        /**
         * Favorite
         *
         * Whether the rom is marked as favorite.
         */
        favorite?: boolean | null;
        /**
         * Duplicate
         *
         * Whether the rom is marked as duplicate.
         */
        duplicate?: boolean | null;
        /**
         * Last Played
         *
         * Whether the rom has a last played value for the current user.
         */
        last_played?: boolean | null;
        /**
         * Playable
         *
         * Whether the rom is playable from the browser.
         */
        playable?: boolean | null;
        /**
         * Missing
         *
         * Whether the rom is missing from the filesystem.
         */
        missing?: boolean | null;
        /**
         * Has Ra
         *
         * Whether the rom has RetroAchievements data.
         */
        has_ra?: boolean | null;
        /**
         * Verified
         *
         * Whether the rom is verified by Hasheous.
         */
        verified?: boolean | null;
        /**
         * Group By Meta Id
         *
         * Whether to group roms by metadata ID (IGDB / Moby / ScreenScraper / RetroAchievements / LaunchBox).
         */
        group_by_meta_id?: boolean;
        /**
         * Genres
         *
         * Associated genre. Multiple values are allowed by repeating the parameter, and results that match any of the values will be returned.
         */
        genres?: Array<string> | null;
        /**
         * Franchises
         *
         * Associated franchise. Multiple values are allowed by repeating the parameter, and results that match any of the values will be returned.
         */
        franchises?: Array<string> | null;
        /**
         * Collections
         *
         * Associated collection. Multiple values are allowed by repeating the parameter, and results that match any of the values will be returned.
         */
        collections?: Array<string> | null;
        /**
         * Companies
         *
         * Associated company. Multiple values are allowed by repeating the parameter, and results that match any of the values will be returned.
         */
        companies?: Array<string> | null;
        /**
         * Age Ratings
         *
         * Associated age rating. Multiple values are allowed by repeating the parameter, and results that match any of the values will be returned.
         */
        age_ratings?: Array<string> | null;
        /**
         * Statuses
         *
         * Game status, set by the current user. Multiple values are allowed by repeating the parameter, and results that match any of the values will be returned.
         */
        statuses?: Array<string> | null;
        /**
         * Regions
         *
         * Associated region tag. Multiple values are allowed by repeating the parameter, and results that match any of the values will be returned.
         */
        regions?: Array<string> | null;
        /**
         * Languages
         *
         * Associated language tag. Multiple values are allowed by repeating the parameter, and results that match any of the values will be returned.
         */
        languages?: Array<string> | null;
        /**
         * Player Counts
         *
         * Associated player count. Multiple values are allowed by repeating the parameter, and results that match any of the values will be returned.
         */
        player_counts?: Array<string> | null;
        /**
         * Genres Logic
         *
         * Logic operator for genres filter: 'any' (OR), 'all' (AND) or 'none' (NOT).
         */
        genres_logic?: string;
        /**
         * Franchises Logic
         *
         * Logic operator for franchises filter: 'any' (OR), 'all' (AND) or 'none' (NOT).
         */
        franchises_logic?: string;
        /**
         * Collections Logic
         *
         * Logic operator for collections filter: 'any' (OR), 'all' (AND) or 'none' (NOT).
         */
        collections_logic?: string;
        /**
         * Companies Logic
         *
         * Logic operator for companies filter: 'any' (OR), 'all' (AND) or 'none' (NOT).
         */
        companies_logic?: string;
        /**
         * Age Ratings Logic
         *
         * Logic operator for age ratings filter: 'any' (OR), 'all' (AND) or 'none' (NOT).
         */
        age_ratings_logic?: string;
        /**
         * Regions Logic
         *
         * Logic operator for regions filter: 'any' (OR), 'all' (AND) or 'none' (NOT).
         */
        regions_logic?: string;
        /**
         * Languages Logic
         *
         * Logic operator for languages filter: 'any' (OR), 'all' (AND) or 'none' (NOT).
         */
        languages_logic?: string;
        /**
         * Statuses Logic
         *
         * Logic operator for statuses filter: 'any' (OR), 'all' (AND) or 'none' (NOT).
         */
        statuses_logic?: string;
        /**
         * Player Counts Logic
         *
         * Logic operator for player counts filter: 'any' (OR), 'all' (AND) or 'none' (NOT).
         */
        player_counts_logic?: string;
        /**
         * Order By
         *
         * Field to order results by.
         */
        order_by?: string;
        /**
         * Order Dir
         *
         * Order direction, either 'asc' or 'desc'.
         */
        order_dir?: string;
        /**
         * Updated After
         *
         * Filter roms updated after this datetime (ISO 8601 format with timezone information).
         */
        updated_after?: string | null;
        /**
         * Limit
         *
         * Page size limit
         */
        limit?: number;
        /**
         * Offset
         *
         * Page offset
         */
        offset?: number;
    };
    url: '/api/roms';
};

export type GetRomsApiRomsGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetRomsApiRomsGetError = GetRomsApiRomsGetErrors[keyof GetRomsApiRomsGetErrors];

export type GetRomsApiRomsGetResponses = {
    /**
     * Successful Response
     */
    200: CustomLimitOffsetPageSimpleRomSchema;
};

export type GetRomsApiRomsGetResponse = GetRomsApiRomsGetResponses[keyof GetRomsApiRomsGetResponses];

export type AddRomApiRomsPostData = {
    body?: never;
    headers: {
        /**
         * X-Upload-Platform
         *
         * Platform internal id.
         */
        'x-upload-platform': number;
        /**
         * X-Upload-Filename
         *
         * The name of the file being uploaded.
         */
        'x-upload-filename': string;
    };
    path?: never;
    query?: never;
    url: '/api/roms';
};

export type AddRomApiRomsPostErrors = {
    /**
     * Bad Request
     */
    400: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type AddRomApiRomsPostError = AddRomApiRomsPostErrors[keyof AddRomApiRomsPostErrors];

export type AddRomApiRomsPostResponses = {
    /**
     * Successful Response
     */
    201: unknown;
};

export type GetRomIdentifiersApiRomsIdentifiersGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/roms/identifiers';
};

export type GetRomIdentifiersApiRomsIdentifiersGetResponses = {
    /**
     * Response Get Rom Identifiers Api Roms Identifiers Get
     *
     * Successful Response
     */
    200: Array<number>;
};

export type GetRomIdentifiersApiRomsIdentifiersGetResponse = GetRomIdentifiersApiRomsIdentifiersGetResponses[keyof GetRomIdentifiersApiRomsIdentifiersGetResponses];

export type DownloadRomsApiRomsDownloadGetData = {
    body?: never;
    path?: never;
    query: {
        /**
         * Rom Ids
         *
         * Comma-separated list of ROM IDs to download as a zip file.
         */
        rom_ids: string;
        /**
         * Filename
         *
         * Name for the zip file (optional).
         */
        filename?: string | null;
    };
    url: '/api/roms/download';
};

export type DownloadRomsApiRomsDownloadGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type DownloadRomsApiRomsDownloadGetError = DownloadRomsApiRomsDownloadGetErrors[keyof DownloadRomsApiRomsDownloadGetErrors];

export type DownloadRomsApiRomsDownloadGetResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type GetRomByMetadataProviderApiRomsByMetadataProviderGetData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * Igdb Id
         *
         * IGDB ID to search by
         */
        igdb_id?: number | null;
        /**
         * Moby Id
         *
         * MobyGames ID to search by
         */
        moby_id?: number | null;
        /**
         * Ss Id
         *
         * ScreenScraper ID to search by
         */
        ss_id?: number | null;
        /**
         * Ra Id
         *
         * RetroAchievements ID to search by
         */
        ra_id?: number | null;
        /**
         * Launchbox Id
         *
         * LaunchBox ID to search by
         */
        launchbox_id?: number | null;
        /**
         * Hasheous Id
         *
         * Hasheous ID to search by
         */
        hasheous_id?: number | null;
        /**
         * Tgdb Id
         *
         * TGDB ID to search by
         */
        tgdb_id?: number | null;
        /**
         * Flashpoint Id
         *
         * Flashpoint ID to search by
         */
        flashpoint_id?: string | null;
        /**
         * Hltb Id
         *
         * HLTB ID to search by
         */
        hltb_id?: number | null;
    };
    url: '/api/roms/by-metadata-provider';
};

export type GetRomByMetadataProviderApiRomsByMetadataProviderGetErrors = {
    /**
     * Bad Request
     */
    400: unknown;
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetRomByMetadataProviderApiRomsByMetadataProviderGetError = GetRomByMetadataProviderApiRomsByMetadataProviderGetErrors[keyof GetRomByMetadataProviderApiRomsByMetadataProviderGetErrors];

export type GetRomByMetadataProviderApiRomsByMetadataProviderGetResponses = {
    /**
     * Successful Response
     */
    200: DetailedRomSchema;
};

export type GetRomByMetadataProviderApiRomsByMetadataProviderGetResponse = GetRomByMetadataProviderApiRomsByMetadataProviderGetResponses[keyof GetRomByMetadataProviderApiRomsByMetadataProviderGetResponses];

export type GetRomByHashApiRomsByHashGetData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * Crc Hash
         *
         * CRC hash value
         */
        crc_hash?: string | null;
        /**
         * Md5 Hash
         *
         * MD5 hash value
         */
        md5_hash?: string | null;
        /**
         * Sha1 Hash
         *
         * SHA1 hash value
         */
        sha1_hash?: string | null;
        /**
         * Ra Hash
         *
         * RetroAchievements hash value
         */
        ra_hash?: string | null;
    };
    url: '/api/roms/by-hash';
};

export type GetRomByHashApiRomsByHashGetErrors = {
    /**
     * Bad Request
     */
    400: unknown;
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetRomByHashApiRomsByHashGetError = GetRomByHashApiRomsByHashGetErrors[keyof GetRomByHashApiRomsByHashGetErrors];

export type GetRomByHashApiRomsByHashGetResponses = {
    /**
     * Successful Response
     */
    200: DetailedRomSchema;
};

export type GetRomByHashApiRomsByHashGetResponse = GetRomByHashApiRomsByHashGetResponses[keyof GetRomByHashApiRomsByHashGetResponses];

export type GetRomFiltersApiRomsFiltersGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/roms/filters';
};

export type GetRomFiltersApiRomsFiltersGetResponses = {
    /**
     * Successful Response
     */
    200: RomFiltersDict;
};

export type GetRomFiltersApiRomsFiltersGetResponse = GetRomFiltersApiRomsFiltersGetResponses[keyof GetRomFiltersApiRomsFiltersGetResponses];

export type GetRomApiRomsIdGetData = {
    body?: never;
    path: {
        /**
         * Id
         *
         * Rom internal id.
         */
        id: number;
    };
    query?: never;
    url: '/api/roms/{id}';
};

export type GetRomApiRomsIdGetErrors = {
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetRomApiRomsIdGetError = GetRomApiRomsIdGetErrors[keyof GetRomApiRomsIdGetErrors];

export type GetRomApiRomsIdGetResponses = {
    /**
     * Successful Response
     */
    200: DetailedRomSchema;
};

export type GetRomApiRomsIdGetResponse = GetRomApiRomsIdGetResponses[keyof GetRomApiRomsIdGetResponses];

export type UpdateRomApiRomsIdPutData = {
    body?: BodyUpdateRomApiRomsIdPut;
    path: {
        /**
         * Id
         *
         * Rom internal id.
         */
        id: number;
    };
    query?: {
        /**
         * Remove Cover
         *
         * Whether to remove the cover image for this rom.
         */
        remove_cover?: boolean;
        /**
         * Unmatch Metadata
         *
         * Whether to remove the metadata matches for this game.
         */
        unmatch_metadata?: boolean;
    };
    url: '/api/roms/{id}';
};

export type UpdateRomApiRomsIdPutErrors = {
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type UpdateRomApiRomsIdPutError = UpdateRomApiRomsIdPutErrors[keyof UpdateRomApiRomsIdPutErrors];

export type UpdateRomApiRomsIdPutResponses = {
    /**
     * Successful Response
     */
    200: DetailedRomSchema;
};

export type UpdateRomApiRomsIdPutResponse = UpdateRomApiRomsIdPutResponses[keyof UpdateRomApiRomsIdPutResponses];

export type GetRomContentApiRomsIdContentFileNameGetData = {
    body?: never;
    path: {
        /**
         * Id
         *
         * Rom internal id.
         */
        id: number;
        /**
         * File Name
         *
         * Zip file output name
         */
        file_name: string;
    };
    query?: {
        /**
         * File Ids
         *
         * Comma-separated list of file ids to download for multi-part roms.
         */
        file_ids?: string | null;
    };
    url: '/api/roms/{id}/content/{file_name}';
};

export type GetRomContentApiRomsIdContentFileNameGetErrors = {
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetRomContentApiRomsIdContentFileNameGetError = GetRomContentApiRomsIdContentFileNameGetErrors[keyof GetRomContentApiRomsIdContentFileNameGetErrors];

export type GetRomContentApiRomsIdContentFileNameGetResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type HeadRomContentApiRomsIdContentFileNameHeadData = {
    body?: never;
    path: {
        /**
         * Id
         *
         * Rom internal id.
         */
        id: number;
        /**
         * File Name
         *
         * File name to download
         */
        file_name: string;
    };
    query?: {
        /**
         * File Ids
         *
         * Comma-separated list of file ids to download for multi-part roms.
         */
        file_ids?: string | null;
    };
    url: '/api/roms/{id}/content/{file_name}';
};

export type HeadRomContentApiRomsIdContentFileNameHeadErrors = {
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type HeadRomContentApiRomsIdContentFileNameHeadError = HeadRomContentApiRomsIdContentFileNameHeadErrors[keyof HeadRomContentApiRomsIdContentFileNameHeadErrors];

export type HeadRomContentApiRomsIdContentFileNameHeadResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type DeleteRomManualsApiRomsIdManualsDeleteData = {
    body?: never;
    path: {
        /**
         * Id
         *
         * Rom internal id.
         */
        id: number;
    };
    query?: never;
    url: '/api/roms/{id}/manuals';
};

export type DeleteRomManualsApiRomsIdManualsDeleteErrors = {
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type DeleteRomManualsApiRomsIdManualsDeleteError = DeleteRomManualsApiRomsIdManualsDeleteErrors[keyof DeleteRomManualsApiRomsIdManualsDeleteErrors];

export type DeleteRomManualsApiRomsIdManualsDeleteResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type AddRomManualsApiRomsIdManualsPostData = {
    body?: never;
    headers: {
        /**
         * X-Upload-Filename
         *
         * The name of the file being uploaded.
         */
        'x-upload-filename': string;
    };
    path: {
        /**
         * Id
         *
         * Rom internal id.
         */
        id: number;
    };
    query?: never;
    url: '/api/roms/{id}/manuals';
};

export type AddRomManualsApiRomsIdManualsPostErrors = {
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type AddRomManualsApiRomsIdManualsPostError = AddRomManualsApiRomsIdManualsPostErrors[keyof AddRomManualsApiRomsIdManualsPostErrors];

export type AddRomManualsApiRomsIdManualsPostResponses = {
    /**
     * Successful Response
     */
    201: unknown;
};

export type DeleteRomsApiRomsDeletePostData = {
    body: BodyDeleteRomsApiRomsDeletePost;
    path?: never;
    query?: never;
    url: '/api/roms/delete';
};

export type DeleteRomsApiRomsDeletePostErrors = {
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type DeleteRomsApiRomsDeletePostError = DeleteRomsApiRomsDeletePostErrors[keyof DeleteRomsApiRomsDeletePostErrors];

export type DeleteRomsApiRomsDeletePostResponses = {
    /**
     * Successful Response
     */
    200: BulkOperationResponse;
};

export type DeleteRomsApiRomsDeletePostResponse = DeleteRomsApiRomsDeletePostResponses[keyof DeleteRomsApiRomsDeletePostResponses];

export type UpdateRomUserApiRomsIdPropsPutData = {
    body?: BodyUpdateRomUserApiRomsIdPropsPut;
    path: {
        /**
         * Id
         *
         * Rom internal id.
         */
        id: number;
    };
    query?: never;
    url: '/api/roms/{id}/props';
};

export type UpdateRomUserApiRomsIdPropsPutErrors = {
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type UpdateRomUserApiRomsIdPropsPutError = UpdateRomUserApiRomsIdPropsPutErrors[keyof UpdateRomUserApiRomsIdPropsPutErrors];

export type UpdateRomUserApiRomsIdPropsPutResponses = {
    /**
     * Successful Response
     */
    200: RomUserSchema;
};

export type UpdateRomUserApiRomsIdPropsPutResponse = UpdateRomUserApiRomsIdPropsPutResponses[keyof UpdateRomUserApiRomsIdPropsPutResponses];

export type GetRomfileApiRomsFilesIdGetData = {
    body?: never;
    path: {
        /**
         * Id
         *
         * Rom file internal id.
         */
        id: number;
    };
    query?: never;
    url: '/api/roms/files/{id}';
};

export type GetRomfileApiRomsFilesIdGetErrors = {
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetRomfileApiRomsFilesIdGetError = GetRomfileApiRomsFilesIdGetErrors[keyof GetRomfileApiRomsFilesIdGetErrors];

export type GetRomfileApiRomsFilesIdGetResponses = {
    /**
     * Successful Response
     */
    200: RomFileSchema;
};

export type GetRomfileApiRomsFilesIdGetResponse = GetRomfileApiRomsFilesIdGetResponses[keyof GetRomfileApiRomsFilesIdGetResponses];

export type GetRomfileContentApiRomsfilesIdContentFileNameGetData = {
    body?: never;
    path: {
        /**
         * Id
         *
         * Rom file internal id.
         */
        id: number;
        /**
         * File Name
         *
         * File name to download
         */
        file_name: string;
    };
    query?: never;
    url: '/api/romsfiles/{id}/content/{file_name}';
};

export type GetRomfileContentApiRomsfilesIdContentFileNameGetErrors = {
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetRomfileContentApiRomsfilesIdContentFileNameGetError = GetRomfileContentApiRomsfilesIdContentFileNameGetErrors[keyof GetRomfileContentApiRomsfilesIdContentFileNameGetErrors];

export type GetRomfileContentApiRomsfilesIdContentFileNameGetResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type GetRomNotesApiRomsIdNotesGetData = {
    body?: never;
    path: {
        /**
         * Id
         *
         * Rom internal id.
         */
        id: number;
    };
    query?: {
        /**
         * Public Only
         *
         * Only return public notes
         */
        public_only?: boolean;
        /**
         * Search
         *
         * Search notes by title or content
         */
        search?: string;
        /**
         * Tags
         *
         * Filter by tags
         */
        tags?: Array<string>;
    };
    url: '/api/roms/{id}/notes';
};

export type GetRomNotesApiRomsIdNotesGetErrors = {
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetRomNotesApiRomsIdNotesGetError = GetRomNotesApiRomsIdNotesGetErrors[keyof GetRomNotesApiRomsIdNotesGetErrors];

export type GetRomNotesApiRomsIdNotesGetResponses = {
    /**
     * Response Get Rom Notes Api Roms  Id  Notes Get
     *
     * Successful Response
     */
    200: Array<UserNoteSchema>;
};

export type GetRomNotesApiRomsIdNotesGetResponse = GetRomNotesApiRomsIdNotesGetResponses[keyof GetRomNotesApiRomsIdNotesGetResponses];

export type CreateRomNoteApiRomsIdNotesPostData = {
    /**
     * Note Data
     */
    body: {
        [key: string]: unknown;
    };
    path: {
        /**
         * Id
         *
         * Rom internal id.
         */
        id: number;
    };
    query?: never;
    url: '/api/roms/{id}/notes';
};

export type CreateRomNoteApiRomsIdNotesPostErrors = {
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type CreateRomNoteApiRomsIdNotesPostError = CreateRomNoteApiRomsIdNotesPostErrors[keyof CreateRomNoteApiRomsIdNotesPostErrors];

export type CreateRomNoteApiRomsIdNotesPostResponses = {
    /**
     * Successful Response
     */
    200: UserNoteSchema;
};

export type CreateRomNoteApiRomsIdNotesPostResponse = CreateRomNoteApiRomsIdNotesPostResponses[keyof CreateRomNoteApiRomsIdNotesPostResponses];

export type GetRomNoteIdentifiersApiRomsIdNotesIdentifiersGetData = {
    body?: never;
    path: {
        /**
         * Id
         *
         * Rom internal id.
         */
        id: number;
    };
    query?: never;
    url: '/api/roms/{id}/notes/identifiers';
};

export type GetRomNoteIdentifiersApiRomsIdNotesIdentifiersGetErrors = {
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetRomNoteIdentifiersApiRomsIdNotesIdentifiersGetError = GetRomNoteIdentifiersApiRomsIdNotesIdentifiersGetErrors[keyof GetRomNoteIdentifiersApiRomsIdNotesIdentifiersGetErrors];

export type GetRomNoteIdentifiersApiRomsIdNotesIdentifiersGetResponses = {
    /**
     * Response Get Rom Note Identifiers Api Roms  Id  Notes Identifiers Get
     *
     * Successful Response
     */
    200: Array<number>;
};

export type GetRomNoteIdentifiersApiRomsIdNotesIdentifiersGetResponse = GetRomNoteIdentifiersApiRomsIdNotesIdentifiersGetResponses[keyof GetRomNoteIdentifiersApiRomsIdNotesIdentifiersGetResponses];

export type DeleteRomNoteApiRomsIdNotesNoteIdDeleteData = {
    body?: never;
    path: {
        /**
         * Id
         *
         * Rom internal id.
         */
        id: number;
        /**
         * Note Id
         *
         * Note id.
         */
        note_id: number;
    };
    query?: never;
    url: '/api/roms/{id}/notes/{note_id}';
};

export type DeleteRomNoteApiRomsIdNotesNoteIdDeleteErrors = {
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type DeleteRomNoteApiRomsIdNotesNoteIdDeleteError = DeleteRomNoteApiRomsIdNotesNoteIdDeleteErrors[keyof DeleteRomNoteApiRomsIdNotesNoteIdDeleteErrors];

export type DeleteRomNoteApiRomsIdNotesNoteIdDeleteResponses = {
    /**
     * Response Delete Rom Note Api Roms  Id  Notes  Note Id  Delete
     *
     * Successful Response
     */
    200: {
        [key: string]: unknown;
    };
};

export type DeleteRomNoteApiRomsIdNotesNoteIdDeleteResponse = DeleteRomNoteApiRomsIdNotesNoteIdDeleteResponses[keyof DeleteRomNoteApiRomsIdNotesNoteIdDeleteResponses];

export type UpdateRomNoteApiRomsIdNotesNoteIdPutData = {
    /**
     * Note Data
     */
    body: {
        [key: string]: unknown;
    };
    path: {
        /**
         * Id
         *
         * Rom internal id.
         */
        id: number;
        /**
         * Note Id
         *
         * Note id.
         */
        note_id: number;
    };
    query?: never;
    url: '/api/roms/{id}/notes/{note_id}';
};

export type UpdateRomNoteApiRomsIdNotesNoteIdPutErrors = {
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type UpdateRomNoteApiRomsIdNotesNoteIdPutError = UpdateRomNoteApiRomsIdNotesNoteIdPutErrors[keyof UpdateRomNoteApiRomsIdNotesNoteIdPutErrors];

export type UpdateRomNoteApiRomsIdNotesNoteIdPutResponses = {
    /**
     * Successful Response
     */
    200: UserNoteSchema;
};

export type UpdateRomNoteApiRomsIdNotesNoteIdPutResponse = UpdateRomNoteApiRomsIdNotesNoteIdPutResponses[keyof UpdateRomNoteApiRomsIdNotesNoteIdPutResponses];

export type SearchRomApiSearchRomsGetData = {
    body?: never;
    path?: never;
    query: {
        /**
         * Rom Id
         */
        rom_id: number;
        /**
         * Search Term
         */
        search_term?: string | null;
        /**
         * Search By
         */
        search_by?: string;
    };
    url: '/api/search/roms';
};

export type SearchRomApiSearchRomsGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type SearchRomApiSearchRomsGetError = SearchRomApiSearchRomsGetErrors[keyof SearchRomApiSearchRomsGetErrors];

export type SearchRomApiSearchRomsGetResponses = {
    /**
     * Response Search Rom Api Search Roms Get
     *
     * Successful Response
     */
    200: Array<SearchRomSchema>;
};

export type SearchRomApiSearchRomsGetResponse = SearchRomApiSearchRomsGetResponses[keyof SearchRomApiSearchRomsGetResponses];

export type SearchCoverApiSearchCoverGetData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * Search Term
         */
        search_term?: string;
    };
    url: '/api/search/cover';
};

export type SearchCoverApiSearchCoverGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type SearchCoverApiSearchCoverGetError = SearchCoverApiSearchCoverGetErrors[keyof SearchCoverApiSearchCoverGetErrors];

export type SearchCoverApiSearchCoverGetResponses = {
    /**
     * Response Search Cover Api Search Cover Get
     *
     * Successful Response
     */
    200: Array<SearchCoverSchema>;
};

export type SearchCoverApiSearchCoverGetResponse = SearchCoverApiSearchCoverGetResponses[keyof SearchCoverApiSearchCoverGetResponses];

export type GetSavesApiSavesGetData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * Rom Id
         */
        rom_id?: number | null;
        /**
         * Platform Id
         */
        platform_id?: number | null;
        /**
         * Device Id
         */
        device_id?: string | null;
        /**
         * Slot
         */
        slot?: string | null;
    };
    url: '/api/saves';
};

export type GetSavesApiSavesGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetSavesApiSavesGetError = GetSavesApiSavesGetErrors[keyof GetSavesApiSavesGetErrors];

export type GetSavesApiSavesGetResponses = {
    /**
     * Response Get Saves Api Saves Get
     *
     * Successful Response
     */
    200: Array<SaveSchema>;
};

export type GetSavesApiSavesGetResponse = GetSavesApiSavesGetResponses[keyof GetSavesApiSavesGetResponses];

export type AddSaveApiSavesPostData = {
    body?: never;
    path?: never;
    query: {
        /**
         * Rom Id
         */
        rom_id: number;
        /**
         * Emulator
         */
        emulator?: string | null;
        /**
         * Slot
         */
        slot?: string | null;
        /**
         * Device Id
         */
        device_id?: string | null;
        /**
         * Overwrite
         */
        overwrite?: boolean;
        /**
         * Autocleanup
         */
        autocleanup?: boolean;
        /**
         * Autocleanup Limit
         */
        autocleanup_limit?: number;
    };
    url: '/api/saves';
};

export type AddSaveApiSavesPostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type AddSaveApiSavesPostError = AddSaveApiSavesPostErrors[keyof AddSaveApiSavesPostErrors];

export type AddSaveApiSavesPostResponses = {
    /**
     * Successful Response
     */
    200: SaveSchema;
};

export type AddSaveApiSavesPostResponse = AddSaveApiSavesPostResponses[keyof AddSaveApiSavesPostResponses];

export type GetSaveIdentifiersApiSavesIdentifiersGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/saves/identifiers';
};

export type GetSaveIdentifiersApiSavesIdentifiersGetResponses = {
    /**
     * Response Get Save Identifiers Api Saves Identifiers Get
     *
     * Successful Response
     */
    200: Array<number>;
};

export type GetSaveIdentifiersApiSavesIdentifiersGetResponse = GetSaveIdentifiersApiSavesIdentifiersGetResponses[keyof GetSaveIdentifiersApiSavesIdentifiersGetResponses];

export type GetSavesSummaryApiSavesSummaryGetData = {
    body?: never;
    path?: never;
    query: {
        /**
         * Rom Id
         */
        rom_id: number;
    };
    url: '/api/saves/summary';
};

export type GetSavesSummaryApiSavesSummaryGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetSavesSummaryApiSavesSummaryGetError = GetSavesSummaryApiSavesSummaryGetErrors[keyof GetSavesSummaryApiSavesSummaryGetErrors];

export type GetSavesSummaryApiSavesSummaryGetResponses = {
    /**
     * Successful Response
     */
    200: SaveSummarySchema;
};

export type GetSavesSummaryApiSavesSummaryGetResponse = GetSavesSummaryApiSavesSummaryGetResponses[keyof GetSavesSummaryApiSavesSummaryGetResponses];

export type GetSaveApiSavesIdGetData = {
    body?: never;
    path: {
        /**
         * Id
         */
        id: number;
    };
    query?: {
        /**
         * Device Id
         */
        device_id?: string | null;
    };
    url: '/api/saves/{id}';
};

export type GetSaveApiSavesIdGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetSaveApiSavesIdGetError = GetSaveApiSavesIdGetErrors[keyof GetSaveApiSavesIdGetErrors];

export type GetSaveApiSavesIdGetResponses = {
    /**
     * Successful Response
     */
    200: SaveSchema;
};

export type GetSaveApiSavesIdGetResponse = GetSaveApiSavesIdGetResponses[keyof GetSaveApiSavesIdGetResponses];

export type UpdateSaveApiSavesIdPutData = {
    body?: never;
    path: {
        /**
         * Id
         */
        id: number;
    };
    query?: never;
    url: '/api/saves/{id}';
};

export type UpdateSaveApiSavesIdPutErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type UpdateSaveApiSavesIdPutError = UpdateSaveApiSavesIdPutErrors[keyof UpdateSaveApiSavesIdPutErrors];

export type UpdateSaveApiSavesIdPutResponses = {
    /**
     * Successful Response
     */
    200: SaveSchema;
};

export type UpdateSaveApiSavesIdPutResponse = UpdateSaveApiSavesIdPutResponses[keyof UpdateSaveApiSavesIdPutResponses];

export type DownloadSaveApiSavesIdContentGetData = {
    body?: never;
    path: {
        /**
         * Id
         */
        id: number;
    };
    query?: {
        /**
         * Device Id
         */
        device_id?: string | null;
        /**
         * Optimistic
         */
        optimistic?: boolean;
    };
    url: '/api/saves/{id}/content';
};

export type DownloadSaveApiSavesIdContentGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type DownloadSaveApiSavesIdContentGetError = DownloadSaveApiSavesIdContentGetErrors[keyof DownloadSaveApiSavesIdContentGetErrors];

export type DownloadSaveApiSavesIdContentGetResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type ConfirmDownloadApiSavesIdDownloadedPostData = {
    body: BodyConfirmDownloadApiSavesIdDownloadedPost;
    path: {
        /**
         * Id
         */
        id: number;
    };
    query?: never;
    url: '/api/saves/{id}/downloaded';
};

export type ConfirmDownloadApiSavesIdDownloadedPostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type ConfirmDownloadApiSavesIdDownloadedPostError = ConfirmDownloadApiSavesIdDownloadedPostErrors[keyof ConfirmDownloadApiSavesIdDownloadedPostErrors];

export type ConfirmDownloadApiSavesIdDownloadedPostResponses = {
    /**
     * Successful Response
     */
    200: SaveSchema;
};

export type ConfirmDownloadApiSavesIdDownloadedPostResponse = ConfirmDownloadApiSavesIdDownloadedPostResponses[keyof ConfirmDownloadApiSavesIdDownloadedPostResponses];

export type DeleteSavesApiSavesDeletePostData = {
    body: BodyDeleteSavesApiSavesDeletePost;
    path?: never;
    query?: never;
    url: '/api/saves/delete';
};

export type DeleteSavesApiSavesDeletePostErrors = {
    /**
     * Bad Request
     */
    400: unknown;
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type DeleteSavesApiSavesDeletePostError = DeleteSavesApiSavesDeletePostErrors[keyof DeleteSavesApiSavesDeletePostErrors];

export type DeleteSavesApiSavesDeletePostResponses = {
    /**
     * Response Delete Saves Api Saves Delete Post
     *
     * Successful Response
     */
    200: Array<number>;
};

export type DeleteSavesApiSavesDeletePostResponse = DeleteSavesApiSavesDeletePostResponses[keyof DeleteSavesApiSavesDeletePostResponses];

export type TrackSaveApiSavesIdTrackPostData = {
    body: BodyTrackSaveApiSavesIdTrackPost;
    path: {
        /**
         * Id
         */
        id: number;
    };
    query?: never;
    url: '/api/saves/{id}/track';
};

export type TrackSaveApiSavesIdTrackPostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type TrackSaveApiSavesIdTrackPostError = TrackSaveApiSavesIdTrackPostErrors[keyof TrackSaveApiSavesIdTrackPostErrors];

export type TrackSaveApiSavesIdTrackPostResponses = {
    /**
     * Successful Response
     */
    200: SaveSchema;
};

export type TrackSaveApiSavesIdTrackPostResponse = TrackSaveApiSavesIdTrackPostResponses[keyof TrackSaveApiSavesIdTrackPostResponses];

export type UntrackSaveApiSavesIdUntrackPostData = {
    body: BodyUntrackSaveApiSavesIdUntrackPost;
    path: {
        /**
         * Id
         */
        id: number;
    };
    query?: never;
    url: '/api/saves/{id}/untrack';
};

export type UntrackSaveApiSavesIdUntrackPostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type UntrackSaveApiSavesIdUntrackPostError = UntrackSaveApiSavesIdUntrackPostErrors[keyof UntrackSaveApiSavesIdUntrackPostErrors];

export type UntrackSaveApiSavesIdUntrackPostResponses = {
    /**
     * Successful Response
     */
    200: SaveSchema;
};

export type UntrackSaveApiSavesIdUntrackPostResponse = UntrackSaveApiSavesIdUntrackPostResponses[keyof UntrackSaveApiSavesIdUntrackPostResponses];

export type GetStatesApiStatesGetData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * Rom Id
         */
        rom_id?: number | null;
        /**
         * Platform Id
         */
        platform_id?: number | null;
    };
    url: '/api/states';
};

export type GetStatesApiStatesGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetStatesApiStatesGetError = GetStatesApiStatesGetErrors[keyof GetStatesApiStatesGetErrors];

export type GetStatesApiStatesGetResponses = {
    /**
     * Response Get States Api States Get
     *
     * Successful Response
     */
    200: Array<StateSchema>;
};

export type GetStatesApiStatesGetResponse = GetStatesApiStatesGetResponses[keyof GetStatesApiStatesGetResponses];

export type AddStateApiStatesPostData = {
    body?: never;
    path?: never;
    query: {
        /**
         * Rom Id
         */
        rom_id: number;
        /**
         * Emulator
         */
        emulator?: string | null;
    };
    url: '/api/states';
};

export type AddStateApiStatesPostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type AddStateApiStatesPostError = AddStateApiStatesPostErrors[keyof AddStateApiStatesPostErrors];

export type AddStateApiStatesPostResponses = {
    /**
     * Successful Response
     */
    200: StateSchema;
};

export type AddStateApiStatesPostResponse = AddStateApiStatesPostResponses[keyof AddStateApiStatesPostResponses];

export type GetStateIdentifiersApiStatesIdentifiersGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/states/identifiers';
};

export type GetStateIdentifiersApiStatesIdentifiersGetResponses = {
    /**
     * Response Get State Identifiers Api States Identifiers Get
     *
     * Successful Response
     */
    200: Array<number>;
};

export type GetStateIdentifiersApiStatesIdentifiersGetResponse = GetStateIdentifiersApiStatesIdentifiersGetResponses[keyof GetStateIdentifiersApiStatesIdentifiersGetResponses];

export type GetStateApiStatesIdGetData = {
    body?: never;
    path: {
        /**
         * Id
         */
        id: number;
    };
    query?: never;
    url: '/api/states/{id}';
};

export type GetStateApiStatesIdGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetStateApiStatesIdGetError = GetStateApiStatesIdGetErrors[keyof GetStateApiStatesIdGetErrors];

export type GetStateApiStatesIdGetResponses = {
    /**
     * Successful Response
     */
    200: StateSchema;
};

export type GetStateApiStatesIdGetResponse = GetStateApiStatesIdGetResponses[keyof GetStateApiStatesIdGetResponses];

export type UpdateStateApiStatesIdPutData = {
    body?: never;
    path: {
        /**
         * Id
         */
        id: number;
    };
    query?: never;
    url: '/api/states/{id}';
};

export type UpdateStateApiStatesIdPutErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type UpdateStateApiStatesIdPutError = UpdateStateApiStatesIdPutErrors[keyof UpdateStateApiStatesIdPutErrors];

export type UpdateStateApiStatesIdPutResponses = {
    /**
     * Successful Response
     */
    200: StateSchema;
};

export type UpdateStateApiStatesIdPutResponse = UpdateStateApiStatesIdPutResponses[keyof UpdateStateApiStatesIdPutResponses];

export type DeleteStatesApiStatesDeletePostData = {
    body: BodyDeleteStatesApiStatesDeletePost;
    path?: never;
    query?: never;
    url: '/api/states/delete';
};

export type DeleteStatesApiStatesDeletePostErrors = {
    /**
     * Bad Request
     */
    400: unknown;
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type DeleteStatesApiStatesDeletePostError = DeleteStatesApiStatesDeletePostErrors[keyof DeleteStatesApiStatesDeletePostErrors];

export type DeleteStatesApiStatesDeletePostResponses = {
    /**
     * Response Delete States Api States Delete Post
     *
     * Successful Response
     */
    200: Array<number>;
};

export type DeleteStatesApiStatesDeletePostResponse = DeleteStatesApiStatesDeletePostResponses[keyof DeleteStatesApiStatesDeletePostResponses];

export type ListTasksApiTasksGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/tasks';
};

export type ListTasksApiTasksGetResponses = {
    /**
     * Response List Tasks Api Tasks Get
     *
     * Successful Response
     */
    200: {
        [key: string]: Array<TaskInfo>;
    };
};

export type ListTasksApiTasksGetResponse = ListTasksApiTasksGetResponses[keyof ListTasksApiTasksGetResponses];

export type GetTasksStatusApiTasksStatusGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/tasks/status';
};

export type GetTasksStatusApiTasksStatusGetResponses = {
    /**
     * Response Get Tasks Status Api Tasks Status Get
     *
     * Successful Response
     */
    200: Array<ScanTaskStatusResponse | ConversionTaskStatusResponse | UpdateTaskStatusResponse | CleanupTaskStatusResponse | WatcherTaskStatusResponse | GenericTaskStatusResponse>;
};

export type GetTasksStatusApiTasksStatusGetResponse = GetTasksStatusApiTasksStatusGetResponses[keyof GetTasksStatusApiTasksStatusGetResponses];

export type GetTaskByIdApiTasksTaskIdGetData = {
    body?: never;
    path: {
        /**
         * Task Id
         */
        task_id: string;
    };
    query?: never;
    url: '/api/tasks/{task_id}';
};

export type GetTaskByIdApiTasksTaskIdGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetTaskByIdApiTasksTaskIdGetError = GetTaskByIdApiTasksTaskIdGetErrors[keyof GetTaskByIdApiTasksTaskIdGetErrors];

export type GetTaskByIdApiTasksTaskIdGetResponses = {
    /**
     * Response Get Task By Id Api Tasks  Task Id  Get
     *
     * Successful Response
     */
    200: ScanTaskStatusResponse | ConversionTaskStatusResponse | UpdateTaskStatusResponse | CleanupTaskStatusResponse | WatcherTaskStatusResponse | GenericTaskStatusResponse;
};

export type GetTaskByIdApiTasksTaskIdGetResponse = GetTaskByIdApiTasksTaskIdGetResponses[keyof GetTaskByIdApiTasksTaskIdGetResponses];

export type RunAllTasksApiTasksRunPostData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/tasks/run';
};

export type RunAllTasksApiTasksRunPostResponses = {
    /**
     * Response Run All Tasks Api Tasks Run Post
     *
     * Successful Response
     */
    200: Array<TaskExecutionResponse>;
};

export type RunAllTasksApiTasksRunPostResponse = RunAllTasksApiTasksRunPostResponses[keyof RunAllTasksApiTasksRunPostResponses];

export type RunSingleTaskApiTasksRunTaskNamePostData = {
    body?: never;
    path: {
        /**
         * Task Name
         */
        task_name: string;
    };
    query?: never;
    url: '/api/tasks/run/{task_name}';
};

export type RunSingleTaskApiTasksRunTaskNamePostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type RunSingleTaskApiTasksRunTaskNamePostError = RunSingleTaskApiTasksRunTaskNamePostErrors[keyof RunSingleTaskApiTasksRunTaskNamePostErrors];

export type RunSingleTaskApiTasksRunTaskNamePostResponses = {
    /**
     * Successful Response
     */
    200: TaskExecutionResponse;
};

export type RunSingleTaskApiTasksRunTaskNamePostResponse = RunSingleTaskApiTasksRunTaskNamePostResponses[keyof RunSingleTaskApiTasksRunTaskNamePostResponses];

export type PlatformsWebrcadeFeedApiFeedsWebrcadeGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/feeds/webrcade';
};

export type PlatformsWebrcadeFeedApiFeedsWebrcadeGetResponses = {
    /**
     * Successful Response
     */
    200: WebrcadeFeedSchema;
};

export type PlatformsWebrcadeFeedApiFeedsWebrcadeGetResponse = PlatformsWebrcadeFeedApiFeedsWebrcadeGetResponses[keyof PlatformsWebrcadeFeedApiFeedsWebrcadeGetResponses];

export type TinfoilIndexFeedApiFeedsTinfoilGetData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * Slug
         */
        slug?: string;
    };
    url: '/api/feeds/tinfoil';
};

export type TinfoilIndexFeedApiFeedsTinfoilGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type TinfoilIndexFeedApiFeedsTinfoilGetError = TinfoilIndexFeedApiFeedsTinfoilGetErrors[keyof TinfoilIndexFeedApiFeedsTinfoilGetErrors];

export type TinfoilIndexFeedApiFeedsTinfoilGetResponses = {
    /**
     * Successful Response
     */
    200: TinfoilFeedSchema;
};

export type TinfoilIndexFeedApiFeedsTinfoilGetResponse = TinfoilIndexFeedApiFeedsTinfoilGetResponses[keyof TinfoilIndexFeedApiFeedsTinfoilGetResponses];

export type PkgiPs3FeedApiFeedsPkgiPs3ContentTypeGetData = {
    body?: never;
    path: {
        /**
         * Content Type
         *
         * Content type
         */
        content_type: string;
    };
    query?: never;
    url: '/api/feeds/pkgi/ps3/{content_type}';
};

export type PkgiPs3FeedApiFeedsPkgiPs3ContentTypeGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type PkgiPs3FeedApiFeedsPkgiPs3ContentTypeGetError = PkgiPs3FeedApiFeedsPkgiPs3ContentTypeGetErrors[keyof PkgiPs3FeedApiFeedsPkgiPs3ContentTypeGetErrors];

export type PkgiPs3FeedApiFeedsPkgiPs3ContentTypeGetResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type PkgiPsvitaFeedApiFeedsPkgiPsvitaContentTypeGetData = {
    body?: never;
    path: {
        /**
         * Content Type
         *
         * Content type
         */
        content_type: string;
    };
    query?: never;
    url: '/api/feeds/pkgi/psvita/{content_type}';
};

export type PkgiPsvitaFeedApiFeedsPkgiPsvitaContentTypeGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type PkgiPsvitaFeedApiFeedsPkgiPsvitaContentTypeGetError = PkgiPsvitaFeedApiFeedsPkgiPsvitaContentTypeGetErrors[keyof PkgiPsvitaFeedApiFeedsPkgiPsvitaContentTypeGetErrors];

export type PkgiPsvitaFeedApiFeedsPkgiPsvitaContentTypeGetResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type PkgiPspFeedApiFeedsPkgiPspContentTypeGetData = {
    body?: never;
    path: {
        /**
         * Content Type
         *
         * Content type
         */
        content_type: string;
    };
    query?: never;
    url: '/api/feeds/pkgi/psp/{content_type}';
};

export type PkgiPspFeedApiFeedsPkgiPspContentTypeGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type PkgiPspFeedApiFeedsPkgiPspContentTypeGetError = PkgiPspFeedApiFeedsPkgiPspContentTypeGetErrors[keyof PkgiPspFeedApiFeedsPkgiPspContentTypeGetErrors];

export type PkgiPspFeedApiFeedsPkgiPspContentTypeGetResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type FpkgiFeedApiFeedsFpkgiPlatformSlugGetData = {
    body?: never;
    path: {
        /**
         * Platform Slug
         */
        platform_slug: string;
    };
    query?: never;
    url: '/api/feeds/fpkgi/{platform_slug}';
};

export type FpkgiFeedApiFeedsFpkgiPlatformSlugGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type FpkgiFeedApiFeedsFpkgiPlatformSlugGetError = FpkgiFeedApiFeedsFpkgiPlatformSlugGetErrors[keyof FpkgiFeedApiFeedsFpkgiPlatformSlugGetErrors];

export type FpkgiFeedApiFeedsFpkgiPlatformSlugGetResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type KekatsuDsFeedApiFeedsKekatsuPlatformSlugGetData = {
    body?: never;
    path: {
        /**
         * Platform Slug
         */
        platform_slug: string;
    };
    query?: never;
    url: '/api/feeds/kekatsu/{platform_slug}';
};

export type KekatsuDsFeedApiFeedsKekatsuPlatformSlugGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type KekatsuDsFeedApiFeedsKekatsuPlatformSlugGetError = KekatsuDsFeedApiFeedsKekatsuPlatformSlugGetErrors[keyof KekatsuDsFeedApiFeedsKekatsuPlatformSlugGetErrors];

export type KekatsuDsFeedApiFeedsKekatsuPlatformSlugGetResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type PkgjPspGamesFeedApiFeedsPkgjPspGamesGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/feeds/pkgj/psp/games';
};

export type PkgjPspGamesFeedApiFeedsPkgjPspGamesGetResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type PkgjPspDlcsFeedApiFeedsPkgjPspDlcGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/feeds/pkgj/psp/dlc';
};

export type PkgjPspDlcsFeedApiFeedsPkgjPspDlcGetResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type PkgjPsvGamesFeedApiFeedsPkgjPsvitaGamesGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/feeds/pkgj/psvita/games';
};

export type PkgjPsvGamesFeedApiFeedsPkgjPsvitaGamesGetResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type PkgjPsvDlcsFeedApiFeedsPkgjPsvitaDlcGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/feeds/pkgj/psvita/dlc';
};

export type PkgjPsvDlcsFeedApiFeedsPkgjPsvitaDlcGetResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type PkgjPsxGamesFeedApiFeedsPkgjPsxGamesGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/feeds/pkgj/psx/games';
};

export type PkgjPsxGamesFeedApiFeedsPkgjPsxGamesGetResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type GetConfigApiConfigGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/config';
};

export type GetConfigApiConfigGetResponses = {
    /**
     * Successful Response
     */
    200: ConfigResponse;
};

export type GetConfigApiConfigGetResponse = GetConfigApiConfigGetResponses[keyof GetConfigApiConfigGetResponses];

export type AddPlatformBindingApiConfigSystemPlatformsPostData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/config/system/platforms';
};

export type AddPlatformBindingApiConfigSystemPlatformsPostResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type DeletePlatformBindingApiConfigSystemPlatformsFsSlugDeleteData = {
    body?: never;
    path: {
        /**
         * Fs Slug
         */
        fs_slug: string;
    };
    query?: never;
    url: '/api/config/system/platforms/{fs_slug}';
};

export type DeletePlatformBindingApiConfigSystemPlatformsFsSlugDeleteErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type DeletePlatformBindingApiConfigSystemPlatformsFsSlugDeleteError = DeletePlatformBindingApiConfigSystemPlatformsFsSlugDeleteErrors[keyof DeletePlatformBindingApiConfigSystemPlatformsFsSlugDeleteErrors];

export type DeletePlatformBindingApiConfigSystemPlatformsFsSlugDeleteResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type AddPlatformVersionApiConfigSystemVersionsPostData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/config/system/versions';
};

export type AddPlatformVersionApiConfigSystemVersionsPostResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type DeletePlatformVersionApiConfigSystemVersionsFsSlugDeleteData = {
    body?: never;
    path: {
        /**
         * Fs Slug
         */
        fs_slug: string;
    };
    query?: never;
    url: '/api/config/system/versions/{fs_slug}';
};

export type DeletePlatformVersionApiConfigSystemVersionsFsSlugDeleteErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type DeletePlatformVersionApiConfigSystemVersionsFsSlugDeleteError = DeletePlatformVersionApiConfigSystemVersionsFsSlugDeleteErrors[keyof DeletePlatformVersionApiConfigSystemVersionsFsSlugDeleteErrors];

export type DeletePlatformVersionApiConfigSystemVersionsFsSlugDeleteResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type AddExclusionApiConfigExcludePostData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/config/exclude';
};

export type AddExclusionApiConfigExcludePostResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type DeleteExclusionApiConfigExcludeExclusionTypeExclusionValueDeleteData = {
    body?: never;
    path: {
        /**
         * Exclusion Type
         */
        exclusion_type: string;
        /**
         * Exclusion Value
         */
        exclusion_value: string;
    };
    query?: never;
    url: '/api/config/exclude/{exclusion_type}/{exclusion_value}';
};

export type DeleteExclusionApiConfigExcludeExclusionTypeExclusionValueDeleteErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type DeleteExclusionApiConfigExcludeExclusionTypeExclusionValueDeleteError = DeleteExclusionApiConfigExcludeExclusionTypeExclusionValueDeleteErrors[keyof DeleteExclusionApiConfigExcludeExclusionTypeExclusionValueDeleteErrors];

export type DeleteExclusionApiConfigExcludeExclusionTypeExclusionValueDeleteResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type StatsApiStatsGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/stats';
};

export type StatsApiStatsGetResponses = {
    /**
     * Successful Response
     */
    200: StatsReturn;
};

export type StatsApiStatsGetResponse = StatsApiStatsGetResponses[keyof StatsApiStatsGetResponses];

export type GetRawAssetApiRawAssetsPathGetData = {
    body?: never;
    path: {
        /**
         * Path
         */
        path: string;
    };
    query?: never;
    url: '/api/raw/assets/{path}';
};

export type GetRawAssetApiRawAssetsPathGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetRawAssetApiRawAssetsPathGetError = GetRawAssetApiRawAssetsPathGetErrors[keyof GetRawAssetApiRawAssetsPathGetErrors];

export type GetRawAssetApiRawAssetsPathGetResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type HeadRawAssetApiRawAssetsPathHeadData = {
    body?: never;
    path: {
        /**
         * Path
         */
        path: string;
    };
    query?: never;
    url: '/api/raw/assets/{path}';
};

export type HeadRawAssetApiRawAssetsPathHeadErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type HeadRawAssetApiRawAssetsPathHeadError = HeadRawAssetApiRawAssetsPathHeadErrors[keyof HeadRawAssetApiRawAssetsPathHeadErrors];

export type HeadRawAssetApiRawAssetsPathHeadResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type AddScreenshotApiScreenshotsPostData = {
    body?: never;
    path?: never;
    query: {
        /**
         * Rom Id
         */
        rom_id: number;
    };
    url: '/api/screenshots';
};

export type AddScreenshotApiScreenshotsPostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type AddScreenshotApiScreenshotsPostError = AddScreenshotApiScreenshotsPostErrors[keyof AddScreenshotApiScreenshotsPostErrors];

export type AddScreenshotApiScreenshotsPostResponses = {
    /**
     * Successful Response
     */
    200: ScreenshotSchema;
};

export type AddScreenshotApiScreenshotsPostResponse = AddScreenshotApiScreenshotsPostResponses[keyof AddScreenshotApiScreenshotsPostResponses];

export type GetPlatformFirmwareApiFirmwareGetData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * Platform Id
         */
        platform_id?: number | null;
    };
    url: '/api/firmware';
};

export type GetPlatformFirmwareApiFirmwareGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetPlatformFirmwareApiFirmwareGetError = GetPlatformFirmwareApiFirmwareGetErrors[keyof GetPlatformFirmwareApiFirmwareGetErrors];

export type GetPlatformFirmwareApiFirmwareGetResponses = {
    /**
     * Response Get Platform Firmware Api Firmware Get
     *
     * Successful Response
     */
    200: Array<FirmwareSchema>;
};

export type GetPlatformFirmwareApiFirmwareGetResponse = GetPlatformFirmwareApiFirmwareGetResponses[keyof GetPlatformFirmwareApiFirmwareGetResponses];

export type AddFirmwareApiFirmwarePostData = {
    body: BodyAddFirmwareApiFirmwarePost;
    path?: never;
    query: {
        /**
         * Platform Id
         */
        platform_id: number;
    };
    url: '/api/firmware';
};

export type AddFirmwareApiFirmwarePostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type AddFirmwareApiFirmwarePostError = AddFirmwareApiFirmwarePostErrors[keyof AddFirmwareApiFirmwarePostErrors];

export type AddFirmwareApiFirmwarePostResponses = {
    /**
     * Successful Response
     */
    200: AddFirmwareResponse;
};

export type AddFirmwareApiFirmwarePostResponse = AddFirmwareApiFirmwarePostResponses[keyof AddFirmwareApiFirmwarePostResponses];

export type GetFirmwareIdentifiersApiFirmwareIdentifiersGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/firmware/identifiers';
};

export type GetFirmwareIdentifiersApiFirmwareIdentifiersGetResponses = {
    /**
     * Response Get Firmware Identifiers Api Firmware Identifiers Get
     *
     * Successful Response
     */
    200: Array<number>;
};

export type GetFirmwareIdentifiersApiFirmwareIdentifiersGetResponse = GetFirmwareIdentifiersApiFirmwareIdentifiersGetResponses[keyof GetFirmwareIdentifiersApiFirmwareIdentifiersGetResponses];

export type GetFirmwareApiFirmwareIdGetData = {
    body?: never;
    path: {
        /**
         * Id
         */
        id: number;
    };
    query?: never;
    url: '/api/firmware/{id}';
};

export type GetFirmwareApiFirmwareIdGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetFirmwareApiFirmwareIdGetError = GetFirmwareApiFirmwareIdGetErrors[keyof GetFirmwareApiFirmwareIdGetErrors];

export type GetFirmwareApiFirmwareIdGetResponses = {
    /**
     * Successful Response
     */
    200: FirmwareSchema;
};

export type GetFirmwareApiFirmwareIdGetResponse = GetFirmwareApiFirmwareIdGetResponses[keyof GetFirmwareApiFirmwareIdGetResponses];

export type GetFirmwareContentApiFirmwareIdContentFileNameGetData = {
    body?: never;
    path: {
        /**
         * Id
         */
        id: number;
        /**
         * File Name
         */
        file_name: string;
    };
    query?: never;
    url: '/api/firmware/{id}/content/{file_name}';
};

export type GetFirmwareContentApiFirmwareIdContentFileNameGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetFirmwareContentApiFirmwareIdContentFileNameGetError = GetFirmwareContentApiFirmwareIdContentFileNameGetErrors[keyof GetFirmwareContentApiFirmwareIdContentFileNameGetErrors];

export type GetFirmwareContentApiFirmwareIdContentFileNameGetResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type HeadFirmwareContentApiFirmwareIdContentFileNameHeadData = {
    body?: never;
    path: {
        /**
         * Id
         */
        id: number;
        /**
         * File Name
         */
        file_name: string;
    };
    query?: never;
    url: '/api/firmware/{id}/content/{file_name}';
};

export type HeadFirmwareContentApiFirmwareIdContentFileNameHeadErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type HeadFirmwareContentApiFirmwareIdContentFileNameHeadError = HeadFirmwareContentApiFirmwareIdContentFileNameHeadErrors[keyof HeadFirmwareContentApiFirmwareIdContentFileNameHeadErrors];

export type HeadFirmwareContentApiFirmwareIdContentFileNameHeadResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type DeleteFirmwareApiFirmwareDeletePostData = {
    body: BodyDeleteFirmwareApiFirmwareDeletePost;
    path?: never;
    query?: never;
    url: '/api/firmware/delete';
};

export type DeleteFirmwareApiFirmwareDeletePostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type DeleteFirmwareApiFirmwareDeletePostError = DeleteFirmwareApiFirmwareDeletePostErrors[keyof DeleteFirmwareApiFirmwareDeletePostErrors];

export type DeleteFirmwareApiFirmwareDeletePostResponses = {
    /**
     * Successful Response
     */
    200: BulkOperationResponse;
};

export type DeleteFirmwareApiFirmwareDeletePostResponse = DeleteFirmwareApiFirmwareDeletePostResponses[keyof DeleteFirmwareApiFirmwareDeletePostResponses];

export type GetCollectionsApiCollectionsGetData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * Updated After
         *
         * Filter collections updated after this datetime (ISO 8601 format with timezone information).
         */
        updated_after?: string | null;
    };
    url: '/api/collections';
};

export type GetCollectionsApiCollectionsGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetCollectionsApiCollectionsGetError = GetCollectionsApiCollectionsGetErrors[keyof GetCollectionsApiCollectionsGetErrors];

export type GetCollectionsApiCollectionsGetResponses = {
    /**
     * Response Get Collections Api Collections Get
     *
     * Successful Response
     */
    200: Array<CollectionSchema>;
};

export type GetCollectionsApiCollectionsGetResponse = GetCollectionsApiCollectionsGetResponses[keyof GetCollectionsApiCollectionsGetResponses];

export type AddCollectionApiCollectionsPostData = {
    body?: BodyAddCollectionApiCollectionsPost;
    path?: never;
    query?: {
        /**
         * Is Public
         */
        is_public?: boolean | null;
        /**
         * Is Favorite
         */
        is_favorite?: boolean | null;
    };
    url: '/api/collections';
};

export type AddCollectionApiCollectionsPostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type AddCollectionApiCollectionsPostError = AddCollectionApiCollectionsPostErrors[keyof AddCollectionApiCollectionsPostErrors];

export type AddCollectionApiCollectionsPostResponses = {
    /**
     * Successful Response
     */
    200: CollectionSchema;
};

export type AddCollectionApiCollectionsPostResponse = AddCollectionApiCollectionsPostResponses[keyof AddCollectionApiCollectionsPostResponses];

export type GetSmartCollectionsApiCollectionsSmartGetData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * Updated After
         *
         * Filter smart collections updated after this datetime (ISO 8601 format with timezone information).
         */
        updated_after?: string | null;
    };
    url: '/api/collections/smart';
};

export type GetSmartCollectionsApiCollectionsSmartGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetSmartCollectionsApiCollectionsSmartGetError = GetSmartCollectionsApiCollectionsSmartGetErrors[keyof GetSmartCollectionsApiCollectionsSmartGetErrors];

export type GetSmartCollectionsApiCollectionsSmartGetResponses = {
    /**
     * Response Get Smart Collections Api Collections Smart Get
     *
     * Successful Response
     */
    200: Array<SmartCollectionSchema>;
};

export type GetSmartCollectionsApiCollectionsSmartGetResponse = GetSmartCollectionsApiCollectionsSmartGetResponses[keyof GetSmartCollectionsApiCollectionsSmartGetResponses];

export type AddSmartCollectionApiCollectionsSmartPostData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * Is Public
         */
        is_public?: boolean | null;
    };
    url: '/api/collections/smart';
};

export type AddSmartCollectionApiCollectionsSmartPostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type AddSmartCollectionApiCollectionsSmartPostError = AddSmartCollectionApiCollectionsSmartPostErrors[keyof AddSmartCollectionApiCollectionsSmartPostErrors];

export type AddSmartCollectionApiCollectionsSmartPostResponses = {
    /**
     * Successful Response
     */
    200: SmartCollectionSchema;
};

export type AddSmartCollectionApiCollectionsSmartPostResponse = AddSmartCollectionApiCollectionsSmartPostResponses[keyof AddSmartCollectionApiCollectionsSmartPostResponses];

export type GetCollectionIdentifiersApiCollectionsIdentifiersGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/collections/identifiers';
};

export type GetCollectionIdentifiersApiCollectionsIdentifiersGetResponses = {
    /**
     * Response Get Collection Identifiers Api Collections Identifiers Get
     *
     * Successful Response
     */
    200: Array<number>;
};

export type GetCollectionIdentifiersApiCollectionsIdentifiersGetResponse = GetCollectionIdentifiersApiCollectionsIdentifiersGetResponses[keyof GetCollectionIdentifiersApiCollectionsIdentifiersGetResponses];

export type GetVirtualCollectionsApiCollectionsVirtualGetData = {
    body?: never;
    path?: never;
    query: {
        /**
         * Type
         */
        type: string;
        /**
         * Limit
         */
        limit?: number | null;
    };
    url: '/api/collections/virtual';
};

export type GetVirtualCollectionsApiCollectionsVirtualGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetVirtualCollectionsApiCollectionsVirtualGetError = GetVirtualCollectionsApiCollectionsVirtualGetErrors[keyof GetVirtualCollectionsApiCollectionsVirtualGetErrors];

export type GetVirtualCollectionsApiCollectionsVirtualGetResponses = {
    /**
     * Response Get Virtual Collections Api Collections Virtual Get
     *
     * Successful Response
     */
    200: Array<VirtualCollectionSchema>;
};

export type GetVirtualCollectionsApiCollectionsVirtualGetResponse = GetVirtualCollectionsApiCollectionsVirtualGetResponses[keyof GetVirtualCollectionsApiCollectionsVirtualGetResponses];

export type GetVirtualCollectionIdentifiersApiCollectionsVirtualIdentifiersGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/collections/virtual/identifiers';
};

export type GetVirtualCollectionIdentifiersApiCollectionsVirtualIdentifiersGetResponses = {
    /**
     * Response Get Virtual Collection Identifiers Api Collections Virtual Identifiers Get
     *
     * Successful Response
     */
    200: Array<string>;
};

export type GetVirtualCollectionIdentifiersApiCollectionsVirtualIdentifiersGetResponse = GetVirtualCollectionIdentifiersApiCollectionsVirtualIdentifiersGetResponses[keyof GetVirtualCollectionIdentifiersApiCollectionsVirtualIdentifiersGetResponses];

export type GetSmartCollectionIdentifiersApiCollectionsSmartIdentifiersGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/collections/smart/identifiers';
};

export type GetSmartCollectionIdentifiersApiCollectionsSmartIdentifiersGetResponses = {
    /**
     * Response Get Smart Collection Identifiers Api Collections Smart Identifiers Get
     *
     * Successful Response
     */
    200: Array<number>;
};

export type GetSmartCollectionIdentifiersApiCollectionsSmartIdentifiersGetResponse = GetSmartCollectionIdentifiersApiCollectionsSmartIdentifiersGetResponses[keyof GetSmartCollectionIdentifiersApiCollectionsSmartIdentifiersGetResponses];

export type DeleteCollectionApiCollectionsIdDeleteData = {
    body?: never;
    path: {
        /**
         * Id
         *
         * Collection internal id.
         */
        id: number;
    };
    query?: never;
    url: '/api/collections/{id}';
};

export type DeleteCollectionApiCollectionsIdDeleteErrors = {
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type DeleteCollectionApiCollectionsIdDeleteError = DeleteCollectionApiCollectionsIdDeleteErrors[keyof DeleteCollectionApiCollectionsIdDeleteErrors];

export type DeleteCollectionApiCollectionsIdDeleteResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type GetCollectionApiCollectionsIdGetData = {
    body?: never;
    path: {
        /**
         * Id
         */
        id: number;
    };
    query?: never;
    url: '/api/collections/{id}';
};

export type GetCollectionApiCollectionsIdGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetCollectionApiCollectionsIdGetError = GetCollectionApiCollectionsIdGetErrors[keyof GetCollectionApiCollectionsIdGetErrors];

export type GetCollectionApiCollectionsIdGetResponses = {
    /**
     * Successful Response
     */
    200: CollectionSchema;
};

export type GetCollectionApiCollectionsIdGetResponse = GetCollectionApiCollectionsIdGetResponses[keyof GetCollectionApiCollectionsIdGetResponses];

export type UpdateCollectionApiCollectionsIdPutData = {
    body?: BodyUpdateCollectionApiCollectionsIdPut;
    path: {
        /**
         * Id
         */
        id: number;
    };
    query?: {
        /**
         * Remove Cover
         */
        remove_cover?: boolean;
        /**
         * Is Public
         */
        is_public?: boolean | null;
    };
    url: '/api/collections/{id}';
};

export type UpdateCollectionApiCollectionsIdPutErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type UpdateCollectionApiCollectionsIdPutError = UpdateCollectionApiCollectionsIdPutErrors[keyof UpdateCollectionApiCollectionsIdPutErrors];

export type UpdateCollectionApiCollectionsIdPutResponses = {
    /**
     * Successful Response
     */
    200: CollectionSchema;
};

export type UpdateCollectionApiCollectionsIdPutResponse = UpdateCollectionApiCollectionsIdPutResponses[keyof UpdateCollectionApiCollectionsIdPutResponses];

export type GetVirtualCollectionApiCollectionsVirtualIdGetData = {
    body?: never;
    path: {
        /**
         * Id
         */
        id: string;
    };
    query?: never;
    url: '/api/collections/virtual/{id}';
};

export type GetVirtualCollectionApiCollectionsVirtualIdGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetVirtualCollectionApiCollectionsVirtualIdGetError = GetVirtualCollectionApiCollectionsVirtualIdGetErrors[keyof GetVirtualCollectionApiCollectionsVirtualIdGetErrors];

export type GetVirtualCollectionApiCollectionsVirtualIdGetResponses = {
    /**
     * Successful Response
     */
    200: VirtualCollectionSchema;
};

export type GetVirtualCollectionApiCollectionsVirtualIdGetResponse = GetVirtualCollectionApiCollectionsVirtualIdGetResponses[keyof GetVirtualCollectionApiCollectionsVirtualIdGetResponses];

export type DeleteSmartCollectionApiCollectionsSmartIdDeleteData = {
    body?: never;
    path: {
        /**
         * Id
         *
         * Smart collection internal id.
         */
        id: number;
    };
    query?: never;
    url: '/api/collections/smart/{id}';
};

export type DeleteSmartCollectionApiCollectionsSmartIdDeleteErrors = {
    /**
     * Not Found
     */
    404: unknown;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type DeleteSmartCollectionApiCollectionsSmartIdDeleteError = DeleteSmartCollectionApiCollectionsSmartIdDeleteErrors[keyof DeleteSmartCollectionApiCollectionsSmartIdDeleteErrors];

export type DeleteSmartCollectionApiCollectionsSmartIdDeleteResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type GetSmartCollectionApiCollectionsSmartIdGetData = {
    body?: never;
    path: {
        /**
         * Id
         */
        id: number;
    };
    query?: never;
    url: '/api/collections/smart/{id}';
};

export type GetSmartCollectionApiCollectionsSmartIdGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetSmartCollectionApiCollectionsSmartIdGetError = GetSmartCollectionApiCollectionsSmartIdGetErrors[keyof GetSmartCollectionApiCollectionsSmartIdGetErrors];

export type GetSmartCollectionApiCollectionsSmartIdGetResponses = {
    /**
     * Successful Response
     */
    200: SmartCollectionSchema;
};

export type GetSmartCollectionApiCollectionsSmartIdGetResponse = GetSmartCollectionApiCollectionsSmartIdGetResponses[keyof GetSmartCollectionApiCollectionsSmartIdGetResponses];

export type UpdateSmartCollectionApiCollectionsSmartIdPutData = {
    body?: never;
    path: {
        /**
         * Id
         */
        id: number;
    };
    query?: {
        /**
         * Is Public
         */
        is_public?: boolean | null;
    };
    url: '/api/collections/smart/{id}';
};

export type UpdateSmartCollectionApiCollectionsSmartIdPutErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type UpdateSmartCollectionApiCollectionsSmartIdPutError = UpdateSmartCollectionApiCollectionsSmartIdPutErrors[keyof UpdateSmartCollectionApiCollectionsSmartIdPutErrors];

export type UpdateSmartCollectionApiCollectionsSmartIdPutResponses = {
    /**
     * Successful Response
     */
    200: SmartCollectionSchema;
};

export type UpdateSmartCollectionApiCollectionsSmartIdPutResponse = UpdateSmartCollectionApiCollectionsSmartIdPutResponses[keyof UpdateSmartCollectionApiCollectionsSmartIdPutResponses];

export type ExportGamelistApiGamelistExportPostData = {
    body?: never;
    path?: never;
    query: {
        /**
         * Platform Ids
         *
         * List of platform IDs to export
         */
        platform_ids: Array<number>;
        /**
         * Local Export
         *
         * Use local paths instead of URLs
         */
        local_export?: boolean;
    };
    url: '/api/gamelist/export';
};

export type ExportGamelistApiGamelistExportPostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type ExportGamelistApiGamelistExportPostError = ExportGamelistApiGamelistExportPostErrors[keyof ExportGamelistApiGamelistExportPostErrors];

export type ExportGamelistApiGamelistExportPostResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type GetRoomsApiNetplayListGetData = {
    body?: never;
    path?: never;
    query: {
        /**
         * Game Id
         */
        game_id: string;
    };
    url: '/api/netplay/list';
};

export type GetRoomsApiNetplayListGetErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type GetRoomsApiNetplayListGetError = GetRoomsApiNetplayListGetErrors[keyof GetRoomsApiNetplayListGetErrors];

export type GetRoomsApiNetplayListGetResponses = {
    /**
     * Response Get Rooms Api Netplay List Get
     *
     * Successful Response
     */
    200: {
        [key: string]: RoomsResponse;
    };
};

export type GetRoomsApiNetplayListGetResponse = GetRoomsApiNetplayListGetResponses[keyof GetRoomsApiNetplayListGetResponses];
