
    ZTh.                       d Z ddlmZ ddlmZmZ ddlmZmZ ddl	m
c mZ ddlm
c mZ ej                   Zej"                  Zej$                  Zej&                  Zej(                  Z G d de      Z G d d	e      Z G d
 de      Zy)zl
Formal specification of the types that `sift_py` expects when loading a telemetry config from a YAML file.
    )annotations)DictList)NotRequired	TypedDictNc                  N    e Zd ZU dZded<   ded<   ded<   ded<   d	ed
<   ded<   y)TelemetryConfigYamlSpeca+  
    Formal spec that defines what the telemetry config should look like in YAML.

    `asset_name`: The name of the asset to telemeter.
    `ingestion_client_key`: Optional user-defined string-key that uniquely identifies this telemetry config.
    `organization_id`: Optional ID of user's organization. Required if user belongs to multiple orgs.
    `channels`: Sensors that send the data.
    `rules`: Rules that, when evaluated to a true, will perform some sort of acction.
    `flows`: A list of named groups of channels that send data together.
    str
asset_namezNotRequired[str]ingestion_client_keyorganization_idz Dict[str, ChannelConfigYamlSpec]channelszNotRequired[List[RuleYamlSpec]]ruleszNotRequired[List[FlowYamlSpec]]flowsN__name__
__module____qualname____doc____annotations__     g/home/www/backend.miabetepe.com/venv/lib/python3.12/site-packages/sift_py/ingestion/config/yaml/spec.pyr	   r	      s,    	 O**%%..****r   r	   c                  &    e Zd ZU dZded<   ded<   y)FlowYamlSpeczH
    Formal spec that defines what a flow should look like in YAML.
    r
   namezList[ChannelConfigYamlSpec]r   Nr   r   r   r   r   r   )   s     I))r   r   c                  0     e Zd ZU dZded<   d fdZ xZS )YamlConfigErrorzA
    When the YAML config has missing or invalid properties.
    r
   messagec                $    t         |   |       y )N)super__init__)selfr   	__class__s     r   r"   zYamlConfigError.__init__9   s    !r   )r   r
   )r   r   r   r   r   r"   __classcell__)r$   s   @r   r   r   2   s     L" "r   r   )r   
__future__r   typingr   r   typing_extensionsr   r   sift_py.yaml.channelyamlchannelchannel_yamlsift_py.yaml.rulerule	rule_yamlRuleYamlSpecNamedExpressionYamlSpecChannelConfigYamlSpecChannelEnumTypeYamlSpecChannelBitFieldElementYamlSpecr	   r   	Exceptionr   r   r   r   <module>r6      s    #  4 + + % %%%#;; $:: &>> !-!L!L +i +(*9 *"i "r   