# coding: utf-8

"""
    Seeq REST API

    No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)  # noqa: E501

    OpenAPI spec version: 66.118.2-v202603221428-CD
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""

from __future__ import annotations

from typing import Any, ClassVar, Dict, List, Optional, Set, TYPE_CHECKING

if TYPE_CHECKING:
    from . import *  # noqa: F401,F403


class TableDataQueryInputV1(object):
    swagger_types: ClassVar[Dict[str, str]] = ...
    attribute_map: ClassVar[Dict[str, str]] = ...

    _columns_to_include: Optional[List[str]]
    _condition_monitor_id: Optional[str]
    _cursor: Optional[Cursor]
    _distinct_on_columns: Optional[List[str]]
    _filter: Optional[Filter]
    _group_by: Optional[GroupBy]
    _include_overrides: Optional[bool]
    _limit: int
    _properties_to_include: Optional[List[PropertiesForItemUUIDColumn]]
    _sorts: Optional[List[Sort]]
    _table_formulas: Optional[List[TableFormula]]
    _tables_to_join: Optional[List[TableJoinInput]]
    _use_distinct: Optional[bool]
    _virtual_columns: Optional[VirtualColumns]


    def __init__(
        self,
        columns_to_include: Optional[List[str]] = None,
        condition_monitor_id: Optional[str] = None,
        cursor: Optional[Cursor] = None,
        distinct_on_columns: Optional[List[str]] = None,
        filter: Optional[Filter] = None,
        group_by: Optional[GroupBy] = None,
        include_overrides: Optional[bool] = None,
        limit: Optional[int] = None,
        properties_to_include: Optional[List[PropertiesForItemUUIDColumn]] = None,
        sorts: Optional[List[Sort]] = None,
        table_formulas: Optional[List[TableFormula]] = None,
        tables_to_join: Optional[List[TableJoinInput]] = None,
        use_distinct: Optional[bool] = None,
        virtual_columns: Optional[VirtualColumns] = None,
    ) -> None: ...

    @property
    def columns_to_include(self) -> Optional[List[str]]: ...

    @columns_to_include.setter
    def columns_to_include(self, columns_to_include: Optional[List[str]]) -> None: ...

    @property
    def condition_monitor_id(self) -> Optional[str]: ...

    @condition_monitor_id.setter
    def condition_monitor_id(self, condition_monitor_id: Optional[str]) -> None: ...

    @property
    def cursor(self) -> Optional[Cursor]: ...

    @cursor.setter
    def cursor(self, cursor: Optional[Cursor]) -> None: ...

    @property
    def distinct_on_columns(self) -> Optional[List[str]]: ...

    @distinct_on_columns.setter
    def distinct_on_columns(self, distinct_on_columns: Optional[List[str]]) -> None: ...

    @property
    def filter(self) -> Optional[Filter]: ...

    @filter.setter
    def filter(self, filter: Optional[Filter]) -> None: ...

    @property
    def group_by(self) -> Optional[GroupBy]: ...

    @group_by.setter
    def group_by(self, group_by: Optional[GroupBy]) -> None: ...

    @property
    def include_overrides(self) -> Optional[bool]: ...

    @include_overrides.setter
    def include_overrides(self, include_overrides: Optional[bool]) -> None: ...

    @property
    def limit(self) -> int: ...

    @limit.setter
    def limit(self, limit: int) -> None: ...

    @property
    def properties_to_include(self) -> Optional[List[PropertiesForItemUUIDColumn]]: ...

    @properties_to_include.setter
    def properties_to_include(self, properties_to_include: Optional[List[PropertiesForItemUUIDColumn]]) -> None: ...

    @property
    def sorts(self) -> Optional[List[Sort]]: ...

    @sorts.setter
    def sorts(self, sorts: Optional[List[Sort]]) -> None: ...

    @property
    def table_formulas(self) -> Optional[List[TableFormula]]: ...

    @table_formulas.setter
    def table_formulas(self, table_formulas: Optional[List[TableFormula]]) -> None: ...

    @property
    def tables_to_join(self) -> Optional[List[TableJoinInput]]: ...

    @tables_to_join.setter
    def tables_to_join(self, tables_to_join: Optional[List[TableJoinInput]]) -> None: ...

    @property
    def use_distinct(self) -> Optional[bool]: ...

    @use_distinct.setter
    def use_distinct(self, use_distinct: Optional[bool]) -> None: ...

    @property
    def virtual_columns(self) -> Optional[VirtualColumns]: ...

    @virtual_columns.setter
    def virtual_columns(self, virtual_columns: Optional[VirtualColumns]) -> None: ...

    def to_dict(self) -> Dict[str, Any]: ...
    def to_str(self) -> str: ...
    def __repr__(self) -> str: ...
    def __eq__(self, other: object) -> bool: ...
    def __ne__(self, other: object) -> bool: ...
