"""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 typing import Any, Optional


@dataclass_json(undefined=Undefined.EXCLUDE)

@dataclasses.dataclass
class AggregationMgrOptions:
    aggregations: list[str] = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('aggregations') }})
    cumulative: bool = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('cumulative') }})
    flush_event_limit: int = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('flushEventLimit') }})
    flush_mem_limit: int = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('flushMemLimit') }})
    hostname: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('hostname') }})
    metrics_mode: bool = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('metricsMode') }})
    sufficient_stats_only: bool = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('sufficientStatsOnly') }})
    time_window_seconds: int = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('timeWindowSeconds') }})
    idle_time_limit_seconds: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('idleTimeLimitSeconds'), 'exclude': lambda f: f is None }})
    lag_tolerance_seconds: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('lagToleranceSeconds'), 'exclude': lambda f: f is None }})
    prefix: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('prefix'), 'exclude': lambda f: f is None }})
    preserve_split_by_structure: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('preserveSplitByStructure'), 'exclude': lambda f: f is None }})
    search_agg_mode: Optional[Any] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('searchAggMode'), 'exclude': lambda f: f is None }})
    split_bys: Optional[list[str]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('splitBys'), 'exclude': lambda f: f is None }})
    

