"""Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""

from __future__ import annotations
import dataclasses
from cribl import utils
from dataclasses_json import Undefined, dataclass_json
from enum import Enum
from typing import Any, Optional

class PreviewDataParamsMode(str, Enum):
    PIPE = 'pipe'
    ROUTE = 'route'
    ROUTE_AND_SEND = 'routeAndSend'


@dataclass_json(undefined=Undefined.EXCLUDE)

@dataclasses.dataclass
class PreviewDataParams:
    r"""PreviewDataParams object"""
    mode: PreviewDataParamsMode = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('mode') }})
    pipeline_id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('pipelineId') }})
    sample_id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('sampleId') }})
    cpu_profile: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('cpuProfile'), 'exclude': lambda f: f is None }})
    dropped: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('dropped'), 'exclude': lambda f: f is None }})
    events: Optional[list[dict[str, Any]]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('events'), 'exclude': lambda f: f is None }})
    input_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('inputId'), 'exclude': lambda f: f is None }})
    level: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('level'), 'exclude': lambda f: f is None }})
    memory: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('memory'), 'exclude': lambda f: f is None }})
    sample_pipeline_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('samplePipelineId'), 'exclude': lambda f: f is None }})
    timeout: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('timeout'), 'exclude': lambda f: f is None }})
    

