Add --pyi_out flag to generate Python type information.

Closes .
This commit is contained in:
Orne Brocaar 2023-01-11 11:01:55 +00:00
parent 438d120fb0
commit 9f3a76f5fb
16 changed files with 3398 additions and 1 deletions

2
api/python/Makefile vendored

@ -1,7 +1,7 @@
.PHONY: requirements common gw api integration meta
PROTOC := python -m grpc_tools.protoc
PROTOC_ARGS := -I=/googleapis -I=proto --python_out=src --grpc_python_out=src
PROTOC_ARGS := -I=/googleapis -I=proto --python_out=src --grpc_python_out=src --pyi_out=src
PACKAGE_NAME := import \"chirpstack-api/
all: requirements pre-build common gw api integration meta

@ -0,0 +1,634 @@
from google.api import annotations_pb2 as _annotations_pb2
from google.protobuf import timestamp_pb2 as _timestamp_pb2
from google.protobuf import empty_pb2 as _empty_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
AWS_SNS: IntegrationKind
AZURE_SERVICE_BUS: IntegrationKind
DESCRIPTOR: _descriptor.FileDescriptor
GCP_PUB_SUB: IntegrationKind
H: InfluxDbPrecision
HTTP: IntegrationKind
IFTTT: IntegrationKind
INFLUXDB_1: InfluxDbVersion
INFLUXDB_2: InfluxDbVersion
INFLUX_DB: IntegrationKind
JSON: Encoding
LORA_CLOUD: IntegrationKind
M: InfluxDbPrecision
MQTT_GLOBAL: IntegrationKind
MS: InfluxDbPrecision
MY_DEVICES: IntegrationKind
NS: InfluxDbPrecision
PILOT_THINGS: IntegrationKind
PROTOBUF: Encoding
S: InfluxDbPrecision
THINGS_BOARD: IntegrationKind
U: InfluxDbPrecision
class Application(_message.Message):
__slots__ = ["description", "id", "name", "tenant_id"]
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
ID_FIELD_NUMBER: _ClassVar[int]
NAME_FIELD_NUMBER: _ClassVar[int]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
description: str
id: str
name: str
tenant_id: str
def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., tenant_id: _Optional[str] = ...) -> None: ...
class ApplicationListItem(_message.Message):
__slots__ = ["created_at", "description", "id", "name", "updated_at"]
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
ID_FIELD_NUMBER: _ClassVar[int]
NAME_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
created_at: _timestamp_pb2.Timestamp
description: str
id: str
name: str
updated_at: _timestamp_pb2.Timestamp
def __init__(self, id: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., name: _Optional[str] = ..., description: _Optional[str] = ...) -> None: ...
class AwsSnsIntegration(_message.Message):
__slots__ = ["access_key_id", "application_id", "encoding", "region", "secret_access_key", "topic_arn"]
ACCESS_KEY_ID_FIELD_NUMBER: _ClassVar[int]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
ENCODING_FIELD_NUMBER: _ClassVar[int]
REGION_FIELD_NUMBER: _ClassVar[int]
SECRET_ACCESS_KEY_FIELD_NUMBER: _ClassVar[int]
TOPIC_ARN_FIELD_NUMBER: _ClassVar[int]
access_key_id: str
application_id: str
encoding: Encoding
region: str
secret_access_key: str
topic_arn: str
def __init__(self, application_id: _Optional[str] = ..., encoding: _Optional[_Union[Encoding, str]] = ..., region: _Optional[str] = ..., access_key_id: _Optional[str] = ..., secret_access_key: _Optional[str] = ..., topic_arn: _Optional[str] = ...) -> None: ...
class AzureServiceBusIntegration(_message.Message):
__slots__ = ["application_id", "connection_string", "encoding", "publish_name"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
CONNECTION_STRING_FIELD_NUMBER: _ClassVar[int]
ENCODING_FIELD_NUMBER: _ClassVar[int]
PUBLISH_NAME_FIELD_NUMBER: _ClassVar[int]
application_id: str
connection_string: str
encoding: Encoding
publish_name: str
def __init__(self, application_id: _Optional[str] = ..., encoding: _Optional[_Union[Encoding, str]] = ..., connection_string: _Optional[str] = ..., publish_name: _Optional[str] = ...) -> None: ...
class CreateApplicationRequest(_message.Message):
__slots__ = ["application"]
APPLICATION_FIELD_NUMBER: _ClassVar[int]
application: Application
def __init__(self, application: _Optional[_Union[Application, _Mapping]] = ...) -> None: ...
class CreateApplicationResponse(_message.Message):
__slots__ = ["id"]
ID_FIELD_NUMBER: _ClassVar[int]
id: str
def __init__(self, id: _Optional[str] = ...) -> None: ...
class CreateAwsSnsIntegrationRequest(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: AwsSnsIntegration
def __init__(self, integration: _Optional[_Union[AwsSnsIntegration, _Mapping]] = ...) -> None: ...
class CreateAzureServiceBusIntegrationRequest(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: AzureServiceBusIntegration
def __init__(self, integration: _Optional[_Union[AzureServiceBusIntegration, _Mapping]] = ...) -> None: ...
class CreateGcpPubSubIntegrationRequest(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: GcpPubSubIntegration
def __init__(self, integration: _Optional[_Union[GcpPubSubIntegration, _Mapping]] = ...) -> None: ...
class CreateHttpIntegrationRequest(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: HttpIntegration
def __init__(self, integration: _Optional[_Union[HttpIntegration, _Mapping]] = ...) -> None: ...
class CreateIftttIntegrationRequest(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: IftttIntegration
def __init__(self, integration: _Optional[_Union[IftttIntegration, _Mapping]] = ...) -> None: ...
class CreateInfluxDbIntegrationRequest(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: InfluxDbIntegration
def __init__(self, integration: _Optional[_Union[InfluxDbIntegration, _Mapping]] = ...) -> None: ...
class CreateLoraCloudIntegrationRequest(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: LoraCloudIntegration
def __init__(self, integration: _Optional[_Union[LoraCloudIntegration, _Mapping]] = ...) -> None: ...
class CreateMyDevicesIntegrationRequest(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: MyDevicesIntegration
def __init__(self, integration: _Optional[_Union[MyDevicesIntegration, _Mapping]] = ...) -> None: ...
class CreatePilotThingsIntegrationRequest(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: PilotThingsIntegration
def __init__(self, integration: _Optional[_Union[PilotThingsIntegration, _Mapping]] = ...) -> None: ...
class CreateThingsBoardIntegrationRequest(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: ThingsBoardIntegration
def __init__(self, integration: _Optional[_Union[ThingsBoardIntegration, _Mapping]] = ...) -> None: ...
class DeleteApplicationRequest(_message.Message):
__slots__ = ["id"]
ID_FIELD_NUMBER: _ClassVar[int]
id: str
def __init__(self, id: _Optional[str] = ...) -> None: ...
class DeleteAwsSnsIntegrationRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class DeleteAzureServiceBusIntegrationRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class DeleteGcpPubSubIntegrationRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class DeleteHttpIntegrationRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class DeleteIftttIntegrationRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class DeleteInfluxDbIntegrationRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class DeleteLoraCloudIntegrationRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class DeleteMyDevicesIntegrationRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class DeletePilotThingsIntegrationRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class DeleteThingsBoardIntegrationRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class GcpPubSubIntegration(_message.Message):
__slots__ = ["application_id", "credentials_file", "encoding", "project_id", "topic_name"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
CREDENTIALS_FILE_FIELD_NUMBER: _ClassVar[int]
ENCODING_FIELD_NUMBER: _ClassVar[int]
PROJECT_ID_FIELD_NUMBER: _ClassVar[int]
TOPIC_NAME_FIELD_NUMBER: _ClassVar[int]
application_id: str
credentials_file: str
encoding: Encoding
project_id: str
topic_name: str
def __init__(self, application_id: _Optional[str] = ..., encoding: _Optional[_Union[Encoding, str]] = ..., credentials_file: _Optional[str] = ..., project_id: _Optional[str] = ..., topic_name: _Optional[str] = ...) -> None: ...
class GenerateMqttIntegrationClientCertificateRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class GenerateMqttIntegrationClientCertificateResponse(_message.Message):
__slots__ = ["ca_cert", "expires_at", "tls_cert", "tls_key"]
CA_CERT_FIELD_NUMBER: _ClassVar[int]
EXPIRES_AT_FIELD_NUMBER: _ClassVar[int]
TLS_CERT_FIELD_NUMBER: _ClassVar[int]
TLS_KEY_FIELD_NUMBER: _ClassVar[int]
ca_cert: str
expires_at: _timestamp_pb2.Timestamp
tls_cert: str
tls_key: str
def __init__(self, tls_cert: _Optional[str] = ..., tls_key: _Optional[str] = ..., ca_cert: _Optional[str] = ..., expires_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
class GetApplicationRequest(_message.Message):
__slots__ = ["id"]
ID_FIELD_NUMBER: _ClassVar[int]
id: str
def __init__(self, id: _Optional[str] = ...) -> None: ...
class GetApplicationResponse(_message.Message):
__slots__ = ["application", "created_at", "measurement_keys", "updated_at"]
APPLICATION_FIELD_NUMBER: _ClassVar[int]
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
MEASUREMENT_KEYS_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
application: Application
created_at: _timestamp_pb2.Timestamp
measurement_keys: _containers.RepeatedScalarFieldContainer[str]
updated_at: _timestamp_pb2.Timestamp
def __init__(self, application: _Optional[_Union[Application, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., measurement_keys: _Optional[_Iterable[str]] = ...) -> None: ...
class GetAwsSnsIntegrationRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class GetAwsSnsIntegrationResponse(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: AwsSnsIntegration
def __init__(self, integration: _Optional[_Union[AwsSnsIntegration, _Mapping]] = ...) -> None: ...
class GetAzureServiceBusIntegrationRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class GetAzureServiceBusIntegrationResponse(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: AzureServiceBusIntegration
def __init__(self, integration: _Optional[_Union[AzureServiceBusIntegration, _Mapping]] = ...) -> None: ...
class GetGcpPubSubIntegrationRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class GetGcpPubSubIntegrationResponse(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: GcpPubSubIntegration
def __init__(self, integration: _Optional[_Union[GcpPubSubIntegration, _Mapping]] = ...) -> None: ...
class GetHttpIntegrationRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class GetHttpIntegrationResponse(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: HttpIntegration
def __init__(self, integration: _Optional[_Union[HttpIntegration, _Mapping]] = ...) -> None: ...
class GetIftttIntegrationRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class GetIftttIntegrationResponse(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: IftttIntegration
def __init__(self, integration: _Optional[_Union[IftttIntegration, _Mapping]] = ...) -> None: ...
class GetInfluxDbIntegrationRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class GetInfluxDbIntegrationResponse(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: InfluxDbIntegration
def __init__(self, integration: _Optional[_Union[InfluxDbIntegration, _Mapping]] = ...) -> None: ...
class GetLoraCloudIntegrationRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class GetLoraCloudIntegrationResponse(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: LoraCloudIntegration
def __init__(self, integration: _Optional[_Union[LoraCloudIntegration, _Mapping]] = ...) -> None: ...
class GetMyDevicesIntegrationRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class GetMyDevicesIntegrationResponse(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: MyDevicesIntegration
def __init__(self, integration: _Optional[_Union[MyDevicesIntegration, _Mapping]] = ...) -> None: ...
class GetPilotThingsIntegrationRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class GetPilotThingsIntegrationResponse(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: PilotThingsIntegration
def __init__(self, integration: _Optional[_Union[PilotThingsIntegration, _Mapping]] = ...) -> None: ...
class GetThingsBoardIntegrationRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class GetThingsBoardIntegrationResponse(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: ThingsBoardIntegration
def __init__(self, integration: _Optional[_Union[ThingsBoardIntegration, _Mapping]] = ...) -> None: ...
class HttpIntegration(_message.Message):
__slots__ = ["application_id", "encoding", "event_endpoint_url", "headers"]
class HeadersEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: str
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
ENCODING_FIELD_NUMBER: _ClassVar[int]
EVENT_ENDPOINT_URL_FIELD_NUMBER: _ClassVar[int]
HEADERS_FIELD_NUMBER: _ClassVar[int]
application_id: str
encoding: Encoding
event_endpoint_url: str
headers: _containers.ScalarMap[str, str]
def __init__(self, application_id: _Optional[str] = ..., headers: _Optional[_Mapping[str, str]] = ..., encoding: _Optional[_Union[Encoding, str]] = ..., event_endpoint_url: _Optional[str] = ...) -> None: ...
class IftttIntegration(_message.Message):
__slots__ = ["application_id", "key", "uplink_values"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
KEY_FIELD_NUMBER: _ClassVar[int]
UPLINK_VALUES_FIELD_NUMBER: _ClassVar[int]
application_id: str
key: str
uplink_values: _containers.RepeatedScalarFieldContainer[str]
def __init__(self, application_id: _Optional[str] = ..., key: _Optional[str] = ..., uplink_values: _Optional[_Iterable[str]] = ...) -> None: ...
class InfluxDbIntegration(_message.Message):
__slots__ = ["application_id", "bucket", "db", "endpoint", "organization", "password", "precision", "retention_policy_name", "token", "username", "version"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
BUCKET_FIELD_NUMBER: _ClassVar[int]
DB_FIELD_NUMBER: _ClassVar[int]
ENDPOINT_FIELD_NUMBER: _ClassVar[int]
ORGANIZATION_FIELD_NUMBER: _ClassVar[int]
PASSWORD_FIELD_NUMBER: _ClassVar[int]
PRECISION_FIELD_NUMBER: _ClassVar[int]
RETENTION_POLICY_NAME_FIELD_NUMBER: _ClassVar[int]
TOKEN_FIELD_NUMBER: _ClassVar[int]
USERNAME_FIELD_NUMBER: _ClassVar[int]
VERSION_FIELD_NUMBER: _ClassVar[int]
application_id: str
bucket: str
db: str
endpoint: str
organization: str
password: str
precision: InfluxDbPrecision
retention_policy_name: str
token: str
username: str
version: InfluxDbVersion
def __init__(self, application_id: _Optional[str] = ..., endpoint: _Optional[str] = ..., db: _Optional[str] = ..., username: _Optional[str] = ..., password: _Optional[str] = ..., retention_policy_name: _Optional[str] = ..., precision: _Optional[_Union[InfluxDbPrecision, str]] = ..., version: _Optional[_Union[InfluxDbVersion, str]] = ..., token: _Optional[str] = ..., organization: _Optional[str] = ..., bucket: _Optional[str] = ...) -> None: ...
class IntegrationListItem(_message.Message):
__slots__ = ["kind"]
KIND_FIELD_NUMBER: _ClassVar[int]
kind: IntegrationKind
def __init__(self, kind: _Optional[_Union[IntegrationKind, str]] = ...) -> None: ...
class ListApplicationsRequest(_message.Message):
__slots__ = ["limit", "offset", "search", "tenant_id"]
LIMIT_FIELD_NUMBER: _ClassVar[int]
OFFSET_FIELD_NUMBER: _ClassVar[int]
SEARCH_FIELD_NUMBER: _ClassVar[int]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
limit: int
offset: int
search: str
tenant_id: str
def __init__(self, limit: _Optional[int] = ..., offset: _Optional[int] = ..., search: _Optional[str] = ..., tenant_id: _Optional[str] = ...) -> None: ...
class ListApplicationsResponse(_message.Message):
__slots__ = ["result", "total_count"]
RESULT_FIELD_NUMBER: _ClassVar[int]
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
result: _containers.RepeatedCompositeFieldContainer[ApplicationListItem]
total_count: int
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[ApplicationListItem, _Mapping]]] = ...) -> None: ...
class ListIntegrationsRequest(_message.Message):
__slots__ = ["application_id"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
application_id: str
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
class ListIntegrationsResponse(_message.Message):
__slots__ = ["result", "total_count"]
RESULT_FIELD_NUMBER: _ClassVar[int]
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
result: _containers.RepeatedCompositeFieldContainer[IntegrationListItem]
total_count: int
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[IntegrationListItem, _Mapping]]] = ...) -> None: ...
class LoraCloudIntegration(_message.Message):
__slots__ = ["application_id", "modem_geolocation_services"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
MODEM_GEOLOCATION_SERVICES_FIELD_NUMBER: _ClassVar[int]
application_id: str
modem_geolocation_services: LoraCloudModemGeolocationServices
def __init__(self, application_id: _Optional[str] = ..., modem_geolocation_services: _Optional[_Union[LoraCloudModemGeolocationServices, _Mapping]] = ...) -> None: ...
class LoraCloudModemGeolocationServices(_message.Message):
__slots__ = ["geolocation_buffer_ttl", "geolocation_gnss", "geolocation_gnss_payload_field", "geolocation_gnss_use_rx_time", "geolocation_min_buffer_size", "geolocation_rssi", "geolocation_tdoa", "geolocation_wifi", "geolocation_wifi_payload_field", "gnss_port", "gnss_use_rx_time", "modem_enabled", "modem_port", "parse_tlv", "token"]
GEOLOCATION_BUFFER_TTL_FIELD_NUMBER: _ClassVar[int]
GEOLOCATION_GNSS_FIELD_NUMBER: _ClassVar[int]
GEOLOCATION_GNSS_PAYLOAD_FIELD_FIELD_NUMBER: _ClassVar[int]
GEOLOCATION_GNSS_USE_RX_TIME_FIELD_NUMBER: _ClassVar[int]
GEOLOCATION_MIN_BUFFER_SIZE_FIELD_NUMBER: _ClassVar[int]
GEOLOCATION_RSSI_FIELD_NUMBER: _ClassVar[int]
GEOLOCATION_TDOA_FIELD_NUMBER: _ClassVar[int]
GEOLOCATION_WIFI_FIELD_NUMBER: _ClassVar[int]
GEOLOCATION_WIFI_PAYLOAD_FIELD_FIELD_NUMBER: _ClassVar[int]
GNSS_PORT_FIELD_NUMBER: _ClassVar[int]
GNSS_USE_RX_TIME_FIELD_NUMBER: _ClassVar[int]
MODEM_ENABLED_FIELD_NUMBER: _ClassVar[int]
MODEM_PORT_FIELD_NUMBER: _ClassVar[int]
PARSE_TLV_FIELD_NUMBER: _ClassVar[int]
TOKEN_FIELD_NUMBER: _ClassVar[int]
geolocation_buffer_ttl: int
geolocation_gnss: bool
geolocation_gnss_payload_field: str
geolocation_gnss_use_rx_time: bool
geolocation_min_buffer_size: int
geolocation_rssi: bool
geolocation_tdoa: bool
geolocation_wifi: bool
geolocation_wifi_payload_field: str
gnss_port: int
gnss_use_rx_time: bool
modem_enabled: bool
modem_port: int
parse_tlv: bool
token: str
def __init__(self, token: _Optional[str] = ..., modem_enabled: bool = ..., modem_port: _Optional[int] = ..., gnss_port: _Optional[int] = ..., gnss_use_rx_time: bool = ..., parse_tlv: bool = ..., geolocation_buffer_ttl: _Optional[int] = ..., geolocation_min_buffer_size: _Optional[int] = ..., geolocation_tdoa: bool = ..., geolocation_rssi: bool = ..., geolocation_gnss: bool = ..., geolocation_gnss_payload_field: _Optional[str] = ..., geolocation_gnss_use_rx_time: bool = ..., geolocation_wifi: bool = ..., geolocation_wifi_payload_field: _Optional[str] = ...) -> None: ...
class MyDevicesIntegration(_message.Message):
__slots__ = ["application_id", "endpoint"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
ENDPOINT_FIELD_NUMBER: _ClassVar[int]
application_id: str
endpoint: str
def __init__(self, application_id: _Optional[str] = ..., endpoint: _Optional[str] = ...) -> None: ...
class PilotThingsIntegration(_message.Message):
__slots__ = ["application_id", "server", "token"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
SERVER_FIELD_NUMBER: _ClassVar[int]
TOKEN_FIELD_NUMBER: _ClassVar[int]
application_id: str
server: str
token: str
def __init__(self, application_id: _Optional[str] = ..., server: _Optional[str] = ..., token: _Optional[str] = ...) -> None: ...
class ThingsBoardIntegration(_message.Message):
__slots__ = ["application_id", "server"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
SERVER_FIELD_NUMBER: _ClassVar[int]
application_id: str
server: str
def __init__(self, application_id: _Optional[str] = ..., server: _Optional[str] = ...) -> None: ...
class UpdateApplicationRequest(_message.Message):
__slots__ = ["application"]
APPLICATION_FIELD_NUMBER: _ClassVar[int]
application: Application
def __init__(self, application: _Optional[_Union[Application, _Mapping]] = ...) -> None: ...
class UpdateAwsSnsIntegrationRequest(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: AwsSnsIntegration
def __init__(self, integration: _Optional[_Union[AwsSnsIntegration, _Mapping]] = ...) -> None: ...
class UpdateAzureServiceBusIntegrationRequest(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: AzureServiceBusIntegration
def __init__(self, integration: _Optional[_Union[AzureServiceBusIntegration, _Mapping]] = ...) -> None: ...
class UpdateGcpPubSubIntegrationRequest(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: GcpPubSubIntegration
def __init__(self, integration: _Optional[_Union[GcpPubSubIntegration, _Mapping]] = ...) -> None: ...
class UpdateHttpIntegrationRequest(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: HttpIntegration
def __init__(self, integration: _Optional[_Union[HttpIntegration, _Mapping]] = ...) -> None: ...
class UpdateIftttIntegrationRequest(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: IftttIntegration
def __init__(self, integration: _Optional[_Union[IftttIntegration, _Mapping]] = ...) -> None: ...
class UpdateInfluxDbIntegrationRequest(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: InfluxDbIntegration
def __init__(self, integration: _Optional[_Union[InfluxDbIntegration, _Mapping]] = ...) -> None: ...
class UpdateLoraCloudIntegrationRequest(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: LoraCloudIntegration
def __init__(self, integration: _Optional[_Union[LoraCloudIntegration, _Mapping]] = ...) -> None: ...
class UpdateMyDevicesIntegrationRequest(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: MyDevicesIntegration
def __init__(self, integration: _Optional[_Union[MyDevicesIntegration, _Mapping]] = ...) -> None: ...
class UpdatePilotThingsIntegrationRequest(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: PilotThingsIntegration
def __init__(self, integration: _Optional[_Union[PilotThingsIntegration, _Mapping]] = ...) -> None: ...
class UpdateThingsBoardIntegrationRequest(_message.Message):
__slots__ = ["integration"]
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
integration: ThingsBoardIntegration
def __init__(self, integration: _Optional[_Union[ThingsBoardIntegration, _Mapping]] = ...) -> None: ...
class Encoding(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
class IntegrationKind(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
class InfluxDbPrecision(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
class InfluxDbVersion(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []

@ -0,0 +1,371 @@
from chirpstack_api.common import common_pb2 as _common_pb2
from google.api import annotations_pb2 as _annotations_pb2
from google.protobuf import timestamp_pb2 as _timestamp_pb2
from google.protobuf import struct_pb2 as _struct_pb2
from google.protobuf import empty_pb2 as _empty_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
DESCRIPTOR: _descriptor.FileDescriptor
class ActivateDeviceRequest(_message.Message):
__slots__ = ["device_activation"]
DEVICE_ACTIVATION_FIELD_NUMBER: _ClassVar[int]
device_activation: DeviceActivation
def __init__(self, device_activation: _Optional[_Union[DeviceActivation, _Mapping]] = ...) -> None: ...
class CreateDeviceKeysRequest(_message.Message):
__slots__ = ["device_keys"]
DEVICE_KEYS_FIELD_NUMBER: _ClassVar[int]
device_keys: DeviceKeys
def __init__(self, device_keys: _Optional[_Union[DeviceKeys, _Mapping]] = ...) -> None: ...
class CreateDeviceRequest(_message.Message):
__slots__ = ["device"]
DEVICE_FIELD_NUMBER: _ClassVar[int]
device: Device
def __init__(self, device: _Optional[_Union[Device, _Mapping]] = ...) -> None: ...
class DeactivateDeviceRequest(_message.Message):
__slots__ = ["dev_eui"]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
dev_eui: str
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
class DeleteDeviceKeysRequest(_message.Message):
__slots__ = ["dev_eui"]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
dev_eui: str
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
class DeleteDeviceRequest(_message.Message):
__slots__ = ["dev_eui"]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
dev_eui: str
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
class Device(_message.Message):
__slots__ = ["application_id", "description", "dev_eui", "device_profile_id", "is_disabled", "name", "skip_fcnt_check", "tags", "variables"]
class TagsEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: str
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
class VariablesEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: str
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
DEVICE_PROFILE_ID_FIELD_NUMBER: _ClassVar[int]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
IS_DISABLED_FIELD_NUMBER: _ClassVar[int]
NAME_FIELD_NUMBER: _ClassVar[int]
SKIP_FCNT_CHECK_FIELD_NUMBER: _ClassVar[int]
TAGS_FIELD_NUMBER: _ClassVar[int]
VARIABLES_FIELD_NUMBER: _ClassVar[int]
application_id: str
description: str
dev_eui: str
device_profile_id: str
is_disabled: bool
name: str
skip_fcnt_check: bool
tags: _containers.ScalarMap[str, str]
variables: _containers.ScalarMap[str, str]
def __init__(self, dev_eui: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., application_id: _Optional[str] = ..., device_profile_id: _Optional[str] = ..., skip_fcnt_check: bool = ..., is_disabled: bool = ..., variables: _Optional[_Mapping[str, str]] = ..., tags: _Optional[_Mapping[str, str]] = ...) -> None: ...
class DeviceActivation(_message.Message):
__slots__ = ["a_f_cnt_down", "app_s_key", "dev_addr", "dev_eui", "f_cnt_up", "f_nwk_s_int_key", "n_f_cnt_down", "nwk_s_enc_key", "s_nwk_s_int_key"]
APP_S_KEY_FIELD_NUMBER: _ClassVar[int]
A_F_CNT_DOWN_FIELD_NUMBER: _ClassVar[int]
DEV_ADDR_FIELD_NUMBER: _ClassVar[int]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
F_CNT_UP_FIELD_NUMBER: _ClassVar[int]
F_NWK_S_INT_KEY_FIELD_NUMBER: _ClassVar[int]
NWK_S_ENC_KEY_FIELD_NUMBER: _ClassVar[int]
N_F_CNT_DOWN_FIELD_NUMBER: _ClassVar[int]
S_NWK_S_INT_KEY_FIELD_NUMBER: _ClassVar[int]
a_f_cnt_down: int
app_s_key: str
dev_addr: str
dev_eui: str
f_cnt_up: int
f_nwk_s_int_key: str
n_f_cnt_down: int
nwk_s_enc_key: str
s_nwk_s_int_key: str
def __init__(self, dev_eui: _Optional[str] = ..., dev_addr: _Optional[str] = ..., app_s_key: _Optional[str] = ..., nwk_s_enc_key: _Optional[str] = ..., s_nwk_s_int_key: _Optional[str] = ..., f_nwk_s_int_key: _Optional[str] = ..., f_cnt_up: _Optional[int] = ..., n_f_cnt_down: _Optional[int] = ..., a_f_cnt_down: _Optional[int] = ...) -> None: ...
class DeviceKeys(_message.Message):
__slots__ = ["app_key", "dev_eui", "nwk_key"]
APP_KEY_FIELD_NUMBER: _ClassVar[int]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
NWK_KEY_FIELD_NUMBER: _ClassVar[int]
app_key: str
dev_eui: str
nwk_key: str
def __init__(self, dev_eui: _Optional[str] = ..., nwk_key: _Optional[str] = ..., app_key: _Optional[str] = ...) -> None: ...
class DeviceListItem(_message.Message):
__slots__ = ["created_at", "description", "dev_eui", "device_profile_id", "device_profile_name", "device_status", "last_seen_at", "name", "updated_at"]
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
DEVICE_PROFILE_ID_FIELD_NUMBER: _ClassVar[int]
DEVICE_PROFILE_NAME_FIELD_NUMBER: _ClassVar[int]
DEVICE_STATUS_FIELD_NUMBER: _ClassVar[int]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
LAST_SEEN_AT_FIELD_NUMBER: _ClassVar[int]
NAME_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
created_at: _timestamp_pb2.Timestamp
description: str
dev_eui: str
device_profile_id: str
device_profile_name: str
device_status: DeviceStatus
last_seen_at: _timestamp_pb2.Timestamp
name: str
updated_at: _timestamp_pb2.Timestamp
def __init__(self, dev_eui: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., last_seen_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., device_profile_id: _Optional[str] = ..., device_profile_name: _Optional[str] = ..., device_status: _Optional[_Union[DeviceStatus, _Mapping]] = ...) -> None: ...
class DeviceQueueItem(_message.Message):
__slots__ = ["confirmed", "data", "dev_eui", "f_cnt_down", "f_port", "id", "is_pending", "object"]
CONFIRMED_FIELD_NUMBER: _ClassVar[int]
DATA_FIELD_NUMBER: _ClassVar[int]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
F_CNT_DOWN_FIELD_NUMBER: _ClassVar[int]
F_PORT_FIELD_NUMBER: _ClassVar[int]
ID_FIELD_NUMBER: _ClassVar[int]
IS_PENDING_FIELD_NUMBER: _ClassVar[int]
OBJECT_FIELD_NUMBER: _ClassVar[int]
confirmed: bool
data: bytes
dev_eui: str
f_cnt_down: int
f_port: int
id: str
is_pending: bool
object: _struct_pb2.Struct
def __init__(self, id: _Optional[str] = ..., dev_eui: _Optional[str] = ..., confirmed: bool = ..., f_port: _Optional[int] = ..., data: _Optional[bytes] = ..., object: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., is_pending: bool = ..., f_cnt_down: _Optional[int] = ...) -> None: ...
class DeviceState(_message.Message):
__slots__ = ["name", "value"]
NAME_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
name: str
value: str
def __init__(self, name: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
class DeviceStatus(_message.Message):
__slots__ = ["battery_level", "external_power_source", "margin"]
BATTERY_LEVEL_FIELD_NUMBER: _ClassVar[int]
EXTERNAL_POWER_SOURCE_FIELD_NUMBER: _ClassVar[int]
MARGIN_FIELD_NUMBER: _ClassVar[int]
battery_level: float
external_power_source: bool
margin: int
def __init__(self, margin: _Optional[int] = ..., external_power_source: bool = ..., battery_level: _Optional[float] = ...) -> None: ...
class EnqueueDeviceQueueItemRequest(_message.Message):
__slots__ = ["queue_item"]
QUEUE_ITEM_FIELD_NUMBER: _ClassVar[int]
queue_item: DeviceQueueItem
def __init__(self, queue_item: _Optional[_Union[DeviceQueueItem, _Mapping]] = ...) -> None: ...
class EnqueueDeviceQueueItemResponse(_message.Message):
__slots__ = ["id"]
ID_FIELD_NUMBER: _ClassVar[int]
id: str
def __init__(self, id: _Optional[str] = ...) -> None: ...
class FlushDevNoncesRequest(_message.Message):
__slots__ = ["dev_eui"]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
dev_eui: str
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
class FlushDeviceQueueRequest(_message.Message):
__slots__ = ["dev_eui"]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
dev_eui: str
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
class GetDeviceActivationRequest(_message.Message):
__slots__ = ["dev_eui"]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
dev_eui: str
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
class GetDeviceActivationResponse(_message.Message):
__slots__ = ["device_activation"]
DEVICE_ACTIVATION_FIELD_NUMBER: _ClassVar[int]
device_activation: DeviceActivation
def __init__(self, device_activation: _Optional[_Union[DeviceActivation, _Mapping]] = ...) -> None: ...
class GetDeviceKeysRequest(_message.Message):
__slots__ = ["dev_eui"]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
dev_eui: str
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
class GetDeviceKeysResponse(_message.Message):
__slots__ = ["created_at", "device_keys", "updated_at"]
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
DEVICE_KEYS_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
created_at: _timestamp_pb2.Timestamp
device_keys: DeviceKeys
updated_at: _timestamp_pb2.Timestamp
def __init__(self, device_keys: _Optional[_Union[DeviceKeys, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
class GetDeviceLinkMetricsRequest(_message.Message):
__slots__ = ["aggregation", "dev_eui", "end", "start"]
AGGREGATION_FIELD_NUMBER: _ClassVar[int]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
END_FIELD_NUMBER: _ClassVar[int]
START_FIELD_NUMBER: _ClassVar[int]
aggregation: _common_pb2.Aggregation
dev_eui: str
end: _timestamp_pb2.Timestamp
start: _timestamp_pb2.Timestamp
def __init__(self, dev_eui: _Optional[str] = ..., start: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., end: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., aggregation: _Optional[_Union[_common_pb2.Aggregation, str]] = ...) -> None: ...
class GetDeviceLinkMetricsResponse(_message.Message):
__slots__ = ["errors", "gw_rssi", "gw_snr", "rx_packets", "rx_packets_per_dr", "rx_packets_per_freq"]
ERRORS_FIELD_NUMBER: _ClassVar[int]
GW_RSSI_FIELD_NUMBER: _ClassVar[int]
GW_SNR_FIELD_NUMBER: _ClassVar[int]
RX_PACKETS_FIELD_NUMBER: _ClassVar[int]
RX_PACKETS_PER_DR_FIELD_NUMBER: _ClassVar[int]
RX_PACKETS_PER_FREQ_FIELD_NUMBER: _ClassVar[int]
errors: _common_pb2.Metric
gw_rssi: _common_pb2.Metric
gw_snr: _common_pb2.Metric
rx_packets: _common_pb2.Metric
rx_packets_per_dr: _common_pb2.Metric
rx_packets_per_freq: _common_pb2.Metric
def __init__(self, rx_packets: _Optional[_Union[_common_pb2.Metric, _Mapping]] = ..., gw_rssi: _Optional[_Union[_common_pb2.Metric, _Mapping]] = ..., gw_snr: _Optional[_Union[_common_pb2.Metric, _Mapping]] = ..., rx_packets_per_freq: _Optional[_Union[_common_pb2.Metric, _Mapping]] = ..., rx_packets_per_dr: _Optional[_Union[_common_pb2.Metric, _Mapping]] = ..., errors: _Optional[_Union[_common_pb2.Metric, _Mapping]] = ...) -> None: ...
class GetDeviceMetricsRequest(_message.Message):
__slots__ = ["aggregation", "dev_eui", "end", "start"]
AGGREGATION_FIELD_NUMBER: _ClassVar[int]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
END_FIELD_NUMBER: _ClassVar[int]
START_FIELD_NUMBER: _ClassVar[int]
aggregation: _common_pb2.Aggregation
dev_eui: str
end: _timestamp_pb2.Timestamp
start: _timestamp_pb2.Timestamp
def __init__(self, dev_eui: _Optional[str] = ..., start: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., end: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., aggregation: _Optional[_Union[_common_pb2.Aggregation, str]] = ...) -> None: ...
class GetDeviceMetricsResponse(_message.Message):
__slots__ = ["metrics", "states"]
class MetricsEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: _common_pb2.Metric
def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_common_pb2.Metric, _Mapping]] = ...) -> None: ...
class StatesEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: DeviceState
def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[DeviceState, _Mapping]] = ...) -> None: ...
METRICS_FIELD_NUMBER: _ClassVar[int]
STATES_FIELD_NUMBER: _ClassVar[int]
metrics: _containers.MessageMap[str, _common_pb2.Metric]
states: _containers.MessageMap[str, DeviceState]
def __init__(self, metrics: _Optional[_Mapping[str, _common_pb2.Metric]] = ..., states: _Optional[_Mapping[str, DeviceState]] = ...) -> None: ...
class GetDeviceQueueItemsRequest(_message.Message):
__slots__ = ["count_only", "dev_eui"]
COUNT_ONLY_FIELD_NUMBER: _ClassVar[int]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
count_only: bool
dev_eui: str
def __init__(self, dev_eui: _Optional[str] = ..., count_only: bool = ...) -> None: ...
class GetDeviceQueueItemsResponse(_message.Message):
__slots__ = ["result", "total_count"]
RESULT_FIELD_NUMBER: _ClassVar[int]
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
result: _containers.RepeatedCompositeFieldContainer[DeviceQueueItem]
total_count: int
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[DeviceQueueItem, _Mapping]]] = ...) -> None: ...
class GetDeviceRequest(_message.Message):
__slots__ = ["dev_eui"]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
dev_eui: str
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
class GetDeviceResponse(_message.Message):
__slots__ = ["created_at", "device", "device_status", "last_seen_at", "updated_at"]
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
DEVICE_FIELD_NUMBER: _ClassVar[int]
DEVICE_STATUS_FIELD_NUMBER: _ClassVar[int]
LAST_SEEN_AT_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
created_at: _timestamp_pb2.Timestamp
device: Device
device_status: DeviceStatus
last_seen_at: _timestamp_pb2.Timestamp
updated_at: _timestamp_pb2.Timestamp
def __init__(self, device: _Optional[_Union[Device, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., last_seen_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., device_status: _Optional[_Union[DeviceStatus, _Mapping]] = ...) -> None: ...
class GetRandomDevAddrRequest(_message.Message):
__slots__ = ["dev_eui"]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
dev_eui: str
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
class GetRandomDevAddrResponse(_message.Message):
__slots__ = ["dev_addr"]
DEV_ADDR_FIELD_NUMBER: _ClassVar[int]
dev_addr: str
def __init__(self, dev_addr: _Optional[str] = ...) -> None: ...
class ListDevicesRequest(_message.Message):
__slots__ = ["application_id", "limit", "multicast_group_id", "offset", "search"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
LIMIT_FIELD_NUMBER: _ClassVar[int]
MULTICAST_GROUP_ID_FIELD_NUMBER: _ClassVar[int]
OFFSET_FIELD_NUMBER: _ClassVar[int]
SEARCH_FIELD_NUMBER: _ClassVar[int]
application_id: str
limit: int
multicast_group_id: str
offset: int
search: str
def __init__(self, limit: _Optional[int] = ..., offset: _Optional[int] = ..., search: _Optional[str] = ..., application_id: _Optional[str] = ..., multicast_group_id: _Optional[str] = ...) -> None: ...
class ListDevicesResponse(_message.Message):
__slots__ = ["result", "total_count"]
RESULT_FIELD_NUMBER: _ClassVar[int]
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
result: _containers.RepeatedCompositeFieldContainer[DeviceListItem]
total_count: int
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[DeviceListItem, _Mapping]]] = ...) -> None: ...
class UpdateDeviceKeysRequest(_message.Message):
__slots__ = ["device_keys"]
DEVICE_KEYS_FIELD_NUMBER: _ClassVar[int]
device_keys: DeviceKeys
def __init__(self, device_keys: _Optional[_Union[DeviceKeys, _Mapping]] = ...) -> None: ...
class UpdateDeviceRequest(_message.Message):
__slots__ = ["device"]
DEVICE_FIELD_NUMBER: _ClassVar[int]
device: Device
def __init__(self, device: _Optional[_Union[Device, _Mapping]] = ...) -> None: ...

@ -0,0 +1,209 @@
from google.api import annotations_pb2 as _annotations_pb2
from google.protobuf import timestamp_pb2 as _timestamp_pb2
from google.protobuf import empty_pb2 as _empty_pb2
from chirpstack_api.common import common_pb2 as _common_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
ABSOLUTE: MeasurementKind
CAYENNE_LPP: CodecRuntime
COUNTER: MeasurementKind
DESCRIPTOR: _descriptor.FileDescriptor
GAUGE: MeasurementKind
JS: CodecRuntime
NONE: CodecRuntime
STRING: MeasurementKind
UNKNOWN: MeasurementKind
class AdrAlgorithmListItem(_message.Message):
__slots__ = ["id", "name"]
ID_FIELD_NUMBER: _ClassVar[int]
NAME_FIELD_NUMBER: _ClassVar[int]
id: str
name: str
def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ...) -> None: ...
class CreateDeviceProfileRequest(_message.Message):
__slots__ = ["device_profile"]
DEVICE_PROFILE_FIELD_NUMBER: _ClassVar[int]
device_profile: DeviceProfile
def __init__(self, device_profile: _Optional[_Union[DeviceProfile, _Mapping]] = ...) -> None: ...
class CreateDeviceProfileResponse(_message.Message):
__slots__ = ["id"]
ID_FIELD_NUMBER: _ClassVar[int]
id: str
def __init__(self, id: _Optional[str] = ...) -> None: ...
class DeleteDeviceProfileRequest(_message.Message):
__slots__ = ["id"]
ID_FIELD_NUMBER: _ClassVar[int]
id: str
def __init__(self, id: _Optional[str] = ...) -> None: ...
class DeviceProfile(_message.Message):
__slots__ = ["abp_rx1_delay", "abp_rx1_dr_offset", "abp_rx2_dr", "abp_rx2_freq", "adr_algorithm_id", "auto_detect_measurements", "class_b_ping_slot_dr", "class_b_ping_slot_freq", "class_b_ping_slot_period", "class_b_timeout", "class_c_timeout", "description", "device_status_req_interval", "flush_queue_on_activate", "id", "mac_version", "measurements", "name", "payload_codec_runtime", "payload_codec_script", "reg_params_revision", "region", "region_config_id", "supports_class_b", "supports_class_c", "supports_otaa", "tags", "tenant_id", "uplink_interval"]
class MeasurementsEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: Measurement
def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[Measurement, _Mapping]] = ...) -> None: ...
class TagsEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: str
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
ABP_RX1_DELAY_FIELD_NUMBER: _ClassVar[int]
ABP_RX1_DR_OFFSET_FIELD_NUMBER: _ClassVar[int]
ABP_RX2_DR_FIELD_NUMBER: _ClassVar[int]
ABP_RX2_FREQ_FIELD_NUMBER: _ClassVar[int]
ADR_ALGORITHM_ID_FIELD_NUMBER: _ClassVar[int]
AUTO_DETECT_MEASUREMENTS_FIELD_NUMBER: _ClassVar[int]
CLASS_B_PING_SLOT_DR_FIELD_NUMBER: _ClassVar[int]
CLASS_B_PING_SLOT_FREQ_FIELD_NUMBER: _ClassVar[int]
CLASS_B_PING_SLOT_PERIOD_FIELD_NUMBER: _ClassVar[int]
CLASS_B_TIMEOUT_FIELD_NUMBER: _ClassVar[int]
CLASS_C_TIMEOUT_FIELD_NUMBER: _ClassVar[int]
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
DEVICE_STATUS_REQ_INTERVAL_FIELD_NUMBER: _ClassVar[int]
FLUSH_QUEUE_ON_ACTIVATE_FIELD_NUMBER: _ClassVar[int]
ID_FIELD_NUMBER: _ClassVar[int]
MAC_VERSION_FIELD_NUMBER: _ClassVar[int]
MEASUREMENTS_FIELD_NUMBER: _ClassVar[int]
NAME_FIELD_NUMBER: _ClassVar[int]
PAYLOAD_CODEC_RUNTIME_FIELD_NUMBER: _ClassVar[int]
PAYLOAD_CODEC_SCRIPT_FIELD_NUMBER: _ClassVar[int]
REGION_CONFIG_ID_FIELD_NUMBER: _ClassVar[int]
REGION_FIELD_NUMBER: _ClassVar[int]
REG_PARAMS_REVISION_FIELD_NUMBER: _ClassVar[int]
SUPPORTS_CLASS_B_FIELD_NUMBER: _ClassVar[int]
SUPPORTS_CLASS_C_FIELD_NUMBER: _ClassVar[int]
SUPPORTS_OTAA_FIELD_NUMBER: _ClassVar[int]
TAGS_FIELD_NUMBER: _ClassVar[int]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
UPLINK_INTERVAL_FIELD_NUMBER: _ClassVar[int]
abp_rx1_delay: int
abp_rx1_dr_offset: int
abp_rx2_dr: int
abp_rx2_freq: int
adr_algorithm_id: str
auto_detect_measurements: bool
class_b_ping_slot_dr: int
class_b_ping_slot_freq: int
class_b_ping_slot_period: int
class_b_timeout: int
class_c_timeout: int
description: str
device_status_req_interval: int
flush_queue_on_activate: bool
id: str
mac_version: _common_pb2.MacVersion
measurements: _containers.MessageMap[str, Measurement]
name: str
payload_codec_runtime: CodecRuntime
payload_codec_script: str
reg_params_revision: _common_pb2.RegParamsRevision
region: _common_pb2.Region
region_config_id: str
supports_class_b: bool
supports_class_c: bool
supports_otaa: bool
tags: _containers.ScalarMap[str, str]
tenant_id: str
uplink_interval: int
def __init__(self, id: _Optional[str] = ..., tenant_id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., region: _Optional[_Union[_common_pb2.Region, str]] = ..., mac_version: _Optional[_Union[_common_pb2.MacVersion, str]] = ..., reg_params_revision: _Optional[_Union[_common_pb2.RegParamsRevision, str]] = ..., adr_algorithm_id: _Optional[str] = ..., payload_codec_runtime: _Optional[_Union[CodecRuntime, str]] = ..., payload_codec_script: _Optional[str] = ..., flush_queue_on_activate: bool = ..., uplink_interval: _Optional[int] = ..., device_status_req_interval: _Optional[int] = ..., supports_otaa: bool = ..., supports_class_b: bool = ..., supports_class_c: bool = ..., class_b_timeout: _Optional[int] = ..., class_b_ping_slot_period: _Optional[int] = ..., class_b_ping_slot_dr: _Optional[int] = ..., class_b_ping_slot_freq: _Optional[int] = ..., class_c_timeout: _Optional[int] = ..., abp_rx1_delay: _Optional[int] = ..., abp_rx1_dr_offset: _Optional[int] = ..., abp_rx2_dr: _Optional[int] = ..., abp_rx2_freq: _Optional[int] = ..., tags: _Optional[_Mapping[str, str]] = ..., measurements: _Optional[_Mapping[str, Measurement]] = ..., auto_detect_measurements: bool = ..., region_config_id: _Optional[str] = ...) -> None: ...
class DeviceProfileListItem(_message.Message):
__slots__ = ["created_at", "id", "mac_version", "name", "reg_params_revision", "region", "supports_class_b", "supports_class_c", "supports_otaa", "updated_at"]
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
ID_FIELD_NUMBER: _ClassVar[int]
MAC_VERSION_FIELD_NUMBER: _ClassVar[int]
NAME_FIELD_NUMBER: _ClassVar[int]
REGION_FIELD_NUMBER: _ClassVar[int]
REG_PARAMS_REVISION_FIELD_NUMBER: _ClassVar[int]
SUPPORTS_CLASS_B_FIELD_NUMBER: _ClassVar[int]
SUPPORTS_CLASS_C_FIELD_NUMBER: _ClassVar[int]
SUPPORTS_OTAA_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
created_at: _timestamp_pb2.Timestamp
id: str
mac_version: _common_pb2.MacVersion
name: str
reg_params_revision: _common_pb2.RegParamsRevision
region: _common_pb2.Region
supports_class_b: bool
supports_class_c: bool
supports_otaa: bool
updated_at: _timestamp_pb2.Timestamp
def __init__(self, id: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., name: _Optional[str] = ..., region: _Optional[_Union[_common_pb2.Region, str]] = ..., mac_version: _Optional[_Union[_common_pb2.MacVersion, str]] = ..., reg_params_revision: _Optional[_Union[_common_pb2.RegParamsRevision, str]] = ..., supports_otaa: bool = ..., supports_class_b: bool = ..., supports_class_c: bool = ...) -> None: ...
class GetDeviceProfileRequest(_message.Message):
__slots__ = ["id"]
ID_FIELD_NUMBER: _ClassVar[int]
id: str
def __init__(self, id: _Optional[str] = ...) -> None: ...
class GetDeviceProfileResponse(_message.Message):
__slots__ = ["created_at", "device_profile", "updated_at"]
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
DEVICE_PROFILE_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
created_at: _timestamp_pb2.Timestamp
device_profile: DeviceProfile
updated_at: _timestamp_pb2.Timestamp
def __init__(self, device_profile: _Optional[_Union[DeviceProfile, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
class ListDeviceProfileAdrAlgorithmsResponse(_message.Message):
__slots__ = ["result", "total_count"]
RESULT_FIELD_NUMBER: _ClassVar[int]
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
result: _containers.RepeatedCompositeFieldContainer[AdrAlgorithmListItem]
total_count: int
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[AdrAlgorithmListItem, _Mapping]]] = ...) -> None: ...
class ListDeviceProfilesRequest(_message.Message):
__slots__ = ["limit", "offset", "search", "tenant_id"]
LIMIT_FIELD_NUMBER: _ClassVar[int]
OFFSET_FIELD_NUMBER: _ClassVar[int]
SEARCH_FIELD_NUMBER: _ClassVar[int]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
limit: int
offset: int
search: str
tenant_id: str
def __init__(self, limit: _Optional[int] = ..., offset: _Optional[int] = ..., search: _Optional[str] = ..., tenant_id: _Optional[str] = ...) -> None: ...
class ListDeviceProfilesResponse(_message.Message):
__slots__ = ["result", "total_count"]
RESULT_FIELD_NUMBER: _ClassVar[int]
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
result: _containers.RepeatedCompositeFieldContainer[DeviceProfileListItem]
total_count: int
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[DeviceProfileListItem, _Mapping]]] = ...) -> None: ...
class Measurement(_message.Message):
__slots__ = ["kind", "name"]
KIND_FIELD_NUMBER: _ClassVar[int]
NAME_FIELD_NUMBER: _ClassVar[int]
kind: MeasurementKind
name: str
def __init__(self, name: _Optional[str] = ..., kind: _Optional[_Union[MeasurementKind, str]] = ...) -> None: ...
class UpdateDeviceProfileRequest(_message.Message):
__slots__ = ["device_profile"]
DEVICE_PROFILE_FIELD_NUMBER: _ClassVar[int]
device_profile: DeviceProfile
def __init__(self, device_profile: _Optional[_Union[DeviceProfile, _Mapping]] = ...) -> None: ...
class CodecRuntime(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
class MeasurementKind(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []

@ -0,0 +1,165 @@
from google.api import annotations_pb2 as _annotations_pb2
from google.protobuf import timestamp_pb2 as _timestamp_pb2
from google.protobuf import empty_pb2 as _empty_pb2
from chirpstack_api.common import common_pb2 as _common_pb2
from chirpstack_api.api import device_profile_pb2 as _device_profile_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
DESCRIPTOR: _descriptor.FileDescriptor
class CreateDeviceProfileTemplateRequest(_message.Message):
__slots__ = ["device_profile_template"]
DEVICE_PROFILE_TEMPLATE_FIELD_NUMBER: _ClassVar[int]
device_profile_template: DeviceProfileTemplate
def __init__(self, device_profile_template: _Optional[_Union[DeviceProfileTemplate, _Mapping]] = ...) -> None: ...
class DeleteDeviceProfileTemplateRequest(_message.Message):
__slots__ = ["id"]
ID_FIELD_NUMBER: _ClassVar[int]
id: str
def __init__(self, id: _Optional[str] = ...) -> None: ...
class DeviceProfileTemplate(_message.Message):
__slots__ = ["abp_rx1_delay", "abp_rx1_dr_offset", "abp_rx2_dr", "abp_rx2_freq", "adr_algorithm_id", "auto_detect_measurements", "class_b_ping_slot_dr", "class_b_ping_slot_freq", "class_b_ping_slot_period", "class_b_timeout", "class_c_timeout", "description", "device_status_req_interval", "firmware", "flush_queue_on_activate", "id", "mac_version", "measurements", "name", "payload_codec_runtime", "payload_codec_script", "reg_params_revision", "region", "supports_class_b", "supports_class_c", "supports_otaa", "tags", "uplink_interval", "vendor"]
class MeasurementsEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: _device_profile_pb2.Measurement
def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_device_profile_pb2.Measurement, _Mapping]] = ...) -> None: ...
class TagsEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: str
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
ABP_RX1_DELAY_FIELD_NUMBER: _ClassVar[int]
ABP_RX1_DR_OFFSET_FIELD_NUMBER: _ClassVar[int]
ABP_RX2_DR_FIELD_NUMBER: _ClassVar[int]
ABP_RX2_FREQ_FIELD_NUMBER: _ClassVar[int]
ADR_ALGORITHM_ID_FIELD_NUMBER: _ClassVar[int]
AUTO_DETECT_MEASUREMENTS_FIELD_NUMBER: _ClassVar[int]
CLASS_B_PING_SLOT_DR_FIELD_NUMBER: _ClassVar[int]
CLASS_B_PING_SLOT_FREQ_FIELD_NUMBER: _ClassVar[int]
CLASS_B_PING_SLOT_PERIOD_FIELD_NUMBER: _ClassVar[int]
CLASS_B_TIMEOUT_FIELD_NUMBER: _ClassVar[int]
CLASS_C_TIMEOUT_FIELD_NUMBER: _ClassVar[int]
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
DEVICE_STATUS_REQ_INTERVAL_FIELD_NUMBER: _ClassVar[int]
FIRMWARE_FIELD_NUMBER: _ClassVar[int]
FLUSH_QUEUE_ON_ACTIVATE_FIELD_NUMBER: _ClassVar[int]
ID_FIELD_NUMBER: _ClassVar[int]
MAC_VERSION_FIELD_NUMBER: _ClassVar[int]
MEASUREMENTS_FIELD_NUMBER: _ClassVar[int]
NAME_FIELD_NUMBER: _ClassVar[int]
PAYLOAD_CODEC_RUNTIME_FIELD_NUMBER: _ClassVar[int]
PAYLOAD_CODEC_SCRIPT_FIELD_NUMBER: _ClassVar[int]
REGION_FIELD_NUMBER: _ClassVar[int]
REG_PARAMS_REVISION_FIELD_NUMBER: _ClassVar[int]
SUPPORTS_CLASS_B_FIELD_NUMBER: _ClassVar[int]
SUPPORTS_CLASS_C_FIELD_NUMBER: _ClassVar[int]
SUPPORTS_OTAA_FIELD_NUMBER: _ClassVar[int]
TAGS_FIELD_NUMBER: _ClassVar[int]
UPLINK_INTERVAL_FIELD_NUMBER: _ClassVar[int]
VENDOR_FIELD_NUMBER: _ClassVar[int]
abp_rx1_delay: int
abp_rx1_dr_offset: int
abp_rx2_dr: int
abp_rx2_freq: int
adr_algorithm_id: str
auto_detect_measurements: bool
class_b_ping_slot_dr: int
class_b_ping_slot_freq: int
class_b_ping_slot_period: int
class_b_timeout: int
class_c_timeout: int
description: str
device_status_req_interval: int
firmware: str
flush_queue_on_activate: bool
id: str
mac_version: _common_pb2.MacVersion
measurements: _containers.MessageMap[str, _device_profile_pb2.Measurement]
name: str
payload_codec_runtime: _device_profile_pb2.CodecRuntime
payload_codec_script: str
reg_params_revision: _common_pb2.RegParamsRevision
region: _common_pb2.Region
supports_class_b: bool
supports_class_c: bool
supports_otaa: bool
tags: _containers.ScalarMap[str, str]
uplink_interval: int
vendor: str
def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., vendor: _Optional[str] = ..., firmware: _Optional[str] = ..., region: _Optional[_Union[_common_pb2.Region, str]] = ..., mac_version: _Optional[_Union[_common_pb2.MacVersion, str]] = ..., reg_params_revision: _Optional[_Union[_common_pb2.RegParamsRevision, str]] = ..., adr_algorithm_id: _Optional[str] = ..., payload_codec_runtime: _Optional[_Union[_device_profile_pb2.CodecRuntime, str]] = ..., payload_codec_script: _Optional[str] = ..., flush_queue_on_activate: bool = ..., uplink_interval: _Optional[int] = ..., device_status_req_interval: _Optional[int] = ..., supports_otaa: bool = ..., supports_class_b: bool = ..., supports_class_c: bool = ..., class_b_timeout: _Optional[int] = ..., class_b_ping_slot_period: _Optional[int] = ..., class_b_ping_slot_dr: _Optional[int] = ..., class_b_ping_slot_freq: _Optional[int] = ..., class_c_timeout: _Optional[int] = ..., abp_rx1_delay: _Optional[int] = ..., abp_rx1_dr_offset: _Optional[int] = ..., abp_rx2_dr: _Optional[int] = ..., abp_rx2_freq: _Optional[int] = ..., tags: _Optional[_Mapping[str, str]] = ..., measurements: _Optional[_Mapping[str, _device_profile_pb2.Measurement]] = ..., auto_detect_measurements: bool = ...) -> None: ...
class DeviceProfileTemplateListItem(_message.Message):
__slots__ = ["created_at", "firmware", "id", "mac_version", "name", "reg_params_revision", "region", "supports_class_b", "supports_class_c", "supports_otaa", "updated_at", "vendor"]
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
FIRMWARE_FIELD_NUMBER: _ClassVar[int]
ID_FIELD_NUMBER: _ClassVar[int]
MAC_VERSION_FIELD_NUMBER: _ClassVar[int]
NAME_FIELD_NUMBER: _ClassVar[int]
REGION_FIELD_NUMBER: _ClassVar[int]
REG_PARAMS_REVISION_FIELD_NUMBER: _ClassVar[int]
SUPPORTS_CLASS_B_FIELD_NUMBER: _ClassVar[int]
SUPPORTS_CLASS_C_FIELD_NUMBER: _ClassVar[int]
SUPPORTS_OTAA_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
VENDOR_FIELD_NUMBER: _ClassVar[int]
created_at: _timestamp_pb2.Timestamp
firmware: str
id: str
mac_version: _common_pb2.MacVersion
name: str
reg_params_revision: _common_pb2.RegParamsRevision
region: _common_pb2.Region
supports_class_b: bool
supports_class_c: bool
supports_otaa: bool
updated_at: _timestamp_pb2.Timestamp
vendor: str
def __init__(self, id: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., name: _Optional[str] = ..., vendor: _Optional[str] = ..., firmware: _Optional[str] = ..., region: _Optional[_Union[_common_pb2.Region, str]] = ..., mac_version: _Optional[_Union[_common_pb2.MacVersion, str]] = ..., reg_params_revision: _Optional[_Union[_common_pb2.RegParamsRevision, str]] = ..., supports_otaa: bool = ..., supports_class_b: bool = ..., supports_class_c: bool = ...) -> None: ...
class GetDeviceProfileTemplateRequest(_message.Message):
__slots__ = ["id"]
ID_FIELD_NUMBER: _ClassVar[int]
id: str
def __init__(self, id: _Optional[str] = ...) -> None: ...
class GetDeviceProfileTemplateResponse(_message.Message):
__slots__ = ["created_at", "device_profile_template", "updated_at"]
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
DEVICE_PROFILE_TEMPLATE_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
created_at: _timestamp_pb2.Timestamp
device_profile_template: DeviceProfileTemplate
updated_at: _timestamp_pb2.Timestamp
def __init__(self, device_profile_template: _Optional[_Union[DeviceProfileTemplate, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
class ListDeviceProfileTemplatesRequest(_message.Message):
__slots__ = ["limit", "offset"]
LIMIT_FIELD_NUMBER: _ClassVar[int]
OFFSET_FIELD_NUMBER: _ClassVar[int]
limit: int
offset: int
def __init__(self, limit: _Optional[int] = ..., offset: _Optional[int] = ...) -> None: ...
class ListDeviceProfileTemplatesResponse(_message.Message):
__slots__ = ["result", "total_count"]
RESULT_FIELD_NUMBER: _ClassVar[int]
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
result: _containers.RepeatedCompositeFieldContainer[DeviceProfileTemplateListItem]
total_count: int
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[DeviceProfileTemplateListItem, _Mapping]]] = ...) -> None: ...
class UpdateDeviceProfileTemplateRequest(_message.Message):
__slots__ = ["device_profile_template"]
DEVICE_PROFILE_TEMPLATE_FIELD_NUMBER: _ClassVar[int]
device_profile_template: DeviceProfileTemplate
def __init__(self, device_profile_template: _Optional[_Union[DeviceProfileTemplate, _Mapping]] = ...) -> None: ...

@ -0,0 +1,51 @@
from google.protobuf import timestamp_pb2 as _timestamp_pb2
from chirpstack_api.common import common_pb2 as _common_pb2
from chirpstack_api.gw import gw_pb2 as _gw_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
DESCRIPTOR: _descriptor.FileDescriptor
class DownlinkFrameLog(_message.Message):
__slots__ = ["dev_addr", "dev_eui", "downlink_id", "gateway_id", "m_type", "phy_payload", "plaintext_mac_commands", "time", "tx_info"]
DEV_ADDR_FIELD_NUMBER: _ClassVar[int]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
DOWNLINK_ID_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
M_TYPE_FIELD_NUMBER: _ClassVar[int]
PHY_PAYLOAD_FIELD_NUMBER: _ClassVar[int]
PLAINTEXT_MAC_COMMANDS_FIELD_NUMBER: _ClassVar[int]
TIME_FIELD_NUMBER: _ClassVar[int]
TX_INFO_FIELD_NUMBER: _ClassVar[int]
dev_addr: str
dev_eui: str
downlink_id: int
gateway_id: str
m_type: _common_pb2.MType
phy_payload: bytes
plaintext_mac_commands: bool
time: _timestamp_pb2.Timestamp
tx_info: _gw_pb2.DownlinkTxInfo
def __init__(self, time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., phy_payload: _Optional[bytes] = ..., tx_info: _Optional[_Union[_gw_pb2.DownlinkTxInfo, _Mapping]] = ..., downlink_id: _Optional[int] = ..., gateway_id: _Optional[str] = ..., m_type: _Optional[_Union[_common_pb2.MType, str]] = ..., dev_addr: _Optional[str] = ..., dev_eui: _Optional[str] = ..., plaintext_mac_commands: bool = ...) -> None: ...
class UplinkFrameLog(_message.Message):
__slots__ = ["dev_addr", "dev_eui", "m_type", "phy_payload", "plaintext_mac_commands", "rx_info", "time", "tx_info"]
DEV_ADDR_FIELD_NUMBER: _ClassVar[int]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
M_TYPE_FIELD_NUMBER: _ClassVar[int]
PHY_PAYLOAD_FIELD_NUMBER: _ClassVar[int]
PLAINTEXT_MAC_COMMANDS_FIELD_NUMBER: _ClassVar[int]
RX_INFO_FIELD_NUMBER: _ClassVar[int]
TIME_FIELD_NUMBER: _ClassVar[int]
TX_INFO_FIELD_NUMBER: _ClassVar[int]
dev_addr: str
dev_eui: str
m_type: _common_pb2.MType
phy_payload: bytes
plaintext_mac_commands: bool
rx_info: _containers.RepeatedCompositeFieldContainer[_gw_pb2.UplinkRxInfo]
time: _timestamp_pb2.Timestamp
tx_info: _gw_pb2.UplinkTxInfo
def __init__(self, phy_payload: _Optional[bytes] = ..., tx_info: _Optional[_Union[_gw_pb2.UplinkTxInfo, _Mapping]] = ..., rx_info: _Optional[_Iterable[_Union[_gw_pb2.UplinkRxInfo, _Mapping]]] = ..., m_type: _Optional[_Union[_common_pb2.MType, str]] = ..., dev_addr: _Optional[str] = ..., dev_eui: _Optional[str] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., plaintext_mac_commands: bool = ...) -> None: ...

@ -0,0 +1,186 @@
from google.api import annotations_pb2 as _annotations_pb2
from google.protobuf import timestamp_pb2 as _timestamp_pb2
from google.protobuf import empty_pb2 as _empty_pb2
from chirpstack_api.common import common_pb2 as _common_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
DESCRIPTOR: _descriptor.FileDescriptor
NEVER_SEEN: GatewayState
OFFLINE: GatewayState
ONLINE: GatewayState
class CreateGatewayRequest(_message.Message):
__slots__ = ["gateway"]
GATEWAY_FIELD_NUMBER: _ClassVar[int]
gateway: Gateway
def __init__(self, gateway: _Optional[_Union[Gateway, _Mapping]] = ...) -> None: ...
class DeleteGatewayRequest(_message.Message):
__slots__ = ["gateway_id"]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
gateway_id: str
def __init__(self, gateway_id: _Optional[str] = ...) -> None: ...
class Gateway(_message.Message):
__slots__ = ["description", "gateway_id", "location", "metadata", "name", "stats_interval", "tags", "tenant_id"]
class MetadataEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: str
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
class TagsEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: str
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
LOCATION_FIELD_NUMBER: _ClassVar[int]
METADATA_FIELD_NUMBER: _ClassVar[int]
NAME_FIELD_NUMBER: _ClassVar[int]
STATS_INTERVAL_FIELD_NUMBER: _ClassVar[int]
TAGS_FIELD_NUMBER: _ClassVar[int]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
description: str
gateway_id: str
location: _common_pb2.Location
metadata: _containers.ScalarMap[str, str]
name: str
stats_interval: int
tags: _containers.ScalarMap[str, str]
tenant_id: str
def __init__(self, gateway_id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., location: _Optional[_Union[_common_pb2.Location, _Mapping]] = ..., tenant_id: _Optional[str] = ..., tags: _Optional[_Mapping[str, str]] = ..., metadata: _Optional[_Mapping[str, str]] = ..., stats_interval: _Optional[int] = ...) -> None: ...
class GatewayListItem(_message.Message):
__slots__ = ["created_at", "description", "gateway_id", "last_seen_at", "location", "name", "properties", "state", "tenant_id", "updated_at"]
class PropertiesEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: str
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
LAST_SEEN_AT_FIELD_NUMBER: _ClassVar[int]
LOCATION_FIELD_NUMBER: _ClassVar[int]
NAME_FIELD_NUMBER: _ClassVar[int]
PROPERTIES_FIELD_NUMBER: _ClassVar[int]
STATE_FIELD_NUMBER: _ClassVar[int]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
created_at: _timestamp_pb2.Timestamp
description: str
gateway_id: str
last_seen_at: _timestamp_pb2.Timestamp
location: _common_pb2.Location
name: str
properties: _containers.ScalarMap[str, str]
state: GatewayState
tenant_id: str
updated_at: _timestamp_pb2.Timestamp
def __init__(self, tenant_id: _Optional[str] = ..., gateway_id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., location: _Optional[_Union[_common_pb2.Location, _Mapping]] = ..., properties: _Optional[_Mapping[str, str]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., last_seen_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., state: _Optional[_Union[GatewayState, str]] = ...) -> None: ...
class GenerateGatewayClientCertificateRequest(_message.Message):
__slots__ = ["gateway_id"]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
gateway_id: str
def __init__(self, gateway_id: _Optional[str] = ...) -> None: ...
class GenerateGatewayClientCertificateResponse(_message.Message):
__slots__ = ["ca_cert", "expires_at", "tls_cert", "tls_key"]
CA_CERT_FIELD_NUMBER: _ClassVar[int]
EXPIRES_AT_FIELD_NUMBER: _ClassVar[int]
TLS_CERT_FIELD_NUMBER: _ClassVar[int]
TLS_KEY_FIELD_NUMBER: _ClassVar[int]
ca_cert: str
expires_at: _timestamp_pb2.Timestamp
tls_cert: str
tls_key: str
def __init__(self, tls_cert: _Optional[str] = ..., tls_key: _Optional[str] = ..., ca_cert: _Optional[str] = ..., expires_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
class GetGatewayMetricsRequest(_message.Message):
__slots__ = ["aggregation", "end", "gateway_id", "start"]
AGGREGATION_FIELD_NUMBER: _ClassVar[int]
END_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
START_FIELD_NUMBER: _ClassVar[int]
aggregation: _common_pb2.Aggregation
end: _timestamp_pb2.Timestamp
gateway_id: str
start: _timestamp_pb2.Timestamp
def __init__(self, gateway_id: _Optional[str] = ..., start: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., end: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., aggregation: _Optional[_Union[_common_pb2.Aggregation, str]] = ...) -> None: ...
class GetGatewayMetricsResponse(_message.Message):
__slots__ = ["rx_packets", "rx_packets_per_dr", "rx_packets_per_freq", "tx_packets", "tx_packets_per_dr", "tx_packets_per_freq", "tx_packets_per_status"]
RX_PACKETS_FIELD_NUMBER: _ClassVar[int]
RX_PACKETS_PER_DR_FIELD_NUMBER: _ClassVar[int]
RX_PACKETS_PER_FREQ_FIELD_NUMBER: _ClassVar[int]
TX_PACKETS_FIELD_NUMBER: _ClassVar[int]
TX_PACKETS_PER_DR_FIELD_NUMBER: _ClassVar[int]
TX_PACKETS_PER_FREQ_FIELD_NUMBER: _ClassVar[int]
TX_PACKETS_PER_STATUS_FIELD_NUMBER: _ClassVar[int]
rx_packets: _common_pb2.Metric
rx_packets_per_dr: _common_pb2.Metric
rx_packets_per_freq: _common_pb2.Metric
tx_packets: _common_pb2.Metric
tx_packets_per_dr: _common_pb2.Metric
tx_packets_per_freq: _common_pb2.Metric
tx_packets_per_status: _common_pb2.Metric
def __init__(self, rx_packets: _Optional[_Union[_common_pb2.Metric, _Mapping]] = ..., tx_packets: _Optional[_Union[_common_pb2.Metric, _Mapping]] = ..., tx_packets_per_freq: _Optional[_Union[_common_pb2.Metric, _Mapping]] = ..., rx_packets_per_freq: _Optional[_Union[_common_pb2.Metric, _Mapping]] = ..., tx_packets_per_dr: _Optional[_Union[_common_pb2.Metric, _Mapping]] = ..., rx_packets_per_dr: _Optional[_Union[_common_pb2.Metric, _Mapping]] = ..., tx_packets_per_status: _Optional[_Union[_common_pb2.Metric, _Mapping]] = ...) -> None: ...
class GetGatewayRequest(_message.Message):
__slots__ = ["gateway_id"]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
gateway_id: str
def __init__(self, gateway_id: _Optional[str] = ...) -> None: ...
class GetGatewayResponse(_message.Message):
__slots__ = ["created_at", "gateway", "last_seen_at", "updated_at"]
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
GATEWAY_FIELD_NUMBER: _ClassVar[int]
LAST_SEEN_AT_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
created_at: _timestamp_pb2.Timestamp
gateway: Gateway
last_seen_at: _timestamp_pb2.Timestamp
updated_at: _timestamp_pb2.Timestamp
def __init__(self, gateway: _Optional[_Union[Gateway, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., last_seen_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
class ListGatewaysRequest(_message.Message):
__slots__ = ["limit", "offset", "search", "tenant_id"]
LIMIT_FIELD_NUMBER: _ClassVar[int]
OFFSET_FIELD_NUMBER: _ClassVar[int]
SEARCH_FIELD_NUMBER: _ClassVar[int]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
limit: int
offset: int
search: str
tenant_id: str
def __init__(self, limit: _Optional[int] = ..., offset: _Optional[int] = ..., search: _Optional[str] = ..., tenant_id: _Optional[str] = ...) -> None: ...
class ListGatewaysResponse(_message.Message):
__slots__ = ["result", "total_count"]
RESULT_FIELD_NUMBER: _ClassVar[int]
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
result: _containers.RepeatedCompositeFieldContainer[GatewayListItem]
total_count: int
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[GatewayListItem, _Mapping]]] = ...) -> None: ...
class UpdateGatewayRequest(_message.Message):
__slots__ = ["gateway"]
GATEWAY_FIELD_NUMBER: _ClassVar[int]
gateway: Gateway
def __init__(self, gateway: _Optional[_Union[Gateway, _Mapping]] = ...) -> None: ...
class GatewayState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []

@ -0,0 +1,310 @@
from google.protobuf import timestamp_pb2 as _timestamp_pb2
from google.protobuf import empty_pb2 as _empty_pb2
from chirpstack_api.common import common_pb2 as _common_pb2
from chirpstack_api.api import user_pb2 as _user_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
DESCRIPTOR: _descriptor.FileDescriptor
class ApiKey(_message.Message):
__slots__ = ["id", "is_admin", "name", "tenant_id"]
ID_FIELD_NUMBER: _ClassVar[int]
IS_ADMIN_FIELD_NUMBER: _ClassVar[int]
NAME_FIELD_NUMBER: _ClassVar[int]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
id: str
is_admin: bool
name: str
tenant_id: str
def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., is_admin: bool = ..., tenant_id: _Optional[str] = ...) -> None: ...
class CreateApiKeyRequest(_message.Message):
__slots__ = ["api_key"]
API_KEY_FIELD_NUMBER: _ClassVar[int]
api_key: ApiKey
def __init__(self, api_key: _Optional[_Union[ApiKey, _Mapping]] = ...) -> None: ...
class CreateApiKeyResponse(_message.Message):
__slots__ = ["id", "token"]
ID_FIELD_NUMBER: _ClassVar[int]
TOKEN_FIELD_NUMBER: _ClassVar[int]
id: str
token: str
def __init__(self, id: _Optional[str] = ..., token: _Optional[str] = ...) -> None: ...
class DeleteApiKeyRequest(_message.Message):
__slots__ = ["id"]
ID_FIELD_NUMBER: _ClassVar[int]
id: str
def __init__(self, id: _Optional[str] = ...) -> None: ...
class GetDevicesSummaryRequest(_message.Message):
__slots__ = ["tenant_id"]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
tenant_id: str
def __init__(self, tenant_id: _Optional[str] = ...) -> None: ...
class GetDevicesSummaryResponse(_message.Message):
__slots__ = ["active_count", "dr_count", "inactive_count", "never_seen_count"]
class DrCountEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: int
value: int
def __init__(self, key: _Optional[int] = ..., value: _Optional[int] = ...) -> None: ...
ACTIVE_COUNT_FIELD_NUMBER: _ClassVar[int]
DR_COUNT_FIELD_NUMBER: _ClassVar[int]
INACTIVE_COUNT_FIELD_NUMBER: _ClassVar[int]
NEVER_SEEN_COUNT_FIELD_NUMBER: _ClassVar[int]
active_count: int
dr_count: _containers.ScalarMap[int, int]
inactive_count: int
never_seen_count: int
def __init__(self, active_count: _Optional[int] = ..., inactive_count: _Optional[int] = ..., dr_count: _Optional[_Mapping[int, int]] = ..., never_seen_count: _Optional[int] = ...) -> None: ...
class GetGatewaysSummaryRequest(_message.Message):
__slots__ = ["tenant_id"]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
tenant_id: str
def __init__(self, tenant_id: _Optional[str] = ...) -> None: ...
class GetGatewaysSummaryResponse(_message.Message):
__slots__ = ["never_seen_count", "offline_count", "online_count"]
NEVER_SEEN_COUNT_FIELD_NUMBER: _ClassVar[int]
OFFLINE_COUNT_FIELD_NUMBER: _ClassVar[int]
ONLINE_COUNT_FIELD_NUMBER: _ClassVar[int]
never_seen_count: int
offline_count: int
online_count: int
def __init__(self, online_count: _Optional[int] = ..., offline_count: _Optional[int] = ..., never_seen_count: _Optional[int] = ...) -> None: ...
class GetRegionRequest(_message.Message):
__slots__ = ["id"]
ID_FIELD_NUMBER: _ClassVar[int]
id: str
def __init__(self, id: _Optional[str] = ...) -> None: ...
class GetRegionResponse(_message.Message):
__slots__ = ["class_b_ping_slot_dr", "class_b_ping_slot_frequency", "description", "id", "region", "rx1_delay", "rx1_dr_offset", "rx2_dr", "rx2_frequency", "uplink_channels", "user_info"]
CLASS_B_PING_SLOT_DR_FIELD_NUMBER: _ClassVar[int]
CLASS_B_PING_SLOT_FREQUENCY_FIELD_NUMBER: _ClassVar[int]
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
ID_FIELD_NUMBER: _ClassVar[int]
REGION_FIELD_NUMBER: _ClassVar[int]
RX1_DELAY_FIELD_NUMBER: _ClassVar[int]
RX1_DR_OFFSET_FIELD_NUMBER: _ClassVar[int]
RX2_DR_FIELD_NUMBER: _ClassVar[int]
RX2_FREQUENCY_FIELD_NUMBER: _ClassVar[int]
UPLINK_CHANNELS_FIELD_NUMBER: _ClassVar[int]
USER_INFO_FIELD_NUMBER: _ClassVar[int]
class_b_ping_slot_dr: int
class_b_ping_slot_frequency: int
description: str
id: str
region: _common_pb2.Region
rx1_delay: int
rx1_dr_offset: int
rx2_dr: int
rx2_frequency: int
uplink_channels: _containers.RepeatedCompositeFieldContainer[RegionChannel]
user_info: str
def __init__(self, id: _Optional[str] = ..., region: _Optional[_Union[_common_pb2.Region, str]] = ..., user_info: _Optional[str] = ..., uplink_channels: _Optional[_Iterable[_Union[RegionChannel, _Mapping]]] = ..., rx1_delay: _Optional[int] = ..., rx1_dr_offset: _Optional[int] = ..., rx2_dr: _Optional[int] = ..., rx2_frequency: _Optional[int] = ..., class_b_ping_slot_dr: _Optional[int] = ..., class_b_ping_slot_frequency: _Optional[int] = ..., description: _Optional[str] = ...) -> None: ...
class GlobalSearchRequest(_message.Message):
__slots__ = ["limit", "offset", "search"]
LIMIT_FIELD_NUMBER: _ClassVar[int]
OFFSET_FIELD_NUMBER: _ClassVar[int]
SEARCH_FIELD_NUMBER: _ClassVar[int]
limit: int
offset: int
search: str
def __init__(self, search: _Optional[str] = ..., limit: _Optional[int] = ..., offset: _Optional[int] = ...) -> None: ...
class GlobalSearchResponse(_message.Message):
__slots__ = ["result"]
RESULT_FIELD_NUMBER: _ClassVar[int]
result: _containers.RepeatedCompositeFieldContainer[GlobalSearchResult]
def __init__(self, result: _Optional[_Iterable[_Union[GlobalSearchResult, _Mapping]]] = ...) -> None: ...
class GlobalSearchResult(_message.Message):
__slots__ = ["application_id", "application_name", "device_dev_eui", "device_name", "gateway_id", "gateway_name", "kind", "score", "tenant_id", "tenant_name"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
APPLICATION_NAME_FIELD_NUMBER: _ClassVar[int]
DEVICE_DEV_EUI_FIELD_NUMBER: _ClassVar[int]
DEVICE_NAME_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
GATEWAY_NAME_FIELD_NUMBER: _ClassVar[int]
KIND_FIELD_NUMBER: _ClassVar[int]
SCORE_FIELD_NUMBER: _ClassVar[int]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
TENANT_NAME_FIELD_NUMBER: _ClassVar[int]
application_id: str
application_name: str
device_dev_eui: str
device_name: str
gateway_id: str
gateway_name: str
kind: str
score: float
tenant_id: str
tenant_name: str
def __init__(self, kind: _Optional[str] = ..., score: _Optional[float] = ..., tenant_id: _Optional[str] = ..., tenant_name: _Optional[str] = ..., application_id: _Optional[str] = ..., application_name: _Optional[str] = ..., device_dev_eui: _Optional[str] = ..., device_name: _Optional[str] = ..., gateway_id: _Optional[str] = ..., gateway_name: _Optional[str] = ...) -> None: ...
class ListApiKeysRequest(_message.Message):
__slots__ = ["is_admin", "limit", "offset", "tenant_id"]
IS_ADMIN_FIELD_NUMBER: _ClassVar[int]
LIMIT_FIELD_NUMBER: _ClassVar[int]
OFFSET_FIELD_NUMBER: _ClassVar[int]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
is_admin: bool
limit: int
offset: int
tenant_id: str
def __init__(self, limit: _Optional[int] = ..., offset: _Optional[int] = ..., is_admin: bool = ..., tenant_id: _Optional[str] = ...) -> None: ...
class ListApiKeysResponse(_message.Message):
__slots__ = ["result", "total_count"]
RESULT_FIELD_NUMBER: _ClassVar[int]
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
result: _containers.RepeatedCompositeFieldContainer[ApiKey]
total_count: int
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[ApiKey, _Mapping]]] = ...) -> None: ...
class ListRegionsResponse(_message.Message):
__slots__ = ["regions"]
REGIONS_FIELD_NUMBER: _ClassVar[int]
regions: _containers.RepeatedCompositeFieldContainer[RegionListItem]
def __init__(self, regions: _Optional[_Iterable[_Union[RegionListItem, _Mapping]]] = ...) -> None: ...
class LogItem(_message.Message):
__slots__ = ["body", "description", "id", "properties", "time"]
class PropertiesEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: str
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
BODY_FIELD_NUMBER: _ClassVar[int]
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
ID_FIELD_NUMBER: _ClassVar[int]
PROPERTIES_FIELD_NUMBER: _ClassVar[int]
TIME_FIELD_NUMBER: _ClassVar[int]
body: str
description: str
id: str
properties: _containers.ScalarMap[str, str]
time: _timestamp_pb2.Timestamp
def __init__(self, id: _Optional[str] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., description: _Optional[str] = ..., body: _Optional[str] = ..., properties: _Optional[_Mapping[str, str]] = ...) -> None: ...
class LoginRequest(_message.Message):
__slots__ = ["email", "password"]
EMAIL_FIELD_NUMBER: _ClassVar[int]
PASSWORD_FIELD_NUMBER: _ClassVar[int]
email: str
password: str
def __init__(self, email: _Optional[str] = ..., password: _Optional[str] = ...) -> None: ...
class LoginResponse(_message.Message):
__slots__ = ["jwt"]
JWT_FIELD_NUMBER: _ClassVar[int]
jwt: str
def __init__(self, jwt: _Optional[str] = ...) -> None: ...
class OpenIdConnect(_message.Message):
__slots__ = ["enabled", "login_label", "login_url", "logout_url"]
ENABLED_FIELD_NUMBER: _ClassVar[int]
LOGIN_LABEL_FIELD_NUMBER: _ClassVar[int]
LOGIN_URL_FIELD_NUMBER: _ClassVar[int]
LOGOUT_URL_FIELD_NUMBER: _ClassVar[int]
enabled: bool
login_label: str
login_url: str
logout_url: str
def __init__(self, enabled: bool = ..., login_url: _Optional[str] = ..., login_label: _Optional[str] = ..., logout_url: _Optional[str] = ...) -> None: ...
class OpenIdConnectLoginRequest(_message.Message):
__slots__ = ["code", "state"]
CODE_FIELD_NUMBER: _ClassVar[int]
STATE_FIELD_NUMBER: _ClassVar[int]
code: str
state: str
def __init__(self, code: _Optional[str] = ..., state: _Optional[str] = ...) -> None: ...
class OpenIdConnectLoginResponse(_message.Message):
__slots__ = ["token"]
TOKEN_FIELD_NUMBER: _ClassVar[int]
token: str
def __init__(self, token: _Optional[str] = ...) -> None: ...
class ProfileResponse(_message.Message):
__slots__ = ["tenants", "user"]
TENANTS_FIELD_NUMBER: _ClassVar[int]
USER_FIELD_NUMBER: _ClassVar[int]
tenants: _containers.RepeatedCompositeFieldContainer[UserTenantLink]
user: _user_pb2.User
def __init__(self, user: _Optional[_Union[_user_pb2.User, _Mapping]] = ..., tenants: _Optional[_Iterable[_Union[UserTenantLink, _Mapping]]] = ...) -> None: ...
class RegionChannel(_message.Message):
__slots__ = ["dr_max", "dr_min", "frequency"]
DR_MAX_FIELD_NUMBER: _ClassVar[int]
DR_MIN_FIELD_NUMBER: _ClassVar[int]
FREQUENCY_FIELD_NUMBER: _ClassVar[int]
dr_max: int
dr_min: int
frequency: int
def __init__(self, frequency: _Optional[int] = ..., dr_min: _Optional[int] = ..., dr_max: _Optional[int] = ...) -> None: ...
class RegionListItem(_message.Message):
__slots__ = ["description", "id", "region"]
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
ID_FIELD_NUMBER: _ClassVar[int]
REGION_FIELD_NUMBER: _ClassVar[int]
description: str
id: str
region: _common_pb2.Region
def __init__(self, id: _Optional[str] = ..., region: _Optional[_Union[_common_pb2.Region, str]] = ..., description: _Optional[str] = ...) -> None: ...
class SettingsResponse(_message.Message):
__slots__ = ["openid_connect"]
OPENID_CONNECT_FIELD_NUMBER: _ClassVar[int]
openid_connect: OpenIdConnect
def __init__(self, openid_connect: _Optional[_Union[OpenIdConnect, _Mapping]] = ...) -> None: ...
class StreamDeviceEventsRequest(_message.Message):
__slots__ = ["dev_eui"]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
dev_eui: str
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
class StreamDeviceFramesRequest(_message.Message):
__slots__ = ["dev_eui"]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
dev_eui: str
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
class StreamGatewayFramesRequest(_message.Message):
__slots__ = ["gateway_id"]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
gateway_id: str
def __init__(self, gateway_id: _Optional[str] = ...) -> None: ...
class UserTenantLink(_message.Message):
__slots__ = ["created_at", "is_admin", "is_device_admin", "is_gateway_admin", "tenant_id", "updated_at"]
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
IS_ADMIN_FIELD_NUMBER: _ClassVar[int]
IS_DEVICE_ADMIN_FIELD_NUMBER: _ClassVar[int]
IS_GATEWAY_ADMIN_FIELD_NUMBER: _ClassVar[int]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
created_at: _timestamp_pb2.Timestamp
is_admin: bool
is_device_admin: bool
is_gateway_admin: bool
tenant_id: str
updated_at: _timestamp_pb2.Timestamp
def __init__(self, created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., tenant_id: _Optional[str] = ..., is_admin: bool = ..., is_device_admin: bool = ..., is_gateway_admin: bool = ...) -> None: ...

@ -0,0 +1,178 @@
from google.api import annotations_pb2 as _annotations_pb2
from google.protobuf import timestamp_pb2 as _timestamp_pb2
from google.protobuf import empty_pb2 as _empty_pb2
from chirpstack_api.common import common_pb2 as _common_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
CLASS_B: MulticastGroupType
CLASS_C: MulticastGroupType
DESCRIPTOR: _descriptor.FileDescriptor
class AddDeviceToMulticastGroupRequest(_message.Message):
__slots__ = ["dev_eui", "multicast_group_id"]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
MULTICAST_GROUP_ID_FIELD_NUMBER: _ClassVar[int]
dev_eui: str
multicast_group_id: str
def __init__(self, multicast_group_id: _Optional[str] = ..., dev_eui: _Optional[str] = ...) -> None: ...
class CreateMulticastGroupRequest(_message.Message):
__slots__ = ["multicast_group"]
MULTICAST_GROUP_FIELD_NUMBER: _ClassVar[int]
multicast_group: MulticastGroup
def __init__(self, multicast_group: _Optional[_Union[MulticastGroup, _Mapping]] = ...) -> None: ...
class CreateMulticastGroupResponse(_message.Message):
__slots__ = ["id"]
ID_FIELD_NUMBER: _ClassVar[int]
id: str
def __init__(self, id: _Optional[str] = ...) -> None: ...
class DeleteMulticastGroupRequest(_message.Message):
__slots__ = ["id"]
ID_FIELD_NUMBER: _ClassVar[int]
id: str
def __init__(self, id: _Optional[str] = ...) -> None: ...
class EnqueueMulticastGroupQueueItemRequest(_message.Message):
__slots__ = ["queue_item"]
QUEUE_ITEM_FIELD_NUMBER: _ClassVar[int]
queue_item: MulticastGroupQueueItem
def __init__(self, queue_item: _Optional[_Union[MulticastGroupQueueItem, _Mapping]] = ...) -> None: ...
class EnqueueMulticastGroupQueueItemResponse(_message.Message):
__slots__ = ["f_cnt"]
F_CNT_FIELD_NUMBER: _ClassVar[int]
f_cnt: int
def __init__(self, f_cnt: _Optional[int] = ...) -> None: ...
class FlushMulticastGroupQueueRequest(_message.Message):
__slots__ = ["multicast_group_id"]
MULTICAST_GROUP_ID_FIELD_NUMBER: _ClassVar[int]
multicast_group_id: str
def __init__(self, multicast_group_id: _Optional[str] = ...) -> None: ...
class GetMulticastGroupRequest(_message.Message):
__slots__ = ["id"]
ID_FIELD_NUMBER: _ClassVar[int]
id: str
def __init__(self, id: _Optional[str] = ...) -> None: ...
class GetMulticastGroupResponse(_message.Message):
__slots__ = ["created_at", "multicast_group", "updated_at"]
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
MULTICAST_GROUP_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
created_at: _timestamp_pb2.Timestamp
multicast_group: MulticastGroup
updated_at: _timestamp_pb2.Timestamp
def __init__(self, multicast_group: _Optional[_Union[MulticastGroup, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
class ListMulticastGroupQueueRequest(_message.Message):
__slots__ = ["multicast_group_id"]
MULTICAST_GROUP_ID_FIELD_NUMBER: _ClassVar[int]
multicast_group_id: str
def __init__(self, multicast_group_id: _Optional[str] = ...) -> None: ...
class ListMulticastGroupQueueResponse(_message.Message):
__slots__ = ["items"]
ITEMS_FIELD_NUMBER: _ClassVar[int]
items: _containers.RepeatedCompositeFieldContainer[MulticastGroupQueueItem]
def __init__(self, items: _Optional[_Iterable[_Union[MulticastGroupQueueItem, _Mapping]]] = ...) -> None: ...
class ListMulticastGroupsRequest(_message.Message):
__slots__ = ["application_id", "limit", "offset", "search"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
LIMIT_FIELD_NUMBER: _ClassVar[int]
OFFSET_FIELD_NUMBER: _ClassVar[int]
SEARCH_FIELD_NUMBER: _ClassVar[int]
application_id: str
limit: int
offset: int
search: str
def __init__(self, limit: _Optional[int] = ..., offset: _Optional[int] = ..., search: _Optional[str] = ..., application_id: _Optional[str] = ...) -> None: ...
class ListMulticastGroupsResponse(_message.Message):
__slots__ = ["result", "total_count"]
RESULT_FIELD_NUMBER: _ClassVar[int]
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
result: _containers.RepeatedCompositeFieldContainer[MulticastGroupListItem]
total_count: int
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[MulticastGroupListItem, _Mapping]]] = ...) -> None: ...
class MulticastGroup(_message.Message):
__slots__ = ["application_id", "class_b_ping_slot_period", "dr", "f_cnt", "frequency", "group_type", "id", "mc_addr", "mc_app_s_key", "mc_nwk_s_key", "name", "region"]
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
CLASS_B_PING_SLOT_PERIOD_FIELD_NUMBER: _ClassVar[int]
DR_FIELD_NUMBER: _ClassVar[int]
FREQUENCY_FIELD_NUMBER: _ClassVar[int]
F_CNT_FIELD_NUMBER: _ClassVar[int]
GROUP_TYPE_FIELD_NUMBER: _ClassVar[int]
ID_FIELD_NUMBER: _ClassVar[int]
MC_ADDR_FIELD_NUMBER: _ClassVar[int]
MC_APP_S_KEY_FIELD_NUMBER: _ClassVar[int]
MC_NWK_S_KEY_FIELD_NUMBER: _ClassVar[int]
NAME_FIELD_NUMBER: _ClassVar[int]
REGION_FIELD_NUMBER: _ClassVar[int]
application_id: str
class_b_ping_slot_period: int
dr: int
f_cnt: int
frequency: int
group_type: MulticastGroupType
id: str
mc_addr: str
mc_app_s_key: str
mc_nwk_s_key: str
name: str
region: _common_pb2.Region
def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., application_id: _Optional[str] = ..., region: _Optional[_Union[_common_pb2.Region, str]] = ..., mc_addr: _Optional[str] = ..., mc_nwk_s_key: _Optional[str] = ..., mc_app_s_key: _Optional[str] = ..., f_cnt: _Optional[int] = ..., group_type: _Optional[_Union[MulticastGroupType, str]] = ..., dr: _Optional[int] = ..., frequency: _Optional[int] = ..., class_b_ping_slot_period: _Optional[int] = ...) -> None: ...
class MulticastGroupListItem(_message.Message):
__slots__ = ["created_at", "group_type", "id", "name", "region", "updated_at"]
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
GROUP_TYPE_FIELD_NUMBER: _ClassVar[int]
ID_FIELD_NUMBER: _ClassVar[int]
NAME_FIELD_NUMBER: _ClassVar[int]
REGION_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
created_at: _timestamp_pb2.Timestamp
group_type: MulticastGroupType
id: str
name: str
region: _common_pb2.Region
updated_at: _timestamp_pb2.Timestamp
def __init__(self, id: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., name: _Optional[str] = ..., region: _Optional[_Union[_common_pb2.Region, str]] = ..., group_type: _Optional[_Union[MulticastGroupType, str]] = ...) -> None: ...
class MulticastGroupQueueItem(_message.Message):
__slots__ = ["data", "f_cnt", "f_port", "multicast_group_id"]
DATA_FIELD_NUMBER: _ClassVar[int]
F_CNT_FIELD_NUMBER: _ClassVar[int]
F_PORT_FIELD_NUMBER: _ClassVar[int]
MULTICAST_GROUP_ID_FIELD_NUMBER: _ClassVar[int]
data: bytes
f_cnt: int
f_port: int
multicast_group_id: str
def __init__(self, multicast_group_id: _Optional[str] = ..., f_cnt: _Optional[int] = ..., f_port: _Optional[int] = ..., data: _Optional[bytes] = ...) -> None: ...
class RemoveDeviceFromMulticastGroupRequest(_message.Message):
__slots__ = ["dev_eui", "multicast_group_id"]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
MULTICAST_GROUP_ID_FIELD_NUMBER: _ClassVar[int]
dev_eui: str
multicast_group_id: str
def __init__(self, multicast_group_id: _Optional[str] = ..., dev_eui: _Optional[str] = ...) -> None: ...
class UpdateMulticastGroupRequest(_message.Message):
__slots__ = ["multicast_group"]
MULTICAST_GROUP_FIELD_NUMBER: _ClassVar[int]
multicast_group: MulticastGroup
def __init__(self, multicast_group: _Optional[_Union[MulticastGroup, _Mapping]] = ...) -> None: ...
class MulticastGroupType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []

@ -0,0 +1,26 @@
from google.protobuf import timestamp_pb2 as _timestamp_pb2
from chirpstack_api.common import common_pb2 as _common_pb2
from chirpstack_api.gw import gw_pb2 as _gw_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional
DESCRIPTOR: _descriptor.FileDescriptor
class RequestLog(_message.Message):
__slots__ = ["metadata", "method", "service"]
class MetadataEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: str
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
METADATA_FIELD_NUMBER: _ClassVar[int]
METHOD_FIELD_NUMBER: _ClassVar[int]
SERVICE_FIELD_NUMBER: _ClassVar[int]
metadata: _containers.ScalarMap[str, str]
method: str
service: str
def __init__(self, service: _Optional[str] = ..., method: _Optional[str] = ..., metadata: _Optional[_Mapping[str, str]] = ...) -> None: ...

@ -0,0 +1,199 @@
from google.api import annotations_pb2 as _annotations_pb2
from google.protobuf import timestamp_pb2 as _timestamp_pb2
from google.protobuf import empty_pb2 as _empty_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
DESCRIPTOR: _descriptor.FileDescriptor
class AddTenantUserRequest(_message.Message):
__slots__ = ["tenant_user"]
TENANT_USER_FIELD_NUMBER: _ClassVar[int]
tenant_user: TenantUser
def __init__(self, tenant_user: _Optional[_Union[TenantUser, _Mapping]] = ...) -> None: ...
class CreateTenantRequest(_message.Message):
__slots__ = ["tenant"]
TENANT_FIELD_NUMBER: _ClassVar[int]
tenant: Tenant
def __init__(self, tenant: _Optional[_Union[Tenant, _Mapping]] = ...) -> None: ...
class CreateTenantResponse(_message.Message):
__slots__ = ["id"]
ID_FIELD_NUMBER: _ClassVar[int]
id: str
def __init__(self, id: _Optional[str] = ...) -> None: ...
class DeleteTenantRequest(_message.Message):
__slots__ = ["id"]
ID_FIELD_NUMBER: _ClassVar[int]
id: str
def __init__(self, id: _Optional[str] = ...) -> None: ...
class DeleteTenantUserRequest(_message.Message):
__slots__ = ["tenant_id", "user_id"]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
USER_ID_FIELD_NUMBER: _ClassVar[int]
tenant_id: str
user_id: str
def __init__(self, tenant_id: _Optional[str] = ..., user_id: _Optional[str] = ...) -> None: ...
class GetTenantRequest(_message.Message):
__slots__ = ["id"]
ID_FIELD_NUMBER: _ClassVar[int]
id: str
def __init__(self, id: _Optional[str] = ...) -> None: ...
class GetTenantResponse(_message.Message):
__slots__ = ["created_at", "tenant", "updated_at"]
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
TENANT_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
created_at: _timestamp_pb2.Timestamp
tenant: Tenant
updated_at: _timestamp_pb2.Timestamp
def __init__(self, tenant: _Optional[_Union[Tenant, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
class GetTenantUserRequest(_message.Message):
__slots__ = ["tenant_id", "user_id"]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
USER_ID_FIELD_NUMBER: _ClassVar[int]
tenant_id: str
user_id: str
def __init__(self, tenant_id: _Optional[str] = ..., user_id: _Optional[str] = ...) -> None: ...
class GetTenantUserResponse(_message.Message):
__slots__ = ["created_at", "tenant_user", "updated_at"]
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
TENANT_USER_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
created_at: _timestamp_pb2.Timestamp
tenant_user: TenantUser
updated_at: _timestamp_pb2.Timestamp
def __init__(self, tenant_user: _Optional[_Union[TenantUser, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
class ListTenantUsersRequest(_message.Message):
__slots__ = ["limit", "offset", "tenant_id"]
LIMIT_FIELD_NUMBER: _ClassVar[int]
OFFSET_FIELD_NUMBER: _ClassVar[int]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
limit: int
offset: int
tenant_id: str
def __init__(self, tenant_id: _Optional[str] = ..., limit: _Optional[int] = ..., offset: _Optional[int] = ...) -> None: ...
class ListTenantUsersResponse(_message.Message):
__slots__ = ["result", "total_count"]
RESULT_FIELD_NUMBER: _ClassVar[int]
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
result: _containers.RepeatedCompositeFieldContainer[TenantUserListItem]
total_count: int
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[TenantUserListItem, _Mapping]]] = ...) -> None: ...
class ListTenantsRequest(_message.Message):
__slots__ = ["limit", "offset", "search", "user_id"]
LIMIT_FIELD_NUMBER: _ClassVar[int]
OFFSET_FIELD_NUMBER: _ClassVar[int]
SEARCH_FIELD_NUMBER: _ClassVar[int]
USER_ID_FIELD_NUMBER: _ClassVar[int]
limit: int
offset: int
search: str
user_id: str
def __init__(self, limit: _Optional[int] = ..., offset: _Optional[int] = ..., search: _Optional[str] = ..., user_id: _Optional[str] = ...) -> None: ...
class ListTenantsResponse(_message.Message):
__slots__ = ["result", "total_count"]
RESULT_FIELD_NUMBER: _ClassVar[int]
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
result: _containers.RepeatedCompositeFieldContainer[TenantListItem]
total_count: int
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[TenantListItem, _Mapping]]] = ...) -> None: ...
class Tenant(_message.Message):
__slots__ = ["can_have_gateways", "description", "id", "max_device_count", "max_gateway_count", "name", "private_gateways"]
CAN_HAVE_GATEWAYS_FIELD_NUMBER: _ClassVar[int]
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
ID_FIELD_NUMBER: _ClassVar[int]
MAX_DEVICE_COUNT_FIELD_NUMBER: _ClassVar[int]
MAX_GATEWAY_COUNT_FIELD_NUMBER: _ClassVar[int]
NAME_FIELD_NUMBER: _ClassVar[int]
PRIVATE_GATEWAYS_FIELD_NUMBER: _ClassVar[int]
can_have_gateways: bool
description: str
id: str
max_device_count: int
max_gateway_count: int
name: str
private_gateways: bool
def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., can_have_gateways: bool = ..., max_gateway_count: _Optional[int] = ..., max_device_count: _Optional[int] = ..., private_gateways: bool = ...) -> None: ...
class TenantListItem(_message.Message):
__slots__ = ["can_have_gateways", "created_at", "id", "max_device_count", "max_gateway_count", "name", "private_gateways", "updated_at"]
CAN_HAVE_GATEWAYS_FIELD_NUMBER: _ClassVar[int]
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
ID_FIELD_NUMBER: _ClassVar[int]
MAX_DEVICE_COUNT_FIELD_NUMBER: _ClassVar[int]
MAX_GATEWAY_COUNT_FIELD_NUMBER: _ClassVar[int]
NAME_FIELD_NUMBER: _ClassVar[int]
PRIVATE_GATEWAYS_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
can_have_gateways: bool
created_at: _timestamp_pb2.Timestamp
id: str
max_device_count: int
max_gateway_count: int
name: str
private_gateways: bool
updated_at: _timestamp_pb2.Timestamp
def __init__(self, id: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., name: _Optional[str] = ..., can_have_gateways: bool = ..., private_gateways: bool = ..., max_gateway_count: _Optional[int] = ..., max_device_count: _Optional[int] = ...) -> None: ...
class TenantUser(_message.Message):
__slots__ = ["email", "is_admin", "is_device_admin", "is_gateway_admin", "tenant_id", "user_id"]
EMAIL_FIELD_NUMBER: _ClassVar[int]
IS_ADMIN_FIELD_NUMBER: _ClassVar[int]
IS_DEVICE_ADMIN_FIELD_NUMBER: _ClassVar[int]
IS_GATEWAY_ADMIN_FIELD_NUMBER: _ClassVar[int]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
USER_ID_FIELD_NUMBER: _ClassVar[int]
email: str
is_admin: bool
is_device_admin: bool
is_gateway_admin: bool
tenant_id: str
user_id: str
def __init__(self, tenant_id: _Optional[str] = ..., user_id: _Optional[str] = ..., is_admin: bool = ..., is_device_admin: bool = ..., is_gateway_admin: bool = ..., email: _Optional[str] = ...) -> None: ...
class TenantUserListItem(_message.Message):
__slots__ = ["created_at", "email", "is_admin", "is_device_admin", "is_gateway_admin", "tenant_id", "updated_at", "user_id"]
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
EMAIL_FIELD_NUMBER: _ClassVar[int]
IS_ADMIN_FIELD_NUMBER: _ClassVar[int]
IS_DEVICE_ADMIN_FIELD_NUMBER: _ClassVar[int]
IS_GATEWAY_ADMIN_FIELD_NUMBER: _ClassVar[int]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
USER_ID_FIELD_NUMBER: _ClassVar[int]
created_at: _timestamp_pb2.Timestamp
email: str
is_admin: bool
is_device_admin: bool
is_gateway_admin: bool
tenant_id: str
updated_at: _timestamp_pb2.Timestamp
user_id: str
def __init__(self, tenant_id: _Optional[str] = ..., user_id: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., email: _Optional[str] = ..., is_admin: bool = ..., is_device_admin: bool = ..., is_gateway_admin: bool = ...) -> None: ...
class UpdateTenantRequest(_message.Message):
__slots__ = ["tenant"]
TENANT_FIELD_NUMBER: _ClassVar[int]
tenant: Tenant
def __init__(self, tenant: _Optional[_Union[Tenant, _Mapping]] = ...) -> None: ...
class UpdateTenantUserRequest(_message.Message):
__slots__ = ["tenant_user"]
TENANT_USER_FIELD_NUMBER: _ClassVar[int]
tenant_user: TenantUser
def __init__(self, tenant_user: _Optional[_Union[TenantUser, _Mapping]] = ...) -> None: ...

@ -0,0 +1,119 @@
from google.api import annotations_pb2 as _annotations_pb2
from google.protobuf import timestamp_pb2 as _timestamp_pb2
from google.protobuf import empty_pb2 as _empty_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
DESCRIPTOR: _descriptor.FileDescriptor
class CreateUserRequest(_message.Message):
__slots__ = ["password", "tenants", "user"]
PASSWORD_FIELD_NUMBER: _ClassVar[int]
TENANTS_FIELD_NUMBER: _ClassVar[int]
USER_FIELD_NUMBER: _ClassVar[int]
password: str
tenants: _containers.RepeatedCompositeFieldContainer[UserTenant]
user: User
def __init__(self, user: _Optional[_Union[User, _Mapping]] = ..., password: _Optional[str] = ..., tenants: _Optional[_Iterable[_Union[UserTenant, _Mapping]]] = ...) -> None: ...
class CreateUserResponse(_message.Message):
__slots__ = ["id"]
ID_FIELD_NUMBER: _ClassVar[int]
id: str
def __init__(self, id: _Optional[str] = ...) -> None: ...
class DeleteUserRequest(_message.Message):
__slots__ = ["id"]
ID_FIELD_NUMBER: _ClassVar[int]
id: str
def __init__(self, id: _Optional[str] = ...) -> None: ...
class GetUserRequest(_message.Message):
__slots__ = ["id"]
ID_FIELD_NUMBER: _ClassVar[int]
id: str
def __init__(self, id: _Optional[str] = ...) -> None: ...
class GetUserResponse(_message.Message):
__slots__ = ["created_at", "updated_at", "user"]
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
USER_FIELD_NUMBER: _ClassVar[int]
created_at: _timestamp_pb2.Timestamp
updated_at: _timestamp_pb2.Timestamp
user: User
def __init__(self, user: _Optional[_Union[User, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
class ListUsersRequest(_message.Message):
__slots__ = ["limit", "offset"]
LIMIT_FIELD_NUMBER: _ClassVar[int]
OFFSET_FIELD_NUMBER: _ClassVar[int]
limit: int
offset: int
def __init__(self, limit: _Optional[int] = ..., offset: _Optional[int] = ...) -> None: ...
class ListUsersResponse(_message.Message):
__slots__ = ["result", "total_count"]
RESULT_FIELD_NUMBER: _ClassVar[int]
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
result: _containers.RepeatedCompositeFieldContainer[UserListItem]
total_count: int
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[UserListItem, _Mapping]]] = ...) -> None: ...
class UpdateUserPasswordRequest(_message.Message):
__slots__ = ["password", "user_id"]
PASSWORD_FIELD_NUMBER: _ClassVar[int]
USER_ID_FIELD_NUMBER: _ClassVar[int]
password: str
user_id: str
def __init__(self, user_id: _Optional[str] = ..., password: _Optional[str] = ...) -> None: ...
class UpdateUserRequest(_message.Message):
__slots__ = ["user"]
USER_FIELD_NUMBER: _ClassVar[int]
user: User
def __init__(self, user: _Optional[_Union[User, _Mapping]] = ...) -> None: ...
class User(_message.Message):
__slots__ = ["email", "id", "is_active", "is_admin", "note"]
EMAIL_FIELD_NUMBER: _ClassVar[int]
ID_FIELD_NUMBER: _ClassVar[int]
IS_ACTIVE_FIELD_NUMBER: _ClassVar[int]
IS_ADMIN_FIELD_NUMBER: _ClassVar[int]
NOTE_FIELD_NUMBER: _ClassVar[int]
email: str
id: str
is_active: bool
is_admin: bool
note: str
def __init__(self, id: _Optional[str] = ..., is_admin: bool = ..., is_active: bool = ..., email: _Optional[str] = ..., note: _Optional[str] = ...) -> None: ...
class UserListItem(_message.Message):
__slots__ = ["created_at", "email", "id", "is_active", "is_admin", "updated_at"]
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
EMAIL_FIELD_NUMBER: _ClassVar[int]
ID_FIELD_NUMBER: _ClassVar[int]
IS_ACTIVE_FIELD_NUMBER: _ClassVar[int]
IS_ADMIN_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
created_at: _timestamp_pb2.Timestamp
email: str
id: str
is_active: bool
is_admin: bool
updated_at: _timestamp_pb2.Timestamp
def __init__(self, id: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., email: _Optional[str] = ..., is_admin: bool = ..., is_active: bool = ...) -> None: ...
class UserTenant(_message.Message):
__slots__ = ["is_admin", "is_device_admin", "is_gateway_admin", "tenant_id"]
IS_ADMIN_FIELD_NUMBER: _ClassVar[int]
IS_DEVICE_ADMIN_FIELD_NUMBER: _ClassVar[int]
IS_GATEWAY_ADMIN_FIELD_NUMBER: _ClassVar[int]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
is_admin: bool
is_device_admin: bool
is_gateway_admin: bool
tenant_id: str
def __init__(self, tenant_id: _Optional[str] = ..., is_admin: bool = ..., is_device_admin: bool = ..., is_gateway_admin: bool = ...) -> None: ...

@ -0,0 +1,124 @@
from google.protobuf import timestamp_pb2 as _timestamp_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
A: RegParamsRevision
ABSOLUTE: MetricKind
AS923: Region
AS923_2: Region
AS923_3: Region
AS923_4: Region
AU915: Region
B: RegParamsRevision
CN470: Region
CN779: Region
CONFIG: LocationSource
CONFIRMED_DATA_DOWN: MType
CONFIRMED_DATA_UP: MType
COUNTER: MetricKind
DAY: Aggregation
DESCRIPTOR: _descriptor.FileDescriptor
EU433: Region
EU868: Region
FSK: Modulation
GAUGE: MetricKind
GEO_RESOLVER_GNSS: LocationSource
GEO_RESOLVER_RSSI: LocationSource
GEO_RESOLVER_TDOA: LocationSource
GEO_RESOLVER_WIFI: LocationSource
GPS: LocationSource
HOUR: Aggregation
IN865: Region
ISM2400: Region
JOIN_ACCEPT: MType
JOIN_REQUEST: MType
KR920: Region
LORA: Modulation
LORAWAN_1_0_0: MacVersion
LORAWAN_1_0_1: MacVersion
LORAWAN_1_0_2: MacVersion
LORAWAN_1_0_3: MacVersion
LORAWAN_1_0_4: MacVersion
LORAWAN_1_1_0: MacVersion
LR_FHSS: Modulation
MONTH: Aggregation
PROPRIETARY: MType
REJOIN_REQUEST: MType
RP002_1_0_0: RegParamsRevision
RP002_1_0_1: RegParamsRevision
RP002_1_0_2: RegParamsRevision
RP002_1_0_3: RegParamsRevision
RU864: Region
UNCONFIRMED_DATA_DOWN: MType
UNCONFIRMED_DATA_UP: MType
UNKNOWN: LocationSource
US915: Region
class KeyEnvelope(_message.Message):
__slots__ = ["aes_key", "kek_label"]
AES_KEY_FIELD_NUMBER: _ClassVar[int]
KEK_LABEL_FIELD_NUMBER: _ClassVar[int]
aes_key: bytes
kek_label: str
def __init__(self, kek_label: _Optional[str] = ..., aes_key: _Optional[bytes] = ...) -> None: ...
class Location(_message.Message):
__slots__ = ["accuracy", "altitude", "latitude", "longitude", "source"]
ACCURACY_FIELD_NUMBER: _ClassVar[int]
ALTITUDE_FIELD_NUMBER: _ClassVar[int]
LATITUDE_FIELD_NUMBER: _ClassVar[int]
LONGITUDE_FIELD_NUMBER: _ClassVar[int]
SOURCE_FIELD_NUMBER: _ClassVar[int]
accuracy: float
altitude: float
latitude: float
longitude: float
source: LocationSource
def __init__(self, latitude: _Optional[float] = ..., longitude: _Optional[float] = ..., altitude: _Optional[float] = ..., source: _Optional[_Union[LocationSource, str]] = ..., accuracy: _Optional[float] = ...) -> None: ...
class Metric(_message.Message):
__slots__ = ["datasets", "kind", "name", "timestamps"]
DATASETS_FIELD_NUMBER: _ClassVar[int]
KIND_FIELD_NUMBER: _ClassVar[int]
NAME_FIELD_NUMBER: _ClassVar[int]
TIMESTAMPS_FIELD_NUMBER: _ClassVar[int]
datasets: _containers.RepeatedCompositeFieldContainer[MetricDataset]
kind: MetricKind
name: str
timestamps: _containers.RepeatedCompositeFieldContainer[_timestamp_pb2.Timestamp]
def __init__(self, name: _Optional[str] = ..., timestamps: _Optional[_Iterable[_Union[_timestamp_pb2.Timestamp, _Mapping]]] = ..., datasets: _Optional[_Iterable[_Union[MetricDataset, _Mapping]]] = ..., kind: _Optional[_Union[MetricKind, str]] = ...) -> None: ...
class MetricDataset(_message.Message):
__slots__ = ["data", "label"]
DATA_FIELD_NUMBER: _ClassVar[int]
LABEL_FIELD_NUMBER: _ClassVar[int]
data: _containers.RepeatedScalarFieldContainer[float]
label: str
def __init__(self, label: _Optional[str] = ..., data: _Optional[_Iterable[float]] = ...) -> None: ...
class Modulation(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
class Region(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
class MType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
class MacVersion(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
class RegParamsRevision(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
class LocationSource(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
class Aggregation(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
class MetricKind(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []

@ -0,0 +1,560 @@
from chirpstack_api.common import common_pb2 as _common_pb2
from google.protobuf import timestamp_pb2 as _timestamp_pb2
from google.protobuf import duration_pb2 as _duration_pb2
from google.protobuf import struct_pb2 as _struct_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
BAD_CRC: CRCStatus
COLLISION_BEACON: TxAckStatus
COLLISION_PACKET: TxAckStatus
CRC_OK: CRCStatus
CR_1_4: CodeRate
CR_1_6: CodeRate
CR_2_6: CodeRate
CR_3_8: CodeRate
CR_4_5: CodeRate
CR_4_6: CodeRate
CR_4_7: CodeRate
CR_4_8: CodeRate
CR_5_6: CodeRate
CR_LI_4_5: CodeRate
CR_LI_4_6: CodeRate
CR_LI_4_8: CodeRate
CR_UNDEFINED: CodeRate
DELAY: DownlinkTiming
DESCRIPTOR: _descriptor.FileDescriptor
ENCRYPTED: FineTimestampType
GPS_EPOCH: DownlinkTiming
GPS_UNLOCKED: TxAckStatus
IGNORED: TxAckStatus
IMMEDIATELY: DownlinkTiming
INTERNAL_ERROR: TxAckStatus
NONE: FineTimestampType
NO_CRC: CRCStatus
OK: TxAckStatus
PLAIN: FineTimestampType
QUEUE_FULL: TxAckStatus
TOO_EARLY: TxAckStatus
TOO_LATE: TxAckStatus
TX_FREQ: TxAckStatus
TX_POWER: TxAckStatus
class ChannelConfiguration(_message.Message):
__slots__ = ["board", "demodulator", "frequency", "fsk_modulation_config", "lora_modulation_config", "modulation_legacy"]
BOARD_FIELD_NUMBER: _ClassVar[int]
DEMODULATOR_FIELD_NUMBER: _ClassVar[int]
FREQUENCY_FIELD_NUMBER: _ClassVar[int]
FSK_MODULATION_CONFIG_FIELD_NUMBER: _ClassVar[int]
LORA_MODULATION_CONFIG_FIELD_NUMBER: _ClassVar[int]
MODULATION_LEGACY_FIELD_NUMBER: _ClassVar[int]
board: int
demodulator: int
frequency: int
fsk_modulation_config: FskModulationConfig
lora_modulation_config: LoraModulationConfig
modulation_legacy: _common_pb2.Modulation
def __init__(self, frequency: _Optional[int] = ..., modulation_legacy: _Optional[_Union[_common_pb2.Modulation, str]] = ..., lora_modulation_config: _Optional[_Union[LoraModulationConfig, _Mapping]] = ..., fsk_modulation_config: _Optional[_Union[FskModulationConfig, _Mapping]] = ..., board: _Optional[int] = ..., demodulator: _Optional[int] = ...) -> None: ...
class ConnState(_message.Message):
__slots__ = ["gateway_id", "gateway_id_legacy", "state"]
class State(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_LEGACY_FIELD_NUMBER: _ClassVar[int]
OFFLINE: ConnState.State
ONLINE: ConnState.State
STATE_FIELD_NUMBER: _ClassVar[int]
gateway_id: str
gateway_id_legacy: bytes
state: ConnState.State
def __init__(self, gateway_id_legacy: _Optional[bytes] = ..., gateway_id: _Optional[str] = ..., state: _Optional[_Union[ConnState.State, str]] = ...) -> None: ...
class DelayTimingInfo(_message.Message):
__slots__ = ["delay"]
DELAY_FIELD_NUMBER: _ClassVar[int]
delay: _duration_pb2.Duration
def __init__(self, delay: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ...) -> None: ...
class DownlinkFrame(_message.Message):
__slots__ = ["downlink_id", "downlink_id_legacy", "gateway_id", "gateway_id_legacy", "items"]
DOWNLINK_ID_FIELD_NUMBER: _ClassVar[int]
DOWNLINK_ID_LEGACY_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_LEGACY_FIELD_NUMBER: _ClassVar[int]
ITEMS_FIELD_NUMBER: _ClassVar[int]
downlink_id: int
downlink_id_legacy: bytes
gateway_id: str
gateway_id_legacy: bytes
items: _containers.RepeatedCompositeFieldContainer[DownlinkFrameItem]
def __init__(self, downlink_id: _Optional[int] = ..., downlink_id_legacy: _Optional[bytes] = ..., items: _Optional[_Iterable[_Union[DownlinkFrameItem, _Mapping]]] = ..., gateway_id_legacy: _Optional[bytes] = ..., gateway_id: _Optional[str] = ...) -> None: ...
class DownlinkFrameItem(_message.Message):
__slots__ = ["phy_payload", "tx_info", "tx_info_legacy"]
PHY_PAYLOAD_FIELD_NUMBER: _ClassVar[int]
TX_INFO_FIELD_NUMBER: _ClassVar[int]
TX_INFO_LEGACY_FIELD_NUMBER: _ClassVar[int]
phy_payload: bytes
tx_info: DownlinkTxInfo
tx_info_legacy: DownlinkTxInfoLegacy
def __init__(self, phy_payload: _Optional[bytes] = ..., tx_info_legacy: _Optional[_Union[DownlinkTxInfoLegacy, _Mapping]] = ..., tx_info: _Optional[_Union[DownlinkTxInfo, _Mapping]] = ...) -> None: ...
class DownlinkTxAck(_message.Message):
__slots__ = ["downlink_id", "downlink_id_legacy", "gateway_id", "gateway_id_legacy", "items"]
DOWNLINK_ID_FIELD_NUMBER: _ClassVar[int]
DOWNLINK_ID_LEGACY_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_LEGACY_FIELD_NUMBER: _ClassVar[int]
ITEMS_FIELD_NUMBER: _ClassVar[int]
downlink_id: int
downlink_id_legacy: bytes
gateway_id: str
gateway_id_legacy: bytes
items: _containers.RepeatedCompositeFieldContainer[DownlinkTxAckItem]
def __init__(self, gateway_id_legacy: _Optional[bytes] = ..., gateway_id: _Optional[str] = ..., downlink_id: _Optional[int] = ..., downlink_id_legacy: _Optional[bytes] = ..., items: _Optional[_Iterable[_Union[DownlinkTxAckItem, _Mapping]]] = ...) -> None: ...
class DownlinkTxAckItem(_message.Message):
__slots__ = ["status"]
STATUS_FIELD_NUMBER: _ClassVar[int]
status: TxAckStatus
def __init__(self, status: _Optional[_Union[TxAckStatus, str]] = ...) -> None: ...
class DownlinkTxInfo(_message.Message):
__slots__ = ["antenna", "board", "context", "frequency", "modulation", "power", "timing"]
ANTENNA_FIELD_NUMBER: _ClassVar[int]
BOARD_FIELD_NUMBER: _ClassVar[int]
CONTEXT_FIELD_NUMBER: _ClassVar[int]
FREQUENCY_FIELD_NUMBER: _ClassVar[int]
MODULATION_FIELD_NUMBER: _ClassVar[int]
POWER_FIELD_NUMBER: _ClassVar[int]
TIMING_FIELD_NUMBER: _ClassVar[int]
antenna: int
board: int
context: bytes
frequency: int
modulation: Modulation
power: int
timing: Timing
def __init__(self, frequency: _Optional[int] = ..., power: _Optional[int] = ..., modulation: _Optional[_Union[Modulation, _Mapping]] = ..., board: _Optional[int] = ..., antenna: _Optional[int] = ..., timing: _Optional[_Union[Timing, _Mapping]] = ..., context: _Optional[bytes] = ...) -> None: ...
class DownlinkTxInfoLegacy(_message.Message):
__slots__ = ["antenna", "board", "context", "delay_timing_info", "frequency", "fsk_modulation_info", "gateway_id", "gps_epoch_timing_info", "immediately_timing_info", "lora_modulation_info", "modulation", "power", "timing"]
ANTENNA_FIELD_NUMBER: _ClassVar[int]
BOARD_FIELD_NUMBER: _ClassVar[int]
CONTEXT_FIELD_NUMBER: _ClassVar[int]
DELAY_TIMING_INFO_FIELD_NUMBER: _ClassVar[int]
FREQUENCY_FIELD_NUMBER: _ClassVar[int]
FSK_MODULATION_INFO_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
GPS_EPOCH_TIMING_INFO_FIELD_NUMBER: _ClassVar[int]
IMMEDIATELY_TIMING_INFO_FIELD_NUMBER: _ClassVar[int]
LORA_MODULATION_INFO_FIELD_NUMBER: _ClassVar[int]
MODULATION_FIELD_NUMBER: _ClassVar[int]
POWER_FIELD_NUMBER: _ClassVar[int]
TIMING_FIELD_NUMBER: _ClassVar[int]
antenna: int
board: int
context: bytes
delay_timing_info: DelayTimingInfo
frequency: int
fsk_modulation_info: FskModulationInfo
gateway_id: bytes
gps_epoch_timing_info: GPSEpochTimingInfo
immediately_timing_info: ImmediatelyTimingInfo
lora_modulation_info: LoraModulationInfo
modulation: _common_pb2.Modulation
power: int
timing: DownlinkTiming
def __init__(self, gateway_id: _Optional[bytes] = ..., frequency: _Optional[int] = ..., power: _Optional[int] = ..., modulation: _Optional[_Union[_common_pb2.Modulation, str]] = ..., lora_modulation_info: _Optional[_Union[LoraModulationInfo, _Mapping]] = ..., fsk_modulation_info: _Optional[_Union[FskModulationInfo, _Mapping]] = ..., board: _Optional[int] = ..., antenna: _Optional[int] = ..., timing: _Optional[_Union[DownlinkTiming, str]] = ..., immediately_timing_info: _Optional[_Union[ImmediatelyTimingInfo, _Mapping]] = ..., delay_timing_info: _Optional[_Union[DelayTimingInfo, _Mapping]] = ..., gps_epoch_timing_info: _Optional[_Union[GPSEpochTimingInfo, _Mapping]] = ..., context: _Optional[bytes] = ...) -> None: ...
class EncryptedFineTimestamp(_message.Message):
__slots__ = ["aes_key_index", "encrypted_ns", "fpga_id"]
AES_KEY_INDEX_FIELD_NUMBER: _ClassVar[int]
ENCRYPTED_NS_FIELD_NUMBER: _ClassVar[int]
FPGA_ID_FIELD_NUMBER: _ClassVar[int]
aes_key_index: int
encrypted_ns: bytes
fpga_id: bytes
def __init__(self, aes_key_index: _Optional[int] = ..., encrypted_ns: _Optional[bytes] = ..., fpga_id: _Optional[bytes] = ...) -> None: ...
class FskModulationConfig(_message.Message):
__slots__ = ["bandwidth", "bandwidth_legacy", "bitrate"]
BANDWIDTH_FIELD_NUMBER: _ClassVar[int]
BANDWIDTH_LEGACY_FIELD_NUMBER: _ClassVar[int]
BITRATE_FIELD_NUMBER: _ClassVar[int]
bandwidth: int
bandwidth_legacy: int
bitrate: int
def __init__(self, bandwidth_legacy: _Optional[int] = ..., bandwidth: _Optional[int] = ..., bitrate: _Optional[int] = ...) -> None: ...
class FskModulationInfo(_message.Message):
__slots__ = ["datarate", "frequency_deviation"]
DATARATE_FIELD_NUMBER: _ClassVar[int]
FREQUENCY_DEVIATION_FIELD_NUMBER: _ClassVar[int]
datarate: int
frequency_deviation: int
def __init__(self, frequency_deviation: _Optional[int] = ..., datarate: _Optional[int] = ...) -> None: ...
class GPSEpochTimingInfo(_message.Message):
__slots__ = ["time_since_gps_epoch"]
TIME_SINCE_GPS_EPOCH_FIELD_NUMBER: _ClassVar[int]
time_since_gps_epoch: _duration_pb2.Duration
def __init__(self, time_since_gps_epoch: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ...) -> None: ...
class GatewayCommandExecRequest(_message.Message):
__slots__ = ["command", "environment", "exec_id", "gateway_id", "gateway_id_legacy", "stdin"]
class EnvironmentEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: str
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
COMMAND_FIELD_NUMBER: _ClassVar[int]
ENVIRONMENT_FIELD_NUMBER: _ClassVar[int]
EXEC_ID_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_LEGACY_FIELD_NUMBER: _ClassVar[int]
STDIN_FIELD_NUMBER: _ClassVar[int]
command: str
environment: _containers.ScalarMap[str, str]
exec_id: int
gateway_id: str
gateway_id_legacy: bytes
stdin: bytes
def __init__(self, gateway_id_legacy: _Optional[bytes] = ..., gateway_id: _Optional[str] = ..., command: _Optional[str] = ..., exec_id: _Optional[int] = ..., stdin: _Optional[bytes] = ..., environment: _Optional[_Mapping[str, str]] = ...) -> None: ...
class GatewayCommandExecResponse(_message.Message):
__slots__ = ["error", "exec_id", "gateway_id", "gateway_id_legacy", "stderr", "stdout"]
ERROR_FIELD_NUMBER: _ClassVar[int]
EXEC_ID_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_LEGACY_FIELD_NUMBER: _ClassVar[int]
STDERR_FIELD_NUMBER: _ClassVar[int]
STDOUT_FIELD_NUMBER: _ClassVar[int]
error: str
exec_id: int
gateway_id: str
gateway_id_legacy: bytes
stderr: bytes
stdout: bytes
def __init__(self, gateway_id_legacy: _Optional[bytes] = ..., gateway_id: _Optional[str] = ..., exec_id: _Optional[int] = ..., stdout: _Optional[bytes] = ..., stderr: _Optional[bytes] = ..., error: _Optional[str] = ...) -> None: ...
class GatewayConfiguration(_message.Message):
__slots__ = ["channels", "gateway_id", "gateway_id_legacy", "stats_interval", "version"]
CHANNELS_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_LEGACY_FIELD_NUMBER: _ClassVar[int]
STATS_INTERVAL_FIELD_NUMBER: _ClassVar[int]
VERSION_FIELD_NUMBER: _ClassVar[int]
channels: _containers.RepeatedCompositeFieldContainer[ChannelConfiguration]
gateway_id: str
gateway_id_legacy: bytes
stats_interval: _duration_pb2.Duration
version: str
def __init__(self, gateway_id_legacy: _Optional[bytes] = ..., gateway_id: _Optional[str] = ..., version: _Optional[str] = ..., channels: _Optional[_Iterable[_Union[ChannelConfiguration, _Mapping]]] = ..., stats_interval: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ...) -> None: ...
class GatewayStats(_message.Message):
__slots__ = ["config_version", "gateway_id", "gateway_id_legacy", "location", "metadata", "rx_packets_per_frequency", "rx_packets_per_modulation", "rx_packets_received", "rx_packets_received_ok", "time", "tx_packets_emitted", "tx_packets_per_frequency", "tx_packets_per_modulation", "tx_packets_per_status", "tx_packets_received"]
class MetadataEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: str
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
class RxPacketsPerFrequencyEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: int
value: int
def __init__(self, key: _Optional[int] = ..., value: _Optional[int] = ...) -> None: ...
class TxPacketsPerFrequencyEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: int
value: int
def __init__(self, key: _Optional[int] = ..., value: _Optional[int] = ...) -> None: ...
class TxPacketsPerStatusEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: int
def __init__(self, key: _Optional[str] = ..., value: _Optional[int] = ...) -> None: ...
CONFIG_VERSION_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_LEGACY_FIELD_NUMBER: _ClassVar[int]
LOCATION_FIELD_NUMBER: _ClassVar[int]
METADATA_FIELD_NUMBER: _ClassVar[int]
RX_PACKETS_PER_FREQUENCY_FIELD_NUMBER: _ClassVar[int]
RX_PACKETS_PER_MODULATION_FIELD_NUMBER: _ClassVar[int]
RX_PACKETS_RECEIVED_FIELD_NUMBER: _ClassVar[int]
RX_PACKETS_RECEIVED_OK_FIELD_NUMBER: _ClassVar[int]
TIME_FIELD_NUMBER: _ClassVar[int]
TX_PACKETS_EMITTED_FIELD_NUMBER: _ClassVar[int]
TX_PACKETS_PER_FREQUENCY_FIELD_NUMBER: _ClassVar[int]
TX_PACKETS_PER_MODULATION_FIELD_NUMBER: _ClassVar[int]
TX_PACKETS_PER_STATUS_FIELD_NUMBER: _ClassVar[int]
TX_PACKETS_RECEIVED_FIELD_NUMBER: _ClassVar[int]
config_version: str
gateway_id: str
gateway_id_legacy: bytes
location: _common_pb2.Location
metadata: _containers.ScalarMap[str, str]
rx_packets_per_frequency: _containers.ScalarMap[int, int]
rx_packets_per_modulation: _containers.RepeatedCompositeFieldContainer[PerModulationCount]
rx_packets_received: int
rx_packets_received_ok: int
time: _timestamp_pb2.Timestamp
tx_packets_emitted: int
tx_packets_per_frequency: _containers.ScalarMap[int, int]
tx_packets_per_modulation: _containers.RepeatedCompositeFieldContainer[PerModulationCount]
tx_packets_per_status: _containers.ScalarMap[str, int]
tx_packets_received: int
def __init__(self, gateway_id_legacy: _Optional[bytes] = ..., gateway_id: _Optional[str] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., location: _Optional[_Union[_common_pb2.Location, _Mapping]] = ..., config_version: _Optional[str] = ..., rx_packets_received: _Optional[int] = ..., rx_packets_received_ok: _Optional[int] = ..., tx_packets_received: _Optional[int] = ..., tx_packets_emitted: _Optional[int] = ..., metadata: _Optional[_Mapping[str, str]] = ..., tx_packets_per_frequency: _Optional[_Mapping[int, int]] = ..., rx_packets_per_frequency: _Optional[_Mapping[int, int]] = ..., tx_packets_per_modulation: _Optional[_Iterable[_Union[PerModulationCount, _Mapping]]] = ..., rx_packets_per_modulation: _Optional[_Iterable[_Union[PerModulationCount, _Mapping]]] = ..., tx_packets_per_status: _Optional[_Mapping[str, int]] = ...) -> None: ...
class ImmediatelyTimingInfo(_message.Message):
__slots__ = []
def __init__(self) -> None: ...
class LoraModulationConfig(_message.Message):
__slots__ = ["bandwidth", "bandwidth_legacy", "spreading_factors"]
BANDWIDTH_FIELD_NUMBER: _ClassVar[int]
BANDWIDTH_LEGACY_FIELD_NUMBER: _ClassVar[int]
SPREADING_FACTORS_FIELD_NUMBER: _ClassVar[int]
bandwidth: int
bandwidth_legacy: int
spreading_factors: _containers.RepeatedScalarFieldContainer[int]
def __init__(self, bandwidth_legacy: _Optional[int] = ..., bandwidth: _Optional[int] = ..., spreading_factors: _Optional[_Iterable[int]] = ...) -> None: ...
class LoraModulationInfo(_message.Message):
__slots__ = ["bandwidth", "code_rate", "code_rate_legacy", "polarization_inversion", "spreading_factor"]
BANDWIDTH_FIELD_NUMBER: _ClassVar[int]
CODE_RATE_FIELD_NUMBER: _ClassVar[int]
CODE_RATE_LEGACY_FIELD_NUMBER: _ClassVar[int]
POLARIZATION_INVERSION_FIELD_NUMBER: _ClassVar[int]
SPREADING_FACTOR_FIELD_NUMBER: _ClassVar[int]
bandwidth: int
code_rate: CodeRate
code_rate_legacy: str
polarization_inversion: bool
spreading_factor: int
def __init__(self, bandwidth: _Optional[int] = ..., spreading_factor: _Optional[int] = ..., code_rate_legacy: _Optional[str] = ..., code_rate: _Optional[_Union[CodeRate, str]] = ..., polarization_inversion: bool = ...) -> None: ...
class LrFhssModulationInfo(_message.Message):
__slots__ = ["code_rate", "code_rate_legacy", "grid_steps", "operating_channel_width"]
CODE_RATE_FIELD_NUMBER: _ClassVar[int]
CODE_RATE_LEGACY_FIELD_NUMBER: _ClassVar[int]
GRID_STEPS_FIELD_NUMBER: _ClassVar[int]
OPERATING_CHANNEL_WIDTH_FIELD_NUMBER: _ClassVar[int]
code_rate: CodeRate
code_rate_legacy: str
grid_steps: int
operating_channel_width: int
def __init__(self, operating_channel_width: _Optional[int] = ..., code_rate_legacy: _Optional[str] = ..., code_rate: _Optional[_Union[CodeRate, str]] = ..., grid_steps: _Optional[int] = ...) -> None: ...
class Modulation(_message.Message):
__slots__ = ["fsk", "lora", "lr_fhss"]
FSK_FIELD_NUMBER: _ClassVar[int]
LORA_FIELD_NUMBER: _ClassVar[int]
LR_FHSS_FIELD_NUMBER: _ClassVar[int]
fsk: FskModulationInfo
lora: LoraModulationInfo
lr_fhss: LrFhssModulationInfo
def __init__(self, lora: _Optional[_Union[LoraModulationInfo, _Mapping]] = ..., fsk: _Optional[_Union[FskModulationInfo, _Mapping]] = ..., lr_fhss: _Optional[_Union[LrFhssModulationInfo, _Mapping]] = ...) -> None: ...
class PerModulationCount(_message.Message):
__slots__ = ["count", "modulation"]
COUNT_FIELD_NUMBER: _ClassVar[int]
MODULATION_FIELD_NUMBER: _ClassVar[int]
count: int
modulation: Modulation
def __init__(self, modulation: _Optional[_Union[Modulation, _Mapping]] = ..., count: _Optional[int] = ...) -> None: ...
class PlainFineTimestamp(_message.Message):
__slots__ = ["time"]
TIME_FIELD_NUMBER: _ClassVar[int]
time: _timestamp_pb2.Timestamp
def __init__(self, time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
class RawPacketForwarderCommand(_message.Message):
__slots__ = ["gateway_id", "gateway_id_legacy", "payload"]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_LEGACY_FIELD_NUMBER: _ClassVar[int]
PAYLOAD_FIELD_NUMBER: _ClassVar[int]
gateway_id: str
gateway_id_legacy: bytes
payload: bytes
def __init__(self, gateway_id_legacy: _Optional[bytes] = ..., gateway_id: _Optional[str] = ..., payload: _Optional[bytes] = ...) -> None: ...
class RawPacketForwarderEvent(_message.Message):
__slots__ = ["gateway_id", "gateway_id_legacy", "payload"]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_LEGACY_FIELD_NUMBER: _ClassVar[int]
PAYLOAD_FIELD_NUMBER: _ClassVar[int]
gateway_id: str
gateway_id_legacy: bytes
payload: bytes
def __init__(self, gateway_id_legacy: _Optional[bytes] = ..., gateway_id: _Optional[str] = ..., payload: _Optional[bytes] = ...) -> None: ...
class Timing(_message.Message):
__slots__ = ["delay", "gps_epoch", "immediately"]
DELAY_FIELD_NUMBER: _ClassVar[int]
GPS_EPOCH_FIELD_NUMBER: _ClassVar[int]
IMMEDIATELY_FIELD_NUMBER: _ClassVar[int]
delay: DelayTimingInfo
gps_epoch: GPSEpochTimingInfo
immediately: ImmediatelyTimingInfo
def __init__(self, immediately: _Optional[_Union[ImmediatelyTimingInfo, _Mapping]] = ..., delay: _Optional[_Union[DelayTimingInfo, _Mapping]] = ..., gps_epoch: _Optional[_Union[GPSEpochTimingInfo, _Mapping]] = ...) -> None: ...
class UplinkFrame(_message.Message):
__slots__ = ["phy_payload", "rx_info", "rx_info_legacy", "tx_info", "tx_info_legacy"]
PHY_PAYLOAD_FIELD_NUMBER: _ClassVar[int]
RX_INFO_FIELD_NUMBER: _ClassVar[int]
RX_INFO_LEGACY_FIELD_NUMBER: _ClassVar[int]
TX_INFO_FIELD_NUMBER: _ClassVar[int]
TX_INFO_LEGACY_FIELD_NUMBER: _ClassVar[int]
phy_payload: bytes
rx_info: UplinkRxInfo
rx_info_legacy: UplinkRxInfoLegacy
tx_info: UplinkTxInfo
tx_info_legacy: UplinkTxInfoLegacy
def __init__(self, phy_payload: _Optional[bytes] = ..., tx_info_legacy: _Optional[_Union[UplinkTxInfoLegacy, _Mapping]] = ..., rx_info_legacy: _Optional[_Union[UplinkRxInfoLegacy, _Mapping]] = ..., tx_info: _Optional[_Union[UplinkTxInfo, _Mapping]] = ..., rx_info: _Optional[_Union[UplinkRxInfo, _Mapping]] = ...) -> None: ...
class UplinkFrameSet(_message.Message):
__slots__ = ["phy_payload", "rx_info", "tx_info"]
PHY_PAYLOAD_FIELD_NUMBER: _ClassVar[int]
RX_INFO_FIELD_NUMBER: _ClassVar[int]
TX_INFO_FIELD_NUMBER: _ClassVar[int]
phy_payload: bytes
rx_info: _containers.RepeatedCompositeFieldContainer[UplinkRxInfo]
tx_info: UplinkTxInfo
def __init__(self, phy_payload: _Optional[bytes] = ..., tx_info: _Optional[_Union[UplinkTxInfo, _Mapping]] = ..., rx_info: _Optional[_Iterable[_Union[UplinkRxInfo, _Mapping]]] = ...) -> None: ...
class UplinkRxInfo(_message.Message):
__slots__ = ["antenna", "board", "channel", "context", "fine_time_since_gps_epoch", "gateway_id", "location", "metadata", "rf_chain", "rssi", "snr", "time", "time_since_gps_epoch", "uplink_id"]
class MetadataEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: str
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
ANTENNA_FIELD_NUMBER: _ClassVar[int]
BOARD_FIELD_NUMBER: _ClassVar[int]
CHANNEL_FIELD_NUMBER: _ClassVar[int]
CONTEXT_FIELD_NUMBER: _ClassVar[int]
FINE_TIME_SINCE_GPS_EPOCH_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
LOCATION_FIELD_NUMBER: _ClassVar[int]
METADATA_FIELD_NUMBER: _ClassVar[int]
RF_CHAIN_FIELD_NUMBER: _ClassVar[int]
RSSI_FIELD_NUMBER: _ClassVar[int]
SNR_FIELD_NUMBER: _ClassVar[int]
TIME_FIELD_NUMBER: _ClassVar[int]
TIME_SINCE_GPS_EPOCH_FIELD_NUMBER: _ClassVar[int]
UPLINK_ID_FIELD_NUMBER: _ClassVar[int]
antenna: int
board: int
channel: int
context: bytes
fine_time_since_gps_epoch: _duration_pb2.Duration
gateway_id: str
location: _common_pb2.Location
metadata: _containers.ScalarMap[str, str]
rf_chain: int
rssi: int
snr: float
time: _timestamp_pb2.Timestamp
time_since_gps_epoch: _duration_pb2.Duration
uplink_id: int
def __init__(self, gateway_id: _Optional[str] = ..., uplink_id: _Optional[int] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., time_since_gps_epoch: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., fine_time_since_gps_epoch: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., rssi: _Optional[int] = ..., snr: _Optional[float] = ..., channel: _Optional[int] = ..., rf_chain: _Optional[int] = ..., board: _Optional[int] = ..., antenna: _Optional[int] = ..., location: _Optional[_Union[_common_pb2.Location, _Mapping]] = ..., context: _Optional[bytes] = ..., metadata: _Optional[_Mapping[str, str]] = ...) -> None: ...
class UplinkRxInfoLegacy(_message.Message):
__slots__ = ["antenna", "board", "channel", "context", "crc_status", "encrypted_fine_timestamp", "fine_timestamp_type", "gateway_id", "location", "lora_snr", "metadata", "plain_fine_timestamp", "rf_chain", "rssi", "time", "time_since_gps_epoch", "uplink_id"]
class MetadataEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: str
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
ANTENNA_FIELD_NUMBER: _ClassVar[int]
BOARD_FIELD_NUMBER: _ClassVar[int]
CHANNEL_FIELD_NUMBER: _ClassVar[int]
CONTEXT_FIELD_NUMBER: _ClassVar[int]
CRC_STATUS_FIELD_NUMBER: _ClassVar[int]
ENCRYPTED_FINE_TIMESTAMP_FIELD_NUMBER: _ClassVar[int]
FINE_TIMESTAMP_TYPE_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
LOCATION_FIELD_NUMBER: _ClassVar[int]
LORA_SNR_FIELD_NUMBER: _ClassVar[int]
METADATA_FIELD_NUMBER: _ClassVar[int]
PLAIN_FINE_TIMESTAMP_FIELD_NUMBER: _ClassVar[int]
RF_CHAIN_FIELD_NUMBER: _ClassVar[int]
RSSI_FIELD_NUMBER: _ClassVar[int]
TIME_FIELD_NUMBER: _ClassVar[int]
TIME_SINCE_GPS_EPOCH_FIELD_NUMBER: _ClassVar[int]
UPLINK_ID_FIELD_NUMBER: _ClassVar[int]
antenna: int
board: int
channel: int
context: bytes
crc_status: CRCStatus
encrypted_fine_timestamp: EncryptedFineTimestamp
fine_timestamp_type: FineTimestampType
gateway_id: bytes
location: _common_pb2.Location
lora_snr: float
metadata: _containers.ScalarMap[str, str]
plain_fine_timestamp: PlainFineTimestamp
rf_chain: int
rssi: int
time: _timestamp_pb2.Timestamp
time_since_gps_epoch: _duration_pb2.Duration
uplink_id: bytes
def __init__(self, gateway_id: _Optional[bytes] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., time_since_gps_epoch: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., rssi: _Optional[int] = ..., lora_snr: _Optional[float] = ..., channel: _Optional[int] = ..., rf_chain: _Optional[int] = ..., board: _Optional[int] = ..., antenna: _Optional[int] = ..., location: _Optional[_Union[_common_pb2.Location, _Mapping]] = ..., fine_timestamp_type: _Optional[_Union[FineTimestampType, str]] = ..., encrypted_fine_timestamp: _Optional[_Union[EncryptedFineTimestamp, _Mapping]] = ..., plain_fine_timestamp: _Optional[_Union[PlainFineTimestamp, _Mapping]] = ..., context: _Optional[bytes] = ..., uplink_id: _Optional[bytes] = ..., crc_status: _Optional[_Union[CRCStatus, str]] = ..., metadata: _Optional[_Mapping[str, str]] = ...) -> None: ...
class UplinkTxInfo(_message.Message):
__slots__ = ["frequency", "modulation"]
FREQUENCY_FIELD_NUMBER: _ClassVar[int]
MODULATION_FIELD_NUMBER: _ClassVar[int]
frequency: int
modulation: Modulation
def __init__(self, frequency: _Optional[int] = ..., modulation: _Optional[_Union[Modulation, _Mapping]] = ...) -> None: ...
class UplinkTxInfoLegacy(_message.Message):
__slots__ = ["frequency", "fsk_modulation_info", "lora_modulation_info", "lr_fhss_modulation_info", "modulation"]
FREQUENCY_FIELD_NUMBER: _ClassVar[int]
FSK_MODULATION_INFO_FIELD_NUMBER: _ClassVar[int]
LORA_MODULATION_INFO_FIELD_NUMBER: _ClassVar[int]
LR_FHSS_MODULATION_INFO_FIELD_NUMBER: _ClassVar[int]
MODULATION_FIELD_NUMBER: _ClassVar[int]
frequency: int
fsk_modulation_info: FskModulationInfo
lora_modulation_info: LoraModulationInfo
lr_fhss_modulation_info: LrFhssModulationInfo
modulation: _common_pb2.Modulation
def __init__(self, frequency: _Optional[int] = ..., modulation: _Optional[_Union[_common_pb2.Modulation, str]] = ..., lora_modulation_info: _Optional[_Union[LoraModulationInfo, _Mapping]] = ..., fsk_modulation_info: _Optional[_Union[FskModulationInfo, _Mapping]] = ..., lr_fhss_modulation_info: _Optional[_Union[LrFhssModulationInfo, _Mapping]] = ...) -> None: ...
class CodeRate(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
class DownlinkTiming(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
class FineTimestampType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
class CRCStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
class TxAckStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []

@ -0,0 +1,219 @@
from chirpstack_api.common import common_pb2 as _common_pb2
from chirpstack_api.gw import gw_pb2 as _gw_pb2
from google.protobuf import timestamp_pb2 as _timestamp_pb2
from google.protobuf import struct_pb2 as _struct_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
DESCRIPTOR: _descriptor.FileDescriptor
DOWNLINK_CODEC: LogCode
DOWNLINK_GATEWAY: LogCode
DOWNLINK_PAYLOAD_SIZE: LogCode
ERROR: LogLevel
INFO: LogLevel
OTAA: LogCode
UNKNOWN: LogCode
UPLINK_CODEC: LogCode
UPLINK_F_CNT_RESET: LogCode
UPLINK_F_CNT_RETRANSMISSION: LogCode
UPLINK_MIC: LogCode
WARNING: LogLevel
class AckEvent(_message.Message):
__slots__ = ["acknowledged", "deduplication_id", "device_info", "f_cnt_down", "queue_item_id", "time"]
ACKNOWLEDGED_FIELD_NUMBER: _ClassVar[int]
DEDUPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
DEVICE_INFO_FIELD_NUMBER: _ClassVar[int]
F_CNT_DOWN_FIELD_NUMBER: _ClassVar[int]
QUEUE_ITEM_ID_FIELD_NUMBER: _ClassVar[int]
TIME_FIELD_NUMBER: _ClassVar[int]
acknowledged: bool
deduplication_id: str
device_info: DeviceInfo
f_cnt_down: int
queue_item_id: str
time: _timestamp_pb2.Timestamp
def __init__(self, deduplication_id: _Optional[str] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., device_info: _Optional[_Union[DeviceInfo, _Mapping]] = ..., queue_item_id: _Optional[str] = ..., acknowledged: bool = ..., f_cnt_down: _Optional[int] = ...) -> None: ...
class DeviceInfo(_message.Message):
__slots__ = ["application_id", "application_name", "dev_eui", "device_name", "device_profile_id", "device_profile_name", "tags", "tenant_id", "tenant_name"]
class TagsEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: str
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
APPLICATION_NAME_FIELD_NUMBER: _ClassVar[int]
DEVICE_NAME_FIELD_NUMBER: _ClassVar[int]
DEVICE_PROFILE_ID_FIELD_NUMBER: _ClassVar[int]
DEVICE_PROFILE_NAME_FIELD_NUMBER: _ClassVar[int]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
TAGS_FIELD_NUMBER: _ClassVar[int]
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
TENANT_NAME_FIELD_NUMBER: _ClassVar[int]
application_id: str
application_name: str
dev_eui: str
device_name: str
device_profile_id: str
device_profile_name: str
tags: _containers.ScalarMap[str, str]
tenant_id: str
tenant_name: str
def __init__(self, tenant_id: _Optional[str] = ..., tenant_name: _Optional[str] = ..., application_id: _Optional[str] = ..., application_name: _Optional[str] = ..., device_profile_id: _Optional[str] = ..., device_profile_name: _Optional[str] = ..., device_name: _Optional[str] = ..., dev_eui: _Optional[str] = ..., tags: _Optional[_Mapping[str, str]] = ...) -> None: ...
class DownlinkCommand(_message.Message):
__slots__ = ["confirmed", "data", "dev_eui", "f_port", "id", "object"]
CONFIRMED_FIELD_NUMBER: _ClassVar[int]
DATA_FIELD_NUMBER: _ClassVar[int]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
F_PORT_FIELD_NUMBER: _ClassVar[int]
ID_FIELD_NUMBER: _ClassVar[int]
OBJECT_FIELD_NUMBER: _ClassVar[int]
confirmed: bool
data: bytes
dev_eui: str
f_port: int
id: str
object: _struct_pb2.Struct
def __init__(self, id: _Optional[str] = ..., dev_eui: _Optional[str] = ..., confirmed: bool = ..., f_port: _Optional[int] = ..., data: _Optional[bytes] = ..., object: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ...
class IntegrationEvent(_message.Message):
__slots__ = ["deduplication_id", "device_info", "event_type", "integration_name", "object", "time"]
DEDUPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
DEVICE_INFO_FIELD_NUMBER: _ClassVar[int]
EVENT_TYPE_FIELD_NUMBER: _ClassVar[int]
INTEGRATION_NAME_FIELD_NUMBER: _ClassVar[int]
OBJECT_FIELD_NUMBER: _ClassVar[int]
TIME_FIELD_NUMBER: _ClassVar[int]
deduplication_id: str
device_info: DeviceInfo
event_type: str
integration_name: str
object: _struct_pb2.Struct
time: _timestamp_pb2.Timestamp
def __init__(self, deduplication_id: _Optional[str] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., device_info: _Optional[_Union[DeviceInfo, _Mapping]] = ..., integration_name: _Optional[str] = ..., event_type: _Optional[str] = ..., object: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ...
class JoinEvent(_message.Message):
__slots__ = ["deduplication_id", "dev_addr", "device_info", "time"]
DEDUPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
DEVICE_INFO_FIELD_NUMBER: _ClassVar[int]
DEV_ADDR_FIELD_NUMBER: _ClassVar[int]
TIME_FIELD_NUMBER: _ClassVar[int]
deduplication_id: str
dev_addr: str
device_info: DeviceInfo
time: _timestamp_pb2.Timestamp
def __init__(self, deduplication_id: _Optional[str] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., device_info: _Optional[_Union[DeviceInfo, _Mapping]] = ..., dev_addr: _Optional[str] = ...) -> None: ...
class LocationEvent(_message.Message):
__slots__ = ["deduplication_id", "device_info", "location", "time"]
DEDUPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
DEVICE_INFO_FIELD_NUMBER: _ClassVar[int]
LOCATION_FIELD_NUMBER: _ClassVar[int]
TIME_FIELD_NUMBER: _ClassVar[int]
deduplication_id: str
device_info: DeviceInfo
location: _common_pb2.Location
time: _timestamp_pb2.Timestamp
def __init__(self, deduplication_id: _Optional[str] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., device_info: _Optional[_Union[DeviceInfo, _Mapping]] = ..., location: _Optional[_Union[_common_pb2.Location, _Mapping]] = ...) -> None: ...
class LogEvent(_message.Message):
__slots__ = ["code", "context", "description", "device_info", "level", "time"]
class ContextEntry(_message.Message):
__slots__ = ["key", "value"]
KEY_FIELD_NUMBER: _ClassVar[int]
VALUE_FIELD_NUMBER: _ClassVar[int]
key: str
value: str
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
CODE_FIELD_NUMBER: _ClassVar[int]
CONTEXT_FIELD_NUMBER: _ClassVar[int]
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
DEVICE_INFO_FIELD_NUMBER: _ClassVar[int]
LEVEL_FIELD_NUMBER: _ClassVar[int]
TIME_FIELD_NUMBER: _ClassVar[int]
code: LogCode
context: _containers.ScalarMap[str, str]
description: str
device_info: DeviceInfo
level: LogLevel
time: _timestamp_pb2.Timestamp
def __init__(self, time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., device_info: _Optional[_Union[DeviceInfo, _Mapping]] = ..., level: _Optional[_Union[LogLevel, str]] = ..., code: _Optional[_Union[LogCode, str]] = ..., description: _Optional[str] = ..., context: _Optional[_Mapping[str, str]] = ...) -> None: ...
class StatusEvent(_message.Message):
__slots__ = ["battery_level", "battery_level_unavailable", "deduplication_id", "device_info", "external_power_source", "margin", "time"]
BATTERY_LEVEL_FIELD_NUMBER: _ClassVar[int]
BATTERY_LEVEL_UNAVAILABLE_FIELD_NUMBER: _ClassVar[int]
DEDUPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
DEVICE_INFO_FIELD_NUMBER: _ClassVar[int]
EXTERNAL_POWER_SOURCE_FIELD_NUMBER: _ClassVar[int]
MARGIN_FIELD_NUMBER: _ClassVar[int]
TIME_FIELD_NUMBER: _ClassVar[int]
battery_level: float
battery_level_unavailable: bool
deduplication_id: str
device_info: DeviceInfo
external_power_source: bool
margin: int
time: _timestamp_pb2.Timestamp
def __init__(self, deduplication_id: _Optional[str] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., device_info: _Optional[_Union[DeviceInfo, _Mapping]] = ..., margin: _Optional[int] = ..., external_power_source: bool = ..., battery_level_unavailable: bool = ..., battery_level: _Optional[float] = ...) -> None: ...
class TxAckEvent(_message.Message):
__slots__ = ["device_info", "downlink_id", "f_cnt_down", "gateway_id", "queue_item_id", "time", "tx_info"]
DEVICE_INFO_FIELD_NUMBER: _ClassVar[int]
DOWNLINK_ID_FIELD_NUMBER: _ClassVar[int]
F_CNT_DOWN_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
QUEUE_ITEM_ID_FIELD_NUMBER: _ClassVar[int]
TIME_FIELD_NUMBER: _ClassVar[int]
TX_INFO_FIELD_NUMBER: _ClassVar[int]
device_info: DeviceInfo
downlink_id: int
f_cnt_down: int
gateway_id: str
queue_item_id: str
time: _timestamp_pb2.Timestamp
tx_info: _gw_pb2.DownlinkTxInfo
def __init__(self, downlink_id: _Optional[int] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., device_info: _Optional[_Union[DeviceInfo, _Mapping]] = ..., queue_item_id: _Optional[str] = ..., f_cnt_down: _Optional[int] = ..., gateway_id: _Optional[str] = ..., tx_info: _Optional[_Union[_gw_pb2.DownlinkTxInfo, _Mapping]] = ...) -> None: ...
class UplinkEvent(_message.Message):
__slots__ = ["adr", "confirmed", "data", "deduplication_id", "dev_addr", "device_info", "dr", "f_cnt", "f_port", "object", "rx_info", "time", "tx_info"]
ADR_FIELD_NUMBER: _ClassVar[int]
CONFIRMED_FIELD_NUMBER: _ClassVar[int]
DATA_FIELD_NUMBER: _ClassVar[int]
DEDUPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
DEVICE_INFO_FIELD_NUMBER: _ClassVar[int]
DEV_ADDR_FIELD_NUMBER: _ClassVar[int]
DR_FIELD_NUMBER: _ClassVar[int]
F_CNT_FIELD_NUMBER: _ClassVar[int]
F_PORT_FIELD_NUMBER: _ClassVar[int]
OBJECT_FIELD_NUMBER: _ClassVar[int]
RX_INFO_FIELD_NUMBER: _ClassVar[int]
TIME_FIELD_NUMBER: _ClassVar[int]
TX_INFO_FIELD_NUMBER: _ClassVar[int]
adr: bool
confirmed: bool
data: bytes
deduplication_id: str
dev_addr: str
device_info: DeviceInfo
dr: int
f_cnt: int
f_port: int
object: _struct_pb2.Struct
rx_info: _containers.RepeatedCompositeFieldContainer[_gw_pb2.UplinkRxInfo]
time: _timestamp_pb2.Timestamp
tx_info: _gw_pb2.UplinkTxInfo
def __init__(self, deduplication_id: _Optional[str] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., device_info: _Optional[_Union[DeviceInfo, _Mapping]] = ..., dev_addr: _Optional[str] = ..., adr: bool = ..., dr: _Optional[int] = ..., f_cnt: _Optional[int] = ..., f_port: _Optional[int] = ..., confirmed: bool = ..., data: _Optional[bytes] = ..., object: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., rx_info: _Optional[_Iterable[_Union[_gw_pb2.UplinkRxInfo, _Mapping]]] = ..., tx_info: _Optional[_Union[_gw_pb2.UplinkTxInfo, _Mapping]] = ...) -> None: ...
class LogLevel(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []
class LogCode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = []

@ -0,0 +1,46 @@
from chirpstack_api.common import common_pb2 as _common_pb2
from chirpstack_api.gw import gw_pb2 as _gw_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
DESCRIPTOR: _descriptor.FileDescriptor
class DownlinkMeta(_message.Message):
__slots__ = ["application_payload_byte_count", "dev_eui", "gateway_id", "mac_command_byte_count", "message_type", "multicast_group_id", "phy_payload_byte_count", "tx_info"]
APPLICATION_PAYLOAD_BYTE_COUNT_FIELD_NUMBER: _ClassVar[int]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
MAC_COMMAND_BYTE_COUNT_FIELD_NUMBER: _ClassVar[int]
MESSAGE_TYPE_FIELD_NUMBER: _ClassVar[int]
MULTICAST_GROUP_ID_FIELD_NUMBER: _ClassVar[int]
PHY_PAYLOAD_BYTE_COUNT_FIELD_NUMBER: _ClassVar[int]
TX_INFO_FIELD_NUMBER: _ClassVar[int]
application_payload_byte_count: int
dev_eui: str
gateway_id: str
mac_command_byte_count: int
message_type: _common_pb2.MType
multicast_group_id: str
phy_payload_byte_count: int
tx_info: _gw_pb2.DownlinkTxInfo
def __init__(self, dev_eui: _Optional[str] = ..., multicast_group_id: _Optional[str] = ..., tx_info: _Optional[_Union[_gw_pb2.DownlinkTxInfo, _Mapping]] = ..., phy_payload_byte_count: _Optional[int] = ..., mac_command_byte_count: _Optional[int] = ..., application_payload_byte_count: _Optional[int] = ..., message_type: _Optional[_Union[_common_pb2.MType, str]] = ..., gateway_id: _Optional[str] = ...) -> None: ...
class UplinkMeta(_message.Message):
__slots__ = ["application_payload_byte_count", "dev_eui", "mac_command_byte_count", "message_type", "phy_payload_byte_count", "rx_info", "tx_info"]
APPLICATION_PAYLOAD_BYTE_COUNT_FIELD_NUMBER: _ClassVar[int]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
MAC_COMMAND_BYTE_COUNT_FIELD_NUMBER: _ClassVar[int]
MESSAGE_TYPE_FIELD_NUMBER: _ClassVar[int]
PHY_PAYLOAD_BYTE_COUNT_FIELD_NUMBER: _ClassVar[int]
RX_INFO_FIELD_NUMBER: _ClassVar[int]
TX_INFO_FIELD_NUMBER: _ClassVar[int]
application_payload_byte_count: int
dev_eui: str
mac_command_byte_count: int
message_type: _common_pb2.MType
phy_payload_byte_count: int
rx_info: _containers.RepeatedCompositeFieldContainer[_gw_pb2.UplinkRxInfo]
tx_info: _gw_pb2.UplinkTxInfo
def __init__(self, dev_eui: _Optional[str] = ..., tx_info: _Optional[_Union[_gw_pb2.UplinkTxInfo, _Mapping]] = ..., rx_info: _Optional[_Iterable[_Union[_gw_pb2.UplinkRxInfo, _Mapping]]] = ..., phy_payload_byte_count: _Optional[int] = ..., mac_command_byte_count: _Optional[int] = ..., application_payload_byte_count: _Optional[int] = ..., message_type: _Optional[_Union[_common_pb2.MType, str]] = ...) -> None: ...