/**
 * This file was auto-generated by openapi-typescript.
 * Do not make direct changes to the file.
 */
export interface paths {
    "/dw/rest/v1/roles": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * List all roles.
         * @description Retrieve a paginated list of all roles. Use the roleTargetType parameter to filter by target type.
         */
        get: operations["getRoles"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/dw/rest/v1/roles/{roleId}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Get role by ID.
         * @description Retrieve a specific role by ID.
         */
        get: operations["getRole"];
        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 A role defines permissions and access levels that can be assigned to Users and API Clients. */
        Role: {
            /** @description Description of the role. */
            description?: string;
            /** @description Enumeration name of the role. */
            roleEnumName?: string;
            /** @description List of permissions granted by this role. */
            permissions?: string[];
            /**
             * @description Scope level of the role (global or instance-specific).
             * @enum {string}
             */
            scope?: "GLOBAL" | "INSTANCE";
            /**
             * @description Type of entity the role can be assigned to.
             * @enum {string|null}
             */
            targetType?: "ApiClient" | "User" | null;
            /** @description Indicates if two-factor authentication is required for the role. */
            twoFAEnabled?: boolean;
            /** @description Unique identifier of the role. */
            id?: string;
        };
        /** @description A paginated collection of roles. */
        RoleCollection: {
            content?: components["schemas"]["Role"][];
        };
        /** @description Pagination parameters for list operations. */
        Pageable: {
            /**
             * Format: int32
             * @description Zero-based page index.
             */
            page?: number;
            /**
             * Format: int32
             * @description Number of items to return per page.
             * @default 20
             */
            size: number;
        };
        /** @description Standard error response format returned when API requests fail. */
        ErrorResponse: {
            /** @description The list of errors */
            errors?: {
                /** @description Error message */
                message?: string;
                /** @description Error code */
                code?: string;
                /** @description Field-specific errors */
                fieldErrors?: {
                    /** @description The field that contained the erroneous value */
                    field?: string;
                    /** @description The value that was rejected */
                    rejectedValue?: Record<string, never>;
                    /** @description Whether this error was caused by failed binding (e.g. type mismatch) */
                    bindingFailure?: boolean;
                }[] | null;
            }[];
        };
    };
    responses: {
        /** @description Access token is missing or invalid */
        UnauthorizedError: {
            headers: {
                [name: string]: unknown;
            };
            content: {
                /**
                 * @example {
                 *       "errors": [
                 *         {
                 *           "message": "Full authentication is required to access this resource",
                 *           "code": "InsufficientAuthenticationException",
                 *           "fieldErrors": null
                 *         }
                 *       ]
                 *     }
                 */
                "application/json": {
                    /** @description The list of errors */
                    errors?: {
                        /** @description Error message */
                        message?: string;
                        /** @description Error code */
                        code?: string;
                        /** @description Field-specific errors. */
                        fieldErrors?: {
                            /** @description The field that contained the erroneous value. */
                            field?: string;
                            /** @description The value that was rejected. */
                            rejectedValue?: Record<string, never>;
                            /** @description Whether this error was caused by failed binding (e.g. type mismatch). */
                            bindingFailure?: boolean;
                        }[] | null;
                    }[];
                };
            };
        };
        /** @description Request has been rate-limited. The X-RateLimit-* headers can be used to improve retry behavior. */
        RateLimitedError: {
            headers: {
                "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
                "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
                "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
                [name: string]: unknown;
            };
            content?: never;
        };
    };
    parameters: never;
    requestBodies: never;
    headers: {
        /** @description Rate limit per minute. */
        "X-RateLimit-Limit": number;
        /** @description The number of requests left in the current time window. */
        "X-RateLimit-Remaining": number;
        /** @description The UTC timestamp at which the current rate limit window resets. */
        "X-RateLimit-Reset": string;
    };
    pathItems: never;
}
export type $defs = Record<string, never>;
export interface operations {
    getRoles: {
        parameters: {
            query?: {
                pageable?: components["schemas"]["Pageable"];
                roleTargetType?: "ApiClient" | "User";
            };
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
                    "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
                    "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
                    [name: string]: unknown;
                };
                content: {
                    /**
                     * @example {
                     *       "content": [
                     *         {
                     *           "description": "Business Manager User",
                     *           "roleEnumName": "ECOM_USER",
                     *           "permissions": [],
                     *           "scope": "INSTANCE",
                     *           "targetType": "User",
                     *           "id": "bm-user"
                     *         },
                     *         {
                     *           "description": "Business Manager Administrator",
                     *           "roleEnumName": "ECOM_ADMIN",
                     *           "permissions": [],
                     *           "scope": "INSTANCE",
                     *           "targetType": "User",
                     *           "id": "bm-admin"
                     *         }
                     *       ]
                     *     }
                     */
                    "application/json": components["schemas"]["RoleCollection"];
                };
            };
            /** @description Bad Request */
            400: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
            /** @description Access token is missing or invalid. */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ErrorResponse"];
                };
            };
            429: components["responses"]["RateLimitedError"];
        };
    };
    getRole: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                roleId: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
                    "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
                    "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
                    [name: string]: unknown;
                };
                content: {
                    /**
                     * @example {
                     *       "description": "Business Manager User",
                     *       "roleEnumName": "ECOM_USER",
                     *       "permissions": [],
                     *       "scope": "INSTANCE",
                     *       "targetType": "User",
                     *       "id": "bm-user"
                     *     }
                     */
                    "application/json": components["schemas"]["Role"];
                };
            };
            /** @description Bad Request */
            400: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
            /** @description Access token is missing or invalid. */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ErrorResponse"];
                };
            };
            /** @description A role with this ID was not found. */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
            429: components["responses"]["RateLimitedError"];
        };
    };
}
