/**
 * This file was auto-generated by openapi-typescript.
 * Do not make direct changes to the file.
 */

export interface paths {
    "/volumecontent/{volumeID}/dir": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** @description List directory contents */
        get: {
            parameters: {
                query: {
                    /** @description Number of layers deep to recurse into the directory */
                    depth?: number;
                    path: components["parameters"]["path"];
                };
                header?: never;
                path: {
                    volumeID: components["parameters"]["volumeID"];
                };
                cookie?: never;
            };
            requestBody?: never;
            responses: {
                /** @description Successfully retrieved a directory listing */
                200: {
                    headers: {
                        [name: string]: unknown;
                    };
                    content: {
                        "application/json": components["schemas"]["VolumeDirectoryListing"];
                    };
                };
                /** @description Invalid path provided */
                400: {
                    headers: {
                        [name: string]: unknown;
                    };
                    content?: never;
                };
                /** @description path not found */
                404: {
                    headers: {
                        [name: string]: unknown;
                    };
                    content?: never;
                };
                500: components["responses"]["500"];
            };
        };
        put?: never;
        /** @description Create a directory */
        post: {
            parameters: {
                query: {
                    /** @description Create the parents of a directory if they don't exist */
                    force?: boolean;
                    /** @description Group ID of the created directory */
                    gid?: number;
                    /** @description Mode of the created directory */
                    mode?: number;
                    path: components["parameters"]["path"];
                    /** @description User ID of the created directory */
                    uid?: number;
                };
                header?: never;
                path: {
                    volumeID: components["parameters"]["volumeID"];
                };
                cookie?: never;
            };
            requestBody?: never;
            responses: {
                /** @description Successfully created a directory */
                201: {
                    headers: {
                        [name: string]: unknown;
                    };
                    content: {
                        "application/json": components["schemas"]["VolumeEntryStat"];
                    };
                };
                /** @description path not found */
                404: {
                    headers: {
                        [name: string]: unknown;
                    };
                    content?: never;
                };
                500: components["responses"]["500"];
            };
        };
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/volumecontent/{volumeID}/file": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** @description Download file */
        get: {
            parameters: {
                query: {
                    path: components["parameters"]["path"];
                };
                header?: never;
                path: {
                    volumeID: components["parameters"]["volumeID"];
                };
                cookie?: never;
            };
            requestBody?: never;
            responses: {
                /** @description Successfully downloaded a file */
                200: {
                    headers: {
                        [name: string]: unknown;
                    };
                    content: {
                        "application/octet-stream": string;
                    };
                };
                /** @description path not found */
                404: {
                    headers: {
                        [name: string]: unknown;
                    };
                    content?: never;
                };
                500: components["responses"]["500"];
            };
        };
        /** @description Upload file */
        put: {
            parameters: {
                query: {
                    /** @description Force overwrite of an existing file */
                    force?: boolean;
                    /** @description Group ID of the uploaded file */
                    gid?: number;
                    /** @description Mode of the uploaded file */
                    mode?: number;
                    path: components["parameters"]["path"];
                    /** @description User ID of the uploaded file */
                    uid?: number;
                };
                header?: never;
                path: {
                    volumeID: components["parameters"]["volumeID"];
                };
                cookie?: never;
            };
            requestBody?: {
                content: {
                    "application/octet-stream": string;
                };
            };
            responses: {
                /** @description Successfully created a file */
                201: {
                    headers: {
                        [name: string]: unknown;
                    };
                    content: {
                        "application/json": components["schemas"]["VolumeEntryStat"];
                    };
                };
                /** @description path not found */
                404: {
                    headers: {
                        [name: string]: unknown;
                    };
                    content?: never;
                };
                500: components["responses"]["500"];
            };
        };
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/volumecontent/{volumeID}/path": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** @description Get path information */
        get: {
            parameters: {
                query: {
                    path: components["parameters"]["path"];
                };
                header?: never;
                path: {
                    volumeID: components["parameters"]["volumeID"];
                };
                cookie?: never;
            };
            requestBody?: never;
            responses: {
                /** @description Successfully retrieved path information */
                200: {
                    headers: {
                        [name: string]: unknown;
                    };
                    content: {
                        "application/json": components["schemas"]["VolumeEntryStat"];
                    };
                };
                404: components["responses"]["404"];
            };
        };
        put?: never;
        post?: never;
        /** @description Delete a path */
        delete: {
            parameters: {
                query: {
                    path: components["parameters"]["path"];
                };
                header?: never;
                path: {
                    volumeID: components["parameters"]["volumeID"];
                };
                cookie?: never;
            };
            requestBody?: never;
            responses: {
                /** @description Successfully deleted a path */
                204: {
                    headers: {
                        [name: string]: unknown;
                    };
                    content?: never;
                };
                404: components["responses"]["404"];
            };
        };
        options?: never;
        head?: never;
        /** @description Update path metadata */
        patch: {
            parameters: {
                query: {
                    path: components["parameters"]["path"];
                };
                header?: never;
                path: {
                    volumeID: components["parameters"]["volumeID"];
                };
                cookie?: never;
            };
            requestBody: {
                content: {
                    "application/json": {
                        /** Format: uint32 */
                        gid?: number;
                        /** Format: uint32 */
                        mode?: number;
                        /** Format: uint32 */
                        uid?: number;
                    };
                };
            };
            responses: {
                /** @description Successfully updated a file's metadata */
                200: {
                    headers: {
                        [name: string]: unknown;
                    };
                    content: {
                        "application/json": components["schemas"]["VolumeEntryStat"];
                    };
                };
                /** @description Invalid metadata provided */
                400: {
                    headers: {
                        [name: string]: unknown;
                    };
                    content?: never;
                };
                /** @description path not found */
                404: {
                    headers: {
                        [name: string]: unknown;
                    };
                    content?: never;
                };
                /** @description Internal server error */
                500: {
                    headers: {
                        [name: string]: unknown;
                    };
                    content?: never;
                };
            };
        };
        trace?: never;
    };
}
export type webhooks = Record<string, never>;
export interface components {
    schemas: {
        Error: {
            /** @description Error code */
            code: string;
            /** @description Error message */
            message: string;
        };
        VolumeDirectoryListing: components["schemas"]["VolumeEntryStat"][];
        VolumeEntryStat: {
            /** Format: date-time */
            atime: string;
            /** Format: date-time */
            ctime: string;
            /** Format: uint32 */
            gid: number;
            /** Format: uint32 */
            mode: number;
            /** Format: date-time */
            mtime: string;
            name: string;
            path: string;
            /** Format: int64 */
            size: number;
            target?: string;
            /** @enum {string} */
            type: "unknown" | "file" | "directory" | "symlink";
            /** Format: uint32 */
            uid: number;
        };
    };
    responses: {
        /** @description Bad request */
        400: {
            headers: {
                [name: string]: unknown;
            };
            content: {
                "application/json": components["schemas"]["Error"];
            };
        };
        /** @description Authentication error */
        401: {
            headers: {
                [name: string]: unknown;
            };
            content: {
                "application/json": components["schemas"]["Error"];
            };
        };
        /** @description Forbidden */
        403: {
            headers: {
                [name: string]: unknown;
            };
            content: {
                "application/json": components["schemas"]["Error"];
            };
        };
        /** @description Not found */
        404: {
            headers: {
                [name: string]: unknown;
            };
            content: {
                "application/json": components["schemas"]["Error"];
            };
        };
        /** @description Conflict */
        409: {
            headers: {
                [name: string]: unknown;
            };
            content: {
                "application/json": components["schemas"]["Error"];
            };
        };
        /** @description Server error */
        500: {
            headers: {
                [name: string]: unknown;
            };
            content: {
                "application/json": components["schemas"]["Error"];
            };
        };
    };
    parameters: {
        path: string;
        volumeID: string;
    };
    requestBodies: never;
    headers: never;
    pathItems: never;
}
export type $defs = Record<string, never>;
export type operations = Record<string, never>;
