swagger: '2.0' info: title: The Things Stack — Join Server version: v3.36 description: The Things Stack is an open-source LoRaWAN Network Server implementation. This OpenAPI was derived from the upstream gRPC-Gateway generated api.swagger.json published by TheThingsNetwork/lorawan-stack v3.36. license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 contact: name: The Things Industries url: https://www.thethingsindustries.com host: eu1.cloud.thethings.industries basePath: /api/v3 schemes: - https consumes: - application/json produces: - application/json securityDefinitions: ApiKeyAuth: type: apiKey in: header name: Authorization description: 'Bearer API key. Set Authorization: Bearer NNSXS.xxxxxxxxxx.' security: - ApiKeyAuth: [] tags: - name: Js - name: JsEndDeviceRegistry - name: JsEndDeviceBatchRegistry paths: /js/applications/{application_ids.application_id}/devices/batch: delete: summary: 'Delete a list of devices within the same application. This operation is atomic; either all devices are deleted or none. Devices not found are skipped and no error is returned.' operationId: JsEndDeviceBatchRegistry_Delete responses: '200': description: A successful response. schema: type: object properties: {} default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: device_ids in: query required: false type: array items: type: string collectionFormat: multi tags: - JsEndDeviceBatchRegistry /js/applications/{application_ids.application_id}/devices/{device_id}: delete: summary: 'Delete deletes the device that matches the given identifiers. If there are multiple matches, an error will be returned.' operationId: JsEndDeviceRegistry_Delete responses: '200': description: A successful response. schema: type: object properties: {} default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: device_id in: path required: true type: string - name: dev_eui description: The LoRaWAN DevEUI. in: query required: false type: string format: string - name: join_eui description: The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices). in: query required: false type: string format: string - name: dev_addr description: The LoRaWAN DevAddr. in: query required: false type: string format: string tags: - JsEndDeviceRegistry /js/applications/{application_ids.application_id}/provision-devices: put: summary: 'This rpc is deprecated; use EndDeviceTemplateConverter service instead. TODO: Remove (https://github.com/TheThingsNetwork/lorawan-stack/issues/999)' operationId: JsEndDeviceRegistry_Provision responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/v3EndDevice' error: $ref: '#/definitions/googlerpcStatus' title: Stream result of v3EndDevice default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/JsEndDeviceRegistryProvisionBody' tags: - JsEndDeviceRegistry /js/applications/{end_device.ids.application_ids.application_id}/devices: post: summary: Set creates or updates the device. operationId: JsEndDeviceRegistry_Set2 responses: '200': description: A successful response. schema: $ref: '#/definitions/v3EndDevice' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: end_device.ids.application_ids.application_id in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/v3JsEndDeviceRegistrySetBody' tags: - JsEndDeviceRegistry /js/applications/{end_device.ids.application_ids.application_id}/devices/{end_device.ids.device_id}: put: summary: Set creates or updates the device. operationId: JsEndDeviceRegistry_Set responses: '200': description: A successful response. schema: $ref: '#/definitions/v3EndDevice' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: end_device.ids.application_ids.application_id in: path required: true type: string - name: end_device.ids.device_id in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/v3JsEndDeviceRegistrySetBody' tags: - JsEndDeviceRegistry /js/applications/{end_device_ids.application_ids.application_id}/devices/{end_device_ids.device_id}: get: summary: 'Get returns the device that matches the given identifiers. If there are multiple matches, an error will be returned.' operationId: JsEndDeviceRegistry_Get responses: '200': description: A successful response. schema: $ref: '#/definitions/v3EndDevice' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: end_device_ids.application_ids.application_id in: path required: true type: string - name: end_device_ids.device_id in: path required: true type: string - name: end_device_ids.dev_eui description: The LoRaWAN DevEUI. in: query required: false type: string format: string - name: end_device_ids.join_eui description: The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices). in: query required: false type: string format: string - name: end_device_ids.dev_addr description: The LoRaWAN DevAddr. in: query required: false type: string format: string - name: field_mask description: 'The names of the end device fields that should be returned. See the API reference for which fields can be returned by the different services.' in: query required: false type: string tags: - JsEndDeviceRegistry /js/default_join_eui: get: summary: Request the default JoinEUI that is configured for this Join Server. operationId: Js_GetDefaultJoinEUI responses: '200': description: A successful response. schema: $ref: '#/definitions/v3GetDefaultJoinEUIResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' tags: - Js /js/join_eui_prefixes: get: summary: Request the JoinEUI prefixes that are configured for this Join Server. operationId: Js_GetJoinEUIPrefixes responses: '200': description: A successful response. schema: $ref: '#/definitions/v3JoinEUIPrefixes' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' tags: - Js definitions: ADRSettingsDynamicMode: type: object properties: margin: type: number format: float description: 'The ADR margin (dB) tells the network server how much margin it should add in ADR requests. A bigger margin is less efficient, but gives a better chance of successful reception. If unset, the default value from Network Server configuration will be used.' min_data_rate_index: $ref: '#/definitions/v3DataRateIndexValue' description: 'Minimum data rate index. If unset, the default value from Network Server configuration will be used.' max_data_rate_index: $ref: '#/definitions/v3DataRateIndexValue' description: 'Maximum data rate index. If unset, the default value from Network Server configuration will be used.' min_tx_power_index: type: integer format: int64 description: 'Minimum transmission power index. If unset, the default value from Network Server configuration will be used.' max_tx_power_index: type: integer format: int64 description: 'Maximum transmission power index. If unset, the default value from Network Server configuration will be used.' min_nb_trans: type: integer format: int64 description: 'Minimum number of retransmissions. If unset, the default value from Network Server configuration will be used.' max_nb_trans: type: integer format: int64 description: 'Maximum number of retransmissions. If unset, the default value from Network Server configuration will be used.' channel_steering: $ref: '#/definitions/DynamicModeChannelSteeringSettings' overrides: $ref: '#/definitions/DynamicModeOverrides' description: Configuration options for dynamic ADR. ADRSettingsStaticMode: type: object properties: data_rate_index: $ref: '#/definitions/v3DataRateIndex' description: Data rate index to use. tx_power_index: type: integer format: int64 description: Transmission power index to use. nb_trans: type: integer format: int64 description: Number of retransmissions. description: Configuration options for static ADR. ApplicationDownlinkClassBC: type: object properties: gateways: type: array items: type: object $ref: '#/definitions/v3ClassBCGatewayIdentifiers' description: 'Possible gateway identifiers, antenna index, and group index to use for this downlink message. The Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot. If none of the gateways can be selected, the downlink message fails. If empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks. If group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.' absolute_time: type: string format: date-time description: 'Absolute time when the downlink message should be transmitted. This requires the gateway to have GPS time synchronization. If the time is in the past or if there is a scheduling conflict, the downlink message fails. If null, the time is selected based on slot availability. This is recommended in class B mode.' ApplicationDownlinkConfirmedRetry: type: object properties: attempt: type: integer format: int64 description: The number of attempted confirmed downlink acknowledgements. max_attempts: type: integer format: int64 description: 'The maximum number of confirmed downlink acknowledgement attempts. If null, the Application Server configuration is used instead.' ChannelSteeringSettingsLoRaNarrowMode: type: object description: 'Configuration options for LoRa narrow channels steering. The narrow mode attempts to steer the end device towards using the LoRa modulated, 125kHz bandwidth channels.' DownlinkMessageMessageMACPayload: type: object properties: f_port: type: integer format: int64 full_f_cnt: type: integer format: int64 DownlinkMessageMessageMHDR: type: object properties: m_type: $ref: '#/definitions/v3MType' DynamicModeChannelSteeringSettings: type: object properties: lora_narrow: $ref: '#/definitions/ChannelSteeringSettingsLoRaNarrowMode' disabled: $ref: '#/definitions/DynamicModeChannelSteeringSettingsDisabledMode' description: 'EXPERIMENTAL: Channel steering settings.' DynamicModeChannelSteeringSettingsDisabledMode: type: object description: 'Configuration options for cases in which ADR is not supposed to steer the end device to another set of channels.' DynamicModeOverrides: type: object properties: data_rate_0: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_1: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_2: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_3: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_4: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_5: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_6: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_7: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_8: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_9: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_10: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_11: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_12: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_13: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_14: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_15: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' description: 'EXPERIMENTAL: Configuration overrides.' DynamicModePerDataRateIndexOverride: type: object properties: min_nb_trans: type: integer format: int64 description: 'Minimum number of retransmissions. If unset, the default value from Network Server configuration will be used.' max_nb_trans: type: integer format: int64 description: 'Maximum number of retransmissions. If unset, the default value from Network Server configuration will be used.' description: 'EXPERIMENTAL: Data rate index override settings.' JsEndDeviceRegistryProvisionBody: type: object properties: application_ids: type: object provisioner_id: type: string description: ID of the provisioner service as configured in the Join Server. provisioning_data: type: string format: byte description: Vendor-specific provisioning data. list: $ref: '#/definitions/ProvisionEndDevicesRequestIdentifiersList' description: 'List of device identifiers that will be provisioned. The device identifiers must contain device_id and dev_eui. If set, the application_ids must equal the provision request''s application_ids. The number of entries in data must match the number of given identifiers.' range: $ref: '#/definitions/ProvisionEndDevicesRequestIdentifiersRange' description: 'Provision devices in a range. The device_id will be generated by the provisioner from the vendor-specific data. The dev_eui will be issued from the given start_dev_eui.' from_data: $ref: '#/definitions/ProvisionEndDevicesRequestIdentifiersFromData' description: 'Provision devices with identifiers from the given data. The device_id and dev_eui will be generated by the provisioner from the vendor-specific data.' MACCommandADRParamSetupReq: type: object properties: adr_ack_limit_exponent: $ref: '#/definitions/v3ADRAckLimitExponent' description: Exponent e that configures the ADR_ACK_LIMIT = 2^e messages. adr_ack_delay_exponent: $ref: '#/definitions/v3ADRAckDelayExponent' description: Exponent e that configures the ADR_ACK_DELAY = 2^e messages. MACCommandBeaconFreqAns: type: object properties: frequency_ack: type: boolean MACCommandBeaconFreqReq: type: object properties: frequency: type: string format: uint64 description: Frequency of the Class B beacons (Hz). MACCommandBeaconTimingAns: type: object properties: delay: type: integer format: int64 description: (uint16) See LoRaWAN specification. channel_index: type: integer format: int64 MACCommandDLChannelAns: type: object properties: channel_index_ack: type: boolean frequency_ack: type: boolean MACCommandDLChannelReq: type: object properties: channel_index: type: integer format: int64 frequency: type: string format: uint64 description: Downlink channel frequency (Hz). MACCommandDevStatusAns: type: object properties: battery: type: integer format: int64 description: 'Device battery status. 0 indicates that the device is connected to an external power source. 1..254 indicates a battery level. 255 indicates that the device was not able to measure the battery level.' margin: type: integer format: int32 description: SNR of the last downlink (dB; [-32, +31]). MACCommandDeviceModeConf: type: object properties: class: $ref: '#/definitions/v3Class' MACCommandDeviceModeInd: type: object properties: class: $ref: '#/definitions/v3Class' MACCommandDeviceTimeAns: type: object properties: time: type: string format: date-time MACCommandDutyCycleReq: type: object properties: max_duty_cycle: $ref: '#/definitions/v3AggregatedDutyCycle' MACCommandForceRejoinReq: type: object properties: rejoin_type: $ref: '#/definitions/v3RejoinRequestType' data_rate_index: $ref: '#/definitions/v3DataRateIndex' max_retries: type: integer format: int64 period_exponent: $ref: '#/definitions/v3RejoinPeriodExponent' description: Exponent e that configures the rejoin period = 32 * 2^e + rand(0,32) seconds. MACCommandLinkADRAns: type: object properties: channel_mask_ack: type: boolean data_rate_index_ack: type: boolean tx_power_index_ack: type: boolean MACCommandLinkADRReq: type: object properties: data_rate_index: $ref: '#/definitions/v3DataRateIndex' tx_power_index: type: integer format: int64 channel_mask: type: array items: type: boolean channel_mask_control: type: integer format: int64 nb_trans: type: integer format: int64 MACCommandLinkCheckAns: type: object properties: margin: type: integer format: int64 description: Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor. gateway_count: type: integer format: int64 MACCommandNewChannelAns: type: object properties: frequency_ack: type: boolean data_rate_ack: type: boolean MACCommandNewChannelReq: type: object properties: channel_index: type: integer format: int64 frequency: type: string format: uint64 description: Channel frequency (Hz). min_data_rate_index: $ref: '#/definitions/v3DataRateIndex' max_data_rate_index: $ref: '#/definitions/v3DataRateIndex' MACCommandPingSlotChannelAns: type: object properties: frequency_ack: type: boolean data_rate_index_ack: type: boolean MACCommandPingSlotChannelReq: type: object properties: frequency: type: string format: uint64 description: Ping slot channel frequency (Hz). data_rate_index: $ref: '#/definitions/v3DataRateIndex' MACCommandPingSlotInfoReq: type: object properties: period: $ref: '#/definitions/v3PingSlotPeriod' MACCommandRejoinParamSetupAns: type: object properties: max_time_exponent_ack: type: boolean MACCommandRejoinParamSetupReq: type: object properties: max_count_exponent: $ref: '#/definitions/v3RejoinCountExponent' description: Exponent e that configures the rejoin counter = 2^(e+4) messages. max_time_exponent: $ref: '#/definitions/v3RejoinTimeExponent' description: Exponent e that configures the rejoin timer = 2^(e+10) seconds. MACCommandRekeyConf: type: object properties: minor_version: $ref: '#/definitions/v3Minor' MACCommandRekeyInd: type: object properties: minor_version: $ref: '#/definitions/v3Minor' MACCommandRelayConfAns: type: object properties: second_channel_frequency_ack: type: boolean second_channel_ack_offset_ack: type: boolean second_channel_data_rate_index_ack: type: boolean second_channel_index_ack: type: boolean default_channel_index_ack: type: boolean cad_periodicity_ack: type: boolean MACCommandRelayConfReq: type: object properties: configuration: $ref: '#/definitions/MACCommandRelayConfReqConfiguration' MACCommandRelayConfReqConfiguration: type: object properties: second_channel: $ref: '#/definitions/v3RelaySecondChannel' default_channel_index: type: integer format: int64 cad_periodicity: $ref: '#/definitions/v3RelayCADPeriodicity' MACCommandRelayConfigureFwdLimitAns: type: object MACCommandRelayConfigureFwdLimitReq: type: object properties: reset_limit_counter: $ref: '#/definitions/v3RelayResetLimitCounter' join_request_limits: $ref: '#/definitions/v3RelayForwardLimits' notify_limits: $ref: '#/definitions/v3RelayForwardLimits' global_uplink_limits: $ref: '#/definitions/v3RelayForwardLimits' overall_limits: $ref: '#/definitions/v3RelayForwardLimits' MACCommandRelayCtrlUplinkListAns: type: object properties: rule_index_ack: type: boolean w_f_cnt: type: integer format: int64 MACCommandRelayCtrlUplinkListReq: type: object properties: rule_index: type: integer format: int64 action: $ref: '#/definitions/v3RelayCtrlUplinkListAction' MACCommandRelayEndDeviceConfAns: type: object properties: second_channel_frequency_ack: type: boolean second_channel_data_rate_index_ack: type: boolean second_channel_index_ack: type: boolean backoff_ack: type: boolean MACCommandRelayEndDeviceConfReq: type: object properties: configuration: $ref: '#/definitions/MACCommandRelayEndDeviceConfReqConfiguration' MACCommandRelayEndDeviceConfReqConfiguration: type: object properties: always: $ref: '#/definitions/v3RelayEndDeviceAlwaysMode' dynamic: $ref: '#/definitions/v3RelayEndDeviceDynamicMode' end_device_controlled: $ref: '#/definitions/v3RelayEndDeviceControlledMode' backoff: type: integer format: int64 second_channel: $ref: '#/definitions/v3RelaySecondChannel' serving_device_id: type: string MACCommandRelayNotifyNewEndDeviceReq: type: object properties: dev_addr: type: string format: string example: 2600ABCD snr: type: integer format: int32 rssi: type: integer format: int32 MACCommandRelayUpdateUplinkListAns: type: object MACCommandRelayUpdateUplinkListReq: type: object properties: rule_index: type: integer format: int64 forward_limits: $ref: '#/definitions/v3RelayUplinkForwardLimits' dev_addr: type: string format: string example: 2600ABCD w_f_cnt: type: integer format: int64 root_wor_s_key: type: string format: string example: 0123456789ABCDEF0123456789ABCDEF device_id: type: string session_key_id: type: string format: byte MACCommandResetConf: type: object properties: minor_version: $ref: '#/definitions/v3Minor' MACCommandResetInd: type: object properties: minor_version: $ref: '#/definitions/v3Minor' MACCommandRxParamSetupAns: type: object properties: rx2_data_rate_index_ack: type: boolean rx1_data_rate_offset_ack: type: boolean rx2_frequency_ack: type: boolean MACCommandRxParamSetupReq: type: object properties: rx2_data_rate_index: $ref: '#/definitions/v3DataRateIndex' rx1_data_rate_offset: $ref: '#/definitions/v3DataRateOffset' rx2_frequency: type: string format: uint64 description: Rx2 frequency (Hz). MACCommandRxTimingSetupReq: type: object properties: delay: $ref: '#/definitions/v3RxDelay' MACCommandTxParamSetupReq: type: object properties: max_eirp_index: $ref: '#/definitions/v3DeviceEIRP' title: 'Indicates the maximum EIRP value in dBm, indexed by the following vector: [ 8 10 12 13 14 16 18 20 21 24 26 27 29 30 33 36 ]' uplink_dwell_time: type: boolean downlink_dwell_time: type: boolean MACStateDataRateRange: type: object properties: min_data_rate_index: $ref: '#/definitions/v3DataRateIndex' max_data_rate_index: $ref: '#/definitions/v3DataRateIndex' MACStateDataRateRanges: type: object properties: ranges: type: array items: type: object $ref: '#/definitions/MACStateDataRateRange' MACStateDownlinkMessageMessage: type: object properties: m_hdr: $ref: '#/definitions/DownlinkMessageMessageMHDR' mac_payload: $ref: '#/definitions/DownlinkMessageMessageMACPayload' MACStateJoinAccept: type: object properties: payload: type: string format: byte description: Payload of the join-accept received from Join Server. request: $ref: '#/definitions/v3MACStateJoinRequest' keys: $ref: '#/definitions/v3SessionKeys' description: Network session keys associated with the join. correlation_ids: type: array items: type: string dev_addr: type: string format: string example: 2600ABCD net_id: type: string format: string example: '000013' MACStateUplinkMessageRxMetadata: type: object properties: gateway_ids: $ref: '#/definitions/lorawanv3GatewayIdentifiers' channel_rssi: type: number format: float snr: type: number format: float downlink_path_constraint: $ref: '#/definitions/v3DownlinkPathConstraint' uplink_token: type: string format: byte packet_broker: $ref: '#/definitions/UplinkMessageRxMetadataPacketBrokerMetadata' relay: $ref: '#/definitions/UplinkMessageRxMetadataRelayMetadata' MACStateUplinkMessageTxSettings: type: object properties: data_rate: $ref: '#/definitions/v3DataRate' PictureEmbedded: type: object properties: mime_type: type: string description: MIME type of the picture. data: type: string format: byte description: 'Picture data. A data URI can be constructed as follows: `data:;base64,`.' ProvisionEndDevicesRequestIdentifiersFromData: type: object properties: join_eui: type: string format: string example: 70B3D57ED000ABCD ProvisionEndDevicesRequestIdentifiersList: type: object properties: join_eui: type: string format: string example: 70B3D57ED000ABCD end_device_ids: type: array items: type: object $ref: '#/definitions/v3EndDeviceIdentifiers' ProvisionEndDevicesRequestIdentifiersRange: type: object properties: join_eui: type: string format: string example: 70B3D57ED000ABCD start_dev_eui: type: string format: string example: 70B3D57ED000ABCD description: DevEUI to start issuing from. UplinkMessageRxMetadataPacketBrokerMetadata: type: object UplinkMessageRxMetadataRelayMetadata: type: object googlerpcStatus: type: object properties: code: type: integer format: int32 message: type: string details: type: array items: type: object $ref: '#/definitions/protobufAny' lorawanv3BoolValue: type: object properties: value: type: boolean lorawanv3GatewayIdentifiers: type: object properties: gateway_id: type: string eui: type: string format: string example: 70B3D57ED000ABCD description: Secondary identifier, which can only be used in specific requests. lorawanv3Location: type: object properties: latitude: type: number format: double description: The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative. longitude: type: number format: double description: The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative. altitude: type: integer format: int32 description: The altitude (meters), where 0 is the mean sea level. accuracy: type: integer format: int32 description: The accuracy of the location (meters). source: $ref: '#/definitions/v3LocationSource' description: Source of the location information. lorawanv3MACPayload: type: object properties: f_hdr: $ref: '#/definitions/v3FHDR' f_port: type: integer format: int64 frm_payload: type: string format: byte decoded_payload: type: object full_f_cnt: type: integer format: int64 description: Full 32-bit FCnt value. Used internally by Network Server. lorawanv3MHDR: type: object properties: m_type: $ref: '#/definitions/v3MType' major: $ref: '#/definitions/v3Major' lorawanv3Message: type: object properties: m_hdr: $ref: '#/definitions/lorawanv3MHDR' mic: type: string format: byte mac_payload: $ref: '#/definitions/lorawanv3MACPayload' join_request_payload: $ref: '#/definitions/v3JoinRequestPayload' join_accept_payload: $ref: '#/definitions/v3JoinAcceptPayload' rejoin_request_payload: $ref: '#/definitions/v3RejoinRequestPayload' title: Message represents a LoRaWAN message lorawanv3RelayParameters: type: object properties: serving: $ref: '#/definitions/v3ServingRelayParameters' description: Parameters related to a relay which is serving end devices. served: $ref: '#/definitions/v3ServedRelayParameters' description: Parameters related to an end device served by a relay. description: 'RelayParameters represent the parameters of a relay. This is used internally by the Network Server.' protobufAny: type: object properties: '@type': type: string description: "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This\ \ string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully\ \ qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n\ (e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\n\ expect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one\ \ can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme\ \ is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary\ \ format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have\ \ them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n\ \ on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is\ \ not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\ \ As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes\ \ other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." additionalProperties: {} description: "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type\ \ of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility\ \ functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n \ \ Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(&foo)) {\n ...\n }\n\n\ Example 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class))\ \ {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n\ \ foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n \ \ foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n\ \ ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := &pb.Foo{...}\n any, err := anypb.New(foo)\n\ \ if err != nil {\n ...\n }\n ...\n foo := &pb.Foo{}\n if err := any.UnmarshalTo(foo); err\ \ != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name'\ \ as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL,\ \ for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any`\ \ value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which\ \ contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n\ \ string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \ \ \"firstName\": ,\n \"lastName\": \n }\n\nIf the embedded message type is well-known and has\ \ a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom\ \ JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\"\ : \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" v3ADRAckDelayExponent: type: string enum: - ADR_ACK_DELAY_1 - ADR_ACK_DELAY_2 - ADR_ACK_DELAY_4 - ADR_ACK_DELAY_8 - ADR_ACK_DELAY_16 - ADR_ACK_DELAY_32 - ADR_ACK_DELAY_64 - ADR_ACK_DELAY_128 - ADR_ACK_DELAY_256 - ADR_ACK_DELAY_512 - ADR_ACK_DELAY_1024 - ADR_ACK_DELAY_2048 - ADR_ACK_DELAY_4096 - ADR_ACK_DELAY_8192 - ADR_ACK_DELAY_16384 - ADR_ACK_DELAY_32768 default: ADR_ACK_DELAY_1 v3ADRAckDelayExponentValue: type: object properties: value: $ref: '#/definitions/v3ADRAckDelayExponent' v3ADRAckLimitExponent: type: string enum: - ADR_ACK_LIMIT_1 - ADR_ACK_LIMIT_2 - ADR_ACK_LIMIT_4 - ADR_ACK_LIMIT_8 - ADR_ACK_LIMIT_16 - ADR_ACK_LIMIT_32 - ADR_ACK_LIMIT_64 - ADR_ACK_LIMIT_128 - ADR_ACK_LIMIT_256 - ADR_ACK_LIMIT_512 - ADR_ACK_LIMIT_1024 - ADR_ACK_LIMIT_2048 - ADR_ACK_LIMIT_4096 - ADR_ACK_LIMIT_8192 - ADR_ACK_LIMIT_16384 - ADR_ACK_LIMIT_32768 default: ADR_ACK_LIMIT_1 v3ADRAckLimitExponentValue: type: object properties: value: $ref: '#/definitions/v3ADRAckLimitExponent' v3ADRSettings: type: object properties: static: $ref: '#/definitions/ADRSettingsStaticMode' dynamic: $ref: '#/definitions/ADRSettingsDynamicMode' disabled: $ref: '#/definitions/v3ADRSettingsDisabledMode' description: Adaptive Data Rate settings. v3ADRSettingsDisabledMode: type: object description: 'Configuration options for cases in which ADR is to be disabled completely.' v3AggregatedDutyCycle: type: string enum: - DUTY_CYCLE_1 - DUTY_CYCLE_2 - DUTY_CYCLE_4 - DUTY_CYCLE_8 - DUTY_CYCLE_16 - DUTY_CYCLE_32 - DUTY_CYCLE_64 - DUTY_CYCLE_128 - DUTY_CYCLE_256 - DUTY_CYCLE_512 - DUTY_CYCLE_1024 - DUTY_CYCLE_2048 - DUTY_CYCLE_4096 - DUTY_CYCLE_8192 - DUTY_CYCLE_16384 - DUTY_CYCLE_32768 default: DUTY_CYCLE_1 description: " - DUTY_CYCLE_1: 100%.\n - DUTY_CYCLE_2: 50%.\n - DUTY_CYCLE_4: 25%.\n - DUTY_CYCLE_8: 12.5%.\n - DUTY_CYCLE_16:\ \ 6.25%.\n - DUTY_CYCLE_32: 3.125%.\n - DUTY_CYCLE_64: 1.5625%.\n - DUTY_CYCLE_128: Roughly 0.781%.\n - DUTY_CYCLE_256:\ \ Roughly 0.390%.\n - DUTY_CYCLE_512: Roughly 0.195%.\n - DUTY_CYCLE_1024: Roughly 0.098%.\n - DUTY_CYCLE_2048: Roughly\ \ 0.049%.\n - DUTY_CYCLE_4096: Roughly 0.024%.\n - DUTY_CYCLE_8192: Roughly 0.012%.\n - DUTY_CYCLE_16384: Roughly 0.006%.\n\ \ - DUTY_CYCLE_32768: Roughly 0.003%." v3AggregatedDutyCycleValue: type: object properties: value: $ref: '#/definitions/v3AggregatedDutyCycle' v3ApplicationDownlink: type: object properties: session_key_id: type: string format: byte description: Join Server issued identifier for the session keys used by this downlink. f_port: type: integer format: int64 f_cnt: type: integer format: int64 frm_payload: type: string format: byte description: 'The frame payload of the downlink message. The payload is encrypted if the skip_payload_crypto field of the EndDevice is true.' decoded_payload: type: object description: 'The decoded frame payload of the downlink message. When scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters), this fields acts as input for the downlink encoder, and the output is set to frm_payload. When reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.' decoded_payload_warnings: type: array items: type: string description: Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink). confirmed: type: boolean class_b_c: $ref: '#/definitions/ApplicationDownlinkClassBC' description: 'Optional gateway and timing information for class B and C. If set, this downlink message will only be transmitted as class B or C downlink. If not set, this downlink message may be transmitted in class A, B and C.' priority: $ref: '#/definitions/v3TxSchedulePriority' description: Priority for scheduling the downlink message. correlation_ids: type: array items: type: string confirmed_retry: $ref: '#/definitions/ApplicationDownlinkConfirmedRetry' locations: type: object additionalProperties: $ref: '#/definitions/lorawanv3Location' description: End device location metadata, set by the Application Server while handling the message. version_ids: $ref: '#/definitions/v3EndDeviceVersionIdentifiers' description: End device version identifiers, set by the Application Server while handling the message. network_ids: $ref: '#/definitions/v3NetworkIdentifiers' description: Network identifiers, set by the Network Server that handles the message. attributes: type: object additionalProperties: type: string description: Attributes for devices, set by the Application Server while handling the message. v3ApplicationIdentifiers: type: object properties: application_id: type: string v3CFList: type: object properties: type: $ref: '#/definitions/v3CFListType' freq: type: array items: type: integer format: int64 description: 'Frequencies to be broadcasted, in hecto-Hz. These values are broadcasted as 24 bits unsigned integers. This field should not contain default values.' ch_masks: type: array items: type: boolean description: 'ChMasks controlling the channels to be used. Length of this field must be equal to the amount of uplink channels defined by the selected frequency plan.' v3CFListType: type: string enum: - FREQUENCIES - CHANNEL_MASKS default: FREQUENCIES v3Class: type: string enum: - CLASS_A - CLASS_B - CLASS_C default: CLASS_A v3ClassBCGatewayIdentifiers: type: object properties: gateway_ids: $ref: '#/definitions/lorawanv3GatewayIdentifiers' antenna_index: type: integer format: int64 group_index: type: integer format: int64 v3DLSettings: type: object properties: rx1_dr_offset: $ref: '#/definitions/v3DataRateOffset' rx2_dr: $ref: '#/definitions/v3DataRateIndex' opt_neg: type: boolean description: OptNeg is set if Network Server implements LoRaWAN 1.1 or greater. v3DataRate: type: object properties: lora: $ref: '#/definitions/v3LoRaDataRate' fsk: $ref: '#/definitions/v3FSKDataRate' lrfhss: $ref: '#/definitions/v3LRFHSSDataRate' v3DataRateIndex: type: string enum: - DATA_RATE_0 - DATA_RATE_1 - DATA_RATE_2 - DATA_RATE_3 - DATA_RATE_4 - DATA_RATE_5 - DATA_RATE_6 - DATA_RATE_7 - DATA_RATE_8 - DATA_RATE_9 - DATA_RATE_10 - DATA_RATE_11 - DATA_RATE_12 - DATA_RATE_13 - DATA_RATE_14 - DATA_RATE_15 default: DATA_RATE_0 v3DataRateIndexValue: type: object properties: value: $ref: '#/definitions/v3DataRateIndex' v3DataRateOffset: type: string enum: - DATA_RATE_OFFSET_0 - DATA_RATE_OFFSET_1 - DATA_RATE_OFFSET_2 - DATA_RATE_OFFSET_3 - DATA_RATE_OFFSET_4 - DATA_RATE_OFFSET_5 - DATA_RATE_OFFSET_6 - DATA_RATE_OFFSET_7 default: DATA_RATE_OFFSET_0 v3DataRateOffsetValue: type: object properties: value: $ref: '#/definitions/v3DataRateOffset' v3DeviceEIRP: type: string enum: - DEVICE_EIRP_8 - DEVICE_EIRP_10 - DEVICE_EIRP_12 - DEVICE_EIRP_13 - DEVICE_EIRP_14 - DEVICE_EIRP_16 - DEVICE_EIRP_18 - DEVICE_EIRP_20 - DEVICE_EIRP_21 - DEVICE_EIRP_24 - DEVICE_EIRP_26 - DEVICE_EIRP_27 - DEVICE_EIRP_29 - DEVICE_EIRP_30 - DEVICE_EIRP_33 - DEVICE_EIRP_36 default: DEVICE_EIRP_8 description: " - DEVICE_EIRP_8: 8 dBm.\n - DEVICE_EIRP_10: 10 dBm.\n - DEVICE_EIRP_12: 12 dBm.\n - DEVICE_EIRP_13: 13\ \ dBm.\n - DEVICE_EIRP_14: 14 dBm.\n - DEVICE_EIRP_16: 16 dBm.\n - DEVICE_EIRP_18: 18 dBm.\n - DEVICE_EIRP_20: 20 dBm.\n\ \ - DEVICE_EIRP_21: 21 dBm.\n - DEVICE_EIRP_24: 24 dBm.\n - DEVICE_EIRP_26: 26 dBm.\n - DEVICE_EIRP_27: 27 dBm.\n -\ \ DEVICE_EIRP_29: 29 dBm.\n - DEVICE_EIRP_30: 30 dBm.\n - DEVICE_EIRP_33: 33 dBm.\n - DEVICE_EIRP_36: 36 dBm." v3DeviceEIRPValue: type: object properties: value: $ref: '#/definitions/v3DeviceEIRP' v3DownlinkPathConstraint: type: string enum: - DOWNLINK_PATH_CONSTRAINT_NONE - DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER - DOWNLINK_PATH_CONSTRAINT_NEVER default: DOWNLINK_PATH_CONSTRAINT_NONE description: " - DOWNLINK_PATH_CONSTRAINT_NONE: Indicates that the gateway can be selected for downlink without constraints\ \ by the Network Server.\n - DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER: Indicates that the gateway can be selected for downlink\ \ only if no other or better gateway can be selected.\n - DOWNLINK_PATH_CONSTRAINT_NEVER: Indicates that this gateway\ \ will never be selected for downlink, even if that results in no available downlink path." v3EndDevice: type: object properties: ids: $ref: '#/definitions/v3EndDeviceIdentifiers' created_at: type: string format: date-time updated_at: type: string format: date-time name: type: string description: Friendly name of the device. Stored in Entity Registry. description: type: string description: Description of the device. Stored in Entity Registry. attributes: type: object additionalProperties: type: string description: Key-value attributes for this end device. Typically used for organizing end devices or for storing integration-specific data. Stored in Entity Registry. version_ids: $ref: '#/definitions/v3EndDeviceVersionIdentifiers' description: Version Identifiers. Stored in Entity Registry, Network Server and Application Server. service_profile_id: type: string description: Default service profile. Stored in Entity Registry. network_server_address: type: string description: 'The address of the Network Server where this device is supposed to be registered. Stored in Entity Registry and Join Server. The typical format of the address is "host:port". If the port is omitted, the normal port inference (with DNS lookup, otherwise defaults) is used. The connection shall be established with transport layer security (TLS). Custom certificate authorities may be configured out-of-band.' network_server_kek_label: type: string description: 'The KEK label of the Network Server to use for wrapping network session keys. Stored in Join Server.' application_server_address: type: string description: 'The address of the Application Server where this device is supposed to be registered. Stored in Entity Registry and Join Server. The typical format of the address is "host:port". If the port is omitted, the normal port inference (with DNS lookup, otherwise defaults) is used. The connection shall be established with transport layer security (TLS). Custom certificate authorities may be configured out-of-band.' application_server_kek_label: type: string description: 'The KEK label of the Application Server to use for wrapping the application session key. Stored in Join Server.' application_server_id: type: string description: 'The AS-ID of the Application Server to use. Stored in Join Server.' join_server_address: type: string description: 'The address of the Join Server where this device is supposed to be registered. Stored in Entity Registry. The typical format of the address is "host:port". If the port is omitted, the normal port inference (with DNS lookup, otherwise defaults) is used. The connection shall be established with transport layer security (TLS). Custom certificate authorities may be configured out-of-band.' locations: type: object additionalProperties: $ref: '#/definitions/lorawanv3Location' description: Location of the device. Stored in Entity Registry. picture: $ref: '#/definitions/v3Picture' description: Stored in Entity Registry. supports_class_b: type: boolean description: 'Whether the device supports class B. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' supports_class_c: type: boolean description: 'Whether the device supports class C. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' lorawan_version: $ref: '#/definitions/v3MACVersion' description: 'LoRaWAN MAC version. Stored in Network Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' lorawan_phy_version: $ref: '#/definitions/v3PHYVersion' description: 'LoRaWAN PHY version. Stored in Network Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' frequency_plan_id: type: string description: 'ID of the frequency plan used by this device. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' min_frequency: type: string format: uint64 description: 'Minimum frequency the device is capable of using (Hz). Stored in Network Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' max_frequency: type: string format: uint64 description: 'Maximum frequency the device is capable of using (Hz). Stored in Network Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' supports_join: type: boolean description: 'The device supports join (it''s OTAA). Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' resets_join_nonces: type: boolean description: 'Whether the device resets the join and dev nonces (not LoRaWAN compliant). Stored in Join Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' root_keys: $ref: '#/definitions/v3RootKeys' description: Device root keys. Stored in Join Server. net_id: type: string format: string example: '000013' description: Home NetID. Stored in Join Server. mac_settings: $ref: '#/definitions/v3MACSettings' description: 'Settings for how the Network Server handles MAC layer for this device. Stored in Network Server. Mutually exclusive with MAC settings profile.' mac_state: $ref: '#/definitions/v3MACState' description: MAC state of the device. Stored in Network Server. pending_mac_state: $ref: '#/definitions/v3MACState' description: Pending MAC state of the device. Stored in Network Server. session: $ref: '#/definitions/v3Session' description: Current session of the device. Stored in Network Server and Application Server. pending_session: $ref: '#/definitions/v3Session' description: Pending session. Stored in Network Server and Application Server until RekeyInd is received. last_dev_nonce: type: integer format: int64 description: 'Last DevNonce used. This field is only used for devices using LoRaWAN version 1.1 and later. Stored in Join Server.' used_dev_nonces: type: array items: type: integer format: int64 description: 'Used DevNonces sorted in ascending order. This field is only used for devices using LoRaWAN versions preceding 1.1. Stored in Join Server.' last_join_nonce: type: integer format: int64 description: 'Last JoinNonce/AppNonce(for devices using LoRaWAN versions preceding 1.1) used. Stored in Join Server.' last_rj_count_0: type: integer format: int64 description: 'Last Rejoin counter value used (type 0/2). Stored in Join Server.' last_rj_count_1: type: integer format: int64 description: 'Last Rejoin counter value used (type 1). Stored in Join Server.' last_dev_status_received_at: type: string format: date-time description: 'Time when last DevStatus MAC command was received. Stored in Network Server.' power_state: $ref: '#/definitions/v3PowerState' description: 'The power state of the device; whether it is battery-powered or connected to an external power source. Received via the DevStatus MAC command at status_received_at. Stored in Network Server.' battery_percentage: type: number format: float description: 'Latest-known battery percentage of the device. Received via the DevStatus MAC command at last_dev_status_received_at or earlier. Stored in Network Server.' downlink_margin: type: integer format: int32 description: 'Demodulation signal-to-noise ratio (dB). Received via the DevStatus MAC command at last_dev_status_received_at. Stored in Network Server.' queued_application_downlinks: type: array items: type: object $ref: '#/definitions/v3ApplicationDownlink' description: 'Queued Application downlink messages. Stored in Application Server, which sets them on the Network Server. This field is deprecated and is always set equal to session.queued_application_downlinks.' formatters: $ref: '#/definitions/v3MessagePayloadFormatters' description: 'The payload formatters for this end device. Stored in Application Server. Copied on creation from template identified by version_ids.' provisioner_id: type: string description: ID of the provisioner. Stored in Join Server. provisioning_data: type: object description: Vendor-specific provisioning data. Stored in Join Server. multicast: type: boolean description: Indicates whether this device represents a multicast group. claim_authentication_code: $ref: '#/definitions/v3EndDeviceAuthenticationCode' description: 'Authentication code to claim ownership of the end device. From TTS v3.21.0 this field is stored in the Identity Server. For TTS versions < 3.21.0, this field is stored in the Join Server. The value stored on the Identity Server takes precedence.' skip_payload_crypto: type: boolean description: 'Skip decryption of uplink payloads and encryption of downlink payloads. This field is deprecated, use skip_payload_crypto_override instead.' skip_payload_crypto_override: type: boolean description: 'Skip decryption of uplink payloads and encryption of downlink payloads. This field overrides the application-level setting.' activated_at: type: string format: date-time description: 'Timestamp when the device has been activated. Stored in the Entity Registry. This field is set by the Application Server when an end device sends its first uplink. The Application Server will use the field in order to avoid repeated calls to the Entity Registry. The field cannot be unset once set.' last_seen_at: type: string format: date-time description: 'Timestamp when a device uplink has been last observed. This field is set by the Application Server and stored in the Identity Server.' serial_number: type: string lora_alliance_profile_ids: $ref: '#/definitions/v3LoRaAllianceProfileIdentifiers' mac_settings_profile_ids: $ref: '#/definitions/v3MACSettingsProfileIdentifiers' description: 'MAC settings profile identifiers. Mutually exclusive with MAC settings.' description: 'Defines an End Device registration and its state on the network. The persistence of the EndDevice is divided between the Network Server, Application Server and Join Server. SDKs are responsible for combining (if desired) the three.' v3EndDeviceAuthenticationCode: type: object properties: value: type: string valid_from: type: string format: date-time valid_to: type: string format: date-time description: Authentication code for end devices. v3EndDeviceIdentifiers: type: object properties: device_id: type: string application_ids: $ref: '#/definitions/v3ApplicationIdentifiers' dev_eui: type: string format: string example: 70B3D57ED000ABCD description: The LoRaWAN DevEUI. join_eui: type: string format: string example: 70B3D57ED000ABCD description: The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices). dev_addr: type: string format: string example: 2600ABCD description: The LoRaWAN DevAddr. v3EndDeviceVersionIdentifiers: type: object properties: brand_id: type: string model_id: type: string hardware_version: type: string firmware_version: type: string band_id: type: string description: Identifies an end device model with version information. v3FCtrl: type: object properties: adr: type: boolean adr_ack_req: type: boolean description: Only on uplink. ack: type: boolean f_pending: type: boolean description: Only on downlink. class_b: type: boolean description: Only on uplink. v3FHDR: type: object properties: dev_addr: type: string format: string example: 2600ABCD f_ctrl: $ref: '#/definitions/v3FCtrl' f_cnt: type: integer format: int64 f_opts: type: string format: byte v3FSKDataRate: type: object properties: bit_rate: type: integer format: int64 description: Bit rate (bps). v3FrequencyValue: type: object properties: value: type: string format: uint64 v3GetDefaultJoinEUIResponse: type: object properties: join_eui: type: string format: string example: 70B3D57ED000ABCD v3JoinAcceptPayload: type: object properties: encrypted: type: string format: byte join_nonce: type: string format: string example: ABCDEF net_id: type: string format: string example: '000013' dev_addr: type: string format: string example: 2600ABCD dl_settings: $ref: '#/definitions/v3DLSettings' rx_delay: $ref: '#/definitions/v3RxDelay' cf_list: $ref: '#/definitions/v3CFList' v3JoinEUIPrefix: type: object properties: join_eui: type: string format: string example: 70B3D57ED000ABCD length: type: integer format: int64 v3JoinEUIPrefixes: type: object properties: prefixes: type: array items: type: object $ref: '#/definitions/v3JoinEUIPrefix' v3JoinRequestPayload: type: object properties: join_eui: type: string format: string example: 70B3D57ED000ABCD dev_eui: type: string format: string example: 70B3D57ED000ABCD dev_nonce: type: string format: string example: ABCD v3JsEndDeviceRegistrySetBody: type: object properties: end_device: type: object properties: ids: type: object properties: device_id: type: string application_ids: type: object dev_eui: type: string format: string example: 70B3D57ED000ABCD description: The LoRaWAN DevEUI. join_eui: type: string format: string example: 70B3D57ED000ABCD description: The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices). dev_addr: type: string format: string example: 2600ABCD description: The LoRaWAN DevAddr. created_at: type: string format: date-time updated_at: type: string format: date-time name: type: string description: Friendly name of the device. Stored in Entity Registry. description: type: string description: Description of the device. Stored in Entity Registry. attributes: type: object additionalProperties: type: string description: Key-value attributes for this end device. Typically used for organizing end devices or for storing integration-specific data. Stored in Entity Registry. version_ids: $ref: '#/definitions/v3EndDeviceVersionIdentifiers' description: Version Identifiers. Stored in Entity Registry, Network Server and Application Server. service_profile_id: type: string description: Default service profile. Stored in Entity Registry. network_server_address: type: string description: 'The address of the Network Server where this device is supposed to be registered. Stored in Entity Registry and Join Server. The typical format of the address is "host:port". If the port is omitted, the normal port inference (with DNS lookup, otherwise defaults) is used. The connection shall be established with transport layer security (TLS). Custom certificate authorities may be configured out-of-band.' network_server_kek_label: type: string description: 'The KEK label of the Network Server to use for wrapping network session keys. Stored in Join Server.' application_server_address: type: string description: 'The address of the Application Server where this device is supposed to be registered. Stored in Entity Registry and Join Server. The typical format of the address is "host:port". If the port is omitted, the normal port inference (with DNS lookup, otherwise defaults) is used. The connection shall be established with transport layer security (TLS). Custom certificate authorities may be configured out-of-band.' application_server_kek_label: type: string description: 'The KEK label of the Application Server to use for wrapping the application session key. Stored in Join Server.' application_server_id: type: string description: 'The AS-ID of the Application Server to use. Stored in Join Server.' join_server_address: type: string description: 'The address of the Join Server where this device is supposed to be registered. Stored in Entity Registry. The typical format of the address is "host:port". If the port is omitted, the normal port inference (with DNS lookup, otherwise defaults) is used. The connection shall be established with transport layer security (TLS). Custom certificate authorities may be configured out-of-band.' locations: type: object additionalProperties: $ref: '#/definitions/lorawanv3Location' description: Location of the device. Stored in Entity Registry. picture: $ref: '#/definitions/v3Picture' description: Stored in Entity Registry. supports_class_b: type: boolean description: 'Whether the device supports class B. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' supports_class_c: type: boolean description: 'Whether the device supports class C. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' lorawan_version: $ref: '#/definitions/v3MACVersion' description: 'LoRaWAN MAC version. Stored in Network Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' lorawan_phy_version: $ref: '#/definitions/v3PHYVersion' description: 'LoRaWAN PHY version. Stored in Network Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' frequency_plan_id: type: string description: 'ID of the frequency plan used by this device. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' min_frequency: type: string format: uint64 description: 'Minimum frequency the device is capable of using (Hz). Stored in Network Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' max_frequency: type: string format: uint64 description: 'Maximum frequency the device is capable of using (Hz). Stored in Network Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' supports_join: type: boolean description: 'The device supports join (it''s OTAA). Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' resets_join_nonces: type: boolean description: 'Whether the device resets the join and dev nonces (not LoRaWAN compliant). Stored in Join Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' root_keys: $ref: '#/definitions/v3RootKeys' description: Device root keys. Stored in Join Server. net_id: type: string format: string example: '000013' description: Home NetID. Stored in Join Server. mac_settings: $ref: '#/definitions/v3MACSettings' description: 'Settings for how the Network Server handles MAC layer for this device. Stored in Network Server. Mutually exclusive with MAC settings profile.' mac_state: $ref: '#/definitions/v3MACState' description: MAC state of the device. Stored in Network Server. pending_mac_state: $ref: '#/definitions/v3MACState' description: Pending MAC state of the device. Stored in Network Server. session: $ref: '#/definitions/v3Session' description: Current session of the device. Stored in Network Server and Application Server. pending_session: $ref: '#/definitions/v3Session' description: Pending session. Stored in Network Server and Application Server until RekeyInd is received. last_dev_nonce: type: integer format: int64 description: 'Last DevNonce used. This field is only used for devices using LoRaWAN version 1.1 and later. Stored in Join Server.' used_dev_nonces: type: array items: type: integer format: int64 description: 'Used DevNonces sorted in ascending order. This field is only used for devices using LoRaWAN versions preceding 1.1. Stored in Join Server.' last_join_nonce: type: integer format: int64 description: 'Last JoinNonce/AppNonce(for devices using LoRaWAN versions preceding 1.1) used. Stored in Join Server.' last_rj_count_0: type: integer format: int64 description: 'Last Rejoin counter value used (type 0/2). Stored in Join Server.' last_rj_count_1: type: integer format: int64 description: 'Last Rejoin counter value used (type 1). Stored in Join Server.' last_dev_status_received_at: type: string format: date-time description: 'Time when last DevStatus MAC command was received. Stored in Network Server.' power_state: $ref: '#/definitions/v3PowerState' description: 'The power state of the device; whether it is battery-powered or connected to an external power source. Received via the DevStatus MAC command at status_received_at. Stored in Network Server.' battery_percentage: type: number format: float description: 'Latest-known battery percentage of the device. Received via the DevStatus MAC command at last_dev_status_received_at or earlier. Stored in Network Server.' downlink_margin: type: integer format: int32 description: 'Demodulation signal-to-noise ratio (dB). Received via the DevStatus MAC command at last_dev_status_received_at. Stored in Network Server.' queued_application_downlinks: type: array items: type: object $ref: '#/definitions/v3ApplicationDownlink' description: 'Queued Application downlink messages. Stored in Application Server, which sets them on the Network Server. This field is deprecated and is always set equal to session.queued_application_downlinks.' formatters: $ref: '#/definitions/v3MessagePayloadFormatters' description: 'The payload formatters for this end device. Stored in Application Server. Copied on creation from template identified by version_ids.' provisioner_id: type: string description: ID of the provisioner. Stored in Join Server. provisioning_data: type: object description: Vendor-specific provisioning data. Stored in Join Server. multicast: type: boolean description: Indicates whether this device represents a multicast group. claim_authentication_code: $ref: '#/definitions/v3EndDeviceAuthenticationCode' description: 'Authentication code to claim ownership of the end device. From TTS v3.21.0 this field is stored in the Identity Server. For TTS versions < 3.21.0, this field is stored in the Join Server. The value stored on the Identity Server takes precedence.' skip_payload_crypto: type: boolean description: 'Skip decryption of uplink payloads and encryption of downlink payloads. This field is deprecated, use skip_payload_crypto_override instead.' skip_payload_crypto_override: type: boolean description: 'Skip decryption of uplink payloads and encryption of downlink payloads. This field overrides the application-level setting.' activated_at: type: string format: date-time description: 'Timestamp when the device has been activated. Stored in the Entity Registry. This field is set by the Application Server when an end device sends its first uplink. The Application Server will use the field in order to avoid repeated calls to the Entity Registry. The field cannot be unset once set.' last_seen_at: type: string format: date-time description: 'Timestamp when a device uplink has been last observed. This field is set by the Application Server and stored in the Identity Server.' serial_number: type: string lora_alliance_profile_ids: $ref: '#/definitions/v3LoRaAllianceProfileIdentifiers' mac_settings_profile_ids: $ref: '#/definitions/v3MACSettingsProfileIdentifiers' description: 'MAC settings profile identifiers. Mutually exclusive with MAC settings.' description: 'Defines an End Device registration and its state on the network. The persistence of the EndDevice is divided between the Network Server, Application Server and Join Server. SDKs are responsible for combining (if desired) the three.' field_mask: type: string description: 'The names of the end device fields that should be updated. See the API reference for which fields can be set on the different services.' v3KeyEnvelope: type: object properties: key: type: string format: string example: 0123456789ABCDEF0123456789ABCDEF description: The unencrypted AES key. kek_label: type: string description: The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key. encrypted_key: type: string format: byte v3LRFHSSDataRate: type: object properties: modulation_type: type: integer format: int64 operating_channel_width: type: integer format: int64 description: Operating Channel Width (Hz). coding_rate: type: string v3LoRaAllianceProfileIdentifiers: type: object properties: vendor_id: type: integer format: int64 description: VendorID managed by the LoRa Alliance, as defined in TR005. vendor_profile_id: type: integer format: int64 description: ID of the LoRaWAN end device profile assigned by the vendor. v3LoRaDataRate: type: object properties: bandwidth: type: integer format: int64 description: Bandwidth (Hz). spreading_factor: type: integer format: int64 coding_rate: type: string v3LocationSource: type: string enum: - SOURCE_UNKNOWN - SOURCE_GPS - SOURCE_REGISTRY - SOURCE_IP_GEOLOCATION - SOURCE_WIFI_RSSI_GEOLOCATION - SOURCE_BT_RSSI_GEOLOCATION - SOURCE_LORA_RSSI_GEOLOCATION - SOURCE_LORA_TDOA_GEOLOCATION - SOURCE_COMBINED_GEOLOCATION default: SOURCE_UNKNOWN description: " - SOURCE_UNKNOWN: The source of the location is not known or not set.\n - SOURCE_GPS: The location is determined\ \ by GPS.\n - SOURCE_REGISTRY: The location is set in and updated from a registry.\n - SOURCE_IP_GEOLOCATION: The location\ \ is estimated with IP geolocation.\n - SOURCE_WIFI_RSSI_GEOLOCATION: The location is estimated with WiFi RSSI geolocation.\n\ \ - SOURCE_BT_RSSI_GEOLOCATION: The location is estimated with BT/BLE RSSI geolocation.\n - SOURCE_LORA_RSSI_GEOLOCATION:\ \ The location is estimated with LoRa RSSI geolocation.\n - SOURCE_LORA_TDOA_GEOLOCATION: The location is estimated\ \ with LoRa TDOA geolocation.\n - SOURCE_COMBINED_GEOLOCATION: The location is estimated by a combination of geolocation\ \ sources.\n\nMore estimation methods can be added." v3MACCommand: type: object properties: cid: $ref: '#/definitions/v3MACCommandIdentifier' raw_payload: type: string format: byte reset_ind: $ref: '#/definitions/MACCommandResetInd' reset_conf: $ref: '#/definitions/MACCommandResetConf' link_check_ans: $ref: '#/definitions/MACCommandLinkCheckAns' link_adr_req: $ref: '#/definitions/MACCommandLinkADRReq' link_adr_ans: $ref: '#/definitions/MACCommandLinkADRAns' duty_cycle_req: $ref: '#/definitions/MACCommandDutyCycleReq' rx_param_setup_req: $ref: '#/definitions/MACCommandRxParamSetupReq' rx_param_setup_ans: $ref: '#/definitions/MACCommandRxParamSetupAns' dev_status_ans: $ref: '#/definitions/MACCommandDevStatusAns' new_channel_req: $ref: '#/definitions/MACCommandNewChannelReq' new_channel_ans: $ref: '#/definitions/MACCommandNewChannelAns' dl_channel_req: $ref: '#/definitions/MACCommandDLChannelReq' dl_channel_ans: $ref: '#/definitions/MACCommandDLChannelAns' rx_timing_setup_req: $ref: '#/definitions/MACCommandRxTimingSetupReq' tx_param_setup_req: $ref: '#/definitions/MACCommandTxParamSetupReq' rekey_ind: $ref: '#/definitions/MACCommandRekeyInd' rekey_conf: $ref: '#/definitions/MACCommandRekeyConf' adr_param_setup_req: $ref: '#/definitions/MACCommandADRParamSetupReq' device_time_ans: $ref: '#/definitions/MACCommandDeviceTimeAns' force_rejoin_req: $ref: '#/definitions/MACCommandForceRejoinReq' rejoin_param_setup_req: $ref: '#/definitions/MACCommandRejoinParamSetupReq' rejoin_param_setup_ans: $ref: '#/definitions/MACCommandRejoinParamSetupAns' ping_slot_info_req: $ref: '#/definitions/MACCommandPingSlotInfoReq' ping_slot_channel_req: $ref: '#/definitions/MACCommandPingSlotChannelReq' ping_slot_channel_ans: $ref: '#/definitions/MACCommandPingSlotChannelAns' beacon_timing_ans: $ref: '#/definitions/MACCommandBeaconTimingAns' beacon_freq_req: $ref: '#/definitions/MACCommandBeaconFreqReq' beacon_freq_ans: $ref: '#/definitions/MACCommandBeaconFreqAns' device_mode_ind: $ref: '#/definitions/MACCommandDeviceModeInd' device_mode_conf: $ref: '#/definitions/MACCommandDeviceModeConf' relay_conf_req: $ref: '#/definitions/MACCommandRelayConfReq' relay_conf_ans: $ref: '#/definitions/MACCommandRelayConfAns' relay_end_device_conf_req: $ref: '#/definitions/MACCommandRelayEndDeviceConfReq' relay_end_device_conf_ans: $ref: '#/definitions/MACCommandRelayEndDeviceConfAns' relay_update_uplink_list_req: $ref: '#/definitions/MACCommandRelayUpdateUplinkListReq' relay_update_uplink_list_ans: $ref: '#/definitions/MACCommandRelayUpdateUplinkListAns' relay_ctrl_uplink_list_req: $ref: '#/definitions/MACCommandRelayCtrlUplinkListReq' relay_ctrl_uplink_list_ans: $ref: '#/definitions/MACCommandRelayCtrlUplinkListAns' relay_configure_fwd_limit_req: $ref: '#/definitions/MACCommandRelayConfigureFwdLimitReq' relay_configure_fwd_limit_ans: $ref: '#/definitions/MACCommandRelayConfigureFwdLimitAns' relay_notify_new_end_device_req: $ref: '#/definitions/MACCommandRelayNotifyNewEndDeviceReq' v3MACCommandIdentifier: type: string enum: - CID_RFU_0 - CID_RESET - CID_LINK_CHECK - CID_LINK_ADR - CID_DUTY_CYCLE - CID_RX_PARAM_SETUP - CID_DEV_STATUS - CID_NEW_CHANNEL - CID_RX_TIMING_SETUP - CID_TX_PARAM_SETUP - CID_DL_CHANNEL - CID_REKEY - CID_ADR_PARAM_SETUP - CID_DEVICE_TIME - CID_FORCE_REJOIN - CID_REJOIN_PARAM_SETUP - CID_PING_SLOT_INFO - CID_PING_SLOT_CHANNEL - CID_BEACON_TIMING - CID_BEACON_FREQ - CID_DEVICE_MODE - CID_RELAY_CONF - CID_RELAY_END_DEVICE_CONF - CID_RELAY_FILTER_LIST - CID_RELAY_UPDATE_UPLINK_LIST - CID_RELAY_CTRL_UPLINK_LIST - CID_RELAY_CONFIGURE_FWD_LIMIT - CID_RELAY_NOTIFY_NEW_END_DEVICE default: CID_RFU_0 title: '- CID_BEACON_TIMING: Deprecated' v3MACParameters: type: object properties: max_eirp: type: number format: float description: Maximum EIRP (dBm). adr_data_rate_index: $ref: '#/definitions/v3DataRateIndex' description: 'ADR: data rate index to use.' adr_tx_power_index: type: integer format: int64 description: 'ADR: transmission power index to use.' adr_nb_trans: type: integer format: int64 description: 'ADR: number of retransmissions.' adr_ack_limit: type: integer format: int64 description: 'ADR: number of messages to wait before setting ADRAckReq. This field is deprecated, use adr_ack_limit_exponent instead.' adr_ack_delay: type: integer format: int64 description: 'ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate. This field is deprecated, use adr_ack_delay_exponent instead.' rx1_delay: $ref: '#/definitions/v3RxDelay' description: Rx1 delay (Rx2 delay is Rx1 delay + 1 second). rx1_data_rate_offset: $ref: '#/definitions/v3DataRateOffset' description: Data rate offset for Rx1. rx2_data_rate_index: $ref: '#/definitions/v3DataRateIndex' description: Data rate index for Rx2. rx2_frequency: type: string format: uint64 description: Frequency for Rx2 (Hz). max_duty_cycle: $ref: '#/definitions/v3AggregatedDutyCycle' description: Maximum uplink duty cycle (of all channels). rejoin_time_periodicity: $ref: '#/definitions/v3RejoinTimeExponent' description: Time within which a rejoin-request must be sent. rejoin_count_periodicity: $ref: '#/definitions/v3RejoinCountExponent' description: Message count within which a rejoin-request must be sent. ping_slot_frequency: type: string format: uint64 description: Frequency of the class B ping slot (Hz). ping_slot_data_rate_index: $ref: '#/definitions/v3DataRateIndex' description: 'Data rate index of the class B ping slot. This field is deprecated, use ping_slot_data_rate_index_value instead.' beacon_frequency: type: string format: uint64 description: Frequency of the class B beacon (Hz). channels: type: array items: type: object $ref: '#/definitions/v3MACParametersChannel' description: Configured uplink channels and optionally Rx1 frequency. uplink_dwell_time: $ref: '#/definitions/lorawanv3BoolValue' description: 'Whether uplink dwell time is set (400ms). If unset, then the value is either unknown or irrelevant(Network Server cannot modify it).' downlink_dwell_time: $ref: '#/definitions/lorawanv3BoolValue' description: 'Whether downlink dwell time is set (400ms). If unset, then the value is either unknown or irrelevant(Network Server cannot modify it).' adr_ack_limit_exponent: $ref: '#/definitions/v3ADRAckLimitExponentValue' description: 'ADR: number of messages to wait before setting ADRAckReq.' adr_ack_delay_exponent: $ref: '#/definitions/v3ADRAckDelayExponentValue' description: 'ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.' ping_slot_data_rate_index_value: $ref: '#/definitions/v3DataRateIndexValue' description: Data rate index of the class B ping slot. relay: $ref: '#/definitions/lorawanv3RelayParameters' description: Relay parameters. description: 'MACParameters represent the parameters of the device''s MAC layer (active or desired). This is used internally by the Network Server.' v3MACParametersChannel: type: object properties: uplink_frequency: type: string format: uint64 description: Uplink frequency of the channel (Hz). downlink_frequency: type: string format: uint64 description: Downlink frequency of the channel (Hz). min_data_rate_index: $ref: '#/definitions/v3DataRateIndex' description: Index of the minimum data rate for uplink. max_data_rate_index: $ref: '#/definitions/v3DataRateIndex' description: Index of the maximum data rate for uplink. enable_uplink: type: boolean description: Channel can be used by device for uplink. v3MACSettings: type: object properties: class_b_timeout: type: string description: 'Maximum delay for the device to answer a MAC request or a confirmed downlink frame. If unset, the default value from Network Server configuration will be used.' ping_slot_periodicity: $ref: '#/definitions/v3PingSlotPeriodValue' description: 'Periodicity of the class B ping slot. If unset, the default value from Network Server configuration will be used.' ping_slot_data_rate_index: $ref: '#/definitions/v3DataRateIndexValue' description: 'Data rate index of the class B ping slot. If unset, the default value from Network Server configuration will be used.' ping_slot_frequency: $ref: '#/definitions/v3ZeroableFrequencyValue' description: 'Frequency of the class B ping slot (Hz). If unset, the default value from Network Server configuration will be used.' beacon_frequency: $ref: '#/definitions/v3ZeroableFrequencyValue' description: 'Frequency of the class B beacon (Hz). If unset, the default value from Network Server configuration will be used.' class_c_timeout: type: string description: 'Maximum delay for the device to answer a MAC request or a confirmed downlink frame. If unset, the default value from Network Server configuration will be used.' rx1_delay: $ref: '#/definitions/v3RxDelayValue' description: 'Class A Rx1 delay. If unset, the default value from Network Server configuration or regional parameters specification will be used.' rx1_data_rate_offset: $ref: '#/definitions/v3DataRateOffsetValue' description: 'Rx1 data rate offset. If unset, the default value from Network Server configuration will be used.' rx2_data_rate_index: $ref: '#/definitions/v3DataRateIndexValue' description: 'Data rate index for Rx2. If unset, the default value from Network Server configuration or regional parameters specification will be used.' rx2_frequency: $ref: '#/definitions/v3FrequencyValue' description: 'Frequency for Rx2 (Hz). If unset, the default value from Network Server configuration or regional parameters specification will be used.' factory_preset_frequencies: type: array items: type: string format: uint64 description: 'List of factory-preset frequencies. If unset, the default value from Network Server configuration or regional parameters specification will be used.' max_duty_cycle: $ref: '#/definitions/v3AggregatedDutyCycleValue' description: Maximum uplink duty cycle (of all channels). supports_32_bit_f_cnt: $ref: '#/definitions/lorawanv3BoolValue' description: 'Whether the device supports 32-bit frame counters. If unset, the default value from Network Server configuration will be used.' use_adr: $ref: '#/definitions/lorawanv3BoolValue' description: 'Whether the Network Server should use ADR for the device. This field is deprecated, use adr_settings instead.' adr_margin: type: number format: float description: 'The ADR margin (dB) tells the network server how much margin it should add in ADR requests. A bigger margin is less efficient, but gives a better chance of successful reception. This field is deprecated, use adr_settings.dynamic.margin instead.' resets_f_cnt: $ref: '#/definitions/lorawanv3BoolValue' description: 'Whether the device resets the frame counters (not LoRaWAN compliant). If unset, the default value from Network Server configuration will be used.' status_time_periodicity: type: string description: 'The interval after which a DevStatusReq MACCommand shall be sent. If unset, the default value from Network Server configuration will be used.' status_count_periodicity: type: integer format: int64 description: 'Number of uplink messages after which a DevStatusReq MACCommand shall be sent. If unset, the default value from Network Server configuration will be used.' desired_rx1_delay: $ref: '#/definitions/v3RxDelayValue' description: 'The Rx1 delay Network Server should configure device to use via MAC commands or Join-Accept. If unset, the default value from Network Server configuration or regional parameters specification will be used.' desired_rx1_data_rate_offset: $ref: '#/definitions/v3DataRateOffsetValue' description: 'The Rx1 data rate offset Network Server should configure device to use via MAC commands or Join-Accept. If unset, the default value from Network Server configuration will be used.' desired_rx2_data_rate_index: $ref: '#/definitions/v3DataRateIndexValue' description: 'The Rx2 data rate index Network Server should configure device to use via MAC commands or Join-Accept. If unset, the default value from frequency plan, Network Server configuration or regional parameters specification will be used.' desired_rx2_frequency: $ref: '#/definitions/v3FrequencyValue' description: 'The Rx2 frequency index Network Server should configure device to use via MAC commands. If unset, the default value from frequency plan, Network Server configuration or regional parameters specification will be used.' desired_max_duty_cycle: $ref: '#/definitions/v3AggregatedDutyCycleValue' description: 'The maximum uplink duty cycle (of all channels) Network Server should configure device to use via MAC commands. If unset, the default value from Network Server configuration will be used.' desired_adr_ack_limit_exponent: $ref: '#/definitions/v3ADRAckLimitExponentValue' description: 'The ADR ACK limit Network Server should configure device to use via MAC commands. If unset, the default value from Network Server configuration or regional parameters specification will be used.' desired_adr_ack_delay_exponent: $ref: '#/definitions/v3ADRAckDelayExponentValue' description: 'The ADR ACK delay Network Server should configure device to use via MAC commands. If unset, the default value from Network Server configuration or regional parameters specification will be used.' desired_ping_slot_data_rate_index: $ref: '#/definitions/v3DataRateIndexValue' description: 'The data rate index of the class B ping slot Network Server should configure device to use via MAC commands. If unset, the default value from Network Server configuration will be used.' desired_ping_slot_frequency: $ref: '#/definitions/v3ZeroableFrequencyValue' description: 'The frequency of the class B ping slot (Hz) Network Server should configure device to use via MAC commands. If unset, the default value from Network Server configuration or regional parameters specification will be used.' desired_beacon_frequency: $ref: '#/definitions/v3ZeroableFrequencyValue' description: 'The frequency of the class B beacon (Hz) Network Server should configure device to use via MAC commands. If unset, the default value from Network Server configuration will be used.' desired_max_eirp: $ref: '#/definitions/v3DeviceEIRPValue' description: 'Maximum EIRP (dBm). If unset, the default value from regional parameters specification will be used.' class_b_c_downlink_interval: type: string description: The minimum duration passed before a network-initiated(e.g. Class B or C) downlink following an arbitrary downlink. uplink_dwell_time: $ref: '#/definitions/lorawanv3BoolValue' description: 'Whether uplink dwell time is set (400ms). If unset, the default value from Network Server configuration or regional parameters specification will be used.' downlink_dwell_time: $ref: '#/definitions/lorawanv3BoolValue' description: 'Whether downlink dwell time is set (400ms). If unset, the default value from Network Server configuration or regional parameters specification will be used.' adr: $ref: '#/definitions/v3ADRSettings' description: 'Adaptive Data Rate settings. If unset, the default value from Network Server configuration or regional parameters specification will be used.' schedule_downlinks: $ref: '#/definitions/lorawanv3BoolValue' description: 'Whether or not downlink messages should be scheduled. This option can be used in order to disable any downlink interaction with the end device. It will affect all types of downlink messages: data and MAC downlinks, and join accepts.' relay: $ref: '#/definitions/v3RelaySettings' description: 'The relay settings the end device is using. If unset, the default value from Network Server configuration or regional parameters specification will be used.' desired_relay: $ref: '#/definitions/v3RelaySettings' description: 'The relay settings the Network Server should configure device to use via MAC commands. If unset, the default value from Network Server configuration or regional parameters specification will be used.' v3MACSettingsProfileIdentifiers: type: object properties: application_ids: $ref: '#/definitions/v3ApplicationIdentifiers' description: Application IDs. profile_id: type: string description: Profile ID. v3MACState: type: object properties: current_parameters: $ref: '#/definitions/v3MACParameters' description: Current LoRaWAN MAC parameters. desired_parameters: $ref: '#/definitions/v3MACParameters' description: Desired LoRaWAN MAC parameters. device_class: $ref: '#/definitions/v3Class' title: 'Currently active LoRaWAN device class - Device class is A by default - If device sets ClassB bit in uplink, this will be set to B - If device sent DeviceModeInd MAC message, this will be set to that value' lorawan_version: $ref: '#/definitions/v3MACVersion' description: LoRaWAN MAC version. last_confirmed_downlink_at: type: string format: date-time description: Time when the last confirmed downlink message or MAC command was scheduled. last_dev_status_f_cnt_up: type: integer format: int64 description: Frame counter value of last uplink containing DevStatusAns. ping_slot_periodicity: $ref: '#/definitions/v3PingSlotPeriodValue' description: Periodicity of the class B ping slot. pending_application_downlink: $ref: '#/definitions/v3ApplicationDownlink' description: A confirmed application downlink, for which an acknowledgment is expected to arrive. queued_responses: type: array items: type: object $ref: '#/definitions/v3MACCommand' description: 'Queued MAC responses. Regenerated on each uplink.' pending_requests: type: array items: type: object $ref: '#/definitions/v3MACCommand' description: 'Pending MAC requests(i.e. sent requests, for which no response has been received yet). Regenerated on each downlink.' queued_join_accept: $ref: '#/definitions/MACStateJoinAccept' description: 'Queued join-accept. Set each time a (re-)join request accept is received from Join Server and removed each time a downlink is scheduled.' pending_join_request: $ref: '#/definitions/v3MACStateJoinRequest' description: 'Pending join request. Set each time a join-accept is scheduled and removed each time an uplink is received from the device.' rx_windows_available: type: boolean description: 'Whether or not Rx windows are expected to be open. Set to true every time an uplink is received. Set to false every time a successful downlink scheduling attempt is made.' recent_uplinks: type: array items: type: object $ref: '#/definitions/v3MACStateUplinkMessage' description: 'Recent data uplink messages sorted by time. The number of messages stored may depend on configuration.' recent_downlinks: type: array items: type: object $ref: '#/definitions/v3MACStateDownlinkMessage' description: 'Recent data downlink messages sorted by time. The number of messages stored may depend on configuration.' last_network_initiated_downlink_at: type: string format: date-time description: Time when the last network-initiated downlink message was scheduled. rejected_adr_data_rate_indexes: type: array items: $ref: '#/definitions/v3DataRateIndex' description: 'ADR Data rate index values rejected by the device. Reset each time `current_parameters.channels` change. Elements are sorted in ascending order.' rejected_adr_tx_power_indexes: type: array items: type: integer format: int64 description: 'ADR TX output power index values rejected by the device. Elements are sorted in ascending order.' rejected_frequencies: type: array items: type: string format: uint64 description: Frequencies rejected by the device. last_downlink_at: type: string format: date-time description: Time when the last downlink message was scheduled. rejected_data_rate_ranges: type: object additionalProperties: $ref: '#/definitions/MACStateDataRateRanges' description: Data rate ranges rejected by the device per frequency. last_adr_change_f_cnt_up: type: integer format: int64 description: Frame counter of uplink, which confirmed the last ADR parameter change. recent_mac_command_identifiers: type: array items: $ref: '#/definitions/v3MACCommandIdentifier' description: 'MAC command identifiers sent by the end device in the last received uplink. The Network Server may choose to store only certain types of MAC command identifiers in the underlying implementation.' pending_relay_downlink: $ref: '#/definitions/v3RelayForwardDownlinkReq' description: 'Pending relay downlink contents. The pending downlink will be scheduled to the relay in either Rx1 or Rx2. The pending downlink will be cleared after the scheduling attempt.' description: 'MACState represents the state of MAC layer of the device. MACState is reset on each join for OTAA or ResetInd for ABP devices. This is used internally by the Network Server.' v3MACStateDownlinkMessage: type: object properties: payload: $ref: '#/definitions/MACStateDownlinkMessageMessage' correlation_ids: type: array items: type: string description: 'A minimal DownlinkMessage definition which is binary compatible with the top level DownlinkMessage message. Used for type safe recent downlink storage.' v3MACStateJoinRequest: type: object properties: downlink_settings: $ref: '#/definitions/v3DLSettings' rx_delay: $ref: '#/definitions/v3RxDelay' cf_list: $ref: '#/definitions/v3CFList' v3MACStateUplinkMessage: type: object properties: payload: $ref: '#/definitions/lorawanv3Message' settings: $ref: '#/definitions/MACStateUplinkMessageTxSettings' rx_metadata: type: array items: type: object $ref: '#/definitions/MACStateUplinkMessageRxMetadata' received_at: type: string format: date-time correlation_ids: type: array items: type: string device_channel_index: type: integer format: int64 description: 'A minimal UplinkMessage definition which is binary compatible with the top level UplinkMessage message. Used for type safe recent uplink storage.' v3MACVersion: type: string enum: - MAC_UNKNOWN - MAC_V1_0 - MAC_V1_0_1 - MAC_V1_0_2 - MAC_V1_1 - MAC_V1_0_3 - MAC_V1_0_4 default: MAC_UNKNOWN v3MType: type: string enum: - JOIN_REQUEST - JOIN_ACCEPT - UNCONFIRMED_UP - UNCONFIRMED_DOWN - CONFIRMED_UP - CONFIRMED_DOWN - REJOIN_REQUEST - PROPRIETARY default: JOIN_REQUEST v3Major: type: string enum: - LORAWAN_R1 default: LORAWAN_R1 v3MessagePayloadFormatters: type: object properties: up_formatter: $ref: '#/definitions/v3PayloadFormatter' description: Payload formatter for uplink messages, must be set together with its parameter. up_formatter_parameter: type: string description: Parameter for the up_formatter, must be set together. The API enforces a maximum length of 64KB, but the size may be restricted further by deployment configuration. down_formatter: $ref: '#/definitions/v3PayloadFormatter' description: Payload formatter for downlink messages, must be set together with its parameter. down_formatter_parameter: type: string description: Parameter for the down_formatter, must be set together. The API enforces a maximum length of 64KB, but the size may be restricted further by deployment configuration. v3Minor: type: string enum: - MINOR_RFU_0 - MINOR_1 - MINOR_RFU_2 - MINOR_RFU_3 - MINOR_RFU_4 - MINOR_RFU_5 - MINOR_RFU_6 - MINOR_RFU_7 - MINOR_RFU_8 - MINOR_RFU_9 - MINOR_RFU_10 - MINOR_RFU_11 - MINOR_RFU_12 - MINOR_RFU_13 - MINOR_RFU_14 - MINOR_RFU_15 default: MINOR_RFU_0 v3NetworkIdentifiers: type: object properties: net_id: type: string format: string example: '000013' description: LoRa Alliance NetID. ns_id: type: string format: string example: 70B3D57ED000ABCD description: LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance. tenant_id: type: string description: Optional tenant identifier for multi-tenant deployments. cluster_id: type: string description: Cluster identifier of the Network Server. cluster_address: type: string description: Cluster address of the Network Server. tenant_address: type: string description: Optional tenant address for multi-tenant deployments. description: Identifies a Network Server. v3PHYVersion: type: string enum: - PHY_UNKNOWN - PHY_V1_0 - TS001_V1_0 - PHY_V1_0_1 - TS001_V1_0_1 - PHY_V1_0_2_REV_A - RP001_V1_0_2 - PHY_V1_0_2_REV_B - RP001_V1_0_2_REV_B - PHY_V1_1_REV_A - RP001_V1_1_REV_A - PHY_V1_1_REV_B - RP001_V1_1_REV_B - PHY_V1_0_3_REV_A - RP001_V1_0_3_REV_A - RP002_V1_0_0 - RP002_V1_0_1 - RP002_V1_0_2 - RP002_V1_0_3 - RP002_V1_0_4 default: PHY_UNKNOWN v3PayloadFormatter: type: string enum: - FORMATTER_NONE - FORMATTER_REPOSITORY - FORMATTER_GRPC_SERVICE - FORMATTER_JAVASCRIPT - FORMATTER_CAYENNELPP default: FORMATTER_NONE description: " - FORMATTER_NONE: No payload formatter to work with raw payload only.\n - FORMATTER_REPOSITORY: Use payload\ \ formatter for the end device type from a repository.\n - FORMATTER_GRPC_SERVICE: gRPC service payload formatter. The\ \ parameter is the host:port of the service.\n - FORMATTER_JAVASCRIPT: Custom payload formatter that executes Javascript\ \ code. The parameter is a JavaScript filename.\n - FORMATTER_CAYENNELPP: CayenneLPP payload formatter.\n\nMore payload\ \ formatters can be added." v3Picture: type: object properties: embedded: $ref: '#/definitions/PictureEmbedded' description: 'Embedded picture. Omitted if there are external URLs available (in sizes).' sizes: type: object additionalProperties: type: string description: URLs of the picture for different sizes, if available on a CDN. v3PingSlotPeriod: type: string enum: - PING_EVERY_1S - PING_EVERY_2S - PING_EVERY_4S - PING_EVERY_8S - PING_EVERY_16S - PING_EVERY_32S - PING_EVERY_64S - PING_EVERY_128S default: PING_EVERY_1S description: " - PING_EVERY_1S: Every second.\n - PING_EVERY_2S: Every 2 seconds.\n - PING_EVERY_4S: Every 4 seconds.\n\ \ - PING_EVERY_8S: Every 8 seconds.\n - PING_EVERY_16S: Every 16 seconds.\n - PING_EVERY_32S: Every 32 seconds.\n -\ \ PING_EVERY_64S: Every 64 seconds.\n - PING_EVERY_128S: Every 128 seconds." v3PingSlotPeriodValue: type: object properties: value: $ref: '#/definitions/v3PingSlotPeriod' v3PowerState: type: string enum: - POWER_UNKNOWN - POWER_BATTERY - POWER_EXTERNAL default: POWER_UNKNOWN description: Power state of the device. v3RejoinCountExponent: type: string enum: - REJOIN_COUNT_16 - REJOIN_COUNT_32 - REJOIN_COUNT_64 - REJOIN_COUNT_128 - REJOIN_COUNT_256 - REJOIN_COUNT_512 - REJOIN_COUNT_1024 - REJOIN_COUNT_2048 - REJOIN_COUNT_4096 - REJOIN_COUNT_8192 - REJOIN_COUNT_16384 - REJOIN_COUNT_32768 - REJOIN_COUNT_65536 - REJOIN_COUNT_131072 - REJOIN_COUNT_262144 - REJOIN_COUNT_524288 default: REJOIN_COUNT_16 v3RejoinPeriodExponent: type: string enum: - REJOIN_PERIOD_0 - REJOIN_PERIOD_1 - REJOIN_PERIOD_2 - REJOIN_PERIOD_3 - REJOIN_PERIOD_4 - REJOIN_PERIOD_5 - REJOIN_PERIOD_6 - REJOIN_PERIOD_7 default: REJOIN_PERIOD_0 description: " - REJOIN_PERIOD_0: Every 32 to 64 seconds.\n - REJOIN_PERIOD_1: Every 64 to 96 seconds.\n - REJOIN_PERIOD_2:\ \ Every 128 to 160 seconds.\n - REJOIN_PERIOD_3: Every 256 to 288 seconds.\n - REJOIN_PERIOD_4: Every 512 to 544 seconds.\n\ \ - REJOIN_PERIOD_5: Every 1024 to 1056 seconds.\n - REJOIN_PERIOD_6: Every 2048 to 2080 seconds.\n - REJOIN_PERIOD_7:\ \ Every 4096 to 4128 seconds." v3RejoinRequestPayload: type: object properties: rejoin_type: $ref: '#/definitions/v3RejoinRequestType' net_id: type: string format: string example: '000013' join_eui: type: string format: string example: 70B3D57ED000ABCD dev_eui: type: string format: string example: 70B3D57ED000ABCD rejoin_cnt: type: integer format: int64 description: Contains RJCount0 or RJCount1 depending on rejoin_type. v3RejoinRequestType: type: string enum: - CONTEXT - SESSION - KEYS default: CONTEXT description: " - CONTEXT: Resets DevAddr, Session Keys, Frame Counters, Radio Parameters.\n - SESSION: Equivalent to the\ \ initial JoinRequest.\n - KEYS: Resets DevAddr, Session Keys, Frame Counters, while keeping the Radio Parameters." v3RejoinTimeExponent: type: string enum: - REJOIN_TIME_0 - REJOIN_TIME_1 - REJOIN_TIME_2 - REJOIN_TIME_3 - REJOIN_TIME_4 - REJOIN_TIME_5 - REJOIN_TIME_6 - REJOIN_TIME_7 - REJOIN_TIME_8 - REJOIN_TIME_9 - REJOIN_TIME_10 - REJOIN_TIME_11 - REJOIN_TIME_12 - REJOIN_TIME_13 - REJOIN_TIME_14 - REJOIN_TIME_15 default: REJOIN_TIME_0 description: " - REJOIN_TIME_0: Every ~17.1 minutes.\n - REJOIN_TIME_1: Every ~34.1 minutes.\n - REJOIN_TIME_2: Every\ \ ~1.1 hours.\n - REJOIN_TIME_3: Every ~2.3 hours.\n - REJOIN_TIME_4: Every ~4.6 hours.\n - REJOIN_TIME_5: Every ~9.1\ \ hours.\n - REJOIN_TIME_6: Every ~18.2 hours.\n - REJOIN_TIME_7: Every ~1.5 days.\n - REJOIN_TIME_8: Every ~3.0 days.\n\ \ - REJOIN_TIME_9: Every ~6.1 days.\n - REJOIN_TIME_10: Every ~12.1 days.\n - REJOIN_TIME_11: Every ~3.5 weeks.\n -\ \ REJOIN_TIME_12: Every ~1.6 months.\n - REJOIN_TIME_13: Every ~3.2 months.\n - REJOIN_TIME_14: Every ~6.4 months.\n\ \ - REJOIN_TIME_15: Every ~1.1 year." v3RelayCADPeriodicity: type: string enum: - RELAY_CAD_PERIODICITY_1_SECOND - RELAY_CAD_PERIODICITY_500_MILLISECONDS - RELAY_CAD_PERIODICITY_250_MILLISECONDS - RELAY_CAD_PERIODICITY_100_MILLISECONDS - RELAY_CAD_PERIODICITY_50_MILLISECONDS - RELAY_CAD_PERIODICITY_20_MILLISECONDS default: RELAY_CAD_PERIODICITY_1_SECOND title: '- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic' v3RelayCtrlUplinkListAction: type: string enum: - RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT - RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE default: RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT v3RelayEndDeviceAlwaysMode: type: object v3RelayEndDeviceControlledMode: type: object v3RelayEndDeviceDynamicMode: type: object properties: smart_enable_level: $ref: '#/definitions/v3RelaySmartEnableLevel' description: 'The number of consecutive uplinks without a valid downlink before the end device attempts to use the relay mode to transmit messages.' v3RelayForwardDownlinkReq: type: object properties: raw_payload: type: string format: byte v3RelayForwardLimits: type: object properties: bucket_size: $ref: '#/definitions/v3RelayLimitBucketSize' description: 'The multiplier used to compute the total bucket size for the limits. The multiplier is multiplied by the reload rate in order to compute the total bucket size.' reload_rate: type: integer format: int64 description: The number of tokens which are replenished in the bucket every hour. v3RelayLimitBucketSize: type: string enum: - RELAY_LIMIT_BUCKET_SIZE_1 - RELAY_LIMIT_BUCKET_SIZE_2 - RELAY_LIMIT_BUCKET_SIZE_4 - RELAY_LIMIT_BUCKET_SIZE_12 default: RELAY_LIMIT_BUCKET_SIZE_1 title: '- RELAY_LIMIT_BUCKET_SIZE_12: sic' v3RelayResetLimitCounter: type: string enum: - RELAY_RESET_LIMIT_COUNTER_ZERO - RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE - RELAY_RESET_LIMIT_COUNTER_MAX_VALUE - RELAY_RESET_LIMIT_COUNTER_NO_RESET default: RELAY_RESET_LIMIT_COUNTER_ZERO v3RelaySecondChAckOffset: type: string enum: - RELAY_SECOND_CH_ACK_OFFSET_0 - RELAY_SECOND_CH_ACK_OFFSET_200 - RELAY_SECOND_CH_ACK_OFFSET_400 - RELAY_SECOND_CH_ACK_OFFSET_800 - RELAY_SECOND_CH_ACK_OFFSET_1600 - RELAY_SECOND_CH_ACK_OFFSET_3200 default: RELAY_SECOND_CH_ACK_OFFSET_0 title: "- RELAY_SECOND_CH_ACK_OFFSET_0: 0 kHz\n - RELAY_SECOND_CH_ACK_OFFSET_200: 200 kHz\n - RELAY_SECOND_CH_ACK_OFFSET_400:\ \ 400 kHz\n - RELAY_SECOND_CH_ACK_OFFSET_800: 800 kHz\n - RELAY_SECOND_CH_ACK_OFFSET_1600: 1.6 MHz\n - RELAY_SECOND_CH_ACK_OFFSET_3200:\ \ 3.2 MHz" v3RelaySecondChannel: type: object properties: ack_offset: $ref: '#/definitions/v3RelaySecondChAckOffset' description: The frequency (Hz) offset used for the WOR acknowledgement. data_rate_index: $ref: '#/definitions/v3DataRateIndex' description: The data rate index used by the WOR and WOR acknowledgement. frequency: type: string format: uint64 description: The frequency (Hz) used by the wake on radio message. v3RelaySettings: type: object properties: serving: $ref: '#/definitions/v3ServingRelaySettings' served: $ref: '#/definitions/v3ServedRelaySettings' description: 'RelaySettings represent the settings of a relay. This is used internally by the Network Server.' v3RelaySmartEnableLevel: type: string enum: - RELAY_SMART_ENABLE_LEVEL_8 - RELAY_SMART_ENABLE_LEVEL_16 - RELAY_SMART_ENABLE_LEVEL_32 - RELAY_SMART_ENABLE_LEVEL_64 default: RELAY_SMART_ENABLE_LEVEL_8 v3RelayUplinkForwardLimits: type: object properties: bucket_size: $ref: '#/definitions/v3RelayLimitBucketSize' description: 'The multiplier used to compute the total bucket size for the limits. The multiplier is multiplied by the reload rate in order to compute the total bucket size.' reload_rate: type: integer format: int64 description: The number of tokens which are replenished in the bucket every hour. v3RelayUplinkForwardingRule: type: object properties: limits: $ref: '#/definitions/v3RelayUplinkForwardLimits' description: 'Bucket configuration for the served end device. If unset, no individual limits will apply to the end device, but the relay global limitations will apply.' last_w_f_cnt: type: integer format: int64 description: Last wake on radio frame counter used by the served end device. device_id: type: string description: End device identifier of the served end device. session_key_id: type: string format: byte description: Session key ID of the session keys used to derive the root relay session key. v3RootKeys: type: object properties: root_key_id: type: string description: Join Server issued identifier for the root keys. app_key: $ref: '#/definitions/v3KeyEnvelope' description: The (encrypted) Application Key. nwk_key: $ref: '#/definitions/v3KeyEnvelope' description: The (encrypted) Network Key. description: 'Root keys for a LoRaWAN device. These are stored on the Join Server.' v3RxDelay: type: string enum: - RX_DELAY_0 - RX_DELAY_1 - RX_DELAY_2 - RX_DELAY_3 - RX_DELAY_4 - RX_DELAY_5 - RX_DELAY_6 - RX_DELAY_7 - RX_DELAY_8 - RX_DELAY_9 - RX_DELAY_10 - RX_DELAY_11 - RX_DELAY_12 - RX_DELAY_13 - RX_DELAY_14 - RX_DELAY_15 default: RX_DELAY_0 description: " - RX_DELAY_0: 1 second.\n - RX_DELAY_1: 1 second.\n - RX_DELAY_2: 2 seconds.\n - RX_DELAY_3: 3 seconds.\n\ \ - RX_DELAY_4: 4 seconds.\n - RX_DELAY_5: 5 seconds.\n - RX_DELAY_6: 6 seconds.\n - RX_DELAY_7: 7 seconds.\n - RX_DELAY_8:\ \ 8 seconds.\n - RX_DELAY_9: 9 seconds.\n - RX_DELAY_10: 10 seconds.\n - RX_DELAY_11: 11 seconds.\n - RX_DELAY_12: 12\ \ seconds.\n - RX_DELAY_13: 13 seconds.\n - RX_DELAY_14: 14 seconds.\n - RX_DELAY_15: 15 seconds." v3RxDelayValue: type: object properties: value: $ref: '#/definitions/v3RxDelay' v3ServedRelayParameters: type: object properties: always: $ref: '#/definitions/v3RelayEndDeviceAlwaysMode' description: The end device will always attempt to use the relay mode in order to send uplink messages. dynamic: $ref: '#/definitions/v3RelayEndDeviceDynamicMode' description: 'The end device will attempt to use relay mode only after a number of uplink messages have been sent without receiving a valid a downlink message.' end_device_controlled: $ref: '#/definitions/v3RelayEndDeviceControlledMode' description: The end device will control when it uses the relay mode. This is the default mode. backoff: type: integer format: int64 description: Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly. second_channel: $ref: '#/definitions/v3RelaySecondChannel' description: Second wake on radio channel configuration. serving_device_id: type: string description: End device identifier of the serving end device. v3ServedRelaySettings: type: object properties: always: $ref: '#/definitions/v3RelayEndDeviceAlwaysMode' description: The end device will always attempt to use the relay mode in order to send uplink messages. dynamic: $ref: '#/definitions/v3RelayEndDeviceDynamicMode' description: 'The end device will attempt to use relay mode only after a number of uplink messages have been sent without receiving a valid a downlink message.' end_device_controlled: $ref: '#/definitions/v3RelayEndDeviceControlledMode' description: The end device will control when it uses the relay mode. This is the default mode. backoff: type: integer format: int64 description: 'Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly. If unset, the default value from Network Server configuration will be used.' second_channel: $ref: '#/definitions/v3RelaySecondChannel' description: Second wake on radio channel configuration. serving_device_id: type: string description: End device identifier of the serving end device. v3ServingRelayForwardingLimits: type: object properties: reset_behavior: $ref: '#/definitions/v3RelayResetLimitCounter' description: Reset behavior of the buckets upon limit update. join_requests: $ref: '#/definitions/v3RelayForwardLimits' description: 'Bucket configuration for join requests. If unset, no individual limits will apply to join requests, but the relay overall limitations will apply.' notifications: $ref: '#/definitions/v3RelayForwardLimits' description: 'Bucket configuration for unknown device notifications. If unset, no individual limits will apply to unknown end device notifications, but the relay overall limitations will still apply.' uplink_messages: $ref: '#/definitions/v3RelayForwardLimits' description: 'Bucket configuration for uplink messages across all served end devices. If unset, no individual limits will apply to uplink messages across all served end devices, but the relay overall limitations will still apply.' overall: $ref: '#/definitions/v3RelayForwardLimits' description: 'Bucket configuration for all relay messages. If unset, no overall limits will apply to the relay, but individual limitations will still apply.' v3ServingRelayParameters: type: object properties: second_channel: $ref: '#/definitions/v3RelaySecondChannel' description: Second wake on radio channel configuration. default_channel_index: type: integer format: int64 description: Index of the default wake on radio channel. cad_periodicity: $ref: '#/definitions/v3RelayCADPeriodicity' description: Channel activity detection periodicity. uplink_forwarding_rules: type: array items: type: object $ref: '#/definitions/v3RelayUplinkForwardingRule' description: Configured uplink forwarding rules. limits: $ref: '#/definitions/v3ServingRelayForwardingLimits' description: 'Configured forwarding limits. If unset, the default value from Network Server configuration will be used.' v3ServingRelaySettings: type: object properties: second_channel: $ref: '#/definitions/v3RelaySecondChannel' description: Second wake on radio channel configuration. default_channel_index: type: integer format: int64 description: 'Index of the default wake on radio channel. If unset, the default value from Network Server configuration will be used.' cad_periodicity: $ref: '#/definitions/v3RelayCADPeriodicity' description: Channel activity detection periodicity. uplink_forwarding_rules: type: array items: type: object $ref: '#/definitions/v3RelayUplinkForwardingRule' description: Configured uplink forwarding rules. limits: $ref: '#/definitions/v3ServingRelayForwardingLimits' description: 'Configured forwarding limits. If unset, the default value from Network Server configuration will be used.' v3Session: type: object properties: dev_addr: type: string format: string example: 2600ABCD description: 'Device Address, issued by the Network Server or chosen by device manufacturer in case of testing range (beginning with 00-03). Known by Network Server, Application Server and Join Server. Owned by Network Server.' keys: $ref: '#/definitions/v3SessionKeys' last_f_cnt_up: type: integer format: int64 description: Last uplink frame counter value used. Network Server only. Application Server assumes the Network Server checked it. last_n_f_cnt_down: type: integer format: int64 description: Last network downlink frame counter value used. Network Server only. last_a_f_cnt_down: type: integer format: int64 description: Last application downlink frame counter value used. Application Server only. last_conf_f_cnt_down: type: integer format: int64 description: Frame counter of the last confirmed downlink message sent. Network Server only. started_at: type: string format: date-time description: Time when the session started. Network Server only. queued_application_downlinks: type: array items: type: object $ref: '#/definitions/v3ApplicationDownlink' description: Queued Application downlink messages. Stored in Application Server and Network Server. v3SessionKeys: type: object properties: session_key_id: type: string format: byte description: 'Join Server issued identifier for the session keys. This ID can be used to request the keys from the Join Server in case the are lost.' f_nwk_s_int_key: $ref: '#/definitions/v3KeyEnvelope' description: 'The (encrypted) Forwarding Network Session Integrity Key (or Network Session Key in 1.0 compatibility mode). This key is stored by the (forwarding) Network Server.' s_nwk_s_int_key: $ref: '#/definitions/v3KeyEnvelope' description: 'The (encrypted) Serving Network Session Integrity Key. This key is stored by the (serving) Network Server.' nwk_s_enc_key: $ref: '#/definitions/v3KeyEnvelope' description: 'The (encrypted) Network Session Encryption Key. This key is stored by the (serving) Network Server.' app_s_key: $ref: '#/definitions/v3KeyEnvelope' description: 'The (encrypted) Application Session Key. This key is stored by the Application Server.' description: 'Session keys for a LoRaWAN session. Only the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.' v3TxSchedulePriority: type: string enum: - LOWEST - LOW - BELOW_NORMAL - NORMAL - ABOVE_NORMAL - HIGH - HIGHEST default: LOWEST v3ZeroableFrequencyValue: type: object properties: value: type: string format: uint64