"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from mixpeek.types import BaseModel
from typing import List, Optional
from typing_extensions import NotRequired, TypedDict


class AttributeBasedConfigTypedDict(TypedDict):
    attributes: List[str]
    r"""List of attributes to use for attribute-based clustering"""
    hierarchical_grouping: NotRequired[bool]
    r"""Enable multi-level grouping similar to pandas multi-level groupby"""


class AttributeBasedConfig(BaseModel):
    attributes: List[str]
    r"""List of attributes to use for attribute-based clustering"""

    hierarchical_grouping: Optional[bool] = False
    r"""Enable multi-level grouping similar to pandas multi-level groupby"""
