# {py:mod}`haniwers.v1.threshold.model`

```{py:module} haniwers.v1.threshold.model
```

```{autodoc2-docstring} haniwers.v1.threshold.model
:allowtitles:
```

## Module Contents

### Classes

````{list-table}
:class: autosummary longtable
:align: left

* - {py:obj}`ScanDataPoint <haniwers.v1.threshold.model.ScanDataPoint>`
  - ```{autodoc2-docstring} haniwers.v1.threshold.model.ScanDataPoint
    :summary:
    ```
* - {py:obj}`ThresholdOperation <haniwers.v1.threshold.model.ThresholdOperation>`
  - ```{autodoc2-docstring} haniwers.v1.threshold.model.ThresholdOperation
    :summary:
    ```
* - {py:obj}`ChannelScanResult <haniwers.v1.threshold.model.ChannelScanResult>`
  - ```{autodoc2-docstring} haniwers.v1.threshold.model.ChannelScanResult
    :summary:
    ```
* - {py:obj}`ScanResult <haniwers.v1.threshold.model.ScanResult>`
  - ```{autodoc2-docstring} haniwers.v1.threshold.model.ScanResult
    :summary:
    ```
````

### API

`````{py:class} ScanDataPoint
:canonical: haniwers.v1.threshold.model.ScanDataPoint

Bases: {py:obj}`typing.NamedTuple`

```{autodoc2-docstring} haniwers.v1.threshold.model.ScanDataPoint
```

````{py:attribute} timestamp
:canonical: haniwers.v1.threshold.model.ScanDataPoint.timestamp
:type: str
:value: >
   None

```{autodoc2-docstring} haniwers.v1.threshold.model.ScanDataPoint.timestamp
```

````

````{py:attribute} channel
:canonical: haniwers.v1.threshold.model.ScanDataPoint.channel
:type: int
:value: >
   None

```{autodoc2-docstring} haniwers.v1.threshold.model.ScanDataPoint.channel
```

````

````{py:attribute} threshold
:canonical: haniwers.v1.threshold.model.ScanDataPoint.threshold
:type: int
:value: >
   None

```{autodoc2-docstring} haniwers.v1.threshold.model.ScanDataPoint.threshold
```

````

````{py:attribute} event_count
:canonical: haniwers.v1.threshold.model.ScanDataPoint.event_count
:type: int
:value: >
   None

```{autodoc2-docstring} haniwers.v1.threshold.model.ScanDataPoint.event_count
```

````

`````

`````{py:class} ThresholdOperation
:canonical: haniwers.v1.threshold.model.ThresholdOperation

Bases: {py:obj}`typing.NamedTuple`

```{autodoc2-docstring} haniwers.v1.threshold.model.ThresholdOperation
```

````{py:attribute} timestamp
:canonical: haniwers.v1.threshold.model.ThresholdOperation.timestamp
:type: str
:value: >
   None

```{autodoc2-docstring} haniwers.v1.threshold.model.ThresholdOperation.timestamp
```

````

````{py:attribute} channel
:canonical: haniwers.v1.threshold.model.ThresholdOperation.channel
:type: int
:value: >
   None

```{autodoc2-docstring} haniwers.v1.threshold.model.ThresholdOperation.channel
```

````

````{py:attribute} old_threshold
:canonical: haniwers.v1.threshold.model.ThresholdOperation.old_threshold
:type: typing.Optional[int]
:value: >
   None

```{autodoc2-docstring} haniwers.v1.threshold.model.ThresholdOperation.old_threshold
```

````

````{py:attribute} new_threshold
:canonical: haniwers.v1.threshold.model.ThresholdOperation.new_threshold
:type: int
:value: >
   None

```{autodoc2-docstring} haniwers.v1.threshold.model.ThresholdOperation.new_threshold
```

````

````{py:attribute} status
:canonical: haniwers.v1.threshold.model.ThresholdOperation.status
:type: str
:value: >
   None

```{autodoc2-docstring} haniwers.v1.threshold.model.ThresholdOperation.status
```

````

`````

`````{py:class} ChannelScanResult
:canonical: haniwers.v1.threshold.model.ChannelScanResult

Bases: {py:obj}`typing.NamedTuple`

```{autodoc2-docstring} haniwers.v1.threshold.model.ChannelScanResult
```

````{py:attribute} channel
:canonical: haniwers.v1.threshold.model.ChannelScanResult.channel
:type: int
:value: >
   None

```{autodoc2-docstring} haniwers.v1.threshold.model.ChannelScanResult.channel
```

````

````{py:attribute} files
:canonical: haniwers.v1.threshold.model.ChannelScanResult.files
:type: typing.List[str]
:value: >
   None

```{autodoc2-docstring} haniwers.v1.threshold.model.ChannelScanResult.files
```

````

````{py:attribute} error
:canonical: haniwers.v1.threshold.model.ChannelScanResult.error
:type: typing.Optional[str]
:value: >
   None

```{autodoc2-docstring} haniwers.v1.threshold.model.ChannelScanResult.error
```

````

````{py:attribute} data_points
:canonical: haniwers.v1.threshold.model.ChannelScanResult.data_points
:type: typing.List[haniwers.v1.threshold.model.ScanDataPoint]
:value: >
   None

```{autodoc2-docstring} haniwers.v1.threshold.model.ChannelScanResult.data_points
```

````

`````

`````{py:class} ScanResult
:canonical: haniwers.v1.threshold.model.ScanResult

Bases: {py:obj}`typing.NamedTuple`

```{autodoc2-docstring} haniwers.v1.threshold.model.ScanResult
```

````{py:attribute} success
:canonical: haniwers.v1.threshold.model.ScanResult.success
:type: bool
:value: >
   None

```{autodoc2-docstring} haniwers.v1.threshold.model.ScanResult.success
```

````

````{py:attribute} scanned_channels
:canonical: haniwers.v1.threshold.model.ScanResult.scanned_channels
:type: typing.List[int]
:value: >
   None

```{autodoc2-docstring} haniwers.v1.threshold.model.ScanResult.scanned_channels
```

````

````{py:attribute} files
:canonical: haniwers.v1.threshold.model.ScanResult.files
:type: typing.List[str]
:value: >
   None

```{autodoc2-docstring} haniwers.v1.threshold.model.ScanResult.files
```

````

````{py:attribute} errors
:canonical: haniwers.v1.threshold.model.ScanResult.errors
:type: typing.List[str]
:value: >
   None

```{autodoc2-docstring} haniwers.v1.threshold.model.ScanResult.errors
```

````

`````
