# 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.119.1-v202603241138-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 CalculatedTableInputV1(object):
    swagger_types: ClassVar[Dict[str, str]] = ...
    attribute_map: ClassVar[Dict[str, str]] = ...

    _description: Optional[str]
    _group_by: Optional[List[str]]
    _join: Optional[JoinInputV1]
    _name: str
    _order_by: Optional[List[OrderByInputV1]]
    _select_expressions: List[CalculatedTableColumnInputV1]
    _source: str


    def __init__(
        self,
        description: Optional[str] = None,
        group_by: Optional[List[str]] = None,
        join: Optional[JoinInputV1] = None,
        name: Optional[str] = None,
        order_by: Optional[List[OrderByInputV1]] = None,
        select_expressions: Optional[List[CalculatedTableColumnInputV1]] = None,
        source: Optional[str] = None,
    ) -> None: ...

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

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

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

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

    @property
    def join(self) -> Optional[JoinInputV1]: ...

    @join.setter
    def join(self, join: Optional[JoinInputV1]) -> None: ...

    @property
    def name(self) -> str: ...

    @name.setter
    def name(self, name: str) -> None: ...

    @property
    def order_by(self) -> Optional[List[OrderByInputV1]]: ...

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

    @property
    def select_expressions(self) -> List[CalculatedTableColumnInputV1]: ...

    @select_expressions.setter
    def select_expressions(self, select_expressions: List[CalculatedTableColumnInputV1]) -> None: ...

    @property
    def source(self) -> str: ...

    @source.setter
    def source(self, source: str) -> 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: ...
