# generated by datamodel-codegen:
#   filename:  <stdin>
#   timestamp: 2023-02-17T08:29:30+00:00

from __future__ import annotations

from enum import Enum
from typing import Any
from typing import Literal

from pydantic import BaseModel, Extra, Field


class WappstoVersion(Enum):
    V2_0 = "2.0"
    V2_1 = "2.1"


class WarningItem(BaseModel):
    message: str | None = None
    data: dict[str, Any] | None = None
    code: int | None = None


class Meta(BaseModel):
    class Config:
        extra = Extra.forbid

    type: Literal['deletelist']
    version: WappstoVersion | None = None
    trace: str | None = None
    oem: str | None = None
    deprecated: bool | None = None
    warning: list[WarningItem] | None = None


class UnsuccessfulItem(BaseModel):
    id: str | None = None
    message: str | None = None
    data: dict[str, Any] | None = None
    code: int | None = None


class Deletelist(BaseModel):
    class Config:
        extra = Extra.forbid

    deleted: list[str] | None = None
    child_deleted: list[str] | None = None
    shared_deleted: list[str] | None = None
    shared_child_deleted: list[str] | None = None
    not_deleted: list[str] | None = None
    child_not_deleted: list[str] | None = None
    shared_not_deleted: list[str] | None = None
    shared_child_not_deleted: list[str] | None = None
    pending: list[str] | None = None
    child_pending: list[str] | None = None
    owned_deleted: list[str] | None = None
    owned_not_deleted_because_it_has_parent: list[str] | None = None
    shared_not_deleted_because_it_has_parent: list[str] | None = None
    code: int
    message: str
    error: str | None = None
    internal_code: str | None = None
    meta: Meta = Field(..., title='meta_list-2.1')
    unsuccessful: list[UnsuccessfulItem] | None = None
