quakesaver_client.models package#

Submodules#

quakesaver_client.models.cloud_sensor module#

Module containing the sensor model.

class quakesaver_client.models.cloud_sensor.CloudSensor(api_base_url, fdsn_base_url, headers, **data)#

Bases: SensorState

A base schema for other schemas to derive from.

class Config#

Bases: object

Configuration subclass for pydantics BaseModel.

extra = 'forbid'#
underscore_attrs_are_private = True#
first_seen: datetime#
get_event_records(query)#

Get Event Records of the sensor.

Return type:

EventRecordQueryResult

Args:

query: The query parameters like time limit and time frame.

Returns:

EventRecordQueryResult: The queried data products.

get_hv_spectra(query)#

Get HV Spectres of the sensor.

Return type:

HVSpectraQueryResult

Args:

query: The query parameters like time limit and time frame.

Returns:

HVSpectraQueryResult: The queried data products.

get_jma_intensity(query)#

Get the JMA Intensity measurement of the sensor.

Return type:

MeasurementResult

Args:

query: The query parameters like time frame and aggregator.

Returns:

MeasurementQuery: The queried data (if exists) as time series.

get_noise_autocorrelations(query)#

Get the Event Records of the sensor.

Return type:

NoiseAutocorrelationQueryResult

Args:

query: The query parameters like time limit and time frame.

Returns:

NoiseAutocorrelationQueryResult: The queried data products.

get_peak_horizontal_acceleration(query)#

Get the PGA measurement of the sensor.

Return type:

MeasurementResult

Args:

query: The query parameters like time frame and aggregator.

Returns:

MeasurementQuery: The queried data (if exists) as time series.

get_rms_amplitude(query)#

Get the RMS Amplitude measurement of the sensor.

Return type:

MeasurementResult

Args:

query: The query parameters like time frame and aggregator.

Returns:

MeasurementQuery: The queried data (if exists) as time series.

get_rms_offset(query)#

Get the RMS Offset measurement of the sensor.

Return type:

MeasurementResult

Args:

query: The query parameters like time frame and aggregator.

Returns:

MeasurementQuery: The queried data (if exists) as time series.

get_spectral_intensity(query)#

Get the Spectral Intensity measurement of the sensor.

Return type:

MeasurementResult

Args:

query: The query parameters like time frame and aggregator.

Returns:

MeasurementQuery: The queried data (if exists) as time series.

get_stationxml(start_time, end_time, minlatitude=-90, maxlatitude=90, minlongitude=-180, maxlongitude=180, level='station', location_to_store=None)#

Request FDSN StationXML metadata of the sensor.

Return type:

Path

get_waveform_data(start_time, end_time, location_to_store=None)#

Request FDSN waveform dat of the sensor.

Return type:

Optional[Path]

last_updated: datetime#
max_data_product_count: int#
permission: Permission#
warnings: SensorWarnings#

quakesaver_client.models.data_product_query module#

This module provides schemas to query Data Products.

class quakesaver_client.models.data_product_query.DataProductQuery(**data)#

Bases: BaseModel

A schema for querying data products.

end_time: Optional[datetime]#
limit: ConstrainedIntValue#
skip: ConstrainedIntValue#
start_time: Optional[datetime]#
classmethod validate_interval_aggregator(values)#

Assure start time is before end time.

Return type:

dict

class quakesaver_client.models.data_product_query.DataProductQueryResult(**data)#

Bases: BaseModel

A return schema for the data products endpoint including data and metadata.

count: int#
limit: int#
query_time_seconds: float#
skip: int#
ttl_seconds: int#
class quakesaver_client.models.data_product_query.EventRecordQueryResult(**data)#

Bases: DataProductQueryResult

A return schema for the Event Record results.

data_products: list[EventRecord]#
class quakesaver_client.models.data_product_query.HVSpectraQueryResult(**data)#

Bases: DataProductQueryResult

A return schema for the HV Spectra results.

data_products: list[HVSpectra]#
class quakesaver_client.models.data_product_query.NoiseAutocorrelationQueryResult(**data)#

Bases: DataProductQueryResult

A return schema for the Noise Autocorrelation results.

data_products: list[NoiseAutocorrelation]#

quakesaver_client.models.data_products module#

class quakesaver_client.models.data_products.DataProducts(**data)#

Bases: BaseModel

