# Generated by ariadne-codegen
# Source: ../schema.graphql

from typing import Any, List, Optional

from pydantic import Field

from .base_model import BaseModel
from .enums import OperationType, RunOnEnum


class AcquireInput(BaseModel):
    acquires: Optional[List[Optional["EntityAcquireInput"]]] = None
    sub_acquires: Optional[List[Optional["AcquireInput"]]] = Field(
        alias="subAcquires", default=None
    )
    step_run_on: RunOnEnum = Field(alias="stepRunOn")


class EntityAcquireInput(BaseModel):
    query_containing_jmes_expr: str = Field(alias="queryContainingJmesExpr")
    entity: RunOnEnum


class DbUpdatesInput(BaseModel):
    updates: Optional[List[Optional["EntityUpdateInput"]]] = None


class EntityUpdateInput(BaseModel):
    operation: OperationType
    entity: RunOnEnum
    id: str
    path: Optional[str] = None
    value: Optional[Any] = None
    data: Optional[Any] = None
