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

export interface paths {
    "/api/auth/keychains": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** List keychains */
        get: operations["getKeychains"];
        put?: never;
        /** Create a keychain */
        post: operations["createKeychain"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/api/auth/keychains/{keychainId}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Get keychain by ID */
        get: operations["getKeychainById"];
        /** Update keychain */
        put: operations["updateKeychain"];
        post?: never;
        /** Delete keychain */
        delete: operations["deleteKeychain"];
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/api/auth/keychains/{keychainId}/{keyId}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Add key to keychain */
        post: operations["addKeyToKeychain"];
        /** Remove key from keychain */
        delete: operations["removeKeyFromKeychain"];
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/api/auth/keychains/{keychainId}/keys": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** List keys in a keychain */
        get: operations["getKeysOfKeychain"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
}
export type webhooks = Record<string, never>;
export interface components {
    schemas: {
        /** @description Represents a collection of keys. */
        Keychain: {
            /**
             * Format: uuid
             * @description Unique identifier for the keychain.
             */
            id: string;
            /** @description Name of the keychain. */
            name: string;
            /**
             * Format: uuid
             * @description Owner of the keychain.
             */
            owner: string;
            /**
             * Format: date-time
             * @description Timestamp when the keychain was created.
             */
            createdAt: string;
            /**
             * Format: date-time
             * @description Timestamp when the keychain was last updated.
             */
            updatedAt: string;
            /**
             * Format: date-time
             * @description Timestamp when the keychain was soft-deleted.
             */
            deletedAt?: string | null;
        };
        /** @description Payload for creating or updating a keychain. */
        KeychainPayload: {
            /** @description Name of the keychain. */
            name: string;
            /**
             * Format: uuid
             * @description Owner of the keychain.
             */
            owner?: string;
        };
        /** @description A paginated list of keychains. */
        KeychainPage: {
            /** @description Zero-based page index returned in this response. */
            page: number;
            /** @description Maximum number of items returned on each page. */
            pageSize: number;
            /** @description Total number of items across all pages. */
            totalCount: number;
            /** @description Keychains returned on the current page. */
            keychains: {
                /**
                 * Format: uuid
                 * @description Unique identifier for the keychain.
                 */
                id: string;
                /** @description Name of the keychain. */
                name: string;
                /**
                 * Format: uuid
                 * @description Owner of the keychain.
                 */
                owner: string;
                /**
                 * Format: date-time
                 * @description Timestamp when the keychain was created.
                 */
                createdAt: string;
                /**
                 * Format: date-time
                 * @description Timestamp when the keychain was last updated.
                 */
                updatedAt: string;
                /**
                 * Format: date-time
                 * @description Timestamp when the keychain was soft-deleted.
                 */
                deletedAt?: string | null;
            }[];
        };
    };
    responses: {
        /** @description Invalid request body or request param */
        400: {
            headers: {
                [name: string]: unknown;
            };
            content: {
                "text/plain": string;
            };
        };
        /** @description Expired JWT token used or insufficient privilege */
        401: {
            headers: {
                [name: string]: unknown;
            };
            content: {
                "text/plain": string;
            };
        };
        /** @description Result not found */
        404: {
            headers: {
                [name: string]: unknown;
            };
            content: {
                "text/plain": string;
            };
        };
        /** @description Internal server error */
        500: {
            headers: {
                [name: string]: unknown;
            };
            content: {
                "text/plain": string;
            };
        };
    };
    parameters: {
        /** @description Key ID */
        keyId: string;
        /** @description Keychain ID */
        keychainId: string;
        /** @description Get responses by page */
        page: number;
        /** @description Number of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase `pagesize`. */
        pageSize: number;
        /**
         * @deprecated
         * @description Get responses by pagesize. Deprecated alias of pageSize.
         */
        pagesize: number;
        /** @description Get ordered responses */
        order: string;
        /** @description Get responses that match search param value */
        search: string;
    };
    requestBodies: never;
    headers: never;
    pathItems: never;
}
export type $defs = Record<string, never>;
export interface operations {
    getKeychains: {
        parameters: {
            query?: {
                /** @description Get responses by page */
                page?: number;
                /** @description Number of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase `pagesize`. */
                pageSize?: number;
                /**
                 * @deprecated
                 * @description Get responses by pagesize. Deprecated alias of pageSize.
                 */
                pagesize?: number;
                /** @description Get responses that match search param value */
                search?: string;
                /** @description Get ordered responses */
                order?: string;
            };
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Keychain(s) fetched */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @description Zero-based page index returned in this response. */
                        page: number;
                        /** @description Maximum number of items returned on each page. */
                        pageSize: number;
                        /** @description Total number of items across all pages. */
                        totalCount: number;
                        /** @description Keychains returned on the current page. */
                        keychains: {
                            /**
                             * Format: uuid
                             * @description Unique identifier for the keychain.
                             */
                            id: string;
                            /** @description Name of the keychain. */
                            name: string;
                            /**
                             * Format: uuid
                             * @description Owner of the keychain.
                             */
                            owner: string;
                            /**
                             * Format: date-time
                             * @description Timestamp when the keychain was created.
                             */
                            createdAt: string;
                            /**
                             * Format: date-time
                             * @description Timestamp when the keychain was last updated.
                             */
                            updatedAt: string;
                            /**
                             * Format: date-time
                             * @description Timestamp when the keychain was soft-deleted.
                             */
                            deletedAt?: string | null;
                        }[];
                    };
                };
            };
            /** @description Invalid request body or request param */
            400: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Expired JWT token used or insufficient privilege */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Internal server error */
            500: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
        };
    };
    createKeychain: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /** @description Name of the keychain. */
                    name: string;
                    /**
                     * Format: uuid
                     * @description Owner of the keychain.
                     */
                    owner?: string;
                };
            };
        };
        responses: {
            /** @description Keychain created */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /**
                         * Format: uuid
                         * @description Unique identifier for the keychain.
                         */
                        id: string;
                        /** @description Name of the keychain. */
                        name: string;
                        /**
                         * Format: uuid
                         * @description Owner of the keychain.
                         */
                        owner: string;
                        /**
                         * Format: date-time
                         * @description Timestamp when the keychain was created.
                         */
                        createdAt: string;
                        /**
                         * Format: date-time
                         * @description Timestamp when the keychain was last updated.
                         */
                        updatedAt: string;
                        /**
                         * Format: date-time
                         * @description Timestamp when the keychain was soft-deleted.
                         */
                        deletedAt?: string | null;
                    };
                };
            };
            /** @description Invalid request body or request param */
            400: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Expired JWT token used or insufficient privilege */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Internal server error */
            500: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
        };
    };
    getKeychainById: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description Keychain ID */
                keychainId: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Keychain fetched */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /**
                         * Format: uuid
                         * @description Unique identifier for the keychain.
                         */
                        id: string;
                        /** @description Name of the keychain. */
                        name: string;
                        /**
                         * Format: uuid
                         * @description Owner of the keychain.
                         */
                        owner: string;
                        /**
                         * Format: date-time
                         * @description Timestamp when the keychain was created.
                         */
                        createdAt: string;
                        /**
                         * Format: date-time
                         * @description Timestamp when the keychain was last updated.
                         */
                        updatedAt: string;
                        /**
                         * Format: date-time
                         * @description Timestamp when the keychain was soft-deleted.
                         */
                        deletedAt?: string | null;
                    };
                };
            };
            /** @description Invalid request body or request param */
            400: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Expired JWT token used or insufficient privilege */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Result not found */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Internal server error */
            500: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
        };
    };
    updateKeychain: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description Keychain ID */
                keychainId: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": {
                    /** @description Name of the keychain. */
                    name: string;
                    /**
                     * Format: uuid
                     * @description Owner of the keychain.
                     */
                    owner?: string;
                };
            };
        };
        responses: {
            /** @description Keychain updated */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /**
                         * Format: uuid
                         * @description Unique identifier for the keychain.
                         */
                        id: string;
                        /** @description Name of the keychain. */
                        name: string;
                        /**
                         * Format: uuid
                         * @description Owner of the keychain.
                         */
                        owner: string;
                        /**
                         * Format: date-time
                         * @description Timestamp when the keychain was created.
                         */
                        createdAt: string;
                        /**
                         * Format: date-time
                         * @description Timestamp when the keychain was last updated.
                         */
                        updatedAt: string;
                        /**
                         * Format: date-time
                         * @description Timestamp when the keychain was soft-deleted.
                         */
                        deletedAt?: string | null;
                    };
                };
            };
            /** @description Invalid request body or request param */
            400: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Expired JWT token used or insufficient privilege */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Result not found */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Internal server error */
            500: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
        };
    };
    deleteKeychain: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description Keychain ID */
                keychainId: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Keychain deleted */
            204: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
            /** @description Invalid request body or request param */
            400: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Expired JWT token used or insufficient privilege */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Result not found */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Internal server error */
            500: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
        };
    };
    addKeyToKeychain: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description Keychain ID */
                keychainId: string;
                /** @description Key ID */
                keyId: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Key added to keychain */
            204: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
            /** @description Invalid request body or request param */
            400: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Expired JWT token used or insufficient privilege */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Result not found */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Internal server error */
            500: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
        };
    };
    removeKeyFromKeychain: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                /** @description Keychain ID */
                keychainId: string;
                /** @description Key ID */
                keyId: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Key removed from keychain */
            204: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
            /** @description Invalid request body or request param */
            400: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Expired JWT token used or insufficient privilege */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Result not found */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Internal server error */
            500: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
        };
    };
    getKeysOfKeychain: {
        parameters: {
            query?: {
                /** @description Get responses by page */
                page?: number;
                /** @description Number of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase `pagesize`. */
                pageSize?: number;
                /**
                 * @deprecated
                 * @description Get responses by pagesize. Deprecated alias of pageSize.
                 */
                pagesize?: number;
                /** @description Get responses that match search param value */
                search?: string;
                /** @description Get ordered responses */
                order?: string;
            };
            header?: never;
            path: {
                /** @description Keychain ID */
                keychainId: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Keys response */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        /** @description Zero-based page index returned in this response. */
                        page: number;
                        /** @description Maximum number of items returned on each page. */
                        pageSize: number;
                        /** @description Total number of items across all pages. */
                        totalCount: number;
                        /** @description Keys returned on the current page. */
                        keys: {
                            /**
                             * Format: uuid
                             * @description A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
                             */
                            id: string;
                            /**
                             * Format: uuid
                             * @description A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
                             */
                            owner: string;
                            /** @description Operation permitted by the key. */
                            function: string;
                            /** @description Category for the key. */
                            category: string;
                            /** @description Subcategory for the key. */
                            subcategory: string;
                            /** @description Human readable description of the key. */
                            description: string;
                            /**
                             * Format: date-time
                             * @description Timestamp when the key was created.
                             */
                            createdAt: string;
                            /**
                             * Format: date-time
                             * @description Timestamp when the key was last updated.
                             */
                            updatedAt: string;
                            /**
                             * Format: date-time
                             * @description Timestamp when the key was soft-deleted.
                             */
                            deletedAt?: string | null;
                        }[];
                    };
                };
            };
            /** @description Invalid request body or request param */
            400: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Expired JWT token used or insufficient privilege */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Result not found */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
            /** @description Internal server error */
            500: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "text/plain": string;
                };
            };
        };
    };
}
