From 9f3a76f5fba272f1460d5dcbd717f4095b9e632e Mon Sep 17 00:00:00 2001 From: Orne Brocaar Date: Wed, 11 Jan 2023 11:01:55 +0000 Subject: [PATCH] Add --pyi_out flag to generate Python type information. Closes #68. --- api/python/Makefile | 2 +- .../chirpstack_api/api/application_pb2.pyi | 634 ++++++++++++++++++ .../src/chirpstack_api/api/device_pb2.pyi | 371 ++++++++++ .../chirpstack_api/api/device_profile_pb2.pyi | 209 ++++++ .../api/device_profile_template_pb2.pyi | 165 +++++ .../src/chirpstack_api/api/frame_log_pb2.pyi | 51 ++ .../src/chirpstack_api/api/gateway_pb2.pyi | 186 +++++ .../src/chirpstack_api/api/internal_pb2.pyi | 310 +++++++++ .../api/multicast_group_pb2.pyi | 178 +++++ .../chirpstack_api/api/request_log_pb2.pyi | 26 + .../src/chirpstack_api/api/tenant_pb2.pyi | 199 ++++++ .../src/chirpstack_api/api/user_pb2.pyi | 119 ++++ .../src/chirpstack_api/common/common_pb2.pyi | 124 ++++ api/python/src/chirpstack_api/gw/gw_pb2.pyi | 560 ++++++++++++++++ .../integration/integration_pb2.pyi | 219 ++++++ .../src/chirpstack_api/meta/meta_pb2.pyi | 46 ++ 16 files changed, 3398 insertions(+), 1 deletion(-) create mode 100644 api/python/src/chirpstack_api/api/application_pb2.pyi create mode 100644 api/python/src/chirpstack_api/api/device_pb2.pyi create mode 100644 api/python/src/chirpstack_api/api/device_profile_pb2.pyi create mode 100644 api/python/src/chirpstack_api/api/device_profile_template_pb2.pyi create mode 100644 api/python/src/chirpstack_api/api/frame_log_pb2.pyi create mode 100644 api/python/src/chirpstack_api/api/gateway_pb2.pyi create mode 100644 api/python/src/chirpstack_api/api/internal_pb2.pyi create mode 100644 api/python/src/chirpstack_api/api/multicast_group_pb2.pyi create mode 100644 api/python/src/chirpstack_api/api/request_log_pb2.pyi create mode 100644 api/python/src/chirpstack_api/api/tenant_pb2.pyi create mode 100644 api/python/src/chirpstack_api/api/user_pb2.pyi create mode 100644 api/python/src/chirpstack_api/common/common_pb2.pyi create mode 100644 api/python/src/chirpstack_api/gw/gw_pb2.pyi create mode 100644 api/python/src/chirpstack_api/integration/integration_pb2.pyi create mode 100644 api/python/src/chirpstack_api/meta/meta_pb2.pyi diff --git a/api/python/Makefile b/api/python/Makefile index dd6ae0ab..8ad3dc35 100644 --- a/api/python/Makefile +++ b/api/python/Makefile @@ -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 diff --git a/api/python/src/chirpstack_api/api/application_pb2.pyi b/api/python/src/chirpstack_api/api/application_pb2.pyi new file mode 100644 index 00000000..4c62e30f --- /dev/null +++ b/api/python/src/chirpstack_api/api/application_pb2.pyi @@ -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__ = [] diff --git a/api/python/src/chirpstack_api/api/device_pb2.pyi b/api/python/src/chirpstack_api/api/device_pb2.pyi new file mode 100644 index 00000000..30439628 --- /dev/null +++ b/api/python/src/chirpstack_api/api/device_pb2.pyi @@ -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: ... diff --git a/api/python/src/chirpstack_api/api/device_profile_pb2.pyi b/api/python/src/chirpstack_api/api/device_profile_pb2.pyi new file mode 100644 index 00000000..d6693e88 --- /dev/null +++ b/api/python/src/chirpstack_api/api/device_profile_pb2.pyi @@ -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__ = [] diff --git a/api/python/src/chirpstack_api/api/device_profile_template_pb2.pyi b/api/python/src/chirpstack_api/api/device_profile_template_pb2.pyi new file mode 100644 index 00000000..82f2dcd2 --- /dev/null +++ b/api/python/src/chirpstack_api/api/device_profile_template_pb2.pyi @@ -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: ... diff --git a/api/python/src/chirpstack_api/api/frame_log_pb2.pyi b/api/python/src/chirpstack_api/api/frame_log_pb2.pyi new file mode 100644 index 00000000..63536165 --- /dev/null +++ b/api/python/src/chirpstack_api/api/frame_log_pb2.pyi @@ -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: ... diff --git a/api/python/src/chirpstack_api/api/gateway_pb2.pyi b/api/python/src/chirpstack_api/api/gateway_pb2.pyi new file mode 100644 index 00000000..01a3b2e8 --- /dev/null +++ b/api/python/src/chirpstack_api/api/gateway_pb2.pyi @@ -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__ = [] diff --git a/api/python/src/chirpstack_api/api/internal_pb2.pyi b/api/python/src/chirpstack_api/api/internal_pb2.pyi new file mode 100644 index 00000000..4fa31e73 --- /dev/null +++ b/api/python/src/chirpstack_api/api/internal_pb2.pyi @@ -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: ... diff --git a/api/python/src/chirpstack_api/api/multicast_group_pb2.pyi b/api/python/src/chirpstack_api/api/multicast_group_pb2.pyi new file mode 100644 index 00000000..7c314493 --- /dev/null +++ b/api/python/src/chirpstack_api/api/multicast_group_pb2.pyi @@ -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__ = [] diff --git a/api/python/src/chirpstack_api/api/request_log_pb2.pyi b/api/python/src/chirpstack_api/api/request_log_pb2.pyi new file mode 100644 index 00000000..80390b3f --- /dev/null +++ b/api/python/src/chirpstack_api/api/request_log_pb2.pyi @@ -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: ... diff --git a/api/python/src/chirpstack_api/api/tenant_pb2.pyi b/api/python/src/chirpstack_api/api/tenant_pb2.pyi new file mode 100644 index 00000000..bd298dbc --- /dev/null +++ b/api/python/src/chirpstack_api/api/tenant_pb2.pyi @@ -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: ... diff --git a/api/python/src/chirpstack_api/api/user_pb2.pyi b/api/python/src/chirpstack_api/api/user_pb2.pyi new file mode 100644 index 00000000..3e506590 --- /dev/null +++ b/api/python/src/chirpstack_api/api/user_pb2.pyi @@ -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: ... diff --git a/api/python/src/chirpstack_api/common/common_pb2.pyi b/api/python/src/chirpstack_api/common/common_pb2.pyi new file mode 100644 index 00000000..40b7d080 --- /dev/null +++ b/api/python/src/chirpstack_api/common/common_pb2.pyi @@ -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__ = [] diff --git a/api/python/src/chirpstack_api/gw/gw_pb2.pyi b/api/python/src/chirpstack_api/gw/gw_pb2.pyi new file mode 100644 index 00000000..3b636f72 --- /dev/null +++ b/api/python/src/chirpstack_api/gw/gw_pb2.pyi @@ -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__ = [] diff --git a/api/python/src/chirpstack_api/integration/integration_pb2.pyi b/api/python/src/chirpstack_api/integration/integration_pb2.pyi new file mode 100644 index 00000000..d5a7e5b3 --- /dev/null +++ b/api/python/src/chirpstack_api/integration/integration_pb2.pyi @@ -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__ = [] diff --git a/api/python/src/chirpstack_api/meta/meta_pb2.pyi b/api/python/src/chirpstack_api/meta/meta_pb2.pyi new file mode 100644 index 00000000..58628c19 --- /dev/null +++ b/api/python/src/chirpstack_api/meta/meta_pb2.pyi @@ -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: ...