EventRecord: EventRecord#
HVSpectra: HVSpectra#
NoiseAutocorrelation: NoiseAutocorrelation#
WaveformData: WaveformData#
WaveformRequestResponse: WaveformRequestResponse#
class quakesaver_client.models.data_products.DataUnit(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

counts = 'counts'#
m_s = 'm/s'#
m_s2 = 'm/s2'#
class quakesaver_client.models.data_products.EventAttibute(**data)#

Bases: BaseModel

name: str#
class quakesaver_client.models.data_products.EventRecord(**data)#

Bases: BaseModel

attributes: Optional[List[EventAttibute]]#
name: Optional[ConstrainedStrValue]#
persistent: Optional[bool]#
recording_length: float#
sensor_uid: Optional[str]#
timestamp: Optional[datetime]#
traces: TraceModel#
trigger: Optional[EventTrigger]#
trigger_time: datetime#
uid: Optional[UUID]#
class quakesaver_client.models.data_products.EventTrigger(**data)#

Bases: BaseModel

name: str#
time: Optional[datetime]#
value: Optional[float]#
class quakesaver_client.models.data_products.HVSpectra(**data)#

Bases: BaseModel

frequencies: List[float]#
name: Optional[ConstrainedStrValue]#
persistent: Optional[bool]#
sensor_uid: Optional[str]#
spectrum: List[float]#
spectrum_std: List[float]#
stack_duration: float#
timestamp: Optional[datetime]#
uid: Optional[UUID]#
window_length: float#
class quakesaver_client.models.data_products.NoiseAutocorrelation(**data)#

Bases: BaseModel

correlogram: List[float]#
deltat: float#
max_lagtime: float#
name: Optional[ConstrainedStrValue]#
persistent: Optional[bool]#
sensor_uid: Optional[str]#
stacking_method: str#
timestamp: Optional[datetime]#
uid: Optional[UUID]#
class quakesaver_client.models.data_products.TraceModel(**data)#

Bases: BaseModel

compressed: Optional[bool]#
data: Dict[str, bytes]#
data_unit: Optional[DataUnit]#
delta_t: float#
endtime: datetime#
uid: Optional[str]#
class quakesaver_client.models.data_products.WaveformData(**data)#

Bases: BaseModel

name: Optional[ConstrainedStrValue]#
persistent: Optional[bool]#
sensor_uid: Optional[str]#
sequence_number: int#
timestamp: Optional[datetime]#
traces: TraceModel#
uid: Optional[UUID]#
class quakesaver_client.models.data_products.WaveformRequestResponse(**data)#

Bases: BaseModel

name: Optional[ConstrainedStrValue]#
persistent: Optional[bool]#
request_id: UUID#
sensor_uid: Optional[str]#
timestamp: Optional[datetime]#
traces: Optional[TraceModel]#
uid: Optional[UUID]#

quakesaver_client.models.local_sensor module#

Sensor on the local network.

class quakesaver_client.models.local_sensor.LocalSensor(url)#

Bases: object

A base schema for other schemas to derive from.

class Config#

Bases: object

Configuration subclass for pydantics BaseModel.

extra = 'forbid'#
underscore_attrs_are_private = True#
classmethod connect(sensor_url)#

Get a sensor which is available at sensor_url.

Return type:

SensorState

get_event_records(query)#

Get Event Records of the sensor.

Return type:

EventRecordQueryResult

Args:

query: The query parameters like time limit and time frame.

Returns:

EventRecordQueryResult: The queried data products.

get_hv_spectra(query)#

Get HV Spectres of the sensor.

Return type:

HVSpectraQueryResult

Args:

query: The query parameters like time limit and time frame.

Returns:

HVSpectraQueryResult: The queried data products.

get_jma_intensity(query)#

Get the JMA Intensity measurement of the sensor.

Return type:

MeasurementResult

Args:

query: The query parameters like time frame and aggregator.

Returns:

MeasurementQuery: The queried data (if exists) as time series.

get_noise_autocorrelations(query)#

Get the Event Records of the sensor.

Return type:

NoiseAutocorrelationQueryResult

Args:

query: The query parameters like time limit and time frame.

Returns:

NoiseAutocorrelationQueryResult: The queried data products.

get_peak_horizontal_acceleration(query)#

Get the PGA measurement of the sensor.

Return type:

MeasurementResult

Args:

query: The query parameters like time frame and aggregator.

Returns:

MeasurementQuery: The queried data (if exists) as time series.

get_rms_amplitude(query)#

Get the RMS Amplitude measurement of the sensor.

Return type:

MeasurementResult

Args:

query: The query parameters like time frame and aggregator.

Returns:

MeasurementQuery: The queried data (if exists) as time series.

get_rms_offset(query)#

Get the RMS Offset measurement of the sensor.

Return type:

MeasurementResult

Args:

query: The query parameters like time frame and aggregator.

Returns:

MeasurementQuery: The queried data (if exists) as time series.

get_spectral_intensity(query)#

Get the Spectral Intensity measurement of the sensor.

Return type:

MeasurementResult

Args:

query: The query parameters like time frame and aggregator.

Returns:

MeasurementQuery: The queried data (if exists) as time series.

get_stationxml(start_time, end_time, minlatitude=-90, maxlatitude=90, minlongitude=-180, maxlongitude=180, level='station', location_to_store=None)#

Request FDSN StationXML metadata of the sensor.

Return type:

Path

get_waveform_data(file, start_time=None, end_time=None)#

Request FDSN data from sensors and save to buffer.

Return type:

Path

Args:

file (Path): Outfile to write MiniSEED to, if file can be a directory. start_time (datetime | None, optional): Start time, if None all

available data is returned. Defaults to None.

end_time (datetime | None, optional): if None it defaults

to the current time. Defaults to None. Defaults to None.

Returns:

Path: Written MiniSEED file.

get_waveform_stream()#

Get a WebsocketHandler to serve waveform data.

Return type:

WebsocketHandler

get_waveforms_obspy(start_time=None, end_time=None)#

Request FDSN data from sensors and return as an ObsPy stream.

Return type:

Stream

Args:
start_time (datetime | None, optional): Start time, if None all

available data is returned. Defaults to None.

end_time (datetime | None, optional): if None it defaults

to the current time. Defaults to None. Defaults to None.

Returns:

Stream: The retrieved waveform data as obspy.stream.

quakesaver_client.models.measurement module#

This module provides schemas to interact with the InfluxDB.

class quakesaver_client.models.measurement.InfluxData(**data)#

Bases: BaseModel

A schema to describe influx data points.

The attribute naming is chosen for compatibility reasons with the frontend lib (ApexCharts).

times: list[datetime]#
values: list[float]#
class quakesaver_client.models.measurement.MeasurementQuery(**data)#

Bases: BaseModel

A schema for querying measurements.

aggregator: Optional[Literal['median', 'mean', 'first', 'last', 'min', 'max', 'count', 'unique']]#
end_time: datetime#
interval: Optional[timedelta]#
start_time: datetime#
classmethod validate_interval_aggregator(values)#

Assure that aggregators and intervals are only used together.

Return type:

dict

class quakesaver_client.models.measurement.MeasurementQueryFull(**data)#

Bases: BaseModel

A schema for querying measurements.

aggregator: Optional[Literal['median', 'mean', 'first', 'last', 'min', 'max', 'count', 'unique']]#
end_time: datetime#
field: ConstrainedStrValue#
interval: Optional[timedelta]#
measurement: ConstrainedStrValue#
start_time: datetime#
classmethod validate_interval_aggregator(values)#

Assure that aggregators and intervals are only used together.

Return type:

dict

class quakesaver_client.models.measurement.MeasurementResult(**data)#

Bases: BaseModel

A return schema for the measurements endpoint including data and metadata.

data: InfluxData#
query: MeasurementQueryFull#
query_time_seconds: float#
sensor_uid: str#

quakesaver_client.models.permission module#

module containing permission models.

class quakesaver_client.models.permission.Permission(**data)#

Bases: BaseModel

A class to reflect permissions of a subject on an object.

groups: dict[str, PermissionLevel]#
primary_group: Optional[str]#

quakesaver_client.models.sensor_state module#

class quakesaver_client.models.sensor_state.AD7779Config(**data)#

Bases: BaseModel

filter: Optional[Filter]#
gain: Optional[Gain]#
sampling_rate: Optional[SamplingRate]#
class quakesaver_client.models.sensor_state.AD7779Environment(**data)#

Bases: BaseModel

class Config#

Bases: object

extra = 'forbid'#
clock_hz: Optional[int]#
line_drdy: Optional[int]#
line_reset: Optional[int]#
line_sync_in: Optional[int]#
spi_chip_select: Optional[int]#
spi_port: Optional[int]#
spi_speed: Optional[int]#
class quakesaver_client.models.sensor_state.AD7779State(**data)#

Bases: BaseModel

config: Optional[AD7779Config]#
environment: Optional[AD7779Environment]#
stats: Optional[AD7779Statistics]#
type: Optional[str]#
class quakesaver_client.models.sensor_state.AD7779Statistics(**data)#

Bases: BaseModel

active: Optional[bool]#
crc_errors: Optional[int]#
delay: Optional[float]#
gain: Optional[int]#
latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
nsamples: Optional[int]#
sampling_rate: Optional[int]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
class quakesaver_client.models.sensor_state.ADXL355Config(**data)#

Bases: BaseModel

filter: Optional[Filter1]#
range: Optional[Range]#
sampling_rate: Optional[SamplingRate]#
class quakesaver_client.models.sensor_state.ADXL355Environment(**data)#

Bases: BaseModel

class Config#

Bases: object

extra = 'forbid'#
chip_select: Optional[int]#
drdy_int: Optional[int]#
port: Optional[int]#
spi_speed: Optional[int]#
class quakesaver_client.models.sensor_state.ADXL355State(**data)#

Bases: BaseModel

config: Optional[ADXL355Config]#
environment: Optional[ADXL355Environment]#
stats: Optional[ADXL355Statistics]#
type: Optional[str]#
class quakesaver_client.models.sensor_state.ADXL355Statistics(**data)#

Bases: BaseModel

active: Optional[bool]#
crc_errors: Optional[int]#
delay: Optional[float]#
latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
nsamples: Optional[int]#
range: Optional[int]#
sampling_rate: Optional[int]#
tags: Optional[Dict[str, str]]#
temperature: Optional[float]#
timestamp: Optional[datetime]#
class quakesaver_client.models.sensor_state.BMA456Config(**data)#

Bases: BaseModel

range: Optional[Range]#
sampling_rate: Optional[SamplingRate2]#
class quakesaver_client.models.sensor_state.BMA456State(**data)#

Bases: BaseModel

config: Optional[BMA456Config]#
soft_interrupt: Optional[bool]#
stats: Optional[BMA456Statistics]#
type: Optional[str]#
class quakesaver_client.models.sensor_state.BMA456Statistics(**data)#

Bases: BaseModel

active: Optional[bool]#
crc_errors: Optional[int]#
delay: Optional[float]#
latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
ndevices: Optional[int]#
nsamples: Optional[int]#
range: Optional[int]#
sampling_rate: Optional[int]#
tags: Optional[Dict[str, str]]#
temperature: Optional[float]#
timestamp: Optional[datetime]#
class quakesaver_client.models.sensor_state.CPUStatistics(**data)#

Bases: BaseModel

cpu_temperature: Optional[float]#
cpu_usage_percent: Optional[float]#
guest: Optional[float]#
guest_nice: Optional[float]#
idle: Optional[float]#
iowait: Optional[float]#
irq: Optional[float]#
latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
nice: Optional[float]#
softirq: Optional[float]#
steal: Optional[float]#
system: Optional[float]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
user: Optional[float]#
class quakesaver_client.models.sensor_state.ChronyStatistics(**data)#

Bases: BaseModel

frequency: Optional[float]#
last_offset: Optional[float]#
latitude: Optional[float]#
leap_status: Optional[str]#
longitude: Optional[float]#
measurement: Optional[str]#
ref_time_utc: Optional[float]#
reference_id: Optional[str]#
residual_freq: Optional[float]#
rms_offset: Optional[float]#
root_delay: Optional[float]#
root_dispersion: Optional[float]#
server_ip: Optional[str]#
skew: Optional[float]#
stratum: Optional[int]#
system_time: Optional[float]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
update_interval: Optional[float]#
class quakesaver_client.models.sensor_state.DataProductDispatcherConfig(**data)#

Bases: BaseModel

enable_gzip: Optional[bool]#
size_max_bytes: Optional[ConstrainedIntValue]#
class quakesaver_client.models.sensor_state.DataProductDispatcherState(**data)#

Bases: BaseModel

config: Optional[DataProductDispatcherConfig]#
dataproduct_stats: Optional[List[DataProductStats]]#
last_cleanup: Optional[datetime]#
statistics: Optional[DataProductDispatcherStats]#
class quakesaver_client.models.sensor_state.DataProductDispatcherStats(**data)#

Bases: BaseModel

database_size_bytes: Optional[int]#
dataproducts_stored: Optional[int]#
latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
class quakesaver_client.models.sensor_state.DataProductStats(**data)#

Bases: BaseModel

name: str#
nitems: int#
size_bytes: int#
class quakesaver_client.models.sensor_state.DiskStatistics(**data)#

Bases: BaseModel

free: Optional[int]#
latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
percent: Optional[float]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
total: Optional[int]#
used: Optional[int]#
class quakesaver_client.models.sensor_state.EventRecorderConfig(**data)#

Bases: BaseModel

seconds_after_trigger: Optional[PositiveFloat]#
seconds_before_trigger: Optional[PositiveFloat]#
class quakesaver_client.models.sensor_state.EventRecorderState(**data)#

Bases: BaseModel

config: Optional[EventRecorderConfig]#
recording: Optional[bool]#
class quakesaver_client.models.sensor_state.Filter(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

average = 'average'#
remez = 'remez'#
class quakesaver_client.models.sensor_state.Filter1(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

none = 'none'#
remez = 'remez'#
class quakesaver_client.models.sensor_state.Gain(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

integer_1 = 1#
integer_2 = 2#
integer_4 = 4#
class quakesaver_client.models.sensor_state.HTTPServerConfig(**data)#

Bases: BaseModel

host: Optional[IPv4Address]#
port: Optional[ConstrainedIntValue]#
update_interval: Optional[ConstrainedFloatValue]#
class quakesaver_client.models.sensor_state.HTTPServerState(**data)#

Bases: BaseModel

config: Optional[HTTPServerConfig]#
websockets_connected: Optional[int]#
class quakesaver_client.models.sensor_state.HVContinuousSpectraState(**data)#

Bases: BaseModel

coefficients_cache_size_bytes: Optional[int]#
config: Optional[HVSpectraConfig]#
spectra_calculated: Optional[int]#
status: Optional[str]#
class quakesaver_client.models.sensor_state.HVSpectraConfig(**data)#

Bases: BaseModel

enabled: Optional[bool]#
max_frequency: Optional[ConstrainedFloatValue]#
min_frequency: Optional[ConstrainedFloatValue]#
mute_median_level: Optional[ConstrainedFloatValue]#
normalize_spectra: Optional[bool]#
smoothing_filter_bandwidth_hz: Optional[ConstrainedFloatValue]#
spectra_nsamples: Optional[ConstrainedIntValue]#
spectra_stack_size: Optional[ConstrainedIntValue]#
time_normalization: Optional[TimeNormalization]#
window_length_seconds: Optional[ConstrainedFloatValue]#
class quakesaver_client.models.sensor_state.InstitutionBranding(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

EDream = 'EDream'#
QuakeSaver = 'QuakeSaver'#
class quakesaver_client.models.sensor_state.JMAIntensityConfig(**data)#

Bases: BaseModel

enabled: Optional[bool]#
window_length_seconds: Optional[ConstrainedFloatValue]#
class quakesaver_client.models.sensor_state.JMAIntensityMeasurement(**data)#

Bases: BaseModel

intensity: Optional[float]#
latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
class quakesaver_client.models.sensor_state.JMAIntensityState(**data)#

Bases: BaseModel

config: Optional[JMAIntensityConfig]#
measurement: Optional[JMAIntensityMeasurement]#
class quakesaver_client.models.sensor_state.KernelStatistics(**data)#

Bases: BaseModel

boot_time: Optional[float]#
ctx_switches: Optional[int]#
interrupts: Optional[int]#
latitude: Optional[float]#
load1: Optional[float]#
load15: Optional[float]#
load5: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
soft_interrupts: Optional[int]#
syscalls: Optional[int]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
class quakesaver_client.models.sensor_state.LocationConfig(**data)#

Bases: BaseModel

address: Optional[str]#
building_type: Optional[str]#
channel_mapping: Optional[Dict[ConstrainedStrValue, ConstrainedStrValue]]#
comment: Optional[str]#
country: Optional[str]#
depth: Optional[float]#
elevation: Optional[float]#
floor: Optional[int]#
jitter_network_location: Optional[float]#
last_edited: Optional[datetime]#
lat: Optional[ConstrainedFloatValue]#
location: Optional[ConstrainedStrValue]#
lon: Optional[ConstrainedFloatValue]#
measurement_method: Optional[str]#
mozilla_api_key: Optional[str]#
network: Optional[ConstrainedStrValue]#
osm_building_id: Optional[str]#
region: Optional[str]#
station: Optional[ConstrainedStrValue]#
station_name_readable: Optional[str]#
class quakesaver_client.models.sensor_state.LocationState(**data)#

Bases: BaseModel

config: Optional[LocationConfig]#
network_location: Optional[NetworkLocation]#
class quakesaver_client.models.sensor_state.LoggingDequeConfig(**data)#

Bases: BaseModel

capacity: Optional[PositiveInt]#
class quakesaver_client.models.sensor_state.LoggingDequeState(**data)#

Bases: BaseModel

config: Optional[LoggingDequeConfig]#
nlogs_stored: Optional[int]#
stats: Optional[LoggingDequeStats]#
class quakesaver_client.models.sensor_state.LoggingDequeStats(**data)#

Bases: BaseModel

ingested_logs: Optional[int]#
latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
class quakesaver_client.models.sensor_state.MQTTClientConfig(**data)#

Bases: BaseModel

host: Optional[str]#
keepalive: Optional[PositiveInt]#
message_expiry_interval: Optional[PositiveInt]#
mqtt_logger_enabled: Optional[bool]#
mqtt_logger_level: Optional[MqttLoggerLevel]#
port: Optional[ConstrainedIntValue]#
protocol: Optional[Protocol]#
provider_config_received: Optional[datetime]#
provider_url: Optional[AnyUrl]#
reconnect_delay: Optional[PositiveFloat]#
reconnect_retries: Optional[ConstrainedIntValue]#
token: Optional[str]#
class quakesaver_client.models.sensor_state.MQTTClientState(**data)#

Bases: BaseModel

client_registered: Optional[bool]#
config: Optional[MQTTClientConfig]#
connected: Optional[bool]#
latency: Optional[float]#
stats: Optional[MQTTClientStatistics]#
class quakesaver_client.models.sensor_state.MQTTClientStatistics(**data)#

Bases: BaseModel

bytes_recv: Optional[int]#
bytes_sent: Optional[int]#
connect_count: Optional[int]#
latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
nmessages_failed: Optional[int]#
nmessages_recv: Optional[int]#
nmessages_sent: Optional[int]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
unsend_messages: Optional[int]#
class quakesaver_client.models.sensor_state.MemoryStatistics(**data)#

Bases: BaseModel

active: Optional[int]#
available: Optional[int]#
buffers: Optional[int]#
cached: Optional[int]#
free: Optional[int]#
inactive: Optional[int]#
latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
percent: Optional[float]#
shared: Optional[int]#
slab: Optional[int]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
total: Optional[int]#
used: Optional[int]#
class quakesaver_client.models.sensor_state.MenderInformation(**data)#

Bases: BaseModel

artifact: Optional[str]#
config: Optional[ModuleConfig]#
cpu_serial: Optional[str]#
mac: Optional[str]#
class quakesaver_client.models.sensor_state.Method(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

geo_ip = 'geo-ip'#
wifi = 'wifi'#
class quakesaver_client.models.sensor_state.ModuleConfig(**data)#

Bases: BaseModel

class quakesaver_client.models.sensor_state.MqttLoggerLevel(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

integer_10 = 10#
integer_20 = 20#
integer_30 = 30#
integer_40 = 40#
integer_50 = 50#
class quakesaver_client.models.sensor_state.NetworkDispatcherConfig(**data)#

Bases: BaseModel

measurement_collection_jitter: Optional[float]#
send_measurements_interval: Optional[float]#
send_state_interval: Optional[float]#
state_subscription_delay: Optional[float]#
class quakesaver_client.models.sensor_state.NetworkDispatcherState(**data)#

Bases: BaseModel

config: Optional[NetworkDispatcherConfig]#
stats: Optional[NetworkDispatcherStats]#
class quakesaver_client.models.sensor_state.NetworkDispatcherStats(**data)#

Bases: BaseModel

actions_received: Optional[int]#
configs_received: Optional[int]#
data_products_sent: Optional[int]#
latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
class quakesaver_client.models.sensor_state.NetworkLocation(**data)#

Bases: BaseModel

accuracy: Optional[float]#
lat: float#
lon: float#
method: Method#
timestamp: Optional[datetime]#
class quakesaver_client.models.sensor_state.NetworkStatistics(**data)#

Bases: BaseModel

bytes_recv: Optional[int]#
bytes_sent: Optional[int]#
dropin: Optional[int]#
dropout: Optional[int]#
errin: Optional[int]#
errout: Optional[int]#
ip_address: Optional[str]#
latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
packets_recv: Optional[int]#
packets_sent: Optional[int]#
ssid: Optional[str]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
class quakesaver_client.models.sensor_state.NoiseAutocorrelationConfig(**data)#

Bases: BaseModel

correlation_stack_size: Optional[ConstrainedIntValue]#
enabled: Optional[bool]#
max_frequency: Optional[ConstrainedFloatValue]#
max_lagtime: Optional[ConstrainedFloatValue]#
min_frequency: Optional[ConstrainedFloatValue]#
stack_rms_normalization: Optional[bool]#
stacking_method: Optional[StackingMethod]#
time_normalization: Optional[TimeNormalization1]#
window_length_seconds: Optional[ConstrainedFloatValue]#
window_taper_fraction: Optional[ConstrainedFloatValue]#
class quakesaver_client.models.sensor_state.NoiseAutocorrelationState(**data)#

Bases: BaseModel

config: Optional[NoiseAutocorrelationConfig]#
class quakesaver_client.models.sensor_state.PGMMeasurement(**data)#

Bases: BaseModel

cwb_intensity: Optional[int]#
jma_intensity: Optional[float]#
latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
mod_mercalli_intensity: Optional[float]#
pga: Optional[float]#
pgv: Optional[float]#
pha: Optional[float]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
class quakesaver_client.models.sensor_state.PeakGroundMotionConfig(**data)#

Bases: BaseModel

enabled: Optional[bool]#
pga_lowpass: Optional[ConstrainedFloatValue]#
pga_trigger_enabled: Optional[bool]#
pga_trigger_threshold: Optional[PositiveFloat]#
pgv_highpass: Optional[ConstrainedFloatValue]#
window_length_seconds: Optional[ConstrainedFloatValue]#
class quakesaver_client.models.sensor_state.PeakGroundMotionState(**data)#

Bases: BaseModel

config: Optional[PeakGroundMotionConfig]#
measurement: Optional[PGMMeasurement]#
class quakesaver_client.models.sensor_state.ProcessMemoryStatistics(**data)#

Bases: BaseModel

data: Optional[int]#
dirty: Optional[int]#
latitude: Optional[float]#
lib: Optional[int]#
longitude: Optional[float]#
measurement: Optional[str]#
pss: Optional[int]#
rss: Optional[int]#
shared: Optional[int]#
swap: Optional[int]#
tags: Optional[Dict[str, str]]#
text: Optional[int]#
timestamp: Optional[datetime]#
uss: Optional[int]#
vms: Optional[int]#
class quakesaver_client.models.sensor_state.ProcessStatistics(**data)#

Bases: BaseModel

connections: Optional[int]#
cpu_percent: Optional[float]#
create_time: Optional[float]#
fds: Optional[int]#
latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
num_threads: Optional[int]#
pid: Optional[int]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
class quakesaver_client.models.sensor_state.Profile(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

ssh_quakesaver_net = 'ssh.quakesaver.net'#
tmate_io = 'tmate.io'#
class quakesaver_client.models.sensor_state.Protocol(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

mqtt = 'mqtt'#
mqtts = 'mqtts'#
class quakesaver_client.models.sensor_state.RMSAmplitudeConfig(**data)#

Bases: BaseModel

enabled: Optional[bool]#
window_length_seconds: Optional[ConstrainedFloatValue]#
class quakesaver_client.models.sensor_state.RMSAmplitudeMeasurement(**data)#

Bases: BaseModel

latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
rms_amplitude: Optional[float]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
class quakesaver_client.models.sensor_state.RMSAmplitudeState(**data)#

Bases: BaseModel

config: Optional[RMSAmplitudeConfig]#
measurement: Optional[RMSAmplitudeMeasurement]#
class quakesaver_client.models.sensor_state.Range(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

integer_2 = 2#
integer_4 = 4#
integer_8 = 8#
class quakesaver_client.models.sensor_state.RecordLength(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

integer_1024 = 1024#
integer_131072 = 131072#
integer_16384 = 16384#
integer_2048 = 2048#
integer_256 = 256#
integer_262144 = 262144#
integer_32768 = 32768#
integer_4096 = 4096#
integer_512 = 512#
integer_524288 = 524288#
integer_65536 = 65536#
integer_8192 = 8192#
class quakesaver_client.models.sensor_state.RingbufferState(**data)#

Bases: BaseModel

config: Optional[ModuleConfig]#
filter_length: int#
stats: Optional[RingbufferStatistics]#
window: str#
window_size: int#
class quakesaver_client.models.sensor_state.RingbufferStatistics(**data)#

Bases: BaseModel

bytes_capacity: Optional[int]#
bytes_used: Optional[int]#
deltat_input: Optional[float]#
latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
nlisteners: Optional[int]#
nsamples: Optional[int]#
nsamples_buffer: Optional[int]#
percent_used: Optional[float]#
pos_head: Optional[int]#
ready: Optional[bool]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
tmax: Optional[float]#
tmin: Optional[float]#
class quakesaver_client.models.sensor_state.STALTAConfig(**data)#

Bases: BaseModel

enabled: Optional[bool]#
nlta: Optional[ConstrainedIntValue]#
nsta: Optional[ConstrainedIntValue]#
overlap_percent: Optional[ConstrainedIntValue]#
trigger_enabled: Optional[bool]#
trigger_threshold: Optional[PositiveFloat]#
class quakesaver_client.models.sensor_state.STALTAMeasurement(**data)#

Bases: BaseModel

latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
sta_lta: Optional[float]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
class quakesaver_client.models.sensor_state.STALTAState(**data)#

Bases: BaseModel

config: Optional[STALTAConfig]#
measurement: Optional[STALTAMeasurement]#
class quakesaver_client.models.sensor_state.SamplingRate(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

integer_100 = 100#
integer_200 = 200#
class quakesaver_client.models.sensor_state.SamplingRate2(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

integer_100 = 100#
integer_200 = 200#
integer_400 = 400#
class quakesaver_client.models.sensor_state.SamplingRate3(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

integer_100 = 100#
integer_200 = 200#
class quakesaver_client.models.sensor_state.SeedLinkServerConfig(**data)#

Bases: BaseModel

enabled: Optional[bool]#
host: Optional[IPv4Address]#
nsamples: Optional[ConstrainedIntValue]#
port: Optional[ConstrainedIntValue]#
class quakesaver_client.models.sensor_state.SeedLinkServerState(**data)#

Bases: BaseModel

config: Optional[SeedLinkServerConfig]#
stats: Optional[SeedLinkServerStatistics]#
class quakesaver_client.models.sensor_state.SeedLinkServerStatistics(**data)#

Bases: BaseModel

begin_sequence: Optional[int]#
bytes_sent: Optional[int]#
clients_connected: Optional[int]#
end_sequence: Optional[int]#
latency: Optional[float]#
latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
packet_efficiency: Optional[float]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
class quakesaver_client.models.sensor_state.SensorState(**data)#

Bases: BaseModel

AD7779State: Optional[AD7779State]#
ADXL355State: Optional[ADXL355State]#
BMA456State: Optional[BMA456State]#
DataProductDispatcherState: Optional[DataProductDispatcherState]#
EventRecorderState: Optional[EventRecorderState]#
HTTPServerState: Optional[HTTPServerState]#
HVContinuousSpectraState: Optional[HVContinuousSpectraState]#
JMAIntensityState: Optional[JMAIntensityState]#
LocationState: Optional[LocationState]#
LoggingDequeState: Optional[LoggingDequeState]#
MQTTClientState: Optional[MQTTClientState]#
MenderInformation: Optional[MenderInformation]#
NetworkDispatcherState: Optional[NetworkDispatcherState]#
NoiseAutocorrelationState: Optional[NoiseAutocorrelationState]#
PeakGroundMotionState: Optional[PeakGroundMotionState]#
RMSAmplitudeState: Optional[RMSAmplitudeState]#
RingbufferState: Optional[RingbufferState]#
STALTAState: Optional[STALTAState]#
SeedLinkServerState: Optional[SeedLinkServerState]#
SpectralIntensityState: Optional[SpectralIntensityState]#
StreamWaveformsState: Optional[StreamWaveformsState]#
SystemEnvironmentStatus: Optional[SystemEnvironmentStatus]#
SystemInformation: Optional[SystemInformation]#
SystemPowerState: Optional[SystemPowerState]#
TimeMonitorState: Optional[TimeMonitorState]#
TmateState: Optional[TmateState]#
UserEnvironment: Optional[UserEnvironment]#
VirtualSensorState: Optional[VirtualSensorState]#
WatchdogState: Optional[WatchdogState]#
WaveformArchiveState: Optional[WaveformArchiveState]#
WaveformDispatcherState: Optional[WaveformDispatcherState]#
WaveformPolarisationState: Optional[WaveformPolarisationState]#
WifiAccessPointState: Optional[WifiAccessPointState]#
ZMQStreamState: Optional[ZMQStreamState]#
hardware_revision: Optional[str]#
platform_model: Optional[str]#
software_version: Optional[str]#
timestamp: Optional[datetime]#
uid: Optional[str]#
class quakesaver_client.models.sensor_state.SpectralIntensityConfig(**data)#

Bases: BaseModel

duration_fade: Optional[ConstrainedFloatValue]#
enabled: Optional[bool]#
fmax: Optional[ConstrainedFloatValue]#
fmin: Optional[ConstrainedFloatValue]#
window_length_seconds: Optional[ConstrainedFloatValue]#
class quakesaver_client.models.sensor_state.SpectralIntensityMeasurement(**data)#

Bases: BaseModel

latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
spectral_intensity: Optional[float]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
class quakesaver_client.models.sensor_state.SpectralIntensityState(**data)#

Bases: BaseModel

config: Optional[SpectralIntensityConfig]#
measurement: Optional[SpectralIntensityMeasurement]#
class quakesaver_client.models.sensor_state.StackingMethod(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

linear = 'linear'#
phase_weighted_stack = 'phase-weighted-stack'#
class quakesaver_client.models.sensor_state.Status(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

active = 'active'#
inactive = 'inactive'#
class quakesaver_client.models.sensor_state.StreamWaveformsState(**data)#

Bases: BaseModel

config: Optional[ModuleConfig]#
current_sequence_number: Optional[int]#
latency: Optional[float]#
packet_efficiency: Optional[float]#
streaming: Optional[bool]#
trigger: Optional[StreamWaveformsTrigger]#
class quakesaver_client.models.sensor_state.StreamWaveformsTrigger(**data)#

Bases: BaseModel

nsamples: Optional[ConstrainedIntValue]#
class quakesaver_client.models.sensor_state.SystemEnvironmentConfig(**data)#

Bases: BaseModel

BME280_ADDRESS: Optional[PositiveInt]#
BME280_PORT: Optional[PositiveInt]#
class Config#

Bases: object

extra = 'forbid'#
class quakesaver_client.models.sensor_state.SystemEnvironmentMeasurement(**data)#

Bases: BaseModel

humidity: Optional[float]#
latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
pressure: Optional[float]#
tags: Optional[Dict[str, str]]#
temperature: Optional[float]#
timestamp: Optional[datetime]#
class quakesaver_client.models.sensor_state.SystemEnvironmentStatus(**data)#

Bases: BaseModel

chip_config: Optional[SystemEnvironmentConfig]#
config: Optional[ModuleConfig]#
environment: Optional[SystemEnvironmentMeasurement]#
class quakesaver_client.models.sensor_state.SystemInformation(**data)#

Bases: BaseModel

boot_time: Optional[datetime]#
chrony_stats: Optional[ChronyStatistics]#
config: Optional[ModuleConfig]#
cpu_stats: Optional[CPUStatistics]#
disk_stats: Optional[DiskStatistics]#
kernel_stats: Optional[KernelStatistics]#
memory_stats: Optional[MemoryStatistics]#
network_stats: Optional[NetworkStatistics]#
platform_model: Optional[str]#
process_memory_stats: Optional[ProcessMemoryStatistics]#
process_stats: Optional[ProcessStatistics]#
software_version: Optional[str]#
class quakesaver_client.models.sensor_state.SystemPowerConfig(**data)#

Bases: BaseModel

class Config#

Bases: object

extra = 'forbid'#
LTC4151_ADDRESS: Optional[PositiveInt]#
LTC4151_PORT: Optional[PositiveInt]#
RESISTOR: Optional[PositiveFloat]#
class quakesaver_client.models.sensor_state.SystemPowerState(**data)#

Bases: BaseModel

chip_config: Optional[SystemPowerConfig]#
config: Optional[ModuleConfig]#
power: Optional[SystemPowerSupply]#
class quakesaver_client.models.sensor_state.SystemPowerSupply(**data)#

Bases: BaseModel

current: Optional[float]#
latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
supply_voltage: Optional[float]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
voltage_ext: Optional[float]#
class quakesaver_client.models.sensor_state.TimeMonitorConfig(**data)#

Bases: BaseModel

enabled: Optional[bool]#
flash_duration: Optional[ConstrainedFloatValue]#
class quakesaver_client.models.sensor_state.TimeMonitorState(**data)#

Bases: BaseModel

config: Optional[TimeMonitorConfig]#
class quakesaver_client.models.sensor_state.TimeNormalization(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

mute_median = 'mute-median'#
none = 'none'#
class quakesaver_client.models.sensor_state.TimeNormalization1(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

mute_median = 'mute-median'#
none = 'none'#
one_bit = 'one-bit'#
class quakesaver_client.models.sensor_state.TmateConfig(**data)#

Bases: BaseModel

api_key: Optional[str]#
enabled: Optional[bool]#
profile: Optional[Profile]#
class quakesaver_client.models.sensor_state.TmateState(**data)#

Bases: BaseModel

active: Optional[bool]#
config: Optional[TmateConfig]#
session_token: Optional[str]#
class quakesaver_client.models.sensor_state.UserEnvironment(**data)#

Bases: BaseModel

config: Optional[UserEnvironmentConfig]#
class quakesaver_client.models.sensor_state.UserEnvironmentConfig(**data)#

Bases: BaseModel

contact_email: Optional[str]#
contact_person: Optional[str]#
contact_phone: Optional[str]#
instituion: Optional[str]#
institution_branding: Optional[InstitutionBranding]#
language: Optional[str]#
class quakesaver_client.models.sensor_state.VirtualSensorConfig(**data)#

Bases: BaseModel

sampling_rate: Optional[SamplingRate3]#
class quakesaver_client.models.sensor_state.VirtualSensorState(**data)#

Bases: BaseModel

config: Optional[VirtualSensorConfig]#
stats: Optional[VirtualSensorStatistics]#
class quakesaver_client.models.sensor_state.VirtualSensorStatistics(**data)#

Bases: BaseModel

active: Optional[bool]#
deltat: Optional[float]#
latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
nsamples: Optional[int]#
sampling_rate: Optional[int]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
class quakesaver_client.models.sensor_state.WatchdogConfig(**data)#

Bases: BaseModel

enabled: Optional[bool]#
tame_recorded_samples: Optional[PositiveInt]#
class quakesaver_client.models.sensor_state.WatchdogEnvironment(**data)#

Bases: BaseModel

class Config#

Bases: object

extra = 'forbid'#
WATCHDOG_KENNEL: Optional[str]#
class quakesaver_client.models.sensor_state.WatchdogState(**data)#

Bases: BaseModel

config: Optional[WatchdogConfig]#
environment: Optional[WatchdogEnvironment]#
status: Optional[Status]#
class quakesaver_client.models.sensor_state.WaveformArchiveConfig(**data)#

Bases: BaseModel

data_path: Optional[str]#
enabled: Optional[bool]#
max_archive_size_percent: Optional[ConstrainedFloatValue]#
record_length: Optional[RecordLength]#
time_length: Optional[ConstrainedIntValue]#
class quakesaver_client.models.sensor_state.WaveformArchiveState(**data)#

Bases: BaseModel

config: Optional[WaveformArchiveConfig]#
stats: Optional[WaveformArchiveStatistics]#
class quakesaver_client.models.sensor_state.WaveformArchiveStatistics(**data)#

Bases: BaseModel

disk_free_bytes: Optional[int]#
disk_total_bytes: Optional[int]#
disk_usage_percent: Optional[float]#
latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
used_bytes: Optional[int]#
class quakesaver_client.models.sensor_state.WaveformDispatcherConfig(**data)#

Bases: BaseModel

max_request_time: Optional[float]#
max_requests: Optional[PositiveInt]#
class quakesaver_client.models.sensor_state.WaveformDispatcherState(**data)#

Bases: BaseModel

config: Optional[WaveformDispatcherConfig]#
serving: Optional[bool]#
stats: Optional[WaveformDispatcherStats]#
tasks: Optional[int]#
class quakesaver_client.models.sensor_state.WaveformDispatcherStats(**data)#

Bases: BaseModel

latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
served_bytes: Optional[int]#
served_chunks: Optional[int]#
served_requests: Optional[int]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
class quakesaver_client.models.sensor_state.WaveformPolarisationConfig(**data)#

Bases: BaseModel

enabled: Optional[bool]#
lowpass_freq: Optional[PositiveFloat]#
window_length_seconds: Optional[ConstrainedFloatValue]#
class quakesaver_client.models.sensor_state.WaveformPolarisationMeasurement(**data)#

Bases: BaseModel

latitude: Optional[float]#
longitude: Optional[float]#
measurement: Optional[str]#
tags: Optional[Dict[str, str]]#
timestamp: Optional[datetime]#
class quakesaver_client.models.sensor_state.WaveformPolarisationState(**data)#

Bases: BaseModel

config: Optional[WaveformPolarisationConfig]#
measurement: Optional[WaveformPolarisationMeasurement]#
class quakesaver_client.models.sensor_state.WifiAccessPointState(**data)#

Bases: BaseModel

activated: Optional[bool]#
config: Optional[ModuleConfig]#
class quakesaver_client.models.sensor_state.ZMQStreamConfig(**data)#

Bases: BaseModel

address: Optional[IPv4Address]#
enabled: Optional[bool]#
nsamples: Optional[ConstrainedIntValue]#
port: Optional[ConstrainedIntValue]#
class quakesaver_client.models.sensor_state.ZMQStreamState(**data)#

Bases: BaseModel

config: Optional[ZMQStreamConfig]#

quakesaver_client.models.token module#

Module containing authentication _token.

class quakesaver_client.models.token.Token(**data)#

Bases: BaseModel

A class representing information about _token.

access_token: str#
token_type: str#

quakesaver_client.models.warnings module#

Module containing classes for handling sensor warnings..

class quakesaver_client.models.warnings.SensorWarning(**data)#

Bases: BaseModel

A class representing a warning of the sensor.

created: datetime#
level: Literal['warning', 'error', 'critical']#
message: str#
title: str#
class quakesaver_client.models.warnings.SensorWarnings(**data)#

Bases: BaseModel

A class representing warnings for the sensor.

class Config#

Bases: object

Configuration subclass for pydantics BaseModel.

orm_mode = True#
data: dict[str, SensorWarning]#

quakesaver_client.models.websocket module#

Websocket data types.

class quakesaver_client.models.websocket.WebSocketPayload(**data)#

Bases: BaseModel

Data sent via websocket from a sensor.

class_name: str#
mutation: str#
payload: Any#
version: int#
class quakesaver_client.models.websocket.WebSocketRequest(**data)#

Bases: BaseModel

Action to start and stop the websocket on the sensor end.

action: Literal['startWaveformStream', 'stopWaveformStream']#

Module contents#

Package containing typed models for client usage.