# Generated by ariadne-codegen
# Source: queries.graphql

from typing import Literal, Optional, Union

from pydantic import Field

from .base_model import BaseModel
from .fragments import InvalidInputSelection, OperationErrorSelection, UserSelection


class UsersRemoveRoles(BaseModel):
    admin: "UsersRemoveRolesAdmin"


class UsersRemoveRolesAdmin(BaseModel):
    user: "UsersRemoveRolesAdminUser"


class UsersRemoveRolesAdminUser(BaseModel):
    mutate: Optional["UsersRemoveRolesAdminUserMutate"]


class UsersRemoveRolesAdminUserMutate(BaseModel):
    remove_roles: Union[
        "UsersRemoveRolesAdminUserMutateRemoveRolesUser",
        "UsersRemoveRolesAdminUserMutateRemoveRolesInvalidInput",
        "UsersRemoveRolesAdminUserMutateRemoveRolesOperationError",
    ] = Field(alias="removeRoles", discriminator="typename__")


class UsersRemoveRolesAdminUserMutateRemoveRolesUser(UserSelection):
    typename__: Literal["User"] = Field(alias="__typename")


class UsersRemoveRolesAdminUserMutateRemoveRolesInvalidInput(InvalidInputSelection):
    typename__: Literal["InvalidInput"] = Field(alias="__typename")


class UsersRemoveRolesAdminUserMutateRemoveRolesOperationError(OperationErrorSelection):
    typename__: Literal["OperationError"] = Field(alias="__typename")


UsersRemoveRoles.model_rebuild()
UsersRemoveRolesAdmin.model_rebuild()
UsersRemoveRolesAdminUser.model_rebuild()
UsersRemoveRolesAdminUserMutate.model_rebuild()
