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

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

/**
 * HTTPExceptionResponse
 *
 * HTTPException Model used for error response.
 */
export type HttpExceptionResponse = {
    /**
     * Detail
     */
    detail: string | {
        [key: string]: unknown;
    };
};

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

/**
 * LoginBody
 *
 * Login serializer for post bodies.
 */
export type LoginBody = {
    /**
     * Username
     */
    username: string;
    /**
     * Password
     */
    password: string;
};

/**
 * LoginResponse
 *
 * Login serializer for responses.
 */
export type LoginResponse = {
    /**
     * Access Token
     */
    access_token: string;
};

/**
 * ValidationError
 */
export type ValidationError = {
    /**
     * Location
     */
    loc: Array<string | number>;
    /**
     * Message
     */
    msg: string;
    /**
     * Error Type
     */
    type: string;
    /**
     * Input
     */
    input?: unknown;
    /**
     * Context
     */
    ctx?: {
        [key: string]: unknown;
    };
};

export type CreateTokenAllAdminsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/auth/token';
};

export type CreateTokenAllAdminsErrors = {
    /**
     * Forbidden
     */
    403: HttpExceptionResponse;
};

export type CreateTokenAllAdminsError = CreateTokenAllAdminsErrors[keyof CreateTokenAllAdminsErrors];

export type CreateTokenAllAdminsResponses = {
    /**
     * Successful Response
     */
    201: LoginResponse;
};

export type CreateTokenAllAdminsResponse = CreateTokenAllAdminsResponses[keyof CreateTokenAllAdminsResponses];

export type CreateTokenData = {
    body: LoginBody;
    headers?: {
        /**
         * Content-Type
         *
         * Content-Type of the request body
         */
        'Content-Type'?: 'application/json' | 'application/x-www-form-urlencoded';
    };
    path?: never;
    query?: never;
    url: '/auth/token';
};

export type CreateTokenErrors = {
    /**
     * Bad Request
     */
    400: HttpExceptionResponse;
    /**
     * Unauthorized
     */
    401: HttpExceptionResponse;
    /**
     * Unsupported Media Type
     */
    415: HttpExceptionResponse;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type CreateTokenError = CreateTokenErrors[keyof CreateTokenErrors];

export type CreateTokenResponses = {
    /**
     * Successful Response
     */
    201: LoginResponse;
};

export type CreateTokenResponse = CreateTokenResponses[keyof CreateTokenResponses];

export type LoginAllAdminsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/auth/token/login';
};

export type LoginAllAdminsErrors = {
    /**
     * Forbidden
     */
    403: HttpExceptionResponse;
};

export type LoginAllAdminsError = LoginAllAdminsErrors[keyof LoginAllAdminsErrors];

export type CreateTokenCliData = {
    body: LoginBody;
    path?: never;
    query?: never;
    url: '/auth/token/cli';
};

export type CreateTokenCliErrors = {
    /**
     * Bad Request
     */
    400: HttpExceptionResponse;
    /**
     * Unauthorized
     */
    401: HttpExceptionResponse;
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type CreateTokenCliError = CreateTokenCliErrors[keyof CreateTokenCliErrors];

export type CreateTokenCliResponses = {
    /**
     * Successful Response
     */
    201: LoginResponse;
};

export type CreateTokenCliResponse = CreateTokenCliResponses[keyof CreateTokenCliResponses];
