Getting Started Concepts The Things Stack Cloud The Things Stack Enterprise Integrations API Hardware
Get The Things Stack

API

    Overview
  • Concepts
  • Reference
    • HTTP(REST)
      • Routes
      • Messages
    • gRPC

Messages

This page lists all the message definitions used by The Things Stack APIs.

ADRSettingsDynamicMode

Configuration options for dynamic ADR.
Fields
Name Type Description
channel_steering object EXPERIMENTAL: Channel steering settings.
margin number 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.
max_data_rate_index object
max_nb_trans integer Maximum number of retransmissions. If unset, the default value from Network Server configuration will be used.
max_tx_power_index integer Maximum transmission power index. If unset, the default value from Network Server configuration will be used.
min_data_rate_index object
min_nb_trans integer Minimum number of retransmissions. If unset, the default value from Network Server configuration will be used.
min_tx_power_index integer Minimum transmission power index. If unset, the default value from Network Server configuration will be used.
overrides object EXPERIMENTAL: Configuration overrides.
Schema
{
  "channel_steering": {
    "description": "EXPERIMENTAL: Channel steering settings.",
    "properties": {
      "disabled": {
        "description": "Configuration options for cases in which ADR is not supposed to steer the end device\nto another set of channels.",
        "type": "object"
      },
      "lora_narrow": {
        "description": "Configuration options for LoRa narrow channels steering.\nThe narrow mode attempts to steer the end device towards\nusing the LoRa modulated, 125kHz bandwidth channels.",
        "type": "object"
      }
    },
    "type": "object"
  },
  "margin": {
    "description": "The ADR margin (dB) tells the network server how much margin it should add in ADR requests.\nA bigger margin is less efficient, but gives a better chance of successful reception.\nIf unset, the default value from Network Server configuration will be used.",
    "format": "float",
    "type": "number"
  },
  "max_data_rate_index": {
    "properties": {
      "value": {
        "default": "DATA_RATE_0",
        "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"
        ],
        "type": "string"
      }
    },
    "type": "object"
  },
  "max_nb_trans": {
    "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
    "format": "int64",
    "type": "integer"
  },
  "max_tx_power_index": {
    "description": "Maximum transmission power index.\nIf unset, the default value from Network Server configuration will be used.",
    "format": "int64",
    "type": "integer"
  },
  "min_data_rate_index": {
    "properties": {
      "value": {
        "default": "DATA_RATE_0",
        "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"
        ],
        "type": "string"
      }
    },
    "type": "object"
  },
  "min_nb_trans": {
    "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
    "format": "int64",
    "type": "integer"
  },
  "min_tx_power_index": {
    "description": "Minimum transmission power index.\nIf unset, the default value from Network Server configuration will be used.",
    "format": "int64",
    "type": "integer"
  },
  "overrides": {
    "description": "EXPERIMENTAL: Configuration overrides.",
    "properties": {
      "data_rate_0": {
        "description": "EXPERIMENTAL: Data rate index override settings.",
        "properties": {
          "max_nb_trans": {
            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          },
          "min_nb_trans": {
            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "data_rate_1": {
        "description": "EXPERIMENTAL: Data rate index override settings.",
        "properties": {
          "max_nb_trans": {
            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          },
          "min_nb_trans": {
            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "data_rate_10": {
        "description": "EXPERIMENTAL: Data rate index override settings.",
        "properties": {
          "max_nb_trans": {
            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          },
          "min_nb_trans": {
            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "data_rate_11": {
        "description": "EXPERIMENTAL: Data rate index override settings.",
        "properties": {
          "max_nb_trans": {
            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          },
          "min_nb_trans": {
            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "data_rate_12": {
        "description": "EXPERIMENTAL: Data rate index override settings.",
        "properties": {
          "max_nb_trans": {
            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          },
          "min_nb_trans": {
            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "data_rate_13": {
        "description": "EXPERIMENTAL: Data rate index override settings.",
        "properties": {
          "max_nb_trans": {
            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          },
          "min_nb_trans": {
            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "data_rate_14": {
        "description": "EXPERIMENTAL: Data rate index override settings.",
        "properties": {
          "max_nb_trans": {
            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          },
          "min_nb_trans": {
            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "data_rate_15": {
        "description": "EXPERIMENTAL: Data rate index override settings.",
        "properties": {
          "max_nb_trans": {
            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          },
          "min_nb_trans": {
            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "data_rate_2": {
        "description": "EXPERIMENTAL: Data rate index override settings.",
        "properties": {
          "max_nb_trans": {
            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          },
          "min_nb_trans": {
            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "data_rate_3": {
        "description": "EXPERIMENTAL: Data rate index override settings.",
        "properties": {
          "max_nb_trans": {
            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          },
          "min_nb_trans": {
            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "data_rate_4": {
        "description": "EXPERIMENTAL: Data rate index override settings.",
        "properties": {
          "max_nb_trans": {
            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          },
          "min_nb_trans": {
            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "data_rate_5": {
        "description": "EXPERIMENTAL: Data rate index override settings.",
        "properties": {
          "max_nb_trans": {
            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          },
          "min_nb_trans": {
            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "data_rate_6": {
        "description": "EXPERIMENTAL: Data rate index override settings.",
        "properties": {
          "max_nb_trans": {
            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          },
          "min_nb_trans": {
            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "data_rate_7": {
        "description": "EXPERIMENTAL: Data rate index override settings.",
        "properties": {
          "max_nb_trans": {
            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          },
          "min_nb_trans": {
            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "data_rate_8": {
        "description": "EXPERIMENTAL: Data rate index override settings.",
        "properties": {
          "max_nb_trans": {
            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          },
          "min_nb_trans": {
            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "data_rate_9": {
        "description": "EXPERIMENTAL: Data rate index override settings.",
        "properties": {
          "max_nb_trans": {
            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          },
          "min_nb_trans": {
            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  }
}
Show the schema of the message in JSON format.

ADRSettingsStaticMode

Configuration options for static ADR.
Fields
Name Type Description
data_rate_index string
nb_trans integer Number of retransmissions.
tx_power_index integer Transmission power index to use.
Schema
{
  "data_rate_index": {
    "default": "DATA_RATE_0",
    "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"
    ],
    "type": "string"
  },
  "nb_trans": {
    "description": "Number of retransmissions.",
    "format": "int64",
    "type": "integer"
  },
  "tx_power_index": {
    "description": "Transmission power index to use.",
    "format": "int64",
    "type": "integer"
  }
}
Show the schema of the message in JSON format.

AWSIoTProviderAccessKey

Fields
Name Type Description
access_key_id string
secret_access_key string
session_token string
Schema
{
  "access_key_id": {
    "type": "string"
  },
  "secret_access_key": {
    "type": "string"
  },
  "session_token": {
    "type": "string"
  }
}
Show the schema of the message in JSON format.

AWSIoTProviderAssumeRole

Fields
Name Type Description
arn string
external_id string
session_duration string
Schema
{
  "arn": {
    "type": "string"
  },
  "external_id": {
    "type": "string"
  },
  "session_duration": {
    "type": "string"
  }
}
Show the schema of the message in JSON format.

AWSIoTProviderDefaultIntegration

Fields
Name Type Description
stack_name string The stack name that is associated with the CloudFormation deployment of The Things Stack Enterprise integration.
Schema
{
  "stack_name": {
    "description": "The stack name that is associated with the CloudFormation deployment of The Things Stack Enterprise integration.",
    "type": "string"
  }
}
Show the schema of the message in JSON format.

AlertNotificationReceiverSMS

Fields
Name Type Description
phone_number string According to the international phone numbering plan (ITU-T E. 164) phone numbers cannot contain less than 7 digits and more than 15 digits. The validation is done via an regex and accounts for the '+' formating character.
Schema
{
  "phone_number": {
    "description": "According to the international phone numbering plan (ITU-T E. 164)\nphone numbers cannot contain less than 7 digits and more than 15 digits.\nThe validation is done via an regex and accounts for the '+' formating character.",
    "type": "string"
  }
}
Show the schema of the message in JSON format.

AlertNotificationReceiverWebhook

Fields
Name Type Description
headers object
url string
Schema
{
  "headers": {
    "additionalProperties": {
      "type": "string"
    },
    "type": "object"
  },
  "url": {
    "type": "string"
  }
}
Show the schema of the message in JSON format.

AppAsDecodeDownlinkBody

Fields
Name Type Description
downlink object
end_device_ids object
formatter string - FORMATTER_NONE: No payload formatter to work with raw payload only. - FORMATTER_REPOSITORY: Use payload formatter for the end device type from a repository. - FORMATTER_GRPC_SERVICE: gRPC service payload formatter. The parameter is the host:port of the service. - FORMATTER_JAVASCRIPT: Custom payload formatter that executes Javascript code. The parameter is a JavaScript filename. - FORMATTER_CAYENNELPP: CayenneLPP payload formatter. More payload formatters can be added.
parameter string
version_ids object Identifies an end device model with version information.
Schema
{
  "downlink": {
    "properties": {
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Attributes for devices, set by the Application Server while handling the message.",
        "type": "object"
      },
      "class_b_c": {
        "properties": {
          "absolute_time": {
            "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
            "format": "date-time",
            "type": "string"
          },
          "gateways": {
            "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
            "items": {
              "properties": {
                "antenna_index": {
                  "format": "int64",
                  "type": "integer"
                },
                "gateway_ids": {
                  "properties": {
                    "eui": {
                      "description": "Secondary identifier, which can only be used in specific requests.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "gateway_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "group_index": {
                  "format": "int64",
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "confirmed": {
        "type": "boolean"
      },
      "confirmed_retry": {
        "properties": {
          "attempt": {
            "description": "The number of attempted confirmed downlink acknowledgements.",
            "format": "int64",
            "type": "integer"
          },
          "max_attempts": {
            "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "correlation_ids": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "decoded_payload": {
        "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
        "type": "object"
      },
      "decoded_payload_warnings": {
        "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "f_cnt": {
        "format": "int64",
        "type": "integer"
      },
      "f_port": {
        "format": "int64",
        "type": "integer"
      },
      "frm_payload": {
        "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
        "format": "byte",
        "type": "string"
      },
      "locations": {
        "additionalProperties": {
          "properties": {
            "accuracy": {
              "description": "The accuracy of the location (meters).",
              "format": "int32",
              "type": "integer"
            },
            "altitude": {
              "description": "The altitude (meters), where 0 is the mean sea level.",
              "format": "int32",
              "type": "integer"
            },
            "latitude": {
              "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
              "format": "double",
              "type": "number"
            },
            "longitude": {
              "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
              "format": "double",
              "type": "number"
            },
            "source": {
              "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.",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "End device location metadata, set by the Application Server while handling the message.",
        "type": "object"
      },
      "network_ids": {
        "description": "Identifies a Network Server.",
        "properties": {
          "cluster_address": {
            "description": "Cluster address of the Network Server.",
            "type": "string"
          },
          "cluster_id": {
            "description": "Cluster identifier of the Network Server.",
            "type": "string"
          },
          "net_id": {
            "description": "LoRa Alliance NetID.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "ns_id": {
            "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "tenant_address": {
            "description": "Optional tenant address for multi-tenant deployments.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Optional tenant identifier for multi-tenant deployments.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "priority": {
        "default": "LOWEST",
        "enum": [
          "LOWEST",
          "LOW",
          "BELOW_NORMAL",
          "NORMAL",
          "ABOVE_NORMAL",
          "HIGH",
          "HIGHEST"
        ],
        "type": "string"
      },
      "session_key_id": {
        "description": "Join Server issued identifier for the session keys used by this downlink.",
        "format": "byte",
        "type": "string"
      },
      "version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  },
  "end_device_ids": {
    "properties": {
      "application_ids": {
        "type": "object"
      },
      "dev_addr": {
        "description": "The LoRaWAN DevAddr.",
        "example": "2600ABCD",
        "format": "string",
        "type": "string"
      },
      "dev_eui": {
        "description": "The LoRaWAN DevEUI.",
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      },
      "join_eui": {
        "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      }
    },
    "type": "object"
  },
  "formatter": {
    "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.",
    "enum": [
      "FORMATTER_NONE",
      "FORMATTER_REPOSITORY",
      "FORMATTER_GRPC_SERVICE",
      "FORMATTER_JAVASCRIPT",
      "FORMATTER_CAYENNELPP"
    ],
    "type": "string"
  },
  "parameter": {
    "type": "string"
  },
  "version_ids": {
    "description": "Identifies an end device model with version information.",
    "properties": {
      "band_id": {
        "type": "string"
      },
      "brand_id": {
        "type": "string"
      },
      "firmware_version": {
        "type": "string"
      },
      "hardware_version": {
        "type": "string"
      },
      "model_id": {
        "type": "string"
      }
    },
    "type": "object"
  }
}
Show the schema of the message in JSON format.

AppAsDecodeUplinkBody

Fields
Name Type Description
end_device_ids object
formatter string - FORMATTER_NONE: No payload formatter to work with raw payload only. - FORMATTER_REPOSITORY: Use payload formatter for the end device type from a repository. - FORMATTER_GRPC_SERVICE: gRPC service payload formatter. The parameter is the host:port of the service. - FORMATTER_JAVASCRIPT: Custom payload formatter that executes Javascript code. The parameter is a JavaScript filename. - FORMATTER_CAYENNELPP: CayenneLPP payload formatter. More payload formatters can be added.
parameter string
uplink object
version_ids object Identifies an end device model with version information.
Schema
{
  "end_device_ids": {
    "properties": {
      "application_ids": {
        "type": "object"
      },
      "dev_addr": {
        "description": "The LoRaWAN DevAddr.",
        "example": "2600ABCD",
        "format": "string",
        "type": "string"
      },
      "dev_eui": {
        "description": "The LoRaWAN DevEUI.",
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      },
      "join_eui": {
        "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      }
    },
    "type": "object"
  },
  "formatter": {
    "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.",
    "enum": [
      "FORMATTER_NONE",
      "FORMATTER_REPOSITORY",
      "FORMATTER_GRPC_SERVICE",
      "FORMATTER_JAVASCRIPT",
      "FORMATTER_CAYENNELPP"
    ],
    "type": "string"
  },
  "parameter": {
    "type": "string"
  },
  "uplink": {
    "properties": {
      "app_s_key": {
        "properties": {
          "encrypted_key": {
            "format": "byte",
            "type": "string"
          },
          "kek_label": {
            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
            "type": "string"
          },
          "key": {
            "description": "The unencrypted AES key.",
            "example": "0123456789ABCDEF0123456789ABCDEF",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Attributes for devices, set by the Application Server while handling the message.",
        "type": "object"
      },
      "confirmed": {
        "description": "Indicates whether the end device used confirmed data uplink.",
        "type": "boolean"
      },
      "consumed_airtime": {
        "description": "Consumed airtime for the transmission of the uplink message. Calculated by Network Server using the raw payload size and the transmission settings.",
        "type": "string"
      },
      "decoded_payload": {
        "description": "The decoded frame payload of the uplink message.\nThis field is set by the message processor that is configured for the end device (see formatters) or application (see default_formatters).",
        "type": "object"
      },
      "decoded_payload_warnings": {
        "description": "Warnings generated by the message processor while decoding the frm_payload.",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "f_cnt": {
        "description": "LoRaWAN FCntUp of the uplink message.",
        "format": "int64",
        "type": "integer"
      },
      "f_port": {
        "description": "LoRaWAN FPort of the uplink message.",
        "format": "int64",
        "type": "integer"
      },
      "frm_payload": {
        "description": "The frame payload of the uplink message.\nThe payload is still encrypted if the skip_payload_crypto field of the EndDevice\nis true, which is indicated by the presence of the app_s_key field.",
        "format": "byte",
        "type": "string"
      },
      "last_a_f_cnt_down": {
        "description": "The last AFCntDown of the current session.\nThis field is only present if the skip_payload_crypto field of the EndDevice\nis true.\nCan be used with app_s_key to encrypt downlink payloads.",
        "format": "int64",
        "type": "integer"
      },
      "last_battery_percentage": {
        "properties": {
          "f_cnt": {
            "description": "Frame counter value of last uplink containing DevStatusAns.",
            "format": "int64",
            "type": "integer"
          },
          "received_at": {
            "description": "Time when last DevStatus MAC command was received.",
            "format": "date-time",
            "type": "string"
          },
          "value": {
            "description": "The battery percentage of the end device.\nThe value is defined in the [0, 100] interval.",
            "format": "float",
            "type": "number"
          }
        },
        "type": "object"
      },
      "locations": {
        "additionalProperties": {
          "properties": {
            "accuracy": {
              "description": "The accuracy of the location (meters).",
              "format": "int32",
              "type": "integer"
            },
            "altitude": {
              "description": "The altitude (meters), where 0 is the mean sea level.",
              "format": "int32",
              "type": "integer"
            },
            "latitude": {
              "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
              "format": "double",
              "type": "number"
            },
            "longitude": {
              "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
              "format": "double",
              "type": "number"
            },
            "source": {
              "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.",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "End device location metadata, set by the Application Server while handling the message.",
        "type": "object"
      },
      "network_ids": {
        "description": "Identifies a Network Server.",
        "properties": {
          "cluster_address": {
            "description": "Cluster address of the Network Server.",
            "type": "string"
          },
          "cluster_id": {
            "description": "Cluster identifier of the Network Server.",
            "type": "string"
          },
          "net_id": {
            "description": "LoRa Alliance NetID.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "ns_id": {
            "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "tenant_address": {
            "description": "Optional tenant address for multi-tenant deployments.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Optional tenant identifier for multi-tenant deployments.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "normalized_payload": {
        "description": "The normalized frame payload of the uplink message.\nThis field is set by the message processor that is configured for the end device (see formatters) or application (see default_formatters).\nIf the message processor is a custom script, there is no uplink normalizer script and the decoded output is valid\nnormalized payload, this field contains the decoded payload.",
        "items": {
          "type": "object"
        },
        "type": "array"
      },
      "normalized_payload_warnings": {
        "description": "Warnings generated by the message processor while normalizing the decoded payload.",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "packet_error_rate": {
        "description": "Packet error rate of the recent uplinks in the current session.\nCalculated by the Network Server. The value is defined in the [0, 1] interval.",
        "format": "float",
        "type": "number"
      },
      "received_at": {
        "description": "Server time when the Network Server received the message.",
        "format": "date-time",
        "type": "string"
      },
      "rx_metadata": {
        "description": "A list of metadata for each antenna of each gateway that received this message.",
        "items": {
          "description": "Contains metadata for a received message. Each antenna that receives\na message corresponds to one RxMetadata.",
          "properties": {
            "advanced": {
              "title": "Advanced metadata fields\n- can be used for advanced information or experimental features that are not yet formally defined in the API\n- field names are written in snake_case",
              "type": "object"
            },
            "antenna_index": {
              "format": "int64",
              "type": "integer"
            },
            "channel_index": {
              "description": "Index of the gateway channel that received the message.",
              "format": "int64",
              "type": "integer"
            },
            "channel_rssi": {
              "description": "Received signal strength indicator of the channel (dBm).",
              "format": "float",
              "type": "number"
            },
            "downlink_path_constraint": {
              "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.",
              "enum": [
                "DOWNLINK_PATH_CONSTRAINT_NONE",
                "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
                "DOWNLINK_PATH_CONSTRAINT_NEVER"
              ],
              "type": "string"
            },
            "encrypted_fine_timestamp": {
              "description": "Encrypted gateway's internal fine timestamp when the Rx finished (nanoseconds).",
              "format": "byte",
              "type": "string"
            },
            "encrypted_fine_timestamp_key_id": {
              "type": "string"
            },
            "fine_timestamp": {
              "description": "Gateway's internal fine timestamp when the Rx finished (nanoseconds).",
              "format": "uint64",
              "type": "string"
            },
            "frequency_drift": {
              "description": "Frequency drift in Hz between start and end of an LR-FHSS packet (signed).",
              "format": "int32",
              "type": "integer"
            },
            "frequency_offset": {
              "description": "Frequency offset (Hz).",
              "format": "int64",
              "type": "string"
            },
            "gateway_ids": {
              "properties": {
                "eui": {
                  "description": "Secondary identifier, which can only be used in specific requests.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "gateway_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "gps_time": {
              "description": "Timestamp at the end of the transmission, provided by the gateway.\nGuaranteed to be based on a GPS PPS signal, with an accuracy of 1 millisecond.",
              "format": "date-time",
              "type": "string"
            },
            "hopping_width": {
              "description": "Hopping width; a number describing the number of steps of the LR-FHSS grid.",
              "format": "int64",
              "type": "integer"
            },
            "location": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "packet_broker": {
              "properties": {
                "forwarder_cluster_id": {
                  "description": "Forwarder Cluster ID of the Packet Broker Forwarder.",
                  "type": "string"
                },
                "forwarder_gateway_eui": {
                  "description": "Forwarder gateway EUI.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "forwarder_gateway_id": {
                  "description": "Forwarder gateway ID.",
                  "type": "string"
                },
                "forwarder_net_id": {
                  "description": "LoRa Alliance NetID of the Packet Broker Forwarder Member.",
                  "example": "000013",
                  "format": "string",
                  "type": "string"
                },
                "forwarder_tenant_id": {
                  "description": "Tenant ID managed by the Packet Broker Forwarder Member.",
                  "type": "string"
                },
                "home_network_cluster_id": {
                  "description": "Home Network Cluster ID of the Packet Broker Home Network.",
                  "type": "string"
                },
                "home_network_net_id": {
                  "description": "LoRa Alliance NetID of the Packet Broker Home Network Member.",
                  "example": "000013",
                  "format": "string",
                  "type": "string"
                },
                "home_network_tenant_id": {
                  "description": "Tenant ID managed by the Packet Broker Home Network Member.\nThis value is empty if it cannot be determined by the Packet Broker Router.",
                  "type": "string"
                },
                "hops": {
                  "description": "Hops that the message passed. Each Packet Broker Router service appends an entry.",
                  "items": {
                    "properties": {
                      "received_at": {
                        "description": "Time when the service received the message.",
                        "format": "date-time",
                        "type": "string"
                      },
                      "receiver_agent": {
                        "description": "Receiver agent.",
                        "type": "string"
                      },
                      "receiver_name": {
                        "description": "Receiver of the message.",
                        "type": "string"
                      },
                      "sender_address": {
                        "description": "Sender IP address or host name.",
                        "type": "string"
                      },
                      "sender_name": {
                        "description": "Sender of the message, typically the authorized client identifier.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "message_id": {
                  "description": "Message identifier generated by Packet Broker Router.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "received_at": {
              "description": "Timestamp at which the Gateway Server has received the message.",
              "format": "date-time",
              "type": "string"
            },
            "relay": {
              "properties": {
                "device_id": {
                  "description": "End device identifiers of the relay.",
                  "type": "string"
                },
                "wor_channel": {
                  "default": "RELAY_WOR_CHANNEL_DEFAULT",
                  "enum": [
                    "RELAY_WOR_CHANNEL_DEFAULT",
                    "RELAY_WOR_CHANNEL_SECONDARY"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "rssi": {
              "description": "Received signal strength indicator (dBm).\nThis value equals `channel_rssi`.",
              "format": "float",
              "type": "number"
            },
            "rssi_standard_deviation": {
              "description": "Standard deviation of the RSSI during preamble.",
              "format": "float",
              "type": "number"
            },
            "signal_rssi": {
              "description": "Received signal strength indicator of the signal (dBm).",
              "format": "float",
              "type": "number"
            },
            "snr": {
              "description": "Signal-to-noise ratio (dB).",
              "format": "float",
              "type": "number"
            },
            "time": {
              "description": "Timestamp at the end of the transmission, provided by the gateway. The accuracy is undefined.",
              "format": "date-time",
              "type": "string"
            },
            "timestamp": {
              "description": "Gateway concentrator timestamp when the Rx finished (microseconds).",
              "format": "int64",
              "type": "integer"
            },
            "uplink_token": {
              "description": "Uplink token to be included in the Tx request in class A downlink; injected by gateway, Gateway Server or fNS.",
              "format": "byte",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "session_key_id": {
        "description": "Join Server issued identifier for the session keys used by this uplink.",
        "format": "byte",
        "type": "string"
      },
      "settings": {
        "description": "TxSettings contains the settings for a transmission.\nThis message is used on both uplink and downlink.\nOn downlink, this is a scheduled transmission.",
        "properties": {
          "concentrator_timestamp": {
            "description": "Concentrator timestamp for the downlink as calculated by the Gateway Server scheduler.\nThis value takes into account necessary offsets such as the RTT (Round Trip Time) and TOA (Time Of Arrival).\nThis field is set and used only by the Gateway Server.",
            "format": "int64",
            "type": "string"
          },
          "data_rate": {
            "properties": {
              "fsk": {
                "properties": {
                  "bit_rate": {
                    "description": "Bit rate (bps).",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "lora": {
                "properties": {
                  "bandwidth": {
                    "description": "Bandwidth (Hz).",
                    "format": "int64",
                    "type": "integer"
                  },
                  "coding_rate": {
                    "type": "string"
                  },
                  "spreading_factor": {
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "lrfhss": {
                "properties": {
                  "coding_rate": {
                    "type": "string"
                  },
                  "modulation_type": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "operating_channel_width": {
                    "description": "Operating Channel Width (Hz).",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "downlink": {
            "description": "Transmission settings for downlink.",
            "properties": {
              "antenna_index": {
                "description": "Index of the antenna on which the uplink was received and/or downlink must be sent.",
                "format": "int64",
                "type": "integer"
              },
              "invert_polarization": {
                "description": "Invert LoRa polarization; false for LoRaWAN uplink, true for downlink.",
                "type": "boolean"
              },
              "tx_power": {
                "description": "Transmission power (dBm). Only on downlink.",
                "format": "float",
                "type": "number"
              }
            },
            "type": "object"
          },
          "enable_crc": {
            "description": "Send a CRC in the packet; only on uplink; on downlink, CRC should not be enabled.",
            "type": "boolean"
          },
          "frequency": {
            "description": "Frequency (Hz).",
            "format": "uint64",
            "type": "string"
          },
          "time": {
            "description": "Time of the gateway when the uplink message was received, or when the downlink message should be transmitted.\nFor downlink, this requires the gateway to have GPS time synchronization.",
            "format": "date-time",
            "type": "string"
          },
          "timestamp": {
            "description": "Timestamp of the gateway concentrator when the uplink message was received, or when the downlink message should be transmitted (microseconds).\nOn downlink, set timestamp to 0 and time to null to use immediate scheduling.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  },
  "version_ids": {
    "description": "Identifies an end device model with version information.",
    "properties": {
      "band_id": {
        "type": "string"
      },
      "brand_id": {
        "type": "string"
      },
      "firmware_version": {
        "type": "string"
      },
      "hardware_version": {
        "type": "string"
      },
      "model_id": {
        "type": "string"
      }
    },
    "type": "object"
  }
}
Show the schema of the message in JSON format.

AppAsEncodeDownlinkBody

Fields
Name Type Description
downlink object
end_device_ids object
formatter string - FORMATTER_NONE: No payload formatter to work with raw payload only. - FORMATTER_REPOSITORY: Use payload formatter for the end device type from a repository. - FORMATTER_GRPC_SERVICE: gRPC service payload formatter. The parameter is the host:port of the service. - FORMATTER_JAVASCRIPT: Custom payload formatter that executes Javascript code. The parameter is a JavaScript filename. - FORMATTER_CAYENNELPP: CayenneLPP payload formatter. More payload formatters can be added.
parameter string
version_ids object Identifies an end device model with version information.
Schema
{
  "downlink": {
    "properties": {
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Attributes for devices, set by the Application Server while handling the message.",
        "type": "object"
      },
      "class_b_c": {
        "properties": {
          "absolute_time": {
            "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
            "format": "date-time",
            "type": "string"
          },
          "gateways": {
            "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
            "items": {
              "properties": {
                "antenna_index": {
                  "format": "int64",
                  "type": "integer"
                },
                "gateway_ids": {
                  "properties": {
                    "eui": {
                      "description": "Secondary identifier, which can only be used in specific requests.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "gateway_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "group_index": {
                  "format": "int64",
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "confirmed": {
        "type": "boolean"
      },
      "confirmed_retry": {
        "properties": {
          "attempt": {
            "description": "The number of attempted confirmed downlink acknowledgements.",
            "format": "int64",
            "type": "integer"
          },
          "max_attempts": {
            "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "correlation_ids": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "decoded_payload": {
        "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
        "type": "object"
      },
      "decoded_payload_warnings": {
        "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "f_cnt": {
        "format": "int64",
        "type": "integer"
      },
      "f_port": {
        "format": "int64",
        "type": "integer"
      },
      "frm_payload": {
        "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
        "format": "byte",
        "type": "string"
      },
      "locations": {
        "additionalProperties": {
          "properties": {
            "accuracy": {
              "description": "The accuracy of the location (meters).",
              "format": "int32",
              "type": "integer"
            },
            "altitude": {
              "description": "The altitude (meters), where 0 is the mean sea level.",
              "format": "int32",
              "type": "integer"
            },
            "latitude": {
              "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
              "format": "double",
              "type": "number"
            },
            "longitude": {
              "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
              "format": "double",
              "type": "number"
            },
            "source": {
              "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.",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "End device location metadata, set by the Application Server while handling the message.",
        "type": "object"
      },
      "network_ids": {
        "description": "Identifies a Network Server.",
        "properties": {
          "cluster_address": {
            "description": "Cluster address of the Network Server.",
            "type": "string"
          },
          "cluster_id": {
            "description": "Cluster identifier of the Network Server.",
            "type": "string"
          },
          "net_id": {
            "description": "LoRa Alliance NetID.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "ns_id": {
            "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "tenant_address": {
            "description": "Optional tenant address for multi-tenant deployments.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Optional tenant identifier for multi-tenant deployments.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "priority": {
        "default": "LOWEST",
        "enum": [
          "LOWEST",
          "LOW",
          "BELOW_NORMAL",
          "NORMAL",
          "ABOVE_NORMAL",
          "HIGH",
          "HIGHEST"
        ],
        "type": "string"
      },
      "session_key_id": {
        "description": "Join Server issued identifier for the session keys used by this downlink.",
        "format": "byte",
        "type": "string"
      },
      "version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  },
  "end_device_ids": {
    "properties": {
      "application_ids": {
        "type": "object"
      },
      "dev_addr": {
        "description": "The LoRaWAN DevAddr.",
        "example": "2600ABCD",
        "format": "string",
        "type": "string"
      },
      "dev_eui": {
        "description": "The LoRaWAN DevEUI.",
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      },
      "join_eui": {
        "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      }
    },
    "type": "object"
  },
  "formatter": {
    "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.",
    "enum": [
      "FORMATTER_NONE",
      "FORMATTER_REPOSITORY",
      "FORMATTER_GRPC_SERVICE",
      "FORMATTER_JAVASCRIPT",
      "FORMATTER_CAYENNELPP"
    ],
    "type": "string"
  },
  "parameter": {
    "type": "string"
  },
  "version_ids": {
    "description": "Identifies an end device model with version information.",
    "properties": {
      "band_id": {
        "type": "string"
      },
      "brand_id": {
        "type": "string"
      },
      "firmware_version": {
        "type": "string"
      },
      "hardware_version": {
        "type": "string"
      },
      "model_id": {
        "type": "string"
      }
    },
    "type": "object"
  }
}
Show the schema of the message in JSON format.

AppAsSimulateUplinkBody

Application uplink message.
Fields
Name Type Description
correlation_ids string
downlink_ack object
downlink_failed object
downlink_nack object
downlink_queue_invalidated object
downlink_queued object
downlink_sent object
end_device_ids object
join_accept object
location_solved object
received_at string Server time when the Application Server received the message.
service_data object
simulated boolean Signals if the message is coming from the Network Server or is simulated. The Application Server automatically sets this field, and callers must not manually set it.
uplink_message object
uplink_normalized object
Schema
{
  "correlation_ids": {
    "items": {
      "type": "string"
    },
    "type": "array"
  },
  "downlink_ack": {
    "properties": {
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Attributes for devices, set by the Application Server while handling the message.",
        "type": "object"
      },
      "class_b_c": {
        "properties": {
          "absolute_time": {
            "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
            "format": "date-time",
            "type": "string"
          },
          "gateways": {
            "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
            "items": {
              "properties": {
                "antenna_index": {
                  "format": "int64",
                  "type": "integer"
                },
                "gateway_ids": {
                  "properties": {
                    "eui": {
                      "description": "Secondary identifier, which can only be used in specific requests.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "gateway_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "group_index": {
                  "format": "int64",
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "confirmed": {
        "type": "boolean"
      },
      "confirmed_retry": {
        "properties": {
          "attempt": {
            "description": "The number of attempted confirmed downlink acknowledgements.",
            "format": "int64",
            "type": "integer"
          },
          "max_attempts": {
            "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "correlation_ids": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "decoded_payload": {
        "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
        "type": "object"
      },
      "decoded_payload_warnings": {
        "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "f_cnt": {
        "format": "int64",
        "type": "integer"
      },
      "f_port": {
        "format": "int64",
        "type": "integer"
      },
      "frm_payload": {
        "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
        "format": "byte",
        "type": "string"
      },
      "locations": {
        "additionalProperties": {
          "properties": {
            "accuracy": {
              "description": "The accuracy of the location (meters).",
              "format": "int32",
              "type": "integer"
            },
            "altitude": {
              "description": "The altitude (meters), where 0 is the mean sea level.",
              "format": "int32",
              "type": "integer"
            },
            "latitude": {
              "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
              "format": "double",
              "type": "number"
            },
            "longitude": {
              "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
              "format": "double",
              "type": "number"
            },
            "source": {
              "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.",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "End device location metadata, set by the Application Server while handling the message.",
        "type": "object"
      },
      "network_ids": {
        "description": "Identifies a Network Server.",
        "properties": {
          "cluster_address": {
            "description": "Cluster address of the Network Server.",
            "type": "string"
          },
          "cluster_id": {
            "description": "Cluster identifier of the Network Server.",
            "type": "string"
          },
          "net_id": {
            "description": "LoRa Alliance NetID.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "ns_id": {
            "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "tenant_address": {
            "description": "Optional tenant address for multi-tenant deployments.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Optional tenant identifier for multi-tenant deployments.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "priority": {
        "default": "LOWEST",
        "enum": [
          "LOWEST",
          "LOW",
          "BELOW_NORMAL",
          "NORMAL",
          "ABOVE_NORMAL",
          "HIGH",
          "HIGHEST"
        ],
        "type": "string"
      },
      "session_key_id": {
        "description": "Join Server issued identifier for the session keys used by this downlink.",
        "format": "byte",
        "type": "string"
      },
      "version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  },
  "downlink_failed": {
    "properties": {
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Attributes for devices, set by the Application Server while handling the message.",
        "type": "object"
      },
      "downlink": {
        "properties": {
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Attributes for devices, set by the Application Server while handling the message.",
            "type": "object"
          },
          "class_b_c": {
            "properties": {
              "absolute_time": {
                "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                "format": "date-time",
                "type": "string"
              },
              "gateways": {
                "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                "items": {
                  "properties": {
                    "antenna_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "gateway_ids": {
                      "properties": {
                        "eui": {
                          "description": "Secondary identifier, which can only be used in specific requests.",
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "gateway_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "group_index": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "confirmed": {
            "type": "boolean"
          },
          "confirmed_retry": {
            "properties": {
              "attempt": {
                "description": "The number of attempted confirmed downlink acknowledgements.",
                "format": "int64",
                "type": "integer"
              },
              "max_attempts": {
                "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "correlation_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "decoded_payload": {
            "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
            "type": "object"
          },
          "decoded_payload_warnings": {
            "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "f_cnt": {
            "format": "int64",
            "type": "integer"
          },
          "f_port": {
            "format": "int64",
            "type": "integer"
          },
          "frm_payload": {
            "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
            "format": "byte",
            "type": "string"
          },
          "locations": {
            "additionalProperties": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "description": "End device location metadata, set by the Application Server while handling the message.",
            "type": "object"
          },
          "network_ids": {
            "description": "Identifies a Network Server.",
            "properties": {
              "cluster_address": {
                "description": "Cluster address of the Network Server.",
                "type": "string"
              },
              "cluster_id": {
                "description": "Cluster identifier of the Network Server.",
                "type": "string"
              },
              "net_id": {
                "description": "LoRa Alliance NetID.",
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "ns_id": {
                "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "tenant_address": {
                "description": "Optional tenant address for multi-tenant deployments.",
                "type": "string"
              },
              "tenant_id": {
                "description": "Optional tenant identifier for multi-tenant deployments.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "priority": {
            "default": "LOWEST",
            "enum": [
              "LOWEST",
              "LOW",
              "BELOW_NORMAL",
              "NORMAL",
              "ABOVE_NORMAL",
              "HIGH",
              "HIGHEST"
            ],
            "type": "string"
          },
          "session_key_id": {
            "description": "Join Server issued identifier for the session keys used by this downlink.",
            "format": "byte",
            "type": "string"
          },
          "version_ids": {
            "description": "Identifies an end device model with version information.",
            "properties": {
              "band_id": {
                "type": "string"
              },
              "brand_id": {
                "type": "string"
              },
              "firmware_version": {
                "type": "string"
              },
              "hardware_version": {
                "type": "string"
              },
              "model_id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "error": {
        "$ref": "#/definitions/v3ErrorDetails"
      },
      "locations": {
        "additionalProperties": {
          "properties": {
            "accuracy": {
              "description": "The accuracy of the location (meters).",
              "format": "int32",
              "type": "integer"
            },
            "altitude": {
              "description": "The altitude (meters), where 0 is the mean sea level.",
              "format": "int32",
              "type": "integer"
            },
            "latitude": {
              "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
              "format": "double",
              "type": "number"
            },
            "longitude": {
              "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
              "format": "double",
              "type": "number"
            },
            "source": {
              "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.",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "End device location metadata, set by the Application Server while handling the message.",
        "type": "object"
      },
      "network_ids": {
        "description": "Identifies a Network Server.",
        "properties": {
          "cluster_address": {
            "description": "Cluster address of the Network Server.",
            "type": "string"
          },
          "cluster_id": {
            "description": "Cluster identifier of the Network Server.",
            "type": "string"
          },
          "net_id": {
            "description": "LoRa Alliance NetID.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "ns_id": {
            "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "tenant_address": {
            "description": "Optional tenant address for multi-tenant deployments.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Optional tenant identifier for multi-tenant deployments.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  },
  "downlink_nack": {
    "properties": {
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Attributes for devices, set by the Application Server while handling the message.",
        "type": "object"
      },
      "class_b_c": {
        "properties": {
          "absolute_time": {
            "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
            "format": "date-time",
            "type": "string"
          },
          "gateways": {
            "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
            "items": {
              "properties": {
                "antenna_index": {
                  "format": "int64",
                  "type": "integer"
                },
                "gateway_ids": {
                  "properties": {
                    "eui": {
                      "description": "Secondary identifier, which can only be used in specific requests.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "gateway_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "group_index": {
                  "format": "int64",
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "confirmed": {
        "type": "boolean"
      },
      "confirmed_retry": {
        "properties": {
          "attempt": {
            "description": "The number of attempted confirmed downlink acknowledgements.",
            "format": "int64",
            "type": "integer"
          },
          "max_attempts": {
            "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "correlation_ids": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "decoded_payload": {
        "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
        "type": "object"
      },
      "decoded_payload_warnings": {
        "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "f_cnt": {
        "format": "int64",
        "type": "integer"
      },
      "f_port": {
        "format": "int64",
        "type": "integer"
      },
      "frm_payload": {
        "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
        "format": "byte",
        "type": "string"
      },
      "locations": {
        "additionalProperties": {
          "properties": {
            "accuracy": {
              "description": "The accuracy of the location (meters).",
              "format": "int32",
              "type": "integer"
            },
            "altitude": {
              "description": "The altitude (meters), where 0 is the mean sea level.",
              "format": "int32",
              "type": "integer"
            },
            "latitude": {
              "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
              "format": "double",
              "type": "number"
            },
            "longitude": {
              "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
              "format": "double",
              "type": "number"
            },
            "source": {
              "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.",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "End device location metadata, set by the Application Server while handling the message.",
        "type": "object"
      },
      "network_ids": {
        "description": "Identifies a Network Server.",
        "properties": {
          "cluster_address": {
            "description": "Cluster address of the Network Server.",
            "type": "string"
          },
          "cluster_id": {
            "description": "Cluster identifier of the Network Server.",
            "type": "string"
          },
          "net_id": {
            "description": "LoRa Alliance NetID.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "ns_id": {
            "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "tenant_address": {
            "description": "Optional tenant address for multi-tenant deployments.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Optional tenant identifier for multi-tenant deployments.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "priority": {
        "default": "LOWEST",
        "enum": [
          "LOWEST",
          "LOW",
          "BELOW_NORMAL",
          "NORMAL",
          "ABOVE_NORMAL",
          "HIGH",
          "HIGHEST"
        ],
        "type": "string"
      },
      "session_key_id": {
        "description": "Join Server issued identifier for the session keys used by this downlink.",
        "format": "byte",
        "type": "string"
      },
      "version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  },
  "downlink_queue_invalidated": {
    "properties": {
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Attributes for devices, set by the Application Server while handling the message.",
        "type": "object"
      },
      "downlinks": {
        "items": {
          "properties": {
            "attributes": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Attributes for devices, set by the Application Server while handling the message.",
              "type": "object"
            },
            "class_b_c": {
              "properties": {
                "absolute_time": {
                  "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                  "format": "date-time",
                  "type": "string"
                },
                "gateways": {
                  "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                  "items": {
                    "properties": {
                      "antenna_index": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "gateway_ids": {
                        "properties": {
                          "eui": {
                            "description": "Secondary identifier, which can only be used in specific requests.",
                            "example": "70B3D57ED000ABCD",
                            "format": "string",
                            "type": "string"
                          },
                          "gateway_id": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "group_index": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "confirmed": {
              "type": "boolean"
            },
            "confirmed_retry": {
              "properties": {
                "attempt": {
                  "description": "The number of attempted confirmed downlink acknowledgements.",
                  "format": "int64",
                  "type": "integer"
                },
                "max_attempts": {
                  "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                  "format": "int64",
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "correlation_ids": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "decoded_payload": {
              "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
              "type": "object"
            },
            "decoded_payload_warnings": {
              "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "f_cnt": {
              "format": "int64",
              "type": "integer"
            },
            "f_port": {
              "format": "int64",
              "type": "integer"
            },
            "frm_payload": {
              "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
              "format": "byte",
              "type": "string"
            },
            "locations": {
              "additionalProperties": {
                "properties": {
                  "accuracy": {
                    "description": "The accuracy of the location (meters).",
                    "format": "int32",
                    "type": "integer"
                  },
                  "altitude": {
                    "description": "The altitude (meters), where 0 is the mean sea level.",
                    "format": "int32",
                    "type": "integer"
                  },
                  "latitude": {
                    "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                    "format": "double",
                    "type": "number"
                  },
                  "longitude": {
                    "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                    "format": "double",
                    "type": "number"
                  },
                  "source": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "description": "End device location metadata, set by the Application Server while handling the message.",
              "type": "object"
            },
            "network_ids": {
              "description": "Identifies a Network Server.",
              "properties": {
                "cluster_address": {
                  "description": "Cluster address of the Network Server.",
                  "type": "string"
                },
                "cluster_id": {
                  "description": "Cluster identifier of the Network Server.",
                  "type": "string"
                },
                "net_id": {
                  "description": "LoRa Alliance NetID.",
                  "example": "000013",
                  "format": "string",
                  "type": "string"
                },
                "ns_id": {
                  "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "tenant_address": {
                  "description": "Optional tenant address for multi-tenant deployments.",
                  "type": "string"
                },
                "tenant_id": {
                  "description": "Optional tenant identifier for multi-tenant deployments.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "priority": {
              "default": "LOWEST",
              "enum": [
                "LOWEST",
                "LOW",
                "BELOW_NORMAL",
                "NORMAL",
                "ABOVE_NORMAL",
                "HIGH",
                "HIGHEST"
              ],
              "type": "string"
            },
            "session_key_id": {
              "description": "Join Server issued identifier for the session keys used by this downlink.",
              "format": "byte",
              "type": "string"
            },
            "version_ids": {
              "description": "Identifies an end device model with version information.",
              "properties": {
                "band_id": {
                  "type": "string"
                },
                "brand_id": {
                  "type": "string"
                },
                "firmware_version": {
                  "type": "string"
                },
                "hardware_version": {
                  "type": "string"
                },
                "model_id": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "last_f_cnt_down": {
        "format": "int64",
        "type": "integer"
      },
      "locations": {
        "additionalProperties": {
          "properties": {
            "accuracy": {
              "description": "The accuracy of the location (meters).",
              "format": "int32",
              "type": "integer"
            },
            "altitude": {
              "description": "The altitude (meters), where 0 is the mean sea level.",
              "format": "int32",
              "type": "integer"
            },
            "latitude": {
              "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
              "format": "double",
              "type": "number"
            },
            "longitude": {
              "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
              "format": "double",
              "type": "number"
            },
            "source": {
              "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.",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "End device location metadata, set by the Application Server while handling the message.",
        "type": "object"
      },
      "network_ids": {
        "description": "Identifies a Network Server.",
        "properties": {
          "cluster_address": {
            "description": "Cluster address of the Network Server.",
            "type": "string"
          },
          "cluster_id": {
            "description": "Cluster identifier of the Network Server.",
            "type": "string"
          },
          "net_id": {
            "description": "LoRa Alliance NetID.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "ns_id": {
            "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "tenant_address": {
            "description": "Optional tenant address for multi-tenant deployments.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Optional tenant identifier for multi-tenant deployments.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "session_key_id": {
        "format": "byte",
        "type": "string"
      },
      "version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  },
  "downlink_queued": {
    "properties": {
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Attributes for devices, set by the Application Server while handling the message.",
        "type": "object"
      },
      "class_b_c": {
        "properties": {
          "absolute_time": {
            "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
            "format": "date-time",
            "type": "string"
          },
          "gateways": {
            "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
            "items": {
              "properties": {
                "antenna_index": {
                  "format": "int64",
                  "type": "integer"
                },
                "gateway_ids": {
                  "properties": {
                    "eui": {
                      "description": "Secondary identifier, which can only be used in specific requests.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "gateway_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "group_index": {
                  "format": "int64",
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "confirmed": {
        "type": "boolean"
      },
      "confirmed_retry": {
        "properties": {
          "attempt": {
            "description": "The number of attempted confirmed downlink acknowledgements.",
            "format": "int64",
            "type": "integer"
          },
          "max_attempts": {
            "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "correlation_ids": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "decoded_payload": {
        "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
        "type": "object"
      },
      "decoded_payload_warnings": {
        "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "f_cnt": {
        "format": "int64",
        "type": "integer"
      },
      "f_port": {
        "format": "int64",
        "type": "integer"
      },
      "frm_payload": {
        "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
        "format": "byte",
        "type": "string"
      },
      "locations": {
        "additionalProperties": {
          "properties": {
            "accuracy": {
              "description": "The accuracy of the location (meters).",
              "format": "int32",
              "type": "integer"
            },
            "altitude": {
              "description": "The altitude (meters), where 0 is the mean sea level.",
              "format": "int32",
              "type": "integer"
            },
            "latitude": {
              "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
              "format": "double",
              "type": "number"
            },
            "longitude": {
              "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
              "format": "double",
              "type": "number"
            },
            "source": {
              "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.",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "End device location metadata, set by the Application Server while handling the message.",
        "type": "object"
      },
      "network_ids": {
        "description": "Identifies a Network Server.",
        "properties": {
          "cluster_address": {
            "description": "Cluster address of the Network Server.",
            "type": "string"
          },
          "cluster_id": {
            "description": "Cluster identifier of the Network Server.",
            "type": "string"
          },
          "net_id": {
            "description": "LoRa Alliance NetID.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "ns_id": {
            "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "tenant_address": {
            "description": "Optional tenant address for multi-tenant deployments.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Optional tenant identifier for multi-tenant deployments.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "priority": {
        "default": "LOWEST",
        "enum": [
          "LOWEST",
          "LOW",
          "BELOW_NORMAL",
          "NORMAL",
          "ABOVE_NORMAL",
          "HIGH",
          "HIGHEST"
        ],
        "type": "string"
      },
      "session_key_id": {
        "description": "Join Server issued identifier for the session keys used by this downlink.",
        "format": "byte",
        "type": "string"
      },
      "version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  },
  "downlink_sent": {
    "properties": {
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Attributes for devices, set by the Application Server while handling the message.",
        "type": "object"
      },
      "class_b_c": {
        "properties": {
          "absolute_time": {
            "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
            "format": "date-time",
            "type": "string"
          },
          "gateways": {
            "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
            "items": {
              "properties": {
                "antenna_index": {
                  "format": "int64",
                  "type": "integer"
                },
                "gateway_ids": {
                  "properties": {
                    "eui": {
                      "description": "Secondary identifier, which can only be used in specific requests.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "gateway_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "group_index": {
                  "format": "int64",
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "confirmed": {
        "type": "boolean"
      },
      "confirmed_retry": {
        "properties": {
          "attempt": {
            "description": "The number of attempted confirmed downlink acknowledgements.",
            "format": "int64",
            "type": "integer"
          },
          "max_attempts": {
            "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "correlation_ids": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "decoded_payload": {
        "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
        "type": "object"
      },
      "decoded_payload_warnings": {
        "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "f_cnt": {
        "format": "int64",
        "type": "integer"
      },
      "f_port": {
        "format": "int64",
        "type": "integer"
      },
      "frm_payload": {
        "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
        "format": "byte",
        "type": "string"
      },
      "locations": {
        "additionalProperties": {
          "properties": {
            "accuracy": {
              "description": "The accuracy of the location (meters).",
              "format": "int32",
              "type": "integer"
            },
            "altitude": {
              "description": "The altitude (meters), where 0 is the mean sea level.",
              "format": "int32",
              "type": "integer"
            },
            "latitude": {
              "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
              "format": "double",
              "type": "number"
            },
            "longitude": {
              "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
              "format": "double",
              "type": "number"
            },
            "source": {
              "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.",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "End device location metadata, set by the Application Server while handling the message.",
        "type": "object"
      },
      "network_ids": {
        "description": "Identifies a Network Server.",
        "properties": {
          "cluster_address": {
            "description": "Cluster address of the Network Server.",
            "type": "string"
          },
          "cluster_id": {
            "description": "Cluster identifier of the Network Server.",
            "type": "string"
          },
          "net_id": {
            "description": "LoRa Alliance NetID.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "ns_id": {
            "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "tenant_address": {
            "description": "Optional tenant address for multi-tenant deployments.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Optional tenant identifier for multi-tenant deployments.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "priority": {
        "default": "LOWEST",
        "enum": [
          "LOWEST",
          "LOW",
          "BELOW_NORMAL",
          "NORMAL",
          "ABOVE_NORMAL",
          "HIGH",
          "HIGHEST"
        ],
        "type": "string"
      },
      "session_key_id": {
        "description": "Join Server issued identifier for the session keys used by this downlink.",
        "format": "byte",
        "type": "string"
      },
      "version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  },
  "end_device_ids": {
    "properties": {
      "application_ids": {
        "type": "object"
      },
      "dev_addr": {
        "description": "The LoRaWAN DevAddr.",
        "example": "2600ABCD",
        "format": "string",
        "type": "string"
      },
      "dev_eui": {
        "description": "The LoRaWAN DevEUI.",
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      },
      "join_eui": {
        "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      }
    },
    "type": "object"
  },
  "join_accept": {
    "properties": {
      "app_s_key": {
        "properties": {
          "encrypted_key": {
            "format": "byte",
            "type": "string"
          },
          "kek_label": {
            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
            "type": "string"
          },
          "key": {
            "description": "The unencrypted AES key.",
            "example": "0123456789ABCDEF0123456789ABCDEF",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Attributes for devices, set by the Application Server while handling the message.",
        "type": "object"
      },
      "invalidated_downlinks": {
        "description": "Downlink messages in the queue that got invalidated because of the session change.",
        "items": {
          "properties": {
            "attributes": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Attributes for devices, set by the Application Server while handling the message.",
              "type": "object"
            },
            "class_b_c": {
              "properties": {
                "absolute_time": {
                  "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                  "format": "date-time",
                  "type": "string"
                },
                "gateways": {
                  "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                  "items": {
                    "properties": {
                      "antenna_index": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "gateway_ids": {
                        "properties": {
                          "eui": {
                            "description": "Secondary identifier, which can only be used in specific requests.",
                            "example": "70B3D57ED000ABCD",
                            "format": "string",
                            "type": "string"
                          },
                          "gateway_id": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "group_index": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "confirmed": {
              "type": "boolean"
            },
            "confirmed_retry": {
              "properties": {
                "attempt": {
                  "description": "The number of attempted confirmed downlink acknowledgements.",
                  "format": "int64",
                  "type": "integer"
                },
                "max_attempts": {
                  "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                  "format": "int64",
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "correlation_ids": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "decoded_payload": {
              "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
              "type": "object"
            },
            "decoded_payload_warnings": {
              "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "f_cnt": {
              "format": "int64",
              "type": "integer"
            },
            "f_port": {
              "format": "int64",
              "type": "integer"
            },
            "frm_payload": {
              "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
              "format": "byte",
              "type": "string"
            },
            "locations": {
              "additionalProperties": {
                "properties": {
                  "accuracy": {
                    "description": "The accuracy of the location (meters).",
                    "format": "int32",
                    "type": "integer"
                  },
                  "altitude": {
                    "description": "The altitude (meters), where 0 is the mean sea level.",
                    "format": "int32",
                    "type": "integer"
                  },
                  "latitude": {
                    "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                    "format": "double",
                    "type": "number"
                  },
                  "longitude": {
                    "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                    "format": "double",
                    "type": "number"
                  },
                  "source": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "description": "End device location metadata, set by the Application Server while handling the message.",
              "type": "object"
            },
            "network_ids": {
              "description": "Identifies a Network Server.",
              "properties": {
                "cluster_address": {
                  "description": "Cluster address of the Network Server.",
                  "type": "string"
                },
                "cluster_id": {
                  "description": "Cluster identifier of the Network Server.",
                  "type": "string"
                },
                "net_id": {
                  "description": "LoRa Alliance NetID.",
                  "example": "000013",
                  "format": "string",
                  "type": "string"
                },
                "ns_id": {
                  "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "tenant_address": {
                  "description": "Optional tenant address for multi-tenant deployments.",
                  "type": "string"
                },
                "tenant_id": {
                  "description": "Optional tenant identifier for multi-tenant deployments.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "priority": {
              "default": "LOWEST",
              "enum": [
                "LOWEST",
                "LOW",
                "BELOW_NORMAL",
                "NORMAL",
                "ABOVE_NORMAL",
                "HIGH",
                "HIGHEST"
              ],
              "type": "string"
            },
            "session_key_id": {
              "description": "Join Server issued identifier for the session keys used by this downlink.",
              "format": "byte",
              "type": "string"
            },
            "version_ids": {
              "description": "Identifies an end device model with version information.",
              "properties": {
                "band_id": {
                  "type": "string"
                },
                "brand_id": {
                  "type": "string"
                },
                "firmware_version": {
                  "type": "string"
                },
                "hardware_version": {
                  "type": "string"
                },
                "model_id": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "locations": {
        "additionalProperties": {
          "properties": {
            "accuracy": {
              "description": "The accuracy of the location (meters).",
              "format": "int32",
              "type": "integer"
            },
            "altitude": {
              "description": "The altitude (meters), where 0 is the mean sea level.",
              "format": "int32",
              "type": "integer"
            },
            "latitude": {
              "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
              "format": "double",
              "type": "number"
            },
            "longitude": {
              "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
              "format": "double",
              "type": "number"
            },
            "source": {
              "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.",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "End device location metadata, set by the Application Server while handling the message.",
        "type": "object"
      },
      "network_ids": {
        "description": "Identifies a Network Server.",
        "properties": {
          "cluster_address": {
            "description": "Cluster address of the Network Server.",
            "type": "string"
          },
          "cluster_id": {
            "description": "Cluster identifier of the Network Server.",
            "type": "string"
          },
          "net_id": {
            "description": "LoRa Alliance NetID.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "ns_id": {
            "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "tenant_address": {
            "description": "Optional tenant address for multi-tenant deployments.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Optional tenant identifier for multi-tenant deployments.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "pending_session": {
        "description": "Indicates whether the security context refers to the pending session, i.e. when this join-accept is an answer to a\nrejoin-request.",
        "type": "boolean"
      },
      "received_at": {
        "description": "Server time when the Network Server received the message.",
        "format": "date-time",
        "type": "string"
      },
      "session_key_id": {
        "description": "Join Server issued identifier for the session keys negotiated in this join.",
        "format": "byte",
        "type": "string"
      },
      "version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  },
  "location_solved": {
    "properties": {
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "type": "object"
      },
      "location": {
        "properties": {
          "accuracy": {
            "description": "The accuracy of the location (meters).",
            "format": "int32",
            "type": "integer"
          },
          "altitude": {
            "description": "The altitude (meters), where 0 is the mean sea level.",
            "format": "int32",
            "type": "integer"
          },
          "latitude": {
            "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
            "format": "double",
            "type": "number"
          },
          "longitude": {
            "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
            "format": "double",
            "type": "number"
          },
          "source": {
            "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.",
            "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"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "service": {
        "type": "string"
      }
    },
    "type": "object"
  },
  "received_at": {
    "description": "Server time when the Application Server received the message.",
    "format": "date-time",
    "type": "string"
  },
  "service_data": {
    "properties": {
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Attributes for devices, set by the Application Server while handling the message.",
        "type": "object"
      },
      "data": {
        "type": "object"
      },
      "locations": {
        "additionalProperties": {
          "properties": {
            "accuracy": {
              "description": "The accuracy of the location (meters).",
              "format": "int32",
              "type": "integer"
            },
            "altitude": {
              "description": "The altitude (meters), where 0 is the mean sea level.",
              "format": "int32",
              "type": "integer"
            },
            "latitude": {
              "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
              "format": "double",
              "type": "number"
            },
            "longitude": {
              "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
              "format": "double",
              "type": "number"
            },
            "source": {
              "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.",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "End device location metadata, set by the Application Server while handling the message.",
        "type": "object"
      },
      "network_ids": {
        "description": "Identifies a Network Server.",
        "properties": {
          "cluster_address": {
            "description": "Cluster address of the Network Server.",
            "type": "string"
          },
          "cluster_id": {
            "description": "Cluster identifier of the Network Server.",
            "type": "string"
          },
          "net_id": {
            "description": "LoRa Alliance NetID.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "ns_id": {
            "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "tenant_address": {
            "description": "Optional tenant address for multi-tenant deployments.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Optional tenant identifier for multi-tenant deployments.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "service": {
        "type": "string"
      },
      "version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  },
  "simulated": {
    "description": "Signals if the message is coming from the Network Server or is simulated.\nThe Application Server automatically sets this field, and callers must not manually set it.",
    "type": "boolean"
  },
  "uplink_message": {
    "properties": {
      "app_s_key": {
        "properties": {
          "encrypted_key": {
            "format": "byte",
            "type": "string"
          },
          "kek_label": {
            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
            "type": "string"
          },
          "key": {
            "description": "The unencrypted AES key.",
            "example": "0123456789ABCDEF0123456789ABCDEF",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Attributes for devices, set by the Application Server while handling the message.",
        "type": "object"
      },
      "confirmed": {
        "description": "Indicates whether the end device used confirmed data uplink.",
        "type": "boolean"
      },
      "consumed_airtime": {
        "description": "Consumed airtime for the transmission of the uplink message. Calculated by Network Server using the raw payload size and the transmission settings.",
        "type": "string"
      },
      "decoded_payload": {
        "description": "The decoded frame payload of the uplink message.\nThis field is set by the message processor that is configured for the end device (see formatters) or application (see default_formatters).",
        "type": "object"
      },
      "decoded_payload_warnings": {
        "description": "Warnings generated by the message processor while decoding the frm_payload.",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "f_cnt": {
        "description": "LoRaWAN FCntUp of the uplink message.",
        "format": "int64",
        "type": "integer"
      },
      "f_port": {
        "description": "LoRaWAN FPort of the uplink message.",
        "format": "int64",
        "type": "integer"
      },
      "frm_payload": {
        "description": "The frame payload of the uplink message.\nThe payload is still encrypted if the skip_payload_crypto field of the EndDevice\nis true, which is indicated by the presence of the app_s_key field.",
        "format": "byte",
        "type": "string"
      },
      "last_a_f_cnt_down": {
        "description": "The last AFCntDown of the current session.\nThis field is only present if the skip_payload_crypto field of the EndDevice\nis true.\nCan be used with app_s_key to encrypt downlink payloads.",
        "format": "int64",
        "type": "integer"
      },
      "last_battery_percentage": {
        "properties": {
          "f_cnt": {
            "description": "Frame counter value of last uplink containing DevStatusAns.",
            "format": "int64",
            "type": "integer"
          },
          "received_at": {
            "description": "Time when last DevStatus MAC command was received.",
            "format": "date-time",
            "type": "string"
          },
          "value": {
            "description": "The battery percentage of the end device.\nThe value is defined in the [0, 100] interval.",
            "format": "float",
            "type": "number"
          }
        },
        "type": "object"
      },
      "locations": {
        "additionalProperties": {
          "properties": {
            "accuracy": {
              "description": "The accuracy of the location (meters).",
              "format": "int32",
              "type": "integer"
            },
            "altitude": {
              "description": "The altitude (meters), where 0 is the mean sea level.",
              "format": "int32",
              "type": "integer"
            },
            "latitude": {
              "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
              "format": "double",
              "type": "number"
            },
            "longitude": {
              "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
              "format": "double",
              "type": "number"
            },
            "source": {
              "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.",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "End device location metadata, set by the Application Server while handling the message.",
        "type": "object"
      },
      "network_ids": {
        "description": "Identifies a Network Server.",
        "properties": {
          "cluster_address": {
            "description": "Cluster address of the Network Server.",
            "type": "string"
          },
          "cluster_id": {
            "description": "Cluster identifier of the Network Server.",
            "type": "string"
          },
          "net_id": {
            "description": "LoRa Alliance NetID.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "ns_id": {
            "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "tenant_address": {
            "description": "Optional tenant address for multi-tenant deployments.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Optional tenant identifier for multi-tenant deployments.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "normalized_payload": {
        "description": "The normalized frame payload of the uplink message.\nThis field is set by the message processor that is configured for the end device (see formatters) or application (see default_formatters).\nIf the message processor is a custom script, there is no uplink normalizer script and the decoded output is valid\nnormalized payload, this field contains the decoded payload.",
        "items": {
          "type": "object"
        },
        "type": "array"
      },
      "normalized_payload_warnings": {
        "description": "Warnings generated by the message processor while normalizing the decoded payload.",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "packet_error_rate": {
        "description": "Packet error rate of the recent uplinks in the current session.\nCalculated by the Network Server. The value is defined in the [0, 1] interval.",
        "format": "float",
        "type": "number"
      },
      "received_at": {
        "description": "Server time when the Network Server received the message.",
        "format": "date-time",
        "type": "string"
      },
      "rx_metadata": {
        "description": "A list of metadata for each antenna of each gateway that received this message.",
        "items": {
          "description": "Contains metadata for a received message. Each antenna that receives\na message corresponds to one RxMetadata.",
          "properties": {
            "advanced": {
              "title": "Advanced metadata fields\n- can be used for advanced information or experimental features that are not yet formally defined in the API\n- field names are written in snake_case",
              "type": "object"
            },
            "antenna_index": {
              "format": "int64",
              "type": "integer"
            },
            "channel_index": {
              "description": "Index of the gateway channel that received the message.",
              "format": "int64",
              "type": "integer"
            },
            "channel_rssi": {
              "description": "Received signal strength indicator of the channel (dBm).",
              "format": "float",
              "type": "number"
            },
            "downlink_path_constraint": {
              "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.",
              "enum": [
                "DOWNLINK_PATH_CONSTRAINT_NONE",
                "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
                "DOWNLINK_PATH_CONSTRAINT_NEVER"
              ],
              "type": "string"
            },
            "encrypted_fine_timestamp": {
              "description": "Encrypted gateway's internal fine timestamp when the Rx finished (nanoseconds).",
              "format": "byte",
              "type": "string"
            },
            "encrypted_fine_timestamp_key_id": {
              "type": "string"
            },
            "fine_timestamp": {
              "description": "Gateway's internal fine timestamp when the Rx finished (nanoseconds).",
              "format": "uint64",
              "type": "string"
            },
            "frequency_drift": {
              "description": "Frequency drift in Hz between start and end of an LR-FHSS packet (signed).",
              "format": "int32",
              "type": "integer"
            },
            "frequency_offset": {
              "description": "Frequency offset (Hz).",
              "format": "int64",
              "type": "string"
            },
            "gateway_ids": {
              "properties": {
                "eui": {
                  "description": "Secondary identifier, which can only be used in specific requests.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "gateway_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "gps_time": {
              "description": "Timestamp at the end of the transmission, provided by the gateway.\nGuaranteed to be based on a GPS PPS signal, with an accuracy of 1 millisecond.",
              "format": "date-time",
              "type": "string"
            },
            "hopping_width": {
              "description": "Hopping width; a number describing the number of steps of the LR-FHSS grid.",
              "format": "int64",
              "type": "integer"
            },
            "location": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "packet_broker": {
              "properties": {
                "forwarder_cluster_id": {
                  "description": "Forwarder Cluster ID of the Packet Broker Forwarder.",
                  "type": "string"
                },
                "forwarder_gateway_eui": {
                  "description": "Forwarder gateway EUI.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "forwarder_gateway_id": {
                  "description": "Forwarder gateway ID.",
                  "type": "string"
                },
                "forwarder_net_id": {
                  "description": "LoRa Alliance NetID of the Packet Broker Forwarder Member.",
                  "example": "000013",
                  "format": "string",
                  "type": "string"
                },
                "forwarder_tenant_id": {
                  "description": "Tenant ID managed by the Packet Broker Forwarder Member.",
                  "type": "string"
                },
                "home_network_cluster_id": {
                  "description": "Home Network Cluster ID of the Packet Broker Home Network.",
                  "type": "string"
                },
                "home_network_net_id": {
                  "description": "LoRa Alliance NetID of the Packet Broker Home Network Member.",
                  "example": "000013",
                  "format": "string",
                  "type": "string"
                },
                "home_network_tenant_id": {
                  "description": "Tenant ID managed by the Packet Broker Home Network Member.\nThis value is empty if it cannot be determined by the Packet Broker Router.",
                  "type": "string"
                },
                "hops": {
                  "description": "Hops that the message passed. Each Packet Broker Router service appends an entry.",
                  "items": {
                    "properties": {
                      "received_at": {
                        "description": "Time when the service received the message.",
                        "format": "date-time",
                        "type": "string"
                      },
                      "receiver_agent": {
                        "description": "Receiver agent.",
                        "type": "string"
                      },
                      "receiver_name": {
                        "description": "Receiver of the message.",
                        "type": "string"
                      },
                      "sender_address": {
                        "description": "Sender IP address or host name.",
                        "type": "string"
                      },
                      "sender_name": {
                        "description": "Sender of the message, typically the authorized client identifier.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "message_id": {
                  "description": "Message identifier generated by Packet Broker Router.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "received_at": {
              "description": "Timestamp at which the Gateway Server has received the message.",
              "format": "date-time",
              "type": "string"
            },
            "relay": {
              "properties": {
                "device_id": {
                  "description": "End device identifiers of the relay.",
                  "type": "string"
                },
                "wor_channel": {
                  "default": "RELAY_WOR_CHANNEL_DEFAULT",
                  "enum": [
                    "RELAY_WOR_CHANNEL_DEFAULT",
                    "RELAY_WOR_CHANNEL_SECONDARY"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "rssi": {
              "description": "Received signal strength indicator (dBm).\nThis value equals `channel_rssi`.",
              "format": "float",
              "type": "number"
            },
            "rssi_standard_deviation": {
              "description": "Standard deviation of the RSSI during preamble.",
              "format": "float",
              "type": "number"
            },
            "signal_rssi": {
              "description": "Received signal strength indicator of the signal (dBm).",
              "format": "float",
              "type": "number"
            },
            "snr": {
              "description": "Signal-to-noise ratio (dB).",
              "format": "float",
              "type": "number"
            },
            "time": {
              "description": "Timestamp at the end of the transmission, provided by the gateway. The accuracy is undefined.",
              "format": "date-time",
              "type": "string"
            },
            "timestamp": {
              "description": "Gateway concentrator timestamp when the Rx finished (microseconds).",
              "format": "int64",
              "type": "integer"
            },
            "uplink_token": {
              "description": "Uplink token to be included in the Tx request in class A downlink; injected by gateway, Gateway Server or fNS.",
              "format": "byte",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "session_key_id": {
        "description": "Join Server issued identifier for the session keys used by this uplink.",
        "format": "byte",
        "type": "string"
      },
      "settings": {
        "description": "TxSettings contains the settings for a transmission.\nThis message is used on both uplink and downlink.\nOn downlink, this is a scheduled transmission.",
        "properties": {
          "concentrator_timestamp": {
            "description": "Concentrator timestamp for the downlink as calculated by the Gateway Server scheduler.\nThis value takes into account necessary offsets such as the RTT (Round Trip Time) and TOA (Time Of Arrival).\nThis field is set and used only by the Gateway Server.",
            "format": "int64",
            "type": "string"
          },
          "data_rate": {
            "properties": {
              "fsk": {
                "properties": {
                  "bit_rate": {
                    "description": "Bit rate (bps).",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "lora": {
                "properties": {
                  "bandwidth": {
                    "description": "Bandwidth (Hz).",
                    "format": "int64",
                    "type": "integer"
                  },
                  "coding_rate": {
                    "type": "string"
                  },
                  "spreading_factor": {
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "lrfhss": {
                "properties": {
                  "coding_rate": {
                    "type": "string"
                  },
                  "modulation_type": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "operating_channel_width": {
                    "description": "Operating Channel Width (Hz).",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "downlink": {
            "description": "Transmission settings for downlink.",
            "properties": {
              "antenna_index": {
                "description": "Index of the antenna on which the uplink was received and/or downlink must be sent.",
                "format": "int64",
                "type": "integer"
              },
              "invert_polarization": {
                "description": "Invert LoRa polarization; false for LoRaWAN uplink, true for downlink.",
                "type": "boolean"
              },
              "tx_power": {
                "description": "Transmission power (dBm). Only on downlink.",
                "format": "float",
                "type": "number"
              }
            },
            "type": "object"
          },
          "enable_crc": {
            "description": "Send a CRC in the packet; only on uplink; on downlink, CRC should not be enabled.",
            "type": "boolean"
          },
          "frequency": {
            "description": "Frequency (Hz).",
            "format": "uint64",
            "type": "string"
          },
          "time": {
            "description": "Time of the gateway when the uplink message was received, or when the downlink message should be transmitted.\nFor downlink, this requires the gateway to have GPS time synchronization.",
            "format": "date-time",
            "type": "string"
          },
          "timestamp": {
            "description": "Timestamp of the gateway concentrator when the uplink message was received, or when the downlink message should be transmitted (microseconds).\nOn downlink, set timestamp to 0 and time to null to use immediate scheduling.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  },
  "uplink_normalized": {
    "properties": {
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Attributes for devices, set by the Application Server while handling the message.",
        "type": "object"
      },
      "confirmed": {
        "description": "Indicates whether the end device used confirmed data uplink.",
        "type": "boolean"
      },
      "consumed_airtime": {
        "description": "Consumed airtime for the transmission of the uplink message. Calculated by Network Server using the raw payload size and the transmission settings.",
        "type": "string"
      },
      "f_cnt": {
        "description": "LoRaWAN FCntUp of the uplink message.",
        "format": "int64",
        "type": "integer"
      },
      "f_port": {
        "description": "LoRaWAN FPort of the uplink message.",
        "format": "int64",
        "type": "integer"
      },
      "frm_payload": {
        "description": "The frame payload of the uplink message.\nThis field is always decrypted with AppSKey.",
        "format": "byte",
        "type": "string"
      },
      "locations": {
        "additionalProperties": {
          "properties": {
            "accuracy": {
              "description": "The accuracy of the location (meters).",
              "format": "int32",
              "type": "integer"
            },
            "altitude": {
              "description": "The altitude (meters), where 0 is the mean sea level.",
              "format": "int32",
              "type": "integer"
            },
            "latitude": {
              "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
              "format": "double",
              "type": "number"
            },
            "longitude": {
              "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
              "format": "double",
              "type": "number"
            },
            "source": {
              "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.",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "End device location metadata, set by the Application Server while handling the message.",
        "type": "object"
      },
      "network_ids": {
        "description": "Identifies a Network Server.",
        "properties": {
          "cluster_address": {
            "description": "Cluster address of the Network Server.",
            "type": "string"
          },
          "cluster_id": {
            "description": "Cluster identifier of the Network Server.",
            "type": "string"
          },
          "net_id": {
            "description": "LoRa Alliance NetID.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "ns_id": {
            "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "tenant_address": {
            "description": "Optional tenant address for multi-tenant deployments.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Optional tenant identifier for multi-tenant deployments.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "normalized_payload": {
        "description": "The normalized frame payload of the uplink message.\nThis field is set for each item in normalized_payload in the corresponding ApplicationUplink message.",
        "type": "object"
      },
      "normalized_payload_warnings": {
        "description": "This field is set to normalized_payload_warnings in the corresponding ApplicationUplink message.",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "received_at": {
        "description": "Server time when the Network Server received the message.",
        "format": "date-time",
        "type": "string"
      },
      "rx_metadata": {
        "description": "A list of metadata for each antenna of each gateway that received this message.",
        "items": {
          "description": "Contains metadata for a received message. Each antenna that receives\na message corresponds to one RxMetadata.",
          "properties": {
            "advanced": {
              "title": "Advanced metadata fields\n- can be used for advanced information or experimental features that are not yet formally defined in the API\n- field names are written in snake_case",
              "type": "object"
            },
            "antenna_index": {
              "format": "int64",
              "type": "integer"
            },
            "channel_index": {
              "description": "Index of the gateway channel that received the message.",
              "format": "int64",
              "type": "integer"
            },
            "channel_rssi": {
              "description": "Received signal strength indicator of the channel (dBm).",
              "format": "float",
              "type": "number"
            },
            "downlink_path_constraint": {
              "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.",
              "enum": [
                "DOWNLINK_PATH_CONSTRAINT_NONE",
                "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
                "DOWNLINK_PATH_CONSTRAINT_NEVER"
              ],
              "type": "string"
            },
            "encrypted_fine_timestamp": {
              "description": "Encrypted gateway's internal fine timestamp when the Rx finished (nanoseconds).",
              "format": "byte",
              "type": "string"
            },
            "encrypted_fine_timestamp_key_id": {
              "type": "string"
            },
            "fine_timestamp": {
              "description": "Gateway's internal fine timestamp when the Rx finished (nanoseconds).",
              "format": "uint64",
              "type": "string"
            },
            "frequency_drift": {
              "description": "Frequency drift in Hz between start and end of an LR-FHSS packet (signed).",
              "format": "int32",
              "type": "integer"
            },
            "frequency_offset": {
              "description": "Frequency offset (Hz).",
              "format": "int64",
              "type": "string"
            },
            "gateway_ids": {
              "properties": {
                "eui": {
                  "description": "Secondary identifier, which can only be used in specific requests.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "gateway_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "gps_time": {
              "description": "Timestamp at the end of the transmission, provided by the gateway.\nGuaranteed to be based on a GPS PPS signal, with an accuracy of 1 millisecond.",
              "format": "date-time",
              "type": "string"
            },
            "hopping_width": {
              "description": "Hopping width; a number describing the number of steps of the LR-FHSS grid.",
              "format": "int64",
              "type": "integer"
            },
            "location": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "packet_broker": {
              "properties": {
                "forwarder_cluster_id": {
                  "description": "Forwarder Cluster ID of the Packet Broker Forwarder.",
                  "type": "string"
                },
                "forwarder_gateway_eui": {
                  "description": "Forwarder gateway EUI.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "forwarder_gateway_id": {
                  "description": "Forwarder gateway ID.",
                  "type": "string"
                },
                "forwarder_net_id": {
                  "description": "LoRa Alliance NetID of the Packet Broker Forwarder Member.",
                  "example": "000013",
                  "format": "string",
                  "type": "string"
                },
                "forwarder_tenant_id": {
                  "description": "Tenant ID managed by the Packet Broker Forwarder Member.",
                  "type": "string"
                },
                "home_network_cluster_id": {
                  "description": "Home Network Cluster ID of the Packet Broker Home Network.",
                  "type": "string"
                },
                "home_network_net_id": {
                  "description": "LoRa Alliance NetID of the Packet Broker Home Network Member.",
                  "example": "000013",
                  "format": "string",
                  "type": "string"
                },
                "home_network_tenant_id": {
                  "description": "Tenant ID managed by the Packet Broker Home Network Member.\nThis value is empty if it cannot be determined by the Packet Broker Router.",
                  "type": "string"
                },
                "hops": {
                  "description": "Hops that the message passed. Each Packet Broker Router service appends an entry.",
                  "items": {
                    "properties": {
                      "received_at": {
                        "description": "Time when the service received the message.",
                        "format": "date-time",
                        "type": "string"
                      },
                      "receiver_agent": {
                        "description": "Receiver agent.",
                        "type": "string"
                      },
                      "receiver_name": {
                        "description": "Receiver of the message.",
                        "type": "string"
                      },
                      "sender_address": {
                        "description": "Sender IP address or host name.",
                        "type": "string"
                      },
                      "sender_name": {
                        "description": "Sender of the message, typically the authorized client identifier.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "message_id": {
                  "description": "Message identifier generated by Packet Broker Router.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "received_at": {
              "description": "Timestamp at which the Gateway Server has received the message.",
              "format": "date-time",
              "type": "string"
            },
            "relay": {
              "properties": {
                "device_id": {
                  "description": "End device identifiers of the relay.",
                  "type": "string"
                },
                "wor_channel": {
                  "default": "RELAY_WOR_CHANNEL_DEFAULT",
                  "enum": [
                    "RELAY_WOR_CHANNEL_DEFAULT",
                    "RELAY_WOR_CHANNEL_SECONDARY"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "rssi": {
              "description": "Received signal strength indicator (dBm).\nThis value equals `channel_rssi`.",
              "format": "float",
              "type": "number"
            },
            "rssi_standard_deviation": {
              "description": "Standard deviation of the RSSI during preamble.",
              "format": "float",
              "type": "number"
            },
            "signal_rssi": {
              "description": "Received signal strength indicator of the signal (dBm).",
              "format": "float",
              "type": "number"
            },
            "snr": {
              "description": "Signal-to-noise ratio (dB).",
              "format": "float",
              "type": "number"
            },
            "time": {
              "description": "Timestamp at the end of the transmission, provided by the gateway. The accuracy is undefined.",
              "format": "date-time",
              "type": "string"
            },
            "timestamp": {
              "description": "Gateway concentrator timestamp when the Rx finished (microseconds).",
              "format": "int64",
              "type": "integer"
            },
            "uplink_token": {
              "description": "Uplink token to be included in the Tx request in class A downlink; injected by gateway, Gateway Server or fNS.",
              "format": "byte",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "session_key_id": {
        "description": "Join Server issued identifier for the session keys used by this uplink.",
        "format": "byte",
        "type": "string"
      },
      "settings": {
        "description": "TxSettings contains the settings for a transmission.\nThis message is used on both uplink and downlink.\nOn downlink, this is a scheduled transmission.",
        "properties": {
          "concentrator_timestamp": {
            "description": "Concentrator timestamp for the downlink as calculated by the Gateway Server scheduler.\nThis value takes into account necessary offsets such as the RTT (Round Trip Time) and TOA (Time Of Arrival).\nThis field is set and used only by the Gateway Server.",
            "format": "int64",
            "type": "string"
          },
          "data_rate": {
            "properties": {
              "fsk": {
                "properties": {
                  "bit_rate": {
                    "description": "Bit rate (bps).",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "lora": {
                "properties": {
                  "bandwidth": {
                    "description": "Bandwidth (Hz).",
                    "format": "int64",
                    "type": "integer"
                  },
                  "coding_rate": {
                    "type": "string"
                  },
                  "spreading_factor": {
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "lrfhss": {
                "properties": {
                  "coding_rate": {
                    "type": "string"
                  },
                  "modulation_type": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "operating_channel_width": {
                    "description": "Operating Channel Width (Hz).",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "downlink": {
            "description": "Transmission settings for downlink.",
            "properties": {
              "antenna_index": {
                "description": "Index of the antenna on which the uplink was received and/or downlink must be sent.",
                "format": "int64",
                "type": "integer"
              },
              "invert_polarization": {
                "description": "Invert LoRa polarization; false for LoRaWAN uplink, true for downlink.",
                "type": "boolean"
              },
              "tx_power": {
                "description": "Transmission power (dBm). Only on downlink.",
                "format": "float",
                "type": "number"
              }
            },
            "type": "object"
          },
          "enable_crc": {
            "description": "Send a CRC in the packet; only on uplink; on downlink, CRC should not be enabled.",
            "type": "boolean"
          },
          "frequency": {
            "description": "Frequency (Hz).",
            "format": "uint64",
            "type": "string"
          },
          "time": {
            "description": "Time of the gateway when the uplink message was received, or when the downlink message should be transmitted.\nFor downlink, this requires the gateway to have GPS time synchronization.",
            "format": "date-time",
            "type": "string"
          },
          "timestamp": {
            "description": "Timestamp of the gateway concentrator when the uplink message was received, or when the downlink message should be transmitted (microseconds).\nOn downlink, set timestamp to 0 and time to null to use immediate scheduling.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  }
}
Show the schema of the message in JSON format.

ApplicationDownlinkClassBC

Fields
Name Type Description
absolute_time string 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.
gateways object 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.
Schema
{
  "absolute_time": {
    "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
    "format": "date-time",
    "type": "string"
  },
  "gateways": {
    "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
    "items": {
      "properties": {
        "antenna_index": {
          "format": "int64",
          "type": "integer"
        },
        "gateway_ids": {
          "properties": {
            "eui": {
              "description": "Secondary identifier, which can only be used in specific requests.",
              "example": "70B3D57ED000ABCD",
              "format": "string",
              "type": "string"
            },
            "gateway_id": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "group_index": {
          "format": "int64",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "type": "array"
  }
}
Show the schema of the message in JSON format.

ApplicationDownlinkConfirmedRetry

Fields
Name Type Description
attempt integer The number of attempted confirmed downlink acknowledgements.
max_attempts integer The maximum number of confirmed downlink acknowledgement attempts. If null, the Application Server configuration is used instead.
Schema
{
  "attempt": {
    "description": "The number of attempted confirmed downlink acknowledgements.",
    "format": "int64",
    "type": "integer"
  },
  "max_attempts": {
    "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
    "format": "int64",
    "type": "integer"
  }
}
Show the schema of the message in JSON format.

ApplicationPackageRegistrySetAssociationBody

Fields
Name Type Description
association object
field_mask string
Schema
{
  "association": {
    "properties": {
      "created_at": {
        "format": "date-time",
        "type": "string"
      },
      "data": {
        "type": "object"
      },
      "ids": {
        "properties": {
          "end_device_ids": {
            "properties": {
              "application_ids": {
                "type": "object"
              },
              "dev_addr": {
                "description": "The LoRaWAN DevAddr.",
                "example": "2600ABCD",
                "format": "string",
                "type": "string"
              },
              "dev_eui": {
                "description": "The LoRaWAN DevEUI.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "join_eui": {
                "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "package_name": {
        "type": "string"
      },
      "updated_at": {
        "format": "date-time",
        "type": "string"
      }
    },
    "type": "object"
  },
  "field_mask": {
    "type": "string"
  }
}
Show the schema of the message in JSON format.

ApplicationPackageRegistrySetDefaultAssociationBody

Fields
Name Type Description
default object
field_mask string
Schema
{
  "default": {
    "properties": {
      "created_at": {
        "format": "date-time",
        "type": "string"
      },
      "data": {
        "type": "object"
      },
      "ids": {
        "properties": {
          "application_ids": {
            "type": "object"
          }
        },
        "type": "object"
      },
      "package_name": {
        "type": "string"
      },
      "updated_at": {
        "format": "date-time",
        "type": "string"
      }
    },
    "type": "object"
  },
  "field_mask": {
    "type": "string"
  }
}
Show the schema of the message in JSON format.

ApplicationPubSubAWSIoTProvider

Fields
Name Type Description
access_key object
assume_role object
default object
endpoint_address string The endpoint address to connect to. If the endpoint address is left empty, the integration will try to discover it.
region string The AWS region.
Schema
{
  "access_key": {
    "properties": {
      "access_key_id": {
        "type": "string"
      },
      "secret_access_key": {
        "type": "string"
      },
      "session_token": {
        "type": "string"
      }
    },
    "type": "object"
  },
  "assume_role": {
    "properties": {
      "arn": {
        "type": "string"
      },
      "external_id": {
        "type": "string"
      },
      "session_duration": {
        "type": "string"
      }
    },
    "type": "object"
  },
  "default": {
    "properties": {
      "stack_name": {
        "description": "The stack name that is associated with the CloudFormation deployment of The Things Stack Enterprise integration.",
        "type": "string"
      }
    },
    "type": "object"
  },
  "endpoint_address": {
    "description": "The endpoint address to connect to. If the endpoint address is left empty,\nthe integration will try to discover it.",
    "type": "string"
  },
  "region": {
    "description": "The AWS region.",
    "type": "string"
  }
}
Show the schema of the message in JSON format.

ApplicationPubSubMQTTProvider

The MQTT provider settings.
Fields
Name Type Description
client_id string
headers object HTTP headers to use on MQTT-over-Websocket connections.
password string
publish_qos string
server_url string
subscribe_qos string
tls_ca string The server Root CA certificate. PEM formatted.
tls_client_cert string The client certificate. PEM formatted.
tls_client_key string The client private key. PEM formatted.
use_tls boolean
username string
Schema
{
  "client_id": {
    "type": "string"
  },
  "headers": {
    "additionalProperties": {
      "type": "string"
    },
    "description": "HTTP headers to use on MQTT-over-Websocket connections.",
    "type": "object"
  },
  "password": {
    "type": "string"
  },
  "publish_qos": {
    "default": "AT_MOST_ONCE",
    "enum": [
      "AT_MOST_ONCE",
      "AT_LEAST_ONCE",
      "EXACTLY_ONCE"
    ],
    "type": "string"
  },
  "server_url": {
    "type": "string"
  },
  "subscribe_qos": {
    "default": "AT_MOST_ONCE",
    "enum": [
      "AT_MOST_ONCE",
      "AT_LEAST_ONCE",
      "EXACTLY_ONCE"
    ],
    "type": "string"
  },
  "tls_ca": {
    "description": "The server Root CA certificate. PEM formatted.",
    "format": "byte",
    "type": "string"
  },
  "tls_client_cert": {
    "description": "The client certificate. PEM formatted.",
    "format": "byte",
    "type": "string"
  },
  "tls_client_key": {
    "description": "The client private key. PEM formatted.",
    "format": "byte",
    "type": "string"
  },
  "use_tls": {
    "type": "boolean"
  },
  "username": {
    "type": "string"
  }
}
Show the schema of the message in JSON format.

ApplicationPubSubNATSProvider

The NATS provider settings.
Fields
Name Type Description
server_url string The server connection URL.
Schema
{
  "server_url": {
    "description": "The server connection URL.",
    "type": "string"
  }
}
Show the schema of the message in JSON format.

ApplicationWebhookHealthWebhookHealthStatusHealthy

ApplicationWebhookHealthWebhookHealthStatusUnhealthy

Fields
Name Type Description
failed_attempts string
last_failed_attempt_at string
last_failed_attempt_details object Error details that are communicated over gRPC (and HTTP) APIs. The messages (for translation) are stored as "error:<namespace>:<name>".
Schema
{
  "failed_attempts": {
    "format": "uint64",
    "type": "string"
  },
  "last_failed_attempt_at": {
    "format": "date-time",
    "type": "string"
  },
  "last_failed_attempt_details": {
    "description": "Error details that are communicated over gRPC (and HTTP) APIs.\nThe messages (for translation) are stored as \"error:\u003cnamespace\u003e:\u003cname\u003e\".",
    "properties": {
      "attributes": {
        "description": "Attributes that should be filled into the message format. Any extra attributes\ncan be displayed as error details.",
        "type": "object"
      },
      "cause": {
        "$ref": "#/definitions/v3ErrorDetails",
        "description": "The error that caused this error."
      },
      "code": {
        "description": "The status code of the error.",
        "format": "int64",
        "type": "integer"
      },
      "correlation_id": {
        "description": "The correlation ID of the error can be used to correlate the error to stack\ntraces the network may (or may not) store about recent errors.",
        "type": "string"
      },
      "details": {
        "description": "The details of the error.",
        "items": {
          "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(\u0026foo)) {\n      ...\n    }\n\nExample 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 := \u0026pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := \u0026pb.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\": \u003cstring\u003e,\n      \"lastName\": \u003cstring\u003e\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    }",
          "properties": {
            "@type": {
              "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\nexpect 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.",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "message_format": {
        "description": "The default (fallback) message format that should be used for the error.\nThis is also used if the client does not have a translation for the error.",
        "type": "string"
      },
      "name": {
        "description": "Name of the error.",
        "type": "string"
      },
      "namespace": {
        "description": "Namespace of the error (typically the package name in The Things Stack).",
        "type": "string"
      }
    },
    "type": "object"
  }
}
Show the schema of the message in JSON format.

AsConfigurationPubSub

Fields
Name Type Description
providers object
Schema
{
  "providers": {
    "properties": {
      "mqtt": {
        "default": "ENABLED",
        "description": " - ENABLED: No restrictions are in place.\n - WARNING: Warnings are being emitted that the provider will be deprecated in the future.\n - DISABLED: New integrations cannot be set up, and old ones do not start.",
        "enum": [
          "ENABLED",
          "WARNING",
          "DISABLED"
        ],
        "type": "string"
      },
      "nats": {
        "default": "ENABLED",
        "description": " - ENABLED: No restrictions are in place.\n - WARNING: Warnings are being emitted that the provider will be deprecated in the future.\n - DISABLED: New integrations cannot be set up, and old ones do not start.",
        "enum": [
          "ENABLED",
          "WARNING",
          "DISABLED"
        ],
        "type": "string"
      }
    },
    "type": "object"
  }
}
Show the schema of the message in JSON format.

AsSetLinkBody

Fields
Name Type Description
application_ids object
field_mask string
link object
Schema
{
  "application_ids": {
    "type": "object"
  },
  "field_mask": {
    "type": "string"
  },
  "link": {
    "properties": {
      "default_formatters": {
        "properties": {
          "down_formatter": {
            "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.",
            "enum": [
              "FORMATTER_NONE",
              "FORMATTER_REPOSITORY",
              "FORMATTER_GRPC_SERVICE",
              "FORMATTER_JAVASCRIPT",
              "FORMATTER_CAYENNELPP"
            ],
            "type": "string"
          },
          "down_formatter_parameter": {
            "description": "Parameter for the down_formatter, must be set together. The API enforces a maximum length of 16KB, but the size may be restricted further by deployment configuration.",
            "type": "string"
          },
          "up_formatter": {
            "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.",
            "enum": [
              "FORMATTER_NONE",
              "FORMATTER_REPOSITORY",
              "FORMATTER_GRPC_SERVICE",
              "FORMATTER_JAVASCRIPT",
              "FORMATTER_CAYENNELPP"
            ],
            "type": "string"
          },
          "up_formatter_parameter": {
            "description": "Parameter for the up_formatter, must be set together. The API enforces a maximum length of 16KB, but the size may be restricted further by deployment configuration.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "skip_payload_crypto": {
        "description": "Skip decryption of uplink payloads and encryption of downlink payloads.\nLeave empty for the using the Application Server's default setting.",
        "type": "boolean"
      }
    },
    "type": "object"
  }
}
Show the schema of the message in JSON format.

AuthInfoResponseAPIKeyAccess

Fields
Name Type Description
api_key object
entity_ids object EntityIdentifiers contains one of the possible entity identifiers.
Schema
{
  "api_key": {
    "properties": {
      "created_at": {
        "format": "date-time",
        "type": "string"
      },
      "expires_at": {
        "format": "date-time",
        "type": "string"
      },
      "id": {
        "description": "Immutable and unique public identifier for the API key.\nGenerated by the Access Server.",
        "type": "string"
      },
      "key": {
        "description": "Immutable and unique secret value of the API key.\nGenerated by the Access Server.",
        "type": "string"
      },
      "name": {
        "description": "User-defined (friendly) name for the API key.",
        "type": "string"
      },
      "rights": {
        "description": "Rights that are granted to this API key.",
        "items": {
          "default": "right_invalid",
          "description": "Right is the enum that defines all the different rights to do something in the network.\n\n - RIGHT_USER_INFO: The right to view user information.\n - RIGHT_USER_SETTINGS_BASIC: The right to edit basic user settings.\n - RIGHT_USER_LIST: The right to list users accounts.\n - RIGHT_USER_CREATE: The right to create an user account.\n - RIGHT_USER_SETTINGS_API_KEYS: The right to view and edit user API keys.\n - RIGHT_USER_DELETE: The right to delete user account.\n - RIGHT_USER_PURGE: The right to purge user account.\n - RIGHT_USER_AUTHORIZED_CLIENTS: The right to view and edit authorized OAuth clients of the user.\n - RIGHT_USER_APPLICATIONS_LIST: The right to list applications the user is a collaborator of.\n - RIGHT_USER_APPLICATIONS_CREATE: The right to create an application under the user account.\n - RIGHT_USER_GATEWAYS_LIST: The right to list gateways the user is a collaborator of.\n - RIGHT_USER_GATEWAYS_CREATE: The right to create a gateway under the account of the user.\n - RIGHT_USER_CLIENTS_LIST: The right to list OAuth clients the user is a collaborator of.\n - RIGHT_USER_CLIENTS_CREATE: The right to create an OAuth client under the account of the user.\n - RIGHT_USER_ORGANIZATIONS_LIST: The right to list organizations the user is a member of.\n - RIGHT_USER_ORGANIZATIONS_CREATE: The right to create an organization under the user account.\n - RIGHT_USER_NOTIFICATIONS_READ: The right to read notifications sent to the user.\n - RIGHT_USER_ALL: The pseudo-right for all (current and future) user rights.\n - RIGHT_APPLICATION_INFO: The right to view application information.\n - RIGHT_APPLICATION_SETTINGS_BASIC: The right to edit basic application settings.\n - RIGHT_APPLICATION_SETTINGS_API_KEYS: The right to view and edit application API keys.\n - RIGHT_APPLICATION_SETTINGS_COLLABORATORS: The right to view and edit application collaborators.\n - RIGHT_APPLICATION_SETTINGS_PACKAGES: The right to view and edit application packages and associations.\n - RIGHT_APPLICATION_DELETE: The right to delete application.\n - RIGHT_APPLICATION_PURGE: The right to purge application.\n - RIGHT_APPLICATION_DEVICES_READ: The right to view devices in application.\n - RIGHT_APPLICATION_DEVICES_WRITE: The right to create devices in application.\n - RIGHT_APPLICATION_DEVICES_READ_KEYS: The right to view device keys in application.\nNote that keys may not be stored in a way that supports viewing them.\n - RIGHT_APPLICATION_DEVICES_WRITE_KEYS: The right to edit device keys in application.\n - RIGHT_APPLICATION_TRAFFIC_READ: The right to read application traffic (uplink and downlink).\n - RIGHT_APPLICATION_TRAFFIC_UP_WRITE: The right to write uplink application traffic.\n - RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE: The right to write downlink application traffic.\n - RIGHT_APPLICATION_LINK: The right to link as Application to a Network Server for traffic exchange,\ni.e. read uplink and write downlink (API keys only).\nThis right is typically only given to an Application Server.\nThis right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ,\nand RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.\n - RIGHT_APPLICATION_ALL: The pseudo-right for all (current and future) application rights.\n - RIGHT_CLIENT_ALL: The pseudo-right for all (current and future) OAuth client rights.\n - RIGHT_CLIENT_INFO: The right to read client information.\n - RIGHT_CLIENT_SETTINGS_BASIC: The right to edit basic client settings.\n - RIGHT_CLIENT_SETTINGS_COLLABORATORS: The right to view and edit client collaborators.\n - RIGHT_CLIENT_DELETE: The right to delete a client.\n - RIGHT_CLIENT_PURGE: The right to purge a client.\n - RIGHT_GATEWAY_INFO: The right to view gateway information.\n - RIGHT_GATEWAY_SETTINGS_BASIC: The right to edit basic gateway settings.\n - RIGHT_GATEWAY_SETTINGS_API_KEYS: The right to view and edit gateway API keys.\n - RIGHT_GATEWAY_SETTINGS_COLLABORATORS: The right to view and edit gateway collaborators.\n - RIGHT_GATEWAY_DELETE: The right to delete gateway.\n - RIGHT_GATEWAY_PURGE: The right to purge gateway.\n - RIGHT_GATEWAY_TRAFFIC_READ: The right to read gateway traffic.\n - RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE: The right to write downlink gateway traffic.\n - RIGHT_GATEWAY_LINK: The right to link as Gateway to a Gateway Server for traffic exchange,\ni.e. write uplink and read downlink (API keys only)\nThis right is typically only given to a gateway.\nThis right implies RIGHT_GATEWAY_INFO.\n - RIGHT_GATEWAY_STATUS_READ: The right to view gateway status.\n - RIGHT_GATEWAY_LOCATION_READ: The right to view view gateway location.\n - RIGHT_GATEWAY_WRITE_SECRETS: The right to store secrets associated with this gateway.\n - RIGHT_GATEWAY_READ_SECRETS: The right to retrieve secrets associated with this gateway.\n - RIGHT_GATEWAY_ALL: The pseudo-right for all (current and future) gateway rights.\n - RIGHT_ORGANIZATION_INFO: The right to view organization information.\n - RIGHT_ORGANIZATION_SETTINGS_BASIC: The right to edit basic organization settings.\n - RIGHT_ORGANIZATION_SETTINGS_API_KEYS: The right to view and edit organization API keys.\n - RIGHT_ORGANIZATION_SETTINGS_MEMBERS: The right to view and edit organization members.\n - RIGHT_ORGANIZATION_DELETE: The right to delete organization.\n - RIGHT_ORGANIZATION_PURGE: The right to purge organization.\n - RIGHT_ORGANIZATION_APPLICATIONS_LIST: The right to list the applications the organization is a collaborator of.\n - RIGHT_ORGANIZATION_APPLICATIONS_CREATE: The right to create an application under the organization.\n - RIGHT_ORGANIZATION_GATEWAYS_LIST: The right to list the gateways the organization is a collaborator of.\n - RIGHT_ORGANIZATION_GATEWAYS_CREATE: The right to create a gateway under the organization.\n - RIGHT_ORGANIZATION_CLIENTS_LIST: The right to list the OAuth clients the organization is a collaborator of.\n - RIGHT_ORGANIZATION_CLIENTS_CREATE: The right to create an OAuth client under the organization.\n - RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR: The right to add the organization as a collaborator on an existing entity.\n - RIGHT_ORGANIZATION_ALL: The pseudo-right for all (current and future) organization rights.\n - RIGHT_SEND_INVITES: The right to send invites to new users.\nNote that this is not prefixed with \"USER_\"; it is not a right on the user entity.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE: The right to create an alert notification profile.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_INFO: The right to view an alert notification profile information.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_LIST: The right to list the alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE: The right to update an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE: The right to delete an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE: The right to create an alert notification receiver.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO: The right to view an alert notification receiver information.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST: The right to list the alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE: The right to update an alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE: The right to delete an alert notification receivers.\n - RIGHT_AUTHENTICATION_PROVIDER_CREATE: The right to create an authentication provider.\n - RIGHT_AUTHENTICATION_PROVIDER_INFO: The right to view an authentication provider information.\n - RIGHT_AUTHENTICATION_PROVIDER_LIST: The right to list the authentication providers\n - RIGHT_AUTHENTICATION_PROVIDER_UPDATE: The right to update an authentication providers.\n - RIGHT_AUTHENTICATION_PROVIDER_DELETE: The right to delete an authentication providers.\n - RIGHT_EXTERNAL_USER_CREATE: The right to create an external user.\n - RIGHT_EXTERNAL_USER_INFO: The right to view an external user's information.\n - RIGHT_EXTERNAL_USER_DELETE: The right to delete an external user.\n - RIGHT_PACKET_BROKER_AGENT_READ: The right to read any information related to the PBA.\n - RIGHT_PACKET_BROKER_AGENT_WRITE: The right to perform operations in the PBA.\n - RIGHT_TENANT_CONFIGURATION_UPDATE: The right to update a tenant's configuration.\n - RIGHT_LABEL_CREATE: The right to create a label.\n - RIGHT_LABEL_INFO: The right to view a label's information.\n - RIGHT_LABELS_LIST: The right to list the labels.\n - RIGHT_LABEL_UPDATE: The right to update a label.\n - RIGHT_LABEL_DELETE: The right to delete a label.\n - RIGHT_LABEL_ASSIGN: The right to assign a label to an entity.\n - RIGHT_ALL: The pseudo-right for all (current and future) possible rights.",
          "enum": [
            "right_invalid",
            "RIGHT_USER_INFO",
            "RIGHT_USER_SETTINGS_BASIC",
            "RIGHT_USER_LIST",
            "RIGHT_USER_CREATE",
            "RIGHT_USER_SETTINGS_API_KEYS",
            "RIGHT_USER_DELETE",
            "RIGHT_USER_PURGE",
            "RIGHT_USER_AUTHORIZED_CLIENTS",
            "RIGHT_USER_APPLICATIONS_LIST",
            "RIGHT_USER_APPLICATIONS_CREATE",
            "RIGHT_USER_GATEWAYS_LIST",
            "RIGHT_USER_GATEWAYS_CREATE",
            "RIGHT_USER_CLIENTS_LIST",
            "RIGHT_USER_CLIENTS_CREATE",
            "RIGHT_USER_ORGANIZATIONS_LIST",
            "RIGHT_USER_ORGANIZATIONS_CREATE",
            "RIGHT_USER_NOTIFICATIONS_READ",
            "RIGHT_USER_ALL",
            "RIGHT_APPLICATION_INFO",
            "RIGHT_APPLICATION_SETTINGS_BASIC",
            "RIGHT_APPLICATION_SETTINGS_API_KEYS",
            "RIGHT_APPLICATION_SETTINGS_COLLABORATORS",
            "RIGHT_APPLICATION_SETTINGS_PACKAGES",
            "RIGHT_APPLICATION_DELETE",
            "RIGHT_APPLICATION_PURGE",
            "RIGHT_APPLICATION_DEVICES_READ",
            "RIGHT_APPLICATION_DEVICES_WRITE",
            "RIGHT_APPLICATION_DEVICES_READ_KEYS",
            "RIGHT_APPLICATION_DEVICES_WRITE_KEYS",
            "RIGHT_APPLICATION_TRAFFIC_READ",
            "RIGHT_APPLICATION_TRAFFIC_UP_WRITE",
            "RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE",
            "RIGHT_APPLICATION_LINK",
            "RIGHT_APPLICATION_ALL",
            "RIGHT_CLIENT_ALL",
            "RIGHT_CLIENT_INFO",
            "RIGHT_CLIENT_SETTINGS_BASIC",
            "RIGHT_CLIENT_SETTINGS_COLLABORATORS",
            "RIGHT_CLIENT_DELETE",
            "RIGHT_CLIENT_PURGE",
            "RIGHT_GATEWAY_INFO",
            "RIGHT_GATEWAY_SETTINGS_BASIC",
            "RIGHT_GATEWAY_SETTINGS_API_KEYS",
            "RIGHT_GATEWAY_SETTINGS_COLLABORATORS",
            "RIGHT_GATEWAY_DELETE",
            "RIGHT_GATEWAY_PURGE",
            "RIGHT_GATEWAY_TRAFFIC_READ",
            "RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE",
            "RIGHT_GATEWAY_LINK",
            "RIGHT_GATEWAY_STATUS_READ",
            "RIGHT_GATEWAY_LOCATION_READ",
            "RIGHT_GATEWAY_WRITE_SECRETS",
            "RIGHT_GATEWAY_READ_SECRETS",
            "RIGHT_GATEWAY_ALL",
            "RIGHT_ORGANIZATION_INFO",
            "RIGHT_ORGANIZATION_SETTINGS_BASIC",
            "RIGHT_ORGANIZATION_SETTINGS_API_KEYS",
            "RIGHT_ORGANIZATION_SETTINGS_MEMBERS",
            "RIGHT_ORGANIZATION_DELETE",
            "RIGHT_ORGANIZATION_PURGE",
            "RIGHT_ORGANIZATION_APPLICATIONS_LIST",
            "RIGHT_ORGANIZATION_APPLICATIONS_CREATE",
            "RIGHT_ORGANIZATION_GATEWAYS_LIST",
            "RIGHT_ORGANIZATION_GATEWAYS_CREATE",
            "RIGHT_ORGANIZATION_CLIENTS_LIST",
            "RIGHT_ORGANIZATION_CLIENTS_CREATE",
            "RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR",
            "RIGHT_ORGANIZATION_ALL",
            "RIGHT_SEND_INVITES",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_INFO",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_LIST",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE",
            "RIGHT_AUTHENTICATION_PROVIDER_CREATE",
            "RIGHT_AUTHENTICATION_PROVIDER_INFO",
            "RIGHT_AUTHENTICATION_PROVIDER_LIST",
            "RIGHT_AUTHENTICATION_PROVIDER_UPDATE",
            "RIGHT_AUTHENTICATION_PROVIDER_DELETE",
            "RIGHT_EXTERNAL_USER_CREATE",
            "RIGHT_EXTERNAL_USER_INFO",
            "RIGHT_EXTERNAL_USER_DELETE",
            "RIGHT_PACKET_BROKER_AGENT_READ",
            "RIGHT_PACKET_BROKER_AGENT_WRITE",
            "RIGHT_TENANT_CONFIGURATION_UPDATE",
            "RIGHT_LABEL_CREATE",
            "RIGHT_LABEL_INFO",
            "RIGHT_LABELS_LIST",
            "RIGHT_LABEL_UPDATE",
            "RIGHT_LABEL_DELETE",
            "RIGHT_LABEL_ASSIGN",
            "RIGHT_ALL"
          ],
          "type": "string"
        },
        "type": "array"
      },
      "updated_at": {
        "format": "date-time",
        "type": "string"
      }
    },
    "type": "object"
  },
  "entity_ids": {
    "description": "EntityIdentifiers contains one of the possible entity identifiers.",
    "properties": {
      "application_ids": {
        "properties": {
          "application_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "client_ids": {
        "properties": {
          "client_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "device_ids": {
        "properties": {
          "application_ids": {
            "properties": {
              "application_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "device_id": {
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "gateway_ids": {
        "properties": {
          "eui": {
            "description": "Secondary identifier, which can only be used in specific requests.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "gateway_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "organization_ids": {
        "properties": {
          "organization_id": {
            "description": "This ID shares namespace with user IDs.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "user_ids": {
        "properties": {
          "email": {
            "description": "Secondary identifier, which can only be used in specific requests.",
            "type": "string"
          },
          "user_id": {
            "description": "This ID shares namespace with organization IDs.",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  }
}
Show the schema of the message in JSON format.

AuthenticationProviderOIDC

Fields
Name Type Description
client_id string
client_secret string
provider_url string
Schema
{
  "client_id": {
    "type": "string"
  },
  "client_secret": {
    "type": "string"
  },
  "provider_url": {
    "type": "string"
  }
}
Show the schema of the message in JSON format.

AzureIoTHubServiceSubmitBody

Fields
Name Type Description
application_ids object
events object
Schema
{
  "application_ids": {
    "type": "object"
  },
  "events": {
    "items": {
      "properties": {
        "body": {
          "type": "object"
        },
        "end_device_ids": {
          "properties": {
            "application_ids": {
              "properties": {
                "application_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "dev_addr": {
              "description": "The LoRaWAN DevAddr.",
              "example": "2600ABCD",
              "format": "string",
              "type": "string"
            },
            "dev_eui": {
              "description": "The LoRaWAN DevEUI.",
              "example": "70B3D57ED000ABCD",
              "format": "string",
              "type": "string"
            },
            "device_id": {
              "type": "string"
            },
            "join_eui": {
              "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
              "example": "70B3D57ED000ABCD",
              "format": "string",
              "type": "string"
            }
          },
          "type": "object"
        },
        "properties": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "type": "array"
  }
}
Show the schema of the message in JSON format.

BandDescriptionBandDataRate

Fields
Name Type Description
rate object
Schema
{
  "rate": {
    "properties": {
      "fsk": {
        "properties": {
          "bit_rate": {
            "description": "Bit rate (bps).",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "lora": {
        "properties": {
          "bandwidth": {
            "description": "Bandwidth (Hz).",
            "format": "int64",
            "type": "integer"
          },
          "coding_rate": {
            "type": "string"
          },
          "spreading_factor": {
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "lrfhss": {
        "properties": {
          "coding_rate": {
            "type": "string"
          },
          "modulation_type": {
            "format": "int64",
            "type": "integer"
          },
          "operating_channel_width": {
            "description": "Operating Channel Width (Hz).",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  }
}
Show the schema of the message in JSON format.

BandDescriptionBeacon

Fields
Name Type Description
coding_rate string
data_rate_index string
frequencies string
Schema
{
  "coding_rate": {
    "type": "string"
  },
  "data_rate_index": {
    "default": "DATA_RATE_0",
    "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"
    ],
    "type": "string"
  },
  "frequencies": {
    "items": {
      "format": "uint64",
      "type": "string"
    },
    "type": "array"
  }
}
Show the schema of the message in JSON format.

BandDescriptionDwellTime

Fields
Name Type Description
downlinks boolean
uplinks boolean
Schema
{
  "downlinks": {
    "type": "boolean"
  },
  "uplinks": {
    "type": "boolean"
  }
}
Show the schema of the message in JSON format.

BandDescriptionRelayParametersRelayWORChannel

Fields
Name Type Description
ack_frequency string
data_rate_index string
frequency string
Schema
{
  "ack_frequency": {
    "format": "uint64",
    "type": "string"
  },
  "data_rate_index": {
    "default": "DATA_RATE_0",
    "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"
    ],
    "type": "string"
  },
  "frequency": {
    "format": "uint64",
    "type": "string"
  }
}
Show the schema of the message in JSON format.

BandDescriptionRx2Parameters

Fields
Name Type Description
data_rate_index string
frequency string
Schema
{
  "data_rate_index": {
    "default": "DATA_RATE_0",
    "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"
    ],
    "type": "string"
  },
  "frequency": {
    "format": "uint64",
    "type": "string"
  }
}
Show the schema of the message in JSON format.

BandDescriptionSubBandParameters

Fields
Name Type Description
duty_cycle number
max_eirp number
max_frequency string
min_frequency string
Schema
{
  "duty_cycle": {
    "format": "float",
    "type": "number"
  },
  "max_eirp": {
    "format": "float",
    "type": "number"
  },
  "max_frequency": {
    "format": "uint64",
    "type": "string"
  },
  "min_frequency": {
    "format": "uint64",
    "type": "string"
  }
}
Show the schema of the message in JSON format.

BatchUpdateEndDeviceLastSeenRequestEndDeviceLastSeenUpdate

Fields
Name Type Description
ids object
last_seen_at string
Schema
{
  "ids": {
    "properties": {
      "application_ids": {
        "properties": {
          "application_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "dev_addr": {
        "description": "The LoRaWAN DevAddr.",
        "example": "2600ABCD",
        "format": "string",
        "type": "string"
      },
      "dev_eui": {
        "description": "The LoRaWAN DevEUI.",
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      },
      "device_id": {
        "type": "string"
      },
      "join_eui": {
        "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      }
    },
    "type": "object"
  },
  "last_seen_at": {
    "format": "date-time",
    "type": "string"
  }
}
Show the schema of the message in JSON format.

BillingAWSSaaSMarketplace

Fields
Name Type Description
customer_identifier string
product_code string
Schema
{
  "customer_identifier": {
    "type": "string"
  },
  "product_code": {
    "type": "string"
  }
}
Show the schema of the message in JSON format.

BillingStripe

Fields
Name Type Description
customer_id string
plan_id string
subscription_id string
subscription_item_id string
Schema
{
  "customer_id": {
    "type": "string"
  },
  "plan_id": {
    "type": "string"
  },
  "subscription_id": {
    "type": "string"
  },
  "subscription_item_id": {
    "type": "string"
  }
}
Show the schema of the message in JSON format.

CUPSRedirectionClientTLS

Fields
Name Type Description
cert string PEM encoded Client Certificate.
key string PEM encoded Client Private Key.
Schema
{
  "cert": {
    "description": "PEM encoded Client Certificate.",
    "format": "byte",
    "type": "string"
  },
  "key": {
    "description": "PEM encoded Client Private Key.",
    "format": "byte",
    "type": "string"
  }
}
Show the schema of the message in JSON format.

ChannelSteeringSettingsLoRaNarrowMode

ClusterAlertRoutingServer

Fields
Name Type Description
routing object
Schema
{
  "routing": {
    "properties": {
      "enabled": {
        "type": "boolean"
      }
    },
    "type": "object"
  }
}
Show the schema of the message in JSON format.

ClusterAlertRoutingServerRouting

Fields
Name Type Description
enabled boolean
Schema
{
  "enabled": {
    "type": "boolean"
  }
}
Show the schema of the message in JSON format.

ClusterApplicationServer

Fields
Name Type Description
webhooks object
Schema
{
  "webhooks": {
    "properties": {
      "queue": {
        "properties": {
          "enabled": {
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  }
}
Show the schema of the message in JSON format.

ClusterApplicationServerWebhooks

Fields
Name Type Description
queue object
Schema
{
  "queue": {
    "properties": {
      "enabled": {
        "type": "boolean"
      }
    },
    "type": "object"
  }
}
Show the schema of the message in JSON format.

ClusterApplicationServerWebhooksQueue

Fields
Name Type Description
enabled boolean
Schema
{
  "enabled": {
    "type": "boolean"
  }
}
Show the schema of the message in JSON format.

ClusterGatewayServer

Fields
Name Type Description
mtls_authentication object
Schema
{
  "mtls_authentication": {
    "properties": {
      "client_ca_pool": {
        "description": "PEM encoded pool of X.509 root certificates to trust for verifying the presented TLS client certificate.",
        "format": "byte",
        "type": "string"
      }
    },
    "type": "object"
  }
}
Show the schema of the message in JSON format.

ClusterIdentityServer

Fields
Name Type Description
admin_rights object
application_limits object
email object
end_device_picture object
organization_limits object
profile_picture object
user_limits object
user_login object
user_registration object
user_rights object
Schema
{
  "admin_rights": {
    "properties": {
      "all": {
        "type": "boolean"
      }
    },
    "type": "object"
  },
  "application_limits": {
    "properties": {
      "end_devices": {
        "format": "uint64",
        "type": "string"
      }
    },
    "type": "object"
  },
  "email": {
    "properties": {
      "network": {
        "properties": {
          "branding_base_url": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  },
  "end_device_picture": {
    "properties": {
      "disable_upload": {
        "type": "boolean"
      }
    },
    "type": "object"
  },
  "organization_limits": {
    "properties": {
      "applications": {
        "format": "uint64",
        "type": "string"
      },
      "clients": {
        "format": "uint64",
        "type": "string"
      },
      "gateways": {
        "format": "uint64",
        "type": "string"
      }
    },
    "type": "object"
  },
  "profile_picture": {
    "properties": {
      "disable_upload": {
        "type": "boolean"
      },
      "use_gravatar": {
        "type": "boolean"
      }
    },
    "type": "object"
  },
  "user_limits": {
    "properties": {
      "applications": {
        "format": "uint64",
        "type": "string"
      },
      "clients": {
        "format": "uint64",
        "type": "string"
      },
      "gateways": {
        "format": "uint64",
        "type": "string"
      },
      "organizations": {
        "format": "uint64",
        "type": "string"
      }
    },
    "type": "object"
  },
  "user_login": {
    "properties": {
      "disable_credentials_login": {
        "type": "boolean"
      }
    },
    "type": "object"
  },
  "user_registration": {
    "properties": {
      "admin_approval": {
        "properties": {
          "required": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "contact_info_validation": {
        "properties": {
          "required": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "enabled": {
        "type": "boolean"
      },
      "invitation": {
        "properties": {
          "required": {
            "type": "boolean"
          },
          "token_ttl": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "password_requirements": {
        "properties": {
          "max_length": {
            "format": "int64",
            "type": "integer"
          },
          "min_digits": {
            "format": "int64",
            "type": "integer"
          },
          "min_length": {
            "format": "int64",
            "type": "integer"
          },
          "min_special": {
            "format": "int64",
            "type": "integer"
          },
          "min_uppercase": {
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  },
  "user_rights": {
    "properties": {
      "create_applications": {
        "type": "boolean"
      },
      "create_clients": {
        "type": "boolean"
      },
      "create_gateways": {
        "type": "boolean"
      },
      "create_organizations": {
        "type": "boolean"
      },
      "update_name": {
        "type": "boolean"
      },
      "update_primary_email_address": {
        "type": "boolean"
      }
    },
    "type": "object"
  }
}
Show the schema of the message in JSON format.

ClusterIdentityServerAdminRights

Fields
Name Type Description
all boolean
Schema
{
  "all": {
    "type": "boolean"
  }
}
Show the schema of the message in JSON format.

ClusterIdentityServerApplicationLimits

Fields
Name Type Description
end_devices string
Schema
{
  "end_devices": {
    "format": "uint64",
    "type": "string"
  }
}
Show the schema of the message in JSON format.

ClusterIdentityServerEmail

Fields
Name Type Description
network object
Schema
{
  "network": {
    "properties": {
      "branding_base_url": {
        "type": "string"
      }
    },
    "type": "object"
  }
}
Show the schema of the message in JSON format.

ClusterIdentityServerEndDevicePicture

Fields
Name Type Description
disable_upload boolean
Schema
{
  "disable_upload": {
    "type": "boolean"
  }
}
Show the schema of the message in JSON format.

ClusterIdentityServerOrganizationLimits

Fields
Name Type Description
applications string
clients string
gateways string
Schema
{
  "applications": {
    "format": "uint64",
    "type": "string"
  },
  "clients": {
    "format": "uint64",
    "type": "string"
  },
  "gateways": {
    "format": "uint64",
    "type": "string"
  }
}
Show the schema of the message in JSON format.

ClusterIdentityServerProfilePicture

Fields
Name Type Description
disable_upload boolean
use_gravatar boolean
Schema
{
  "disable_upload": {
    "type": "boolean"
  },
  "use_gravatar": {
    "type": "boolean"
  }
}
Show the schema of the message in JSON format.

ClusterIdentityServerUserLimits

Fields
Name Type Description
applications string
clients string
gateways string
organizations string
Schema
{
  "applications": {
    "format": "uint64",
    "type": "string"
  },
  "clients": {
    "format": "uint64",
    "type": "string"
  },
  "gateways": {
    "format": "uint64",
    "type": "string"
  },
  "organizations": {
    "format": "uint64",
    "type": "string"
  }
}
Show the schema of the message in JSON format.

ClusterIdentityServerUserLogin

Fields
Name Type Description
disable_credentials_login boolean
Schema
{
  "disable_credentials_login": {
    "type": "boolean"
  }
}
Show the schema of the message in JSON format.

ClusterIdentityServerUserRegistration

Fields
Name Type Description
admin_approval object
contact_info_validation object
enabled boolean
invitation object
password_requirements object
Schema
{
  "admin_approval": {
    "properties": {
      "required": {
        "type": "boolean"
      }
    },
    "type": "object"
  },
  "contact_info_validation": {
    "properties": {
      "required": {
        "type": "boolean"
      }
    },
    "type": "object"
  },
  "enabled": {
    "type": "boolean"
  },
  "invitation": {
    "properties": {
      "required": {
        "type": "boolean"
      },
      "token_ttl": {
        "type": "string"
      }
    },
    "type": "object"
  },
  "password_requirements": {
    "properties": {
      "max_length": {
        "format": "int64",
        "type": "integer"
      },
      "min_digits": {
        "format": "int64",
        "type": "integer"
      },
      "min_length": {
        "format": "int64",
        "type": "integer"
      },
      "min_special": {
        "format": "int64",
        "type": "integer"
      },
      "min_uppercase": {
        "format": "int64",
        "type": "integer"
      }
    },
    "type": "object"
  }
}
Show the schema of the message in JSON format.

ClusterIdentityServerUserRegistrationAdminApproval

Fields
Name Type Description
required boolean
Schema
{
  "required": {
    "type": "boolean"
  }
}
Show the schema of the message in JSON format.

ClusterIdentityServerUserRegistrationContactInfoValidation

Fields
Name Type Description
required boolean
Schema
{
  "required": {
    "type": "boolean"
  }
}
Show the schema of the message in JSON format.

ClusterIdentityServerUserRegistrationInvitation

Fields
Name Type Description
required boolean
token_ttl string
Schema
{
  "required": {
    "type": "boolean"
  },
  "token_ttl": {
    "type": "string"
  }
}
Show the schema of the message in JSON format.

ClusterIdentityServerUserRegistrationPasswordRequirements

Fields
Name Type Description
max_length integer
min_digits integer
min_length integer
min_special integer
min_uppercase integer
Schema
{
  "max_length": {
    "format": "int64",
    "type": "integer"
  },
  "min_digits": {
    "format": "int64",
    "type": "integer"
  },
  "min_length": {
    "format": "int64",
    "type": "integer"
  },
  "min_special": {
    "format": "int64",
    "type": "integer"
  },
  "min_uppercase": {
    "format": "int64",
    "type": "integer"
  }
}
Show the schema of the message in JSON format.

ClusterIdentityServerUserRights

Fields
Name Type Description
create_applications boolean
create_clients boolean
create_gateways boolean
create_organizations boolean
update_name boolean
update_primary_email_address boolean
Schema
{
  "create_applications": {
    "type": "boolean"
  },
  "create_clients": {
    "type": "boolean"
  },
  "create_gateways": {
    "type": "boolean"
  },
  "create_organizations": {
    "type": "boolean"
  },
  "update_name": {
    "type": "boolean"
  },
  "update_primary_email_address": {
    "type": "boolean"
  }
}
Show the schema of the message in JSON format.

ClusterJoinServer

Fields
Name Type Description
join_eui_prefixes string
Schema
{
  "join_eui_prefixes": {
    "example": [
      "70B3D57ED0000000/56"
    ],
    "items": {
      "format": "byte",
      "type": "string"
    },
    "type": "array"
  }
}
Show the schema of the message in JSON format.

ClusterNetworkOperationsCenter

Fields
Name Type Description
access object
Schema
{
  "access": {
    "properties": {
      "extended": {
        "type": "boolean"
      }
    },
    "type": "object"
  }
}
Show the schema of the message in JSON format.

ClusterNetworkOperationsCenterAccess

Fields
Name Type Description
extended boolean
Schema
{
  "extended": {
    "type": "boolean"
  }
}
Show the schema of the message in JSON format.

ClusterNetworkServer

Fields
Name Type Description
cooldown_window string
deduplication_window string
dev_addr_prefixes string
net_id string
ns_id string
Schema
{
  "cooldown_window": {
    "type": "string"
  },
  "deduplication_window": {
    "type": "string"
  },
  "dev_addr_prefixes": {
    "example": [
      "2600AB00/24"
    ],
    "items": {
      "format": "byte",
      "type": "string"
    },
    "type": "array"
  },
  "net_id": {
    "example": "000013",
    "format": "string",
    "type": "string"
  },
  "ns_id": {
    "example": "70B3D57ED000ABCD",
    "format": "string",
    "type": "string"
  }
}
Show the schema of the message in JSON format.

CompliancesCompliance

Fields
Name Type Description
body string
norm string
standard string
version string
Schema
{
  "body": {
    "type": "string"
  },
  "norm": {
    "type": "string"
  },
  "standard": {
    "type": "string"
  },
  "version": {
    "type": "string"
  }
}
Show the schema of the message in JSON format.

ConcentratorConfigFSKChannel

Fields
Name Type Description
frequency string Frequency (Hz).
radio integer
Schema
{
  "frequency": {
    "description": "Frequency (Hz).",
    "format": "uint64",
    "type": "string"
  },
  "radio": {
    "format": "int64",
    "type": "integer"
  }
}
Show the schema of the message in JSON format.

ConcentratorConfigLBTConfiguration

Fields
Name Type Description
rssi_offset number Received signal strength offset (dBm).
rssi_target number Received signal strength (dBm).
scan_time string
Schema
{
  "rssi_offset": {
    "description": "Received signal strength offset (dBm).",
    "format": "float",
    "type": "number"
  },
  "rssi_target": {
    "description": "Received signal strength (dBm).",
    "format": "float",
    "type": "number"
  },
  "scan_time": {
    "type": "string"
  }
}
Show the schema of the message in JSON format.

ConcentratorConfigLoRaStandardChannel

Fields
Name Type Description
bandwidth integer Bandwidth (Hz).
frequency string Frequency (Hz).
radio integer
spreading_factor integer
Schema
{
  "bandwidth": {
    "description": "Bandwidth (Hz).",
    "format": "int64",
    "type": "integer"
  },
  "frequency": {
    "description": "Frequency (Hz).",
    "format": "uint64",
    "type": "string"
  },
  "radio": {
    "format": "int64",
    "type": "integer"
  },
  "spreading_factor": {
    "format": "int64",
    "type": "integer"
  }
}
Show the schema of the message in JSON format.

ConfigurationCluster

Fields
Name Type Description
ars object
as object
gs object
is object
js object
noc object
ns object
ui object
Schema
{
  "ars": {
    "properties": {
      "routing": {
        "properties": {
          "enabled": {
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  },
  "as": {
    "properties": {
      "webhooks": {
        "properties": {
          "queue": {
            "properties": {
              "enabled": {
                "type": "boolean"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  },
  "gs": {
    "properties": {
      "mtls_authentication": {
        "properties": {
          "client_ca_pool": {
            "description": "PEM encoded pool of X.509 root certificates to trust for verifying the presented TLS client certificate.",
            "format": "byte",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  },
  "is": {
    "properties": {
      "admin_rights": {
        "properties": {
          "all": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "application_limits": {
        "properties": {
          "end_devices": {
            "format": "uint64",
            "type": "string"
          }
        },
        "type": "object"
      },
      "email": {
        "properties": {
          "network": {
            "properties": {
              "branding_base_url": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "end_device_picture": {
        "properties": {
          "disable_upload": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "organization_limits": {
        "properties": {
          "applications": {
            "format": "uint64",
            "type": "string"
          },
          "clients": {
            "format": "uint64",
            "type": "string"
          },
          "gateways": {
            "format": "uint64",
            "type": "string"
          }
        },
        "type": "object"
      },
      "profile_picture": {
        "properties": {
          "disable_upload": {
            "type": "boolean"
          },
          "use_gravatar": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "user_limits": {
        "properties": {
          "applications": {
            "format": "uint64",
            "type": "string"
          },
          "clients": {
            "format": "uint64",
            "type": "string"
          },
          "gateways": {
            "format": "uint64",
            "type": "string"
          },
          "organizations": {
            "format": "uint64",
            "type": "string"
          }
        },
        "type": "object"
      },
      "user_login": {
        "properties": {
          "disable_credentials_login": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "user_registration": {
        "properties": {
          "admin_approval": {
            "properties": {
              "required": {
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "contact_info_validation": {
            "properties": {
              "required": {
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "enabled": {
            "type": "boolean"
          },
          "invitation": {
            "properties": {
              "required": {
                "type": "boolean"
              },
              "token_ttl": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "password_requirements": {
            "properties": {
              "max_length": {
                "format": "int64",
                "type": "integer"
              },
              "min_digits": {
                "format": "int64",
                "type": "integer"
              },
              "min_length": {
                "format": "int64",
                "type": "integer"
              },
              "min_special": {
                "format": "int64",
                "type": "integer"
              },
              "min_uppercase": {
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "user_rights": {
        "properties": {
          "create_applications": {
            "type": "boolean"
          },
          "create_clients": {
            "type": "boolean"
          },
          "create_gateways": {
            "type": "boolean"
          },
          "create_organizations": {
            "type": "boolean"
          },
          "update_name": {
            "type": "boolean"
          },
          "update_primary_email_address": {
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  },
  "js": {
    "properties": {
      "join_eui_prefixes": {
        "example": [
          "70B3D57ED0000000/56"
        ],
        "items": {
          "format": "byte",
          "type": "string"
        },
        "type": "array"
      }
    },
    "type": "object"
  },
  "noc": {
    "properties": {
      "access": {
        "properties": {
          "extended": {
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "type": "object"
  },
  "ns": {
    "properties": {
      "cooldown_window": {
        "type": "string"
      },
      "deduplication_window": {
        "type": "string"
      },
      "dev_addr_prefixes": {
        "example": [
          "2600AB00/24"
        ],
        "items": {
          "format": "byte",
          "type": "string"
        },
        "type": "array"
      },
      "net_id": {
        "example": "000013",
        "format": "string",
        "type": "string"
      },
      "ns_id": {
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      }
    },
    "type": "object"
  },
  "ui": {
    "properties": {
      "branding_base_url": {
        "type": "string"
      }
    },
    "type": "object"
  }
}
Show the schema of the message in JSON format.

ConfigurationPacketBroker

Fields
Name Type Description
listed boolean Indicates whether the Home Network is publicly listed.
Schema
{
  "listed": {
    "description": "Indicates whether the Home Network is publicly listed.",
    "type": "boolean"
  }
}
Show the schema of the message in JSON format.

ConfigurationUI

Fields
Name Type Description
branding_base_url string
Schema
{
  "branding_base_url": {
    "type": "string"
  }
}
Show the schema of the message in JSON format.

DownlinkMessageMessageMACPayload

Fields
Name Type Description
f_port integer
full_f_cnt integer
Schema
{
  "f_port": {
    "format": "int64",
    "type": "integer"
  },
  "full_f_cnt": {
    "format": "int64",
    "type": "integer"
  }
}
Show the schema of the message in JSON format.

DownlinkMessageMessageMHDR

Fields
Name Type Description
m_type string
Schema
{
  "m_type": {
    "default": "JOIN_REQUEST",
    "enum": [
      "JOIN_REQUEST",
      "JOIN_ACCEPT",
      "UNCONFIRMED_UP",
      "UNCONFIRMED_DOWN",
      "CONFIRMED_UP",
      "CONFIRMED_DOWN",
      "REJOIN_REQUEST",
      "PROPRIETARY"
    ],
    "type": "string"
  }
}
Show the schema of the message in JSON format.

DynamicModeChannelSteeringSettings

EXPERIMENTAL: Channel steering settings.
Fields
Name Type Description
disabled object Configuration options for cases in which ADR is not supposed to steer the end device to another set of channels.
lora_narrow object Configuration options for LoRa narrow channels steering. The narrow mode attempts to steer the end device towards using the LoRa modulated, 125kHz bandwidth channels.
Schema
{
  "disabled": {
    "description": "Configuration options for cases in which ADR is not supposed to steer the end device\nto another set of channels.",
    "type": "object"
  },
  "lora_narrow": {
    "description": "Configuration options for LoRa narrow channels steering.\nThe narrow mode attempts to steer the end device towards\nusing the LoRa modulated, 125kHz bandwidth channels.",
    "type": "object"
  }
}
Show the schema of the message in JSON format.

DynamicModeChannelSteeringSettingsDisabledMode

DynamicModeOverrides

EXPERIMENTAL: Configuration overrides.
Fields
Name Type Description
data_rate_0 object EXPERIMENTAL: Data rate index override settings.
data_rate_1 object EXPERIMENTAL: Data rate index override settings.
data_rate_10 object EXPERIMENTAL: Data rate index override settings.
data_rate_11 object EXPERIMENTAL: Data rate index override settings.
data_rate_12 object EXPERIMENTAL: Data rate index override settings.
data_rate_13 object EXPERIMENTAL: Data rate index override settings.
data_rate_14 object EXPERIMENTAL: Data rate index override settings.
data_rate_15 object EXPERIMENTAL: Data rate index override settings.
data_rate_2 object EXPERIMENTAL: Data rate index override settings.
data_rate_3 object EXPERIMENTAL: Data rate index override settings.
data_rate_4 object EXPERIMENTAL: Data rate index override settings.
data_rate_5 object EXPERIMENTAL: Data rate index override settings.
data_rate_6 object EXPERIMENTAL: Data rate index override settings.
data_rate_7 object EXPERIMENTAL: Data rate index override settings.
data_rate_8 object EXPERIMENTAL: Data rate index override settings.
data_rate_9 object EXPERIMENTAL: Data rate index override settings.
Schema
{
  "data_rate_0": {
    "description": "EXPERIMENTAL: Data rate index override settings.",
    "properties": {
      "max_nb_trans": {
        "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      },
      "min_nb_trans": {
        "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      }
    },
    "type": "object"
  },
  "data_rate_1": {
    "description": "EXPERIMENTAL: Data rate index override settings.",
    "properties": {
      "max_nb_trans": {
        "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      },
      "min_nb_trans": {
        "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      }
    },
    "type": "object"
  },
  "data_rate_10": {
    "description": "EXPERIMENTAL: Data rate index override settings.",
    "properties": {
      "max_nb_trans": {
        "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      },
      "min_nb_trans": {
        "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      }
    },
    "type": "object"
  },
  "data_rate_11": {
    "description": "EXPERIMENTAL: Data rate index override settings.",
    "properties": {
      "max_nb_trans": {
        "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      },
      "min_nb_trans": {
        "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      }
    },
    "type": "object"
  },
  "data_rate_12": {
    "description": "EXPERIMENTAL: Data rate index override settings.",
    "properties": {
      "max_nb_trans": {
        "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      },
      "min_nb_trans": {
        "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      }
    },
    "type": "object"
  },
  "data_rate_13": {
    "description": "EXPERIMENTAL: Data rate index override settings.",
    "properties": {
      "max_nb_trans": {
        "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      },
      "min_nb_trans": {
        "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      }
    },
    "type": "object"
  },
  "data_rate_14": {
    "description": "EXPERIMENTAL: Data rate index override settings.",
    "properties": {
      "max_nb_trans": {
        "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      },
      "min_nb_trans": {
        "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      }
    },
    "type": "object"
  },
  "data_rate_15": {
    "description": "EXPERIMENTAL: Data rate index override settings.",
    "properties": {
      "max_nb_trans": {
        "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      },
      "min_nb_trans": {
        "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      }
    },
    "type": "object"
  },
  "data_rate_2": {
    "description": "EXPERIMENTAL: Data rate index override settings.",
    "properties": {
      "max_nb_trans": {
        "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      },
      "min_nb_trans": {
        "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      }
    },
    "type": "object"
  },
  "data_rate_3": {
    "description": "EXPERIMENTAL: Data rate index override settings.",
    "properties": {
      "max_nb_trans": {
        "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      },
      "min_nb_trans": {
        "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      }
    },
    "type": "object"
  },
  "data_rate_4": {
    "description": "EXPERIMENTAL: Data rate index override settings.",
    "properties": {
      "max_nb_trans": {
        "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      },
      "min_nb_trans": {
        "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      }
    },
    "type": "object"
  },
  "data_rate_5": {
    "description": "EXPERIMENTAL: Data rate index override settings.",
    "properties": {
      "max_nb_trans": {
        "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      },
      "min_nb_trans": {
        "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      }
    },
    "type": "object"
  },
  "data_rate_6": {
    "description": "EXPERIMENTAL: Data rate index override settings.",
    "properties": {
      "max_nb_trans": {
        "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      },
      "min_nb_trans": {
        "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      }
    },
    "type": "object"
  },
  "data_rate_7": {
    "description": "EXPERIMENTAL: Data rate index override settings.",
    "properties": {
      "max_nb_trans": {
        "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      },
      "min_nb_trans": {
        "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      }
    },
    "type": "object"
  },
  "data_rate_8": {
    "description": "EXPERIMENTAL: Data rate index override settings.",
    "properties": {
      "max_nb_trans": {
        "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      },
      "min_nb_trans": {
        "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      }
    },
    "type": "object"
  },
  "data_rate_9": {
    "description": "EXPERIMENTAL: Data rate index override settings.",
    "properties": {
      "max_nb_trans": {
        "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      },
      "min_nb_trans": {
        "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
        "format": "int64",
        "type": "integer"
      }
    },
    "type": "object"
  }
}
Show the schema of the message in JSON format.

DynamicModePerDataRateIndexOverride

EXPERIMENTAL: Data rate index override settings.
Fields
Name Type Description
max_nb_trans integer Maximum number of retransmissions. If unset, the default value from Network Server configuration will be used.
min_nb_trans integer Minimum number of retransmissions. If unset, the default value from Network Server configuration will be used.
Schema
{
  "max_nb_trans": {
    "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
    "format": "int64",
    "type": "integer"
  },
  "min_nb_trans": {
    "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
    "format": "int64",
    "type": "integer"
  }
}
Show the schema of the message in JSON format.

EmailNetwork

Fields
Name Type Description
branding_base_url string
Schema
{
  "branding_base_url": {
    "type": "string"
  }
}
Show the schema of the message in JSON format.

EndDeviceClaimingServerAuthorizeApplicationBody

DEPRECATED: Device claiming that transfers devices between applications is no longer supported and will be removed in a future version of The Things Stack.
Fields
Name Type Description
api_key string
application_ids object
Schema
{
  "api_key": {
    "type": "string"
  },
  "application_ids": {
    "type": "object"
  }
}
Show the schema of the message in JSON format.

EndDeviceModelBattery

Fields
Name Type Description
replaceable boolean Whether the device battery can be replaced.
type string Battery type.
Schema
{
  "replaceable": {
    "description": "Whether the device battery can be replaced.",
    "type": "boolean"
  },
  "type": {
    "description": "Battery type.",
    "type": "string"
  }
}
Show the schema of the message in JSON format.

EndDeviceModelCompliances

Fields
Name Type Description
radio_equipment object List of radio equipment standards the device is compliant with.
safety object List of safety standards the device is compliant with.
Schema
{
  "radio_equipment": {
    "description": "List of radio equipment standards the device is compliant with.",
    "items": {
      "properties": {
        "body": {
          "type": "string"
        },
        "norm": {
          "type": "string"
        },
        "standard": {
          "type": "string"
        },
        "version": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "type": "array"
  },
  "safety": {
    "description": "List of safety standards the device is compliant with.",
    "items": {
      "properties": {
        "body": {
          "type": "string"
        },
        "norm": {
          "type": "string"
        },
        "standard": {
          "type": "string"
        },
        "version": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "type": "array"
  }
}
Show the schema of the message in JSON format.

EndDeviceModelDimensions

Fields
Name Type Description
diameter number Device diameter (mm).
height number Device height (mm).
length number Device length (mm).
width number Device width (mm).
Schema
{
  "diameter": {
    "description": "Device diameter (mm).",
    "format": "float",
    "type": "number"
  },
  "height": {
    "description": "Device height (mm).",
    "format": "float",
    "type": "number"
  },
  "length": {
    "description": "Device length (mm).",
    "format": "float",
    "type": "number"
  },
  "width": {
    "description": "Device width (mm).",
    "format": "float",
    "type": "number"
  }
}
Show the schema of the message in JSON format.

EndDeviceModelFirmwareVersion

Fields
Name Type Description
numeric integer Numeric firmware revision number.
profiles object Device profiles for each supported region (band).
supported_hardware_versions string Hardware versions supported by this firmware version.
version string Firmware version string.
Schema
{
  "numeric": {
    "description": "Numeric firmware revision number.",
    "format": "int64",
    "type": "integer"
  },
  "profiles": {
    "additionalProperties": {
      "properties": {
        "codec_id": {
          "description": "Payload formatter codec identifier, as defined in the Device Repository.",
          "type": "string"
        },
        "lorawan_certified": {
          "description": "Whether the device is LoRaWAN certified.",
          "type": "boolean"
        },
        "profile_id": {
          "description": "Profile identifier, as defined in the Device Repository.",
          "type": "string"
        },
        "vendor_id": {
          "description": "Vendor ID of the profile, as defined in the Device Repository.\nIf this value is set, the profile is loaded from this vendor's folder.\nIf this value is not set, the profile is loaded from the current (end device's) vendor.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "description": "Device profiles for each supported region (band).",
    "type": "object"
  },
  "supported_hardware_versions": {
    "description": "Hardware versions supported by this firmware version.",
    "items": {
      "type": "string"
    },
    "type": "array"
  },
  "version": {
    "description": "Firmware version string.",
    "type": "string"
  }
}
Show the schema of the message in JSON format.

EndDeviceModelHardwareVersion

Fields
Name Type Description
numeric integer Numberic hardware revision number.
part_number string Hardware part number.
version string Hardware version string.
Schema
{
  "numeric": {
    "description": "Numberic hardware revision number.",
    "format": "int64",
    "type": "integer"
  },
  "part_number": {
    "description": "Hardware part number.",
    "type": "string"
  },
  "version": {
    "description": "Hardware version string.",
    "type": "string"
  }
}
Show the schema of the message in JSON format.

EndDeviceModelOperatingConditions

Fields
Name Type Description
relative_humidity object
temperature object
Schema
{
  "relative_humidity": {
    "properties": {
      "max": {
        "description": "Max value of operating conditions range.",
        "format": "float",
        "type": "number"
      },
      "min": {
        "description": "Min value of operating conditions range.",
        "format": "float",
        "type": "number"
      }
    },
    "type": "object"
  },
  "temperature": {
    "properties": {
      "max": {
        "description": "Max value of operating conditions range.",
        "format": "float",
        "type": "number"
      },
      "min": {
        "description": "Min value of operating conditions range.",
        "format": "float",
        "type": "number"
      }
    },
    "type": "object"
  }
}
Show the schema of the message in JSON format.

EndDeviceModelPhotos

Fields
Name Type Description
main string Main device photo.
other string List of other device photos.
Schema
{
  "main": {
    "description": "Main device photo.",
    "type": "string"
  },
  "other": {
    "description": "List of other device photos.",
    "items": {
      "type": "string"
    },
    "type": "array"
  }
}
Show the schema of the message in JSON format.

EndDeviceModelReseller

Fields
Name Type Description
name string Reseller name.
region string Reseller regions.
url string Reseller URL.
Schema
{
  "name": {
    "description": "Reseller name.",
    "type": "string"
  },
  "region": {
    "description": "Reseller regions.",
    "items": {
      "type": "string"
    },
    "type": "array"
  },
  "url": {
    "description": "Reseller URL.",
    "type": "string"
  }
}
Show the schema of the message in JSON format.

EndDeviceModelVideos

Fields
Name Type Description
main string Link to main device video.
other string Links to other device videos.
Schema
{
  "main": {
    "description": "Link to main device video.",
    "type": "string"
  },
  "other": {
    "description": "Links to other device videos.",
    "items": {
      "type": "string"
    },
    "type": "array"
  }
}
Show the schema of the message in JSON format.

EntityCountingEntityCountingType

Supported values
  • ALL
  • ONLY_ACTIVATED
  • Default: ALL

    EventAuthentication

    Fields
    Name Type Description
    token_id string The ID of the token that was used.
    token_type string The type of token that was used. Common types are APIKey, AccessToken and SessionToken.
    type string The type of authentication that was used. This is typically a bearer token.
    Schema
    {
      "token_id": {
        "description": "The ID of the token that was used.",
        "type": "string"
      },
      "token_type": {
        "description": "The type of token that was used. Common types are APIKey, AccessToken and SessionToken.",
        "type": "string"
      },
      "type": {
        "description": "The type of authentication that was used. This is typically a bearer token.",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    FirmwareVersionProfile

    Fields
    Name Type Description
    codec_id string Payload formatter codec identifier, as defined in the Device Repository.
    lorawan_certified boolean Whether the device is LoRaWAN certified.
    profile_id string Profile identifier, as defined in the Device Repository.
    vendor_id string Vendor ID of the profile, as defined in the Device Repository. If this value is set, the profile is loaded from this vendor's folder. If this value is not set, the profile is loaded from the current (end device's) vendor.
    Schema
    {
      "codec_id": {
        "description": "Payload formatter codec identifier, as defined in the Device Repository.",
        "type": "string"
      },
      "lorawan_certified": {
        "description": "Whether the device is LoRaWAN certified.",
        "type": "boolean"
      },
      "profile_id": {
        "description": "Profile identifier, as defined in the Device Repository.",
        "type": "string"
      },
      "vendor_id": {
        "description": "Vendor ID of the profile, as defined in the Device Repository.\nIf this value is set, the profile is loaded from this vendor's folder.\nIf this value is not set, the profile is loaded from the current (end device's) vendor.",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    GatewayClaimingServerAuthorizeGatewayBody

    Fields
    Name Type Description
    api_key string
    gateway_ids object
    Schema
    {
      "api_key": {
        "type": "string"
      },
      "gateway_ids": {
        "properties": {
          "eui": {
            "description": "Secondary identifier, which can only be used in specific requests.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    GatewayConnectionStatsRoundTripTimes

    Fields
    Name Type Description
    count integer
    max string
    median string
    min string
    Schema
    {
      "count": {
        "format": "int64",
        "type": "integer"
      },
      "max": {
        "type": "string"
      },
      "median": {
        "type": "string"
      },
      "min": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    GatewayConnectionStatsSubBand

    Fields
    Name Type Description
    downlink_utilization number Utilization rate of the available duty-cycle. This value should not exceed downlink_utilization_limit.
    downlink_utilization_limit number Duty-cycle limit of the sub-band as a fraction of time.
    max_frequency string
    min_frequency string
    Schema
    {
      "downlink_utilization": {
        "description": "Utilization rate of the available duty-cycle. This value should not exceed downlink_utilization_limit.",
        "format": "float",
        "type": "number"
      },
      "downlink_utilization_limit": {
        "description": "Duty-cycle limit of the sub-band as a fraction of time.",
        "format": "float",
        "type": "number"
      },
      "max_frequency": {
        "format": "uint64",
        "type": "string"
      },
      "min_frequency": {
        "format": "uint64",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    GatewayLRFHSS

    LR-FHSS gateway capabilities.
    Fields
    Name Type Description
    supported boolean The gateway supports the LR-FHSS uplink channels.
    Schema
    {
      "supported": {
        "description": "The gateway supports the LR-FHSS uplink channels.",
        "type": "boolean"
      }
    }
    Show the schema of the message in JSON format.

    GatewayRadioTxConfiguration

    Fields
    Name Type Description
    max_frequency string
    min_frequency string
    notch_frequency string
    Schema
    {
      "max_frequency": {
        "format": "uint64",
        "type": "string"
      },
      "min_frequency": {
        "format": "uint64",
        "type": "string"
      },
      "notch_frequency": {
        "format": "uint64",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    GatewayServerMTLSAuthentication

    Fields
    Name Type Description
    client_ca_pool string PEM encoded pool of X.509 root certificates to trust for verifying the presented TLS client certificate.
    Schema
    {
      "client_ca_pool": {
        "description": "PEM encoded pool of X.509 root certificates to trust for verifying the presented TLS client certificate.",
        "format": "byte",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    GenerateEndDeviceQRCodeRequestImage

    Fields
    Name Type Description
    image_size integer Requested QR code image dimension in pixels.
    Schema
    {
      "image_size": {
        "description": "Requested QR code image dimension in pixels.",
        "format": "int64",
        "type": "integer"
      }
    }
    Show the schema of the message in JSON format.

    GetClaimStatusResponseVendorSpecific

    Fields
    Name Type Description
    data object Vendor Specific data in JSON format.
    organization_unique_identifier integer
    Schema
    {
      "data": {
        "description": "Vendor Specific data in JSON format.",
        "type": "object"
      },
      "organization_unique_identifier": {
        "format": "int64",
        "type": "integer"
      }
    }
    Show the schema of the message in JSON format.

    GetPhyVersionsResponseVersionInfo

    Fields
    Name Type Description
    band_id string
    phy_versions string
    Schema
    {
      "band_id": {
        "type": "string"
      },
      "phy_versions": {
        "items": {
          "default": "PHY_UNKNOWN",
          "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"
          ],
          "type": "string"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    GetTemplateRequestEndDeviceProfileIdentifiers

    Identifiers to uniquely identify a LoRaWAN end device profile.
    Fields
    Name Type Description
    vendor_id integer VendorID managed by the LoRa Alliance, as defined in TR005.
    vendor_profile_id integer ID of the LoRaWAN end device profile assigned by the vendor.
    Schema
    {
      "vendor_id": {
        "description": "VendorID managed by the LoRa Alliance, as defined in TR005.",
        "format": "int64",
        "type": "integer"
      },
      "vendor_profile_id": {
        "description": "ID of the LoRaWAN end device profile assigned by the vendor.",
        "format": "int64",
        "type": "integer"
      }
    }
    Show the schema of the message in JSON format.

    IsConfigurationAdminRestrictions

    Fields
    Name Type Description
    managed_fields_updates boolean managed-fields-updates disables the ability of an admin user to update fields which are administered by the billing providers. The restrictions are ignored if a tenant admin key is used.
    Schema
    {
      "managed_fields_updates": {
        "description": "managed-fields-updates disables the ability of an admin user to update fields which are administered by the\nbilling providers. The restrictions are ignored if a tenant admin key is used.",
        "type": "boolean"
      }
    }
    Show the schema of the message in JSON format.

    IsConfigurationCollaboratorRights

    Fields
    Name Type Description
    set_others_as_contacts boolean
    Schema
    {
      "set_others_as_contacts": {
        "type": "boolean"
      }
    }
    Show the schema of the message in JSON format.

    IsConfigurationNetworkLimits

    Fields
    Name Type Description
    applications string The maximum total number of applications in the network.
    clients string The maximum total number of clients in the network.
    gateways string The maximum total number of gateways in the network.
    organizations string The maximum total number of organizations in the network.
    users string The maximum total number of users in the network.
    Schema
    {
      "applications": {
        "description": "The maximum total number of applications in the network.",
        "format": "uint64",
        "type": "string"
      },
      "clients": {
        "description": "The maximum total number of clients in the network.",
        "format": "uint64",
        "type": "string"
      },
      "gateways": {
        "description": "The maximum total number of gateways in the network.",
        "format": "uint64",
        "type": "string"
      },
      "organizations": {
        "description": "The maximum total number of organizations in the network.",
        "format": "uint64",
        "type": "string"
      },
      "users": {
        "description": "The maximum total number of users in the network.",
        "format": "uint64",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    IsConfigurationTenantRegistration

    Fields
    Name Type Description
    contact_info_validation object
    Schema
    {
      "contact_info_validation": {
        "properties": {
          "token_ttl": {
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    IsConfigurationTenantRegistrationContactInfoValidation

    Fields
    Name Type Description
    token_ttl string
    Schema
    {
      "token_ttl": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    JsEndDeviceRegistryProvisionBody

    Fields
    Name Type Description
    application_ids object
    from_data object
    list object
    provisioner_id string ID of the provisioner service as configured in the Join Server.
    provisioning_data string Vendor-specific provisioning data.
    range object
    Schema
    {
      "application_ids": {
        "type": "object"
      },
      "from_data": {
        "properties": {
          "join_eui": {
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "list": {
        "properties": {
          "end_device_ids": {
            "items": {
              "properties": {
                "application_ids": {
                  "properties": {
                    "application_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "dev_addr": {
                  "description": "The LoRaWAN DevAddr.",
                  "example": "2600ABCD",
                  "format": "string",
                  "type": "string"
                },
                "dev_eui": {
                  "description": "The LoRaWAN DevEUI.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "device_id": {
                  "type": "string"
                },
                "join_eui": {
                  "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "join_eui": {
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "provisioner_id": {
        "description": "ID of the provisioner service as configured in the Join Server.",
        "type": "string"
      },
      "provisioning_data": {
        "description": "Vendor-specific provisioning data.",
        "format": "byte",
        "type": "string"
      },
      "range": {
        "properties": {
          "join_eui": {
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "start_dev_eui": {
            "description": "DevEUI to start issuing from.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ListBandsResponseVersionedBandDescription

    Fields
    Name Type Description
    band object
    Schema
    {
      "band": {
        "additionalProperties": {
          "properties": {
            "adr_ack_limit": {
              "default": "ADR_ACK_LIMIT_1",
              "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"
              ],
              "type": "string"
            },
            "beacon": {
              "properties": {
                "coding_rate": {
                  "type": "string"
                },
                "data_rate_index": {
                  "default": "DATA_RATE_0",
                  "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"
                  ],
                  "type": "string"
                },
                "frequencies": {
                  "items": {
                    "format": "uint64",
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "boot_dwell_time": {
              "properties": {
                "downlinks": {
                  "type": "boolean"
                },
                "uplinks": {
                  "type": "boolean"
                }
              },
              "type": "object"
            },
            "cf_list_type": {
              "default": "FREQUENCIES",
              "enum": [
                "FREQUENCIES",
                "CHANNEL_MASKS"
              ],
              "type": "string"
            },
            "data_rates": {
              "additionalProperties": {
                "properties": {
                  "rate": {
                    "properties": {
                      "fsk": {
                        "properties": {
                          "bit_rate": {
                            "description": "Bit rate (bps).",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "lora": {
                        "properties": {
                          "bandwidth": {
                            "description": "Bandwidth (Hz).",
                            "format": "int64",
                            "type": "integer"
                          },
                          "coding_rate": {
                            "type": "string"
                          },
                          "spreading_factor": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "lrfhss": {
                        "properties": {
                          "coding_rate": {
                            "type": "string"
                          },
                          "modulation_type": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "operating_channel_width": {
                            "description": "Operating Channel Width (Hz).",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "type": "object"
            },
            "default_max_eirp": {
              "format": "float",
              "type": "number"
            },
            "default_rx2_parameters": {
              "properties": {
                "data_rate_index": {
                  "default": "DATA_RATE_0",
                  "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"
                  ],
                  "type": "string"
                },
                "frequency": {
                  "format": "uint64",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "downlink_channels": {
              "items": {
                "properties": {
                  "frequency": {
                    "format": "uint64",
                    "type": "string"
                  },
                  "max_data_rate": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "min_data_rate": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "freq_multiplier": {
              "format": "uint64",
              "type": "string"
            },
            "id": {
              "type": "string"
            },
            "implements_cf_list": {
              "type": "boolean"
            },
            "join_accept_delay_1": {
              "type": "string"
            },
            "join_accept_delay_2": {
              "type": "string"
            },
            "max_adr_data_rate_index": {
              "default": "DATA_RATE_0",
              "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"
              ],
              "type": "string"
            },
            "max_downlink_channels": {
              "format": "int64",
              "type": "integer"
            },
            "max_fcnt_gap": {
              "format": "uint64",
              "type": "string"
            },
            "max_retransmit_timeout": {
              "type": "string"
            },
            "max_uplink_channels": {
              "format": "int64",
              "type": "integer"
            },
            "min_retransmit_timeout": {
              "type": "string"
            },
            "ping_slot_frequencies": {
              "items": {
                "format": "uint64",
                "type": "string"
              },
              "type": "array"
            },
            "receive_delay_1": {
              "type": "string"
            },
            "receive_delay_2": {
              "type": "string"
            },
            "relay": {
              "properties": {
                "wor_channels": {
                  "items": {
                    "properties": {
                      "ack_frequency": {
                        "format": "uint64",
                        "type": "string"
                      },
                      "data_rate_index": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "frequency": {
                        "format": "uint64",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "relay_forward_delay": {
              "type": "string"
            },
            "relay_receive_delay": {
              "type": "string"
            },
            "sub_bands": {
              "items": {
                "properties": {
                  "duty_cycle": {
                    "format": "float",
                    "type": "number"
                  },
                  "max_eirp": {
                    "format": "float",
                    "type": "number"
                  },
                  "max_frequency": {
                    "format": "uint64",
                    "type": "string"
                  },
                  "min_frequency": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "supports_dynamic_adr": {
              "type": "boolean"
            },
            "tx_offset": {
              "items": {
                "format": "float",
                "type": "number"
              },
              "type": "array"
            },
            "tx_param_setup_req_support": {
              "type": "boolean"
            },
            "uplink_channels": {
              "items": {
                "properties": {
                  "frequency": {
                    "format": "uint64",
                    "type": "string"
                  },
                  "max_data_rate": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "min_data_rate": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandADRParamSetupReq

    Fields
    Name Type Description
    adr_ack_delay_exponent string
    adr_ack_limit_exponent string
    Schema
    {
      "adr_ack_delay_exponent": {
        "default": "ADR_ACK_DELAY_1",
        "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"
        ],
        "type": "string"
      },
      "adr_ack_limit_exponent": {
        "default": "ADR_ACK_LIMIT_1",
        "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"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandBeaconFreqAns

    Fields
    Name Type Description
    frequency_ack boolean
    Schema
    {
      "frequency_ack": {
        "type": "boolean"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandBeaconFreqReq

    Fields
    Name Type Description
    frequency string Frequency of the Class B beacons (Hz).
    Schema
    {
      "frequency": {
        "description": "Frequency of the Class B beacons (Hz).",
        "format": "uint64",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandBeaconTimingAns

    Fields
    Name Type Description
    channel_index integer
    delay integer (uint16) See LoRaWAN specification.
    Schema
    {
      "channel_index": {
        "format": "int64",
        "type": "integer"
      },
      "delay": {
        "description": "(uint16) See LoRaWAN specification.",
        "format": "int64",
        "type": "integer"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandDLChannelAns

    Fields
    Name Type Description
    channel_index_ack boolean
    frequency_ack boolean
    Schema
    {
      "channel_index_ack": {
        "type": "boolean"
      },
      "frequency_ack": {
        "type": "boolean"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandDLChannelReq

    Fields
    Name Type Description
    channel_index integer
    frequency string Downlink channel frequency (Hz).
    Schema
    {
      "channel_index": {
        "format": "int64",
        "type": "integer"
      },
      "frequency": {
        "description": "Downlink channel frequency (Hz).",
        "format": "uint64",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandDevStatusAns

    Fields
    Name Type Description
    battery integer 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 integer SNR of the last downlink (dB; [-32, +31]).
    Schema
    {
      "battery": {
        "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
        "format": "int64",
        "type": "integer"
      },
      "margin": {
        "description": "SNR of the last downlink (dB; [-32, +31]).",
        "format": "int32",
        "type": "integer"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandDeviceModeConf

    Fields
    Name Type Description
    class string
    Schema
    {
      "class": {
        "default": "CLASS_A",
        "enum": [
          "CLASS_A",
          "CLASS_B",
          "CLASS_C"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandDeviceModeInd

    Fields
    Name Type Description
    class string
    Schema
    {
      "class": {
        "default": "CLASS_A",
        "enum": [
          "CLASS_A",
          "CLASS_B",
          "CLASS_C"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandDeviceTimeAns

    Fields
    Name Type Description
    time string
    Schema
    {
      "time": {
        "format": "date-time",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandDutyCycleReq

    Fields
    Name Type Description
    max_duty_cycle string - DUTY_CYCLE_1: 100%. - DUTY_CYCLE_2: 50%. - DUTY_CYCLE_4: 25%. - DUTY_CYCLE_8: 12.5%. - DUTY_CYCLE_16: 6.25%. - DUTY_CYCLE_32: 3.125%. - DUTY_CYCLE_64: 1.5625%. - DUTY_CYCLE_128: Roughly 0.781%. - DUTY_CYCLE_256: Roughly 0.390%. - DUTY_CYCLE_512: Roughly 0.195%. - DUTY_CYCLE_1024: Roughly 0.098%. - DUTY_CYCLE_2048: Roughly 0.049%. - DUTY_CYCLE_4096: Roughly 0.024%. - DUTY_CYCLE_8192: Roughly 0.012%. - DUTY_CYCLE_16384: Roughly 0.006%. - DUTY_CYCLE_32768: Roughly 0.003%.
    Schema
    {
      "max_duty_cycle": {
        "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%.",
        "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"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandForceRejoinReq

    Fields
    Name Type Description
    data_rate_index string
    max_retries integer
    period_exponent string - REJOIN_PERIOD_0: Every 32 to 64 seconds. - REJOIN_PERIOD_1: Every 64 to 96 seconds. - REJOIN_PERIOD_2: Every 128 to 160 seconds. - REJOIN_PERIOD_3: Every 256 to 288 seconds. - REJOIN_PERIOD_4: Every 512 to 544 seconds. - REJOIN_PERIOD_5: Every 1024 to 1056 seconds. - REJOIN_PERIOD_6: Every 2048 to 2080 seconds. - REJOIN_PERIOD_7: Every 4096 to 4128 seconds.
    rejoin_type string - CONTEXT: Resets DevAddr, Session Keys, Frame Counters, Radio Parameters. - SESSION: Equivalent to the initial JoinRequest. - KEYS: Resets DevAddr, Session Keys, Frame Counters, while keeping the Radio Parameters.
    Schema
    {
      "data_rate_index": {
        "default": "DATA_RATE_0",
        "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"
        ],
        "type": "string"
      },
      "max_retries": {
        "format": "int64",
        "type": "integer"
      },
      "period_exponent": {
        "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.",
        "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"
        ],
        "type": "string"
      },
      "rejoin_type": {
        "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.",
        "enum": [
          "CONTEXT",
          "SESSION",
          "KEYS"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandLinkADRAns

    Fields
    Name Type Description
    channel_mask_ack boolean
    data_rate_index_ack boolean
    tx_power_index_ack boolean
    Schema
    {
      "channel_mask_ack": {
        "type": "boolean"
      },
      "data_rate_index_ack": {
        "type": "boolean"
      },
      "tx_power_index_ack": {
        "type": "boolean"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandLinkADRReq

    Fields
    Name Type Description
    channel_mask boolean
    channel_mask_control integer
    data_rate_index string
    nb_trans integer
    tx_power_index integer
    Schema
    {
      "channel_mask": {
        "items": {
          "type": "boolean"
        },
        "type": "array"
      },
      "channel_mask_control": {
        "format": "int64",
        "type": "integer"
      },
      "data_rate_index": {
        "default": "DATA_RATE_0",
        "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"
        ],
        "type": "string"
      },
      "nb_trans": {
        "format": "int64",
        "type": "integer"
      },
      "tx_power_index": {
        "format": "int64",
        "type": "integer"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandLinkCheckAns

    Fields
    Name Type Description
    gateway_count integer
    margin integer Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.
    Schema
    {
      "gateway_count": {
        "format": "int64",
        "type": "integer"
      },
      "margin": {
        "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
        "format": "int64",
        "type": "integer"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandNewChannelAns

    Fields
    Name Type Description
    data_rate_ack boolean
    frequency_ack boolean
    Schema
    {
      "data_rate_ack": {
        "type": "boolean"
      },
      "frequency_ack": {
        "type": "boolean"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandNewChannelReq

    Fields
    Name Type Description
    channel_index integer
    frequency string Channel frequency (Hz).
    max_data_rate_index string
    min_data_rate_index string
    Schema
    {
      "channel_index": {
        "format": "int64",
        "type": "integer"
      },
      "frequency": {
        "description": "Channel frequency (Hz).",
        "format": "uint64",
        "type": "string"
      },
      "max_data_rate_index": {
        "default": "DATA_RATE_0",
        "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"
        ],
        "type": "string"
      },
      "min_data_rate_index": {
        "default": "DATA_RATE_0",
        "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"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandPingSlotChannelAns

    Fields
    Name Type Description
    data_rate_index_ack boolean
    frequency_ack boolean
    Schema
    {
      "data_rate_index_ack": {
        "type": "boolean"
      },
      "frequency_ack": {
        "type": "boolean"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandPingSlotChannelReq

    Fields
    Name Type Description
    data_rate_index string
    frequency string Ping slot channel frequency (Hz).
    Schema
    {
      "data_rate_index": {
        "default": "DATA_RATE_0",
        "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"
        ],
        "type": "string"
      },
      "frequency": {
        "description": "Ping slot channel frequency (Hz).",
        "format": "uint64",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandPingSlotInfoReq

    Fields
    Name Type Description
    period string - PING_EVERY_1S: Every second. - PING_EVERY_2S: Every 2 seconds. - PING_EVERY_4S: Every 4 seconds. - PING_EVERY_8S: Every 8 seconds. - PING_EVERY_16S: Every 16 seconds. - PING_EVERY_32S: Every 32 seconds. - PING_EVERY_64S: Every 64 seconds. - PING_EVERY_128S: Every 128 seconds.
    Schema
    {
      "period": {
        "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.",
        "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"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandRejoinParamSetupAns

    Fields
    Name Type Description
    max_time_exponent_ack boolean
    Schema
    {
      "max_time_exponent_ack": {
        "type": "boolean"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandRejoinParamSetupReq

    Fields
    Name Type Description
    max_count_exponent string
    max_time_exponent string - REJOIN_TIME_0: Every ~17.1 minutes. - REJOIN_TIME_1: Every ~34.1 minutes. - REJOIN_TIME_2: Every ~1.1 hours. - REJOIN_TIME_3: Every ~2.3 hours. - REJOIN_TIME_4: Every ~4.6 hours. - REJOIN_TIME_5: Every ~9.1 hours. - REJOIN_TIME_6: Every ~18.2 hours. - REJOIN_TIME_7: Every ~1.5 days. - REJOIN_TIME_8: Every ~3.0 days. - REJOIN_TIME_9: Every ~6.1 days. - REJOIN_TIME_10: Every ~12.1 days. - REJOIN_TIME_11: Every ~3.5 weeks. - REJOIN_TIME_12: Every ~1.6 months. - REJOIN_TIME_13: Every ~3.2 months. - REJOIN_TIME_14: Every ~6.4 months. - REJOIN_TIME_15: Every ~1.1 year.
    Schema
    {
      "max_count_exponent": {
        "default": "REJOIN_COUNT_16",
        "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"
        ],
        "type": "string"
      },
      "max_time_exponent": {
        "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.",
        "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"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandRekeyConf

    Fields
    Name Type Description
    minor_version string
    Schema
    {
      "minor_version": {
        "default": "MINOR_RFU_0",
        "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"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandRekeyInd

    Fields
    Name Type Description
    minor_version string
    Schema
    {
      "minor_version": {
        "default": "MINOR_RFU_0",
        "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"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandRelayConfAns

    Fields
    Name Type Description
    cad_periodicity_ack boolean
    default_channel_index_ack boolean
    second_channel_ack_offset_ack boolean
    second_channel_data_rate_index_ack boolean
    second_channel_frequency_ack boolean
    second_channel_index_ack boolean
    Schema
    {
      "cad_periodicity_ack": {
        "type": "boolean"
      },
      "default_channel_index_ack": {
        "type": "boolean"
      },
      "second_channel_ack_offset_ack": {
        "type": "boolean"
      },
      "second_channel_data_rate_index_ack": {
        "type": "boolean"
      },
      "second_channel_frequency_ack": {
        "type": "boolean"
      },
      "second_channel_index_ack": {
        "type": "boolean"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandRelayConfReq

    Fields
    Name Type Description
    configuration object
    Schema
    {
      "configuration": {
        "properties": {
          "cad_periodicity": {
            "default": "RELAY_CAD_PERIODICITY_1_SECOND",
            "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"
            ],
            "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
            "type": "string"
          },
          "default_channel_index": {
            "format": "int64",
            "type": "integer"
          },
          "second_channel": {
            "properties": {
              "ack_offset": {
                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                "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"
                ],
                "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",
                "type": "string"
              },
              "data_rate_index": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              },
              "frequency": {
                "description": "The frequency (Hz) used by the wake on radio message.",
                "format": "uint64",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandRelayConfReqConfiguration

    Fields
    Name Type Description
    cad_periodicity string
    default_channel_index integer
    second_channel object
    Schema
    {
      "cad_periodicity": {
        "default": "RELAY_CAD_PERIODICITY_1_SECOND",
        "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"
        ],
        "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
        "type": "string"
      },
      "default_channel_index": {
        "format": "int64",
        "type": "integer"
      },
      "second_channel": {
        "properties": {
          "ack_offset": {
            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
            "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"
            ],
            "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",
            "type": "string"
          },
          "data_rate_index": {
            "default": "DATA_RATE_0",
            "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"
            ],
            "type": "string"
          },
          "frequency": {
            "description": "The frequency (Hz) used by the wake on radio message.",
            "format": "uint64",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandRelayConfigureFwdLimitAns

    MACCommandRelayConfigureFwdLimitReq

    Fields
    Name Type Description
    global_uplink_limits object
    join_request_limits object
    notify_limits object
    overall_limits object
    reset_limit_counter string
    Schema
    {
      "global_uplink_limits": {
        "properties": {
          "bucket_size": {
            "default": "RELAY_LIMIT_BUCKET_SIZE_1",
            "enum": [
              "RELAY_LIMIT_BUCKET_SIZE_1",
              "RELAY_LIMIT_BUCKET_SIZE_2",
              "RELAY_LIMIT_BUCKET_SIZE_4",
              "RELAY_LIMIT_BUCKET_SIZE_12"
            ],
            "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
            "type": "string"
          },
          "reload_rate": {
            "description": "The number of tokens which are replenished in the bucket every hour.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "join_request_limits": {
        "properties": {
          "bucket_size": {
            "default": "RELAY_LIMIT_BUCKET_SIZE_1",
            "enum": [
              "RELAY_LIMIT_BUCKET_SIZE_1",
              "RELAY_LIMIT_BUCKET_SIZE_2",
              "RELAY_LIMIT_BUCKET_SIZE_4",
              "RELAY_LIMIT_BUCKET_SIZE_12"
            ],
            "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
            "type": "string"
          },
          "reload_rate": {
            "description": "The number of tokens which are replenished in the bucket every hour.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "notify_limits": {
        "properties": {
          "bucket_size": {
            "default": "RELAY_LIMIT_BUCKET_SIZE_1",
            "enum": [
              "RELAY_LIMIT_BUCKET_SIZE_1",
              "RELAY_LIMIT_BUCKET_SIZE_2",
              "RELAY_LIMIT_BUCKET_SIZE_4",
              "RELAY_LIMIT_BUCKET_SIZE_12"
            ],
            "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
            "type": "string"
          },
          "reload_rate": {
            "description": "The number of tokens which are replenished in the bucket every hour.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "overall_limits": {
        "properties": {
          "bucket_size": {
            "default": "RELAY_LIMIT_BUCKET_SIZE_1",
            "enum": [
              "RELAY_LIMIT_BUCKET_SIZE_1",
              "RELAY_LIMIT_BUCKET_SIZE_2",
              "RELAY_LIMIT_BUCKET_SIZE_4",
              "RELAY_LIMIT_BUCKET_SIZE_12"
            ],
            "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
            "type": "string"
          },
          "reload_rate": {
            "description": "The number of tokens which are replenished in the bucket every hour.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "reset_limit_counter": {
        "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
        "enum": [
          "RELAY_RESET_LIMIT_COUNTER_ZERO",
          "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
          "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
          "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandRelayCtrlUplinkListAns

    Fields
    Name Type Description
    rule_index_ack boolean
    w_f_cnt integer
    Schema
    {
      "rule_index_ack": {
        "type": "boolean"
      },
      "w_f_cnt": {
        "format": "int64",
        "type": "integer"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandRelayCtrlUplinkListReq

    Fields
    Name Type Description
    action string
    rule_index integer
    Schema
    {
      "action": {
        "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
        "enum": [
          "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
          "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
        ],
        "type": "string"
      },
      "rule_index": {
        "format": "int64",
        "type": "integer"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandRelayEndDeviceConfAns

    Fields
    Name Type Description
    backoff_ack boolean
    second_channel_data_rate_index_ack boolean
    second_channel_frequency_ack boolean
    second_channel_index_ack boolean
    Schema
    {
      "backoff_ack": {
        "type": "boolean"
      },
      "second_channel_data_rate_index_ack": {
        "type": "boolean"
      },
      "second_channel_frequency_ack": {
        "type": "boolean"
      },
      "second_channel_index_ack": {
        "type": "boolean"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandRelayEndDeviceConfReq

    Fields
    Name Type Description
    configuration object
    Schema
    {
      "configuration": {
        "properties": {
          "always": {
            "type": "object"
          },
          "backoff": {
            "format": "int64",
            "type": "integer"
          },
          "dynamic": {
            "properties": {
              "smart_enable_level": {
                "default": "RELAY_SMART_ENABLE_LEVEL_8",
                "enum": [
                  "RELAY_SMART_ENABLE_LEVEL_8",
                  "RELAY_SMART_ENABLE_LEVEL_16",
                  "RELAY_SMART_ENABLE_LEVEL_32",
                  "RELAY_SMART_ENABLE_LEVEL_64"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "end_device_controlled": {
            "type": "object"
          },
          "second_channel": {
            "properties": {
              "ack_offset": {
                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                "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"
                ],
                "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",
                "type": "string"
              },
              "data_rate_index": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              },
              "frequency": {
                "description": "The frequency (Hz) used by the wake on radio message.",
                "format": "uint64",
                "type": "string"
              }
            },
            "type": "object"
          },
          "serving_device_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandRelayEndDeviceConfReqConfiguration

    Fields
    Name Type Description
    always object
    backoff integer
    dynamic object
    end_device_controlled object
    second_channel object
    serving_device_id string
    Schema
    {
      "always": {
        "type": "object"
      },
      "backoff": {
        "format": "int64",
        "type": "integer"
      },
      "dynamic": {
        "properties": {
          "smart_enable_level": {
            "default": "RELAY_SMART_ENABLE_LEVEL_8",
            "enum": [
              "RELAY_SMART_ENABLE_LEVEL_8",
              "RELAY_SMART_ENABLE_LEVEL_16",
              "RELAY_SMART_ENABLE_LEVEL_32",
              "RELAY_SMART_ENABLE_LEVEL_64"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "end_device_controlled": {
        "type": "object"
      },
      "second_channel": {
        "properties": {
          "ack_offset": {
            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
            "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"
            ],
            "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",
            "type": "string"
          },
          "data_rate_index": {
            "default": "DATA_RATE_0",
            "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"
            ],
            "type": "string"
          },
          "frequency": {
            "description": "The frequency (Hz) used by the wake on radio message.",
            "format": "uint64",
            "type": "string"
          }
        },
        "type": "object"
      },
      "serving_device_id": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandRelayNotifyNewEndDeviceReq

    Fields
    Name Type Description
    dev_addr string
    rssi integer
    snr integer
    Schema
    {
      "dev_addr": {
        "example": "2600ABCD",
        "format": "string",
        "type": "string"
      },
      "rssi": {
        "format": "int32",
        "type": "integer"
      },
      "snr": {
        "format": "int32",
        "type": "integer"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandRelayUpdateUplinkListAns

    MACCommandRelayUpdateUplinkListReq

    Fields
    Name Type Description
    dev_addr string
    device_id string
    forward_limits object
    root_wor_s_key string
    rule_index integer
    session_key_id string
    w_f_cnt integer
    Schema
    {
      "dev_addr": {
        "example": "2600ABCD",
        "format": "string",
        "type": "string"
      },
      "device_id": {
        "type": "string"
      },
      "forward_limits": {
        "properties": {
          "bucket_size": {
            "default": "RELAY_LIMIT_BUCKET_SIZE_1",
            "enum": [
              "RELAY_LIMIT_BUCKET_SIZE_1",
              "RELAY_LIMIT_BUCKET_SIZE_2",
              "RELAY_LIMIT_BUCKET_SIZE_4",
              "RELAY_LIMIT_BUCKET_SIZE_12"
            ],
            "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
            "type": "string"
          },
          "reload_rate": {
            "description": "The number of tokens which are replenished in the bucket every hour.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "root_wor_s_key": {
        "example": "0123456789ABCDEF0123456789ABCDEF",
        "format": "string",
        "type": "string"
      },
      "rule_index": {
        "format": "int64",
        "type": "integer"
      },
      "session_key_id": {
        "format": "byte",
        "type": "string"
      },
      "w_f_cnt": {
        "format": "int64",
        "type": "integer"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandResetConf

    Fields
    Name Type Description
    minor_version string
    Schema
    {
      "minor_version": {
        "default": "MINOR_RFU_0",
        "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"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandResetInd

    Fields
    Name Type Description
    minor_version string
    Schema
    {
      "minor_version": {
        "default": "MINOR_RFU_0",
        "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"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandRxParamSetupAns

    Fields
    Name Type Description
    rx1_data_rate_offset_ack boolean
    rx2_data_rate_index_ack boolean
    rx2_frequency_ack boolean
    Schema
    {
      "rx1_data_rate_offset_ack": {
        "type": "boolean"
      },
      "rx2_data_rate_index_ack": {
        "type": "boolean"
      },
      "rx2_frequency_ack": {
        "type": "boolean"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandRxParamSetupReq

    Fields
    Name Type Description
    rx1_data_rate_offset string
    rx2_data_rate_index string
    rx2_frequency string Rx2 frequency (Hz).
    Schema
    {
      "rx1_data_rate_offset": {
        "default": "DATA_RATE_OFFSET_0",
        "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"
        ],
        "type": "string"
      },
      "rx2_data_rate_index": {
        "default": "DATA_RATE_0",
        "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"
        ],
        "type": "string"
      },
      "rx2_frequency": {
        "description": "Rx2 frequency (Hz).",
        "format": "uint64",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandRxTimingSetupReq

    Fields
    Name Type Description
    delay string - RX_DELAY_0: 1 second. - RX_DELAY_1: 1 second. - RX_DELAY_2: 2 seconds. - RX_DELAY_3: 3 seconds. - RX_DELAY_4: 4 seconds. - RX_DELAY_5: 5 seconds. - RX_DELAY_6: 6 seconds. - RX_DELAY_7: 7 seconds. - RX_DELAY_8: 8 seconds. - RX_DELAY_9: 9 seconds. - RX_DELAY_10: 10 seconds. - RX_DELAY_11: 11 seconds. - RX_DELAY_12: 12 seconds. - RX_DELAY_13: 13 seconds. - RX_DELAY_14: 14 seconds. - RX_DELAY_15: 15 seconds.
    Schema
    {
      "delay": {
        "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.",
        "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"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACCommandTxParamSetupReq

    Fields
    Name Type Description
    downlink_dwell_time boolean
    max_eirp_index string - DEVICE_EIRP_8: 8 dBm. - DEVICE_EIRP_10: 10 dBm. - DEVICE_EIRP_12: 12 dBm. - DEVICE_EIRP_13: 13 dBm. - DEVICE_EIRP_14: 14 dBm. - DEVICE_EIRP_16: 16 dBm. - DEVICE_EIRP_18: 18 dBm. - DEVICE_EIRP_20: 20 dBm. - DEVICE_EIRP_21: 21 dBm. - DEVICE_EIRP_24: 24 dBm. - DEVICE_EIRP_26: 26 dBm. - DEVICE_EIRP_27: 27 dBm. - DEVICE_EIRP_29: 29 dBm. - DEVICE_EIRP_30: 30 dBm. - DEVICE_EIRP_33: 33 dBm. - DEVICE_EIRP_36: 36 dBm.
    uplink_dwell_time boolean
    Schema
    {
      "downlink_dwell_time": {
        "type": "boolean"
      },
      "max_eirp_index": {
        "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.",
        "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"
        ],
        "type": "string"
      },
      "uplink_dwell_time": {
        "type": "boolean"
      }
    }
    Show the schema of the message in JSON format.

    MACStateDataRateRange

    Fields
    Name Type Description
    max_data_rate_index string
    min_data_rate_index string
    Schema
    {
      "max_data_rate_index": {
        "default": "DATA_RATE_0",
        "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"
        ],
        "type": "string"
      },
      "min_data_rate_index": {
        "default": "DATA_RATE_0",
        "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"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACStateDataRateRanges

    Fields
    Name Type Description
    ranges object
    Schema
    {
      "ranges": {
        "items": {
          "properties": {
            "max_data_rate_index": {
              "default": "DATA_RATE_0",
              "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"
              ],
              "type": "string"
            },
            "min_data_rate_index": {
              "default": "DATA_RATE_0",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    MACStateDownlinkMessageMessage

    Fields
    Name Type Description
    m_hdr object
    mac_payload object
    Schema
    {
      "m_hdr": {
        "properties": {
          "m_type": {
            "default": "JOIN_REQUEST",
            "enum": [
              "JOIN_REQUEST",
              "JOIN_ACCEPT",
              "UNCONFIRMED_UP",
              "UNCONFIRMED_DOWN",
              "CONFIRMED_UP",
              "CONFIRMED_DOWN",
              "REJOIN_REQUEST",
              "PROPRIETARY"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "mac_payload": {
        "properties": {
          "f_port": {
            "format": "int64",
            "type": "integer"
          },
          "full_f_cnt": {
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    MACStateJoinAccept

    Fields
    Name Type Description
    correlation_ids string
    dev_addr string
    keys object 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.
    net_id string
    payload string Payload of the join-accept received from Join Server.
    request object
    Schema
    {
      "correlation_ids": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "dev_addr": {
        "example": "2600ABCD",
        "format": "string",
        "type": "string"
      },
      "keys": {
        "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
        "properties": {
          "app_s_key": {
            "properties": {
              "encrypted_key": {
                "format": "byte",
                "type": "string"
              },
              "kek_label": {
                "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                "type": "string"
              },
              "key": {
                "description": "The unencrypted AES key.",
                "example": "0123456789ABCDEF0123456789ABCDEF",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          },
          "f_nwk_s_int_key": {
            "properties": {
              "encrypted_key": {
                "format": "byte",
                "type": "string"
              },
              "kek_label": {
                "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                "type": "string"
              },
              "key": {
                "description": "The unencrypted AES key.",
                "example": "0123456789ABCDEF0123456789ABCDEF",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          },
          "nwk_s_enc_key": {
            "properties": {
              "encrypted_key": {
                "format": "byte",
                "type": "string"
              },
              "kek_label": {
                "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                "type": "string"
              },
              "key": {
                "description": "The unencrypted AES key.",
                "example": "0123456789ABCDEF0123456789ABCDEF",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          },
          "s_nwk_s_int_key": {
            "properties": {
              "encrypted_key": {
                "format": "byte",
                "type": "string"
              },
              "kek_label": {
                "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                "type": "string"
              },
              "key": {
                "description": "The unencrypted AES key.",
                "example": "0123456789ABCDEF0123456789ABCDEF",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          },
          "session_key_id": {
            "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
            "format": "byte",
            "type": "string"
          }
        },
        "type": "object"
      },
      "net_id": {
        "example": "000013",
        "format": "string",
        "type": "string"
      },
      "payload": {
        "description": "Payload of the join-accept received from Join Server.",
        "format": "byte",
        "type": "string"
      },
      "request": {
        "properties": {
          "cf_list": {
            "properties": {
              "ch_masks": {
                "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                "items": {
                  "type": "boolean"
                },
                "type": "array"
              },
              "freq": {
                "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                "items": {
                  "format": "int64",
                  "type": "integer"
                },
                "type": "array"
              },
              "type": {
                "default": "FREQUENCIES",
                "enum": [
                  "FREQUENCIES",
                  "CHANNEL_MASKS"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "downlink_settings": {
            "properties": {
              "opt_neg": {
                "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                "type": "boolean"
              },
              "rx1_dr_offset": {
                "default": "DATA_RATE_OFFSET_0",
                "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"
                ],
                "type": "string"
              },
              "rx2_dr": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "rx_delay": {
            "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.",
            "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"
            ],
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    MACStateUplinkMessageRxMetadata

    Fields
    Name Type Description
    channel_rssi number
    downlink_path_constraint string - DOWNLINK_PATH_CONSTRAINT_NONE: Indicates that the gateway can be selected for downlink without constraints by the Network Server. - DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER: Indicates that the gateway can be selected for downlink only if no other or better gateway can be selected. - DOWNLINK_PATH_CONSTRAINT_NEVER: Indicates that this gateway will never be selected for downlink, even if that results in no available downlink path.
    gateway_ids object
    packet_broker object
    relay object
    snr number
    uplink_token string
    Schema
    {
      "channel_rssi": {
        "format": "float",
        "type": "number"
      },
      "downlink_path_constraint": {
        "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.",
        "enum": [
          "DOWNLINK_PATH_CONSTRAINT_NONE",
          "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
          "DOWNLINK_PATH_CONSTRAINT_NEVER"
        ],
        "type": "string"
      },
      "gateway_ids": {
        "properties": {
          "eui": {
            "description": "Secondary identifier, which can only be used in specific requests.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "gateway_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "packet_broker": {
        "type": "object"
      },
      "relay": {
        "type": "object"
      },
      "snr": {
        "format": "float",
        "type": "number"
      },
      "uplink_token": {
        "format": "byte",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MACStateUplinkMessageTxSettings

    Fields
    Name Type Description
    data_rate object
    Schema
    {
      "data_rate": {
        "properties": {
          "fsk": {
            "properties": {
              "bit_rate": {
                "description": "Bit rate (bps).",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "lora": {
            "properties": {
              "bandwidth": {
                "description": "Bandwidth (Hz).",
                "format": "int64",
                "type": "integer"
              },
              "coding_rate": {
                "type": "string"
              },
              "spreading_factor": {
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "lrfhss": {
            "properties": {
              "coding_rate": {
                "type": "string"
              },
              "modulation_type": {
                "format": "int64",
                "type": "integer"
              },
              "operating_channel_width": {
                "description": "Operating Channel Width (Hz).",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    MQTTProviderQoS

    Supported values
  • AT_MOST_ONCE
  • AT_LEAST_ONCE
  • EXACTLY_ONCE
  • Default: AT_MOST_ONCE

    ManagedGatewayConfigurationServiceScanWiFiAccessPointsBody

    Fields
    Name Type Description
    eui string Secondary identifier, which can only be used in specific requests.
    Schema
    {
      "eui": {
        "description": "Secondary identifier, which can only be used in specific requests.",
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ManagedGatewayConfigurationServiceStreamEventsBody

    Fields
    Name Type Description
    eui string Secondary identifier, which can only be used in specific requests.
    Schema
    {
      "eui": {
        "description": "Secondary identifier, which can only be used in specific requests.",
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    MeteringDataTenantMeteringData

    Fields
    Name Type Description
    tenant_id object
    totals object
    Schema
    {
      "tenant_id": {
        "properties": {
          "tenant_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "totals": {
        "properties": {
          "activated_end_devices": {
            "format": "uint64",
            "type": "string"
          },
          "applications": {
            "format": "uint64",
            "type": "string"
          },
          "clients": {
            "format": "uint64",
            "type": "string"
          },
          "end_devices": {
            "format": "uint64",
            "type": "string"
          },
          "gateways": {
            "format": "uint64",
            "type": "string"
          },
          "organizations": {
            "format": "uint64",
            "type": "string"
          },
          "users": {
            "format": "uint64",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryApplicationChannelsLoRaPerformanceBody

    Request for end device data using aggregates by time buckets with a specified interval.
    Fields
    Name Type Description
    application_ids object
    time_bucket object Request for data using aggregates by time buckets with a specified interval.
    Schema
    {
      "application_ids": {
        "type": "object"
      },
      "time_bucket": {
        "description": "Request for data using aggregates by time buckets with a specified interval.",
        "properties": {
          "bucket_interval": {
            "type": "string"
          },
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryApplicationChannelsPacketCountBody

    Request for end device data using aggregates by time buckets with a specified interval.
    Fields
    Name Type Description
    application_ids object
    time_bucket object Request for data using aggregates by time buckets with a specified interval.
    Schema
    {
      "application_ids": {
        "type": "object"
      },
      "time_bucket": {
        "description": "Request for data using aggregates by time buckets with a specified interval.",
        "properties": {
          "bucket_interval": {
            "type": "string"
          },
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryApplicationChannelsUtilizationBody

    Request for end device data using aggregates by time buckets with a specified interval.
    Fields
    Name Type Description
    application_ids object
    time_bucket object Request for data using aggregates by time buckets with a specified interval.
    Schema
    {
      "application_ids": {
        "type": "object"
      },
      "time_bucket": {
        "description": "Request for data using aggregates by time buckets with a specified interval.",
        "properties": {
          "bucket_interval": {
            "type": "string"
          },
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryApplicationDataRatesPacketCountBody

    Request for end device data using aggregates by time buckets with a specified interval.
    Fields
    Name Type Description
    application_ids object
    time_bucket object Request for data using aggregates by time buckets with a specified interval.
    Schema
    {
      "application_ids": {
        "type": "object"
      },
      "time_bucket": {
        "description": "Request for data using aggregates by time buckets with a specified interval.",
        "properties": {
          "bucket_interval": {
            "type": "string"
          },
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryApplicationEndDevicesActiveMetricsBody

    Request for application data in a specific time window.
    Fields
    Name Type Description
    application_ids object
    time_window object Request for data in a specific time window.
    Schema
    {
      "application_ids": {
        "type": "object"
      },
      "time_window": {
        "description": "Request for data in a specific time window.",
        "properties": {
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryApplicationEventForwardCountBody

    Request for end device data using aggregates by time buckets with a specified interval.
    Fields
    Name Type Description
    application_ids object
    time_bucket object Request for data using aggregates by time buckets with a specified interval.
    Schema
    {
      "application_ids": {
        "type": "object"
      },
      "time_bucket": {
        "description": "Request for data using aggregates by time buckets with a specified interval.",
        "properties": {
          "bucket_interval": {
            "type": "string"
          },
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryApplicationGatewaysSeenBody

    Request for application data in a specific time window.
    Fields
    Name Type Description
    application_ids object
    time_window object Request for data in a specific time window.
    Schema
    {
      "application_ids": {
        "type": "object"
      },
      "time_window": {
        "description": "Request for data in a specific time window.",
        "properties": {
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryApplicationStatisticsBody

    Request for application data in a specific time window.
    Fields
    Name Type Description
    application_ids object
    time_window object Request for data in a specific time window.
    Schema
    {
      "application_ids": {
        "type": "object"
      },
      "time_window": {
        "description": "Request for data in a specific time window.",
        "properties": {
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryApplicationWebhookFailureBody

    Request for end device data using aggregates by time buckets with a specified interval.
    Fields
    Name Type Description
    application_ids object
    time_bucket object Request for data using aggregates by time buckets with a specified interval.
    Schema
    {
      "application_ids": {
        "type": "object"
      },
      "time_bucket": {
        "description": "Request for data using aggregates by time buckets with a specified interval.",
        "properties": {
          "bucket_interval": {
            "type": "string"
          },
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryApplicationWebhookFailureToForwardRatioBody

    Request for application data in a specific time window.
    Fields
    Name Type Description
    application_ids object
    time_window object Request for data in a specific time window.
    Schema
    {
      "application_ids": {
        "type": "object"
      },
      "time_window": {
        "description": "Request for data in a specific time window.",
        "properties": {
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryApplicationWebhookFailureTopFiveBody

    Request for end device data using aggregates by time buckets with a specified interval.
    Fields
    Name Type Description
    application_ids object
    time_bucket object Request for data using aggregates by time buckets with a specified interval.
    Schema
    {
      "application_ids": {
        "type": "object"
      },
      "time_bucket": {
        "description": "Request for data using aggregates by time buckets with a specified interval.",
        "properties": {
          "bucket_interval": {
            "type": "string"
          },
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryEndDeviceChannelsLoRaPerformanceBody

    Request for end device data using aggregates by time buckets with a specified interval.
    Fields
    Name Type Description
    end_device_ids object
    time_bucket object Request for data using aggregates by time buckets with a specified interval.
    Schema
    {
      "end_device_ids": {
        "properties": {
          "application_ids": {
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "time_bucket": {
        "description": "Request for data using aggregates by time buckets with a specified interval.",
        "properties": {
          "bucket_interval": {
            "type": "string"
          },
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryEndDeviceChannelsPacketCountBody

    Request for end device data using aggregates by time buckets with a specified interval.
    Fields
    Name Type Description
    end_device_ids object
    time_bucket object Request for data using aggregates by time buckets with a specified interval.
    Schema
    {
      "end_device_ids": {
        "properties": {
          "application_ids": {
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "time_bucket": {
        "description": "Request for data using aggregates by time buckets with a specified interval.",
        "properties": {
          "bucket_interval": {
            "type": "string"
          },
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryEndDeviceChannelsUtilizationBody

    Request for end device data using aggregates by time buckets with a specified interval.
    Fields
    Name Type Description
    end_device_ids object
    time_bucket object Request for data using aggregates by time buckets with a specified interval.
    Schema
    {
      "end_device_ids": {
        "properties": {
          "application_ids": {
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "time_bucket": {
        "description": "Request for data using aggregates by time buckets with a specified interval.",
        "properties": {
          "bucket_interval": {
            "type": "string"
          },
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryEndDeviceDataRatesPacketCountBody

    Request for end device data using aggregates by time buckets with a specified interval.
    Fields
    Name Type Description
    end_device_ids object
    time_bucket object Request for data using aggregates by time buckets with a specified interval.
    Schema
    {
      "end_device_ids": {
        "properties": {
          "application_ids": {
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "time_bucket": {
        "description": "Request for data using aggregates by time buckets with a specified interval.",
        "properties": {
          "bucket_interval": {
            "type": "string"
          },
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryEndDeviceLastSeenBody

    Request for end device data using aggregates by time buckets with a specified interval.
    Fields
    Name Type Description
    end_device_ids object
    time_bucket object Request for data using aggregates by time buckets with a specified interval.
    Schema
    {
      "end_device_ids": {
        "properties": {
          "application_ids": {
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "time_bucket": {
        "description": "Request for data using aggregates by time buckets with a specified interval.",
        "properties": {
          "bucket_interval": {
            "type": "string"
          },
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryEndDevicePacketErrorRateBody

    Request for end device data using aggregates by time buckets with a specified interval.
    Fields
    Name Type Description
    end_device_ids object
    time_bucket object Request for data using aggregates by time buckets with a specified interval.
    Schema
    {
      "end_device_ids": {
        "properties": {
          "application_ids": {
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "time_bucket": {
        "description": "Request for data using aggregates by time buckets with a specified interval.",
        "properties": {
          "bucket_interval": {
            "type": "string"
          },
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryEndDeviceSessionStartBody

    Request for end device data using aggregates by time buckets with a specified interval.
    Fields
    Name Type Description
    end_device_ids object
    time_bucket object Request for data using aggregates by time buckets with a specified interval.
    Schema
    {
      "end_device_ids": {
        "properties": {
          "application_ids": {
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "time_bucket": {
        "description": "Request for data using aggregates by time buckets with a specified interval.",
        "properties": {
          "bucket_interval": {
            "type": "string"
          },
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryGatewayChannelsLoRaPerformanceBody

    Request for gateway data using aggregates by time buckets with a specified interval.
    Fields
    Name Type Description
    gateway_ids object
    time_bucket object Request for data using aggregates by time buckets with a specified interval.
    Schema
    {
      "gateway_ids": {
        "properties": {
          "eui": {
            "description": "Secondary identifier, which can only be used in specific requests.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "time_bucket": {
        "description": "Request for data using aggregates by time buckets with a specified interval.",
        "properties": {
          "bucket_interval": {
            "type": "string"
          },
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryGatewayChannelsPacketCountBody

    Request for gateway data using aggregates by time buckets with a specified interval.
    Fields
    Name Type Description
    gateway_ids object
    time_bucket object Request for data using aggregates by time buckets with a specified interval.
    Schema
    {
      "gateway_ids": {
        "properties": {
          "eui": {
            "description": "Secondary identifier, which can only be used in specific requests.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "time_bucket": {
        "description": "Request for data using aggregates by time buckets with a specified interval.",
        "properties": {
          "bucket_interval": {
            "type": "string"
          },
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryGatewayChannelsUtilizationBody

    Request for gateway data using aggregates by time buckets with a specified interval.
    Fields
    Name Type Description
    gateway_ids object
    time_bucket object Request for data using aggregates by time buckets with a specified interval.
    Schema
    {
      "gateway_ids": {
        "properties": {
          "eui": {
            "description": "Secondary identifier, which can only be used in specific requests.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "time_bucket": {
        "description": "Request for data using aggregates by time buckets with a specified interval.",
        "properties": {
          "bucket_interval": {
            "type": "string"
          },
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryGatewayConnectionEventsBody

    Request for gateway connection events in a specific time window.
    Fields
    Name Type Description
    event_type object
    gateway_time_window object Request for gateway data in a specific time window.
    Schema
    {
      "event_type": {
        "properties": {
          "value": {
            "default": "GATEWAY_CONNECTION_EVENT_TYPE_CONNECT",
            "description": "Gateway connection event type.\n\n - GATEWAY_CONNECTION_EVENT_TYPE_CONNECT: The gateway connects.\n - GATEWAY_CONNECTION_EVENT_TYPE_DISCONNECT: The gateway disconnects.\n - GATEWAY_CONNECTION_EVENT_TYPE_STATS: The gateway connection statistics are updated.",
            "enum": [
              "GATEWAY_CONNECTION_EVENT_TYPE_CONNECT",
              "GATEWAY_CONNECTION_EVENT_TYPE_DISCONNECT",
              "GATEWAY_CONNECTION_EVENT_TYPE_STATS"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "gateway_time_window": {
        "description": "Request for gateway data in a specific time window.",
        "properties": {
          "gateway_ids": {
            "properties": {
              "eui": {
                "description": "Secondary identifier, which can only be used in specific requests.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          },
          "time_window": {
            "description": "Request for data in a specific time window.",
            "properties": {
              "from": {
                "format": "date-time",
                "type": "string"
              },
              "limit": {
                "description": "Limit the number of results per page.",
                "format": "int64",
                "type": "integer"
              },
              "page": {
                "description": "Page number for pagination. 0 is interpreted as 1.",
                "format": "int64",
                "type": "integer"
              },
              "to": {
                "format": "date-time",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryGatewayDataRatesPacketCountBody

    Request for gateway data using aggregates by time buckets with a specified interval.
    Fields
    Name Type Description
    gateway_ids object
    time_bucket object Request for data using aggregates by time buckets with a specified interval.
    Schema
    {
      "gateway_ids": {
        "properties": {
          "eui": {
            "description": "Secondary identifier, which can only be used in specific requests.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "time_bucket": {
        "description": "Request for data using aggregates by time buckets with a specified interval.",
        "properties": {
          "bucket_interval": {
            "type": "string"
          },
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryGatewayRTTStatisticsBody

    Request for gateway RTT data in a specific time window.
    Fields
    Name Type Description
    gateway_ids object
    time_bucket object Request for data using aggregates by time buckets with a specified interval.
    Schema
    {
      "gateway_ids": {
        "properties": {
          "eui": {
            "description": "Secondary identifier, which can only be used in specific requests.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "time_bucket": {
        "description": "Request for data using aggregates by time buckets with a specified interval.",
        "properties": {
          "bucket_interval": {
            "type": "string"
          },
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryGatewayTopNetworksSeenBody

    Request for top network seen by a gateway.
    Fields
    Name Type Description
    gateway_time_window object Request for gateway data in a specific time window.
    Schema
    {
      "gateway_time_window": {
        "description": "Request for gateway data in a specific time window.",
        "properties": {
          "gateway_ids": {
            "properties": {
              "eui": {
                "description": "Secondary identifier, which can only be used in specific requests.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          },
          "time_window": {
            "description": "Request for data in a specific time window.",
            "properties": {
              "from": {
                "format": "date-time",
                "type": "string"
              },
              "limit": {
                "description": "Limit the number of results per page.",
                "format": "int64",
                "type": "integer"
              },
              "page": {
                "description": "Page number for pagination. 0 is interpreted as 1.",
                "format": "int64",
                "type": "integer"
              },
              "to": {
                "format": "date-time",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryGatewayTrafficRatesBody

    Request for gateway data using aggregates by time buckets with a specified interval.
    Fields
    Name Type Description
    gateway_ids object
    time_bucket object Request for data using aggregates by time buckets with a specified interval.
    Schema
    {
      "gateway_ids": {
        "properties": {
          "eui": {
            "description": "Secondary identifier, which can only be used in specific requests.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "time_bucket": {
        "description": "Request for data using aggregates by time buckets with a specified interval.",
        "properties": {
          "bucket_interval": {
            "type": "string"
          },
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NocQueryGatewayUptimeBody

    Request for gateway data in a specific time window.
    Fields
    Name Type Description
    gateway_ids object
    time_window object Request for data in a specific time window.
    Schema
    {
      "gateway_ids": {
        "properties": {
          "eui": {
            "description": "Secondary identifier, which can only be used in specific requests.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "time_window": {
        "description": "Request for data in a specific time window.",
        "properties": {
          "from": {
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "description": "Limit the number of results per page.",
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "description": "Page number for pagination. 0 is interpreted as 1.",
            "format": "int64",
            "type": "integer"
          },
          "to": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NotificationServiceUpdateStatusBody

    Fields
    Name Type Description
    ids string The IDs of the notifications to update the status of.
    receiver_ids object The IDs of the receiving user.
    status string
    Schema
    {
      "ids": {
        "description": "The IDs of the notifications to update the status of.",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "receiver_ids": {
        "description": "The IDs of the receiving user.",
        "properties": {
          "email": {
            "description": "Secondary identifier, which can only be used in specific requests.",
            "type": "string"
          }
        },
        "title": "The IDs of the receiving user.",
        "type": "object"
      },
      "status": {
        "default": "NOTIFICATION_STATUS_UNSEEN",
        "enum": [
          "NOTIFICATION_STATUS_UNSEEN",
          "NOTIFICATION_STATUS_SEEN",
          "NOTIFICATION_STATUS_ARCHIVED"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    NsEndDeviceRegistryResetFactoryDefaultsBody

    Fields
    Name Type Description
    end_device_ids object
    field_mask string 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.
    Schema
    {
      "end_device_ids": {
        "properties": {
          "application_ids": {
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "field_mask": {
        "description": "The names of the end device fields that should be returned.\nSee the API reference for which fields can be returned by the different services.",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    NsRelayConfigurationServiceCreateRelayBody

    Fields
    Name Type Description
    end_device_ids object End device identifiers of the relay.
    settings object RelaySettings represent the settings of a relay. This is used internally by the Network Server.
    Schema
    {
      "end_device_ids": {
        "description": "End device identifiers of the relay.",
        "properties": {
          "application_ids": {
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "device_id": {
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "title": "End device identifiers of the relay.",
        "type": "object"
      },
      "settings": {
        "description": "RelaySettings represent the settings of a relay.\nThis is used internally by the Network Server.",
        "properties": {
          "served": {
            "properties": {
              "always": {
                "type": "object"
              },
              "backoff": {
                "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.\nIf unset, the default value from Network Server configuration will be used.",
                "format": "int64",
                "type": "integer"
              },
              "dynamic": {
                "properties": {
                  "smart_enable_level": {
                    "default": "RELAY_SMART_ENABLE_LEVEL_8",
                    "enum": [
                      "RELAY_SMART_ENABLE_LEVEL_8",
                      "RELAY_SMART_ENABLE_LEVEL_16",
                      "RELAY_SMART_ENABLE_LEVEL_32",
                      "RELAY_SMART_ENABLE_LEVEL_64"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "end_device_controlled": {
                "type": "object"
              },
              "second_channel": {
                "properties": {
                  "ack_offset": {
                    "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                    "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"
                    ],
                    "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",
                    "type": "string"
                  },
                  "data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "frequency": {
                    "description": "The frequency (Hz) used by the wake on radio message.",
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "serving_device_id": {
                "description": "End device identifier of the serving end device.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "serving": {
            "properties": {
              "cad_periodicity": {
                "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                "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"
                ],
                "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                "type": "string"
              },
              "default_channel_index": {
                "description": "Index of the default wake on radio channel.\nIf unset, the default value from Network Server configuration will be used.",
                "format": "int64",
                "type": "integer"
              },
              "limits": {
                "properties": {
                  "join_requests": {
                    "properties": {
                      "bucket_size": {
                        "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                        "enum": [
                          "RELAY_LIMIT_BUCKET_SIZE_1",
                          "RELAY_LIMIT_BUCKET_SIZE_2",
                          "RELAY_LIMIT_BUCKET_SIZE_4",
                          "RELAY_LIMIT_BUCKET_SIZE_12"
                        ],
                        "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                        "type": "string"
                      },
                      "reload_rate": {
                        "description": "The number of tokens which are replenished in the bucket every hour.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "notifications": {
                    "properties": {
                      "bucket_size": {
                        "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                        "enum": [
                          "RELAY_LIMIT_BUCKET_SIZE_1",
                          "RELAY_LIMIT_BUCKET_SIZE_2",
                          "RELAY_LIMIT_BUCKET_SIZE_4",
                          "RELAY_LIMIT_BUCKET_SIZE_12"
                        ],
                        "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                        "type": "string"
                      },
                      "reload_rate": {
                        "description": "The number of tokens which are replenished in the bucket every hour.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "overall": {
                    "properties": {
                      "bucket_size": {
                        "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                        "enum": [
                          "RELAY_LIMIT_BUCKET_SIZE_1",
                          "RELAY_LIMIT_BUCKET_SIZE_2",
                          "RELAY_LIMIT_BUCKET_SIZE_4",
                          "RELAY_LIMIT_BUCKET_SIZE_12"
                        ],
                        "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                        "type": "string"
                      },
                      "reload_rate": {
                        "description": "The number of tokens which are replenished in the bucket every hour.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "reset_behavior": {
                    "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                    "enum": [
                      "RELAY_RESET_LIMIT_COUNTER_ZERO",
                      "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                      "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                      "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                    ],
                    "type": "string"
                  },
                  "uplink_messages": {
                    "properties": {
                      "bucket_size": {
                        "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                        "enum": [
                          "RELAY_LIMIT_BUCKET_SIZE_1",
                          "RELAY_LIMIT_BUCKET_SIZE_2",
                          "RELAY_LIMIT_BUCKET_SIZE_4",
                          "RELAY_LIMIT_BUCKET_SIZE_12"
                        ],
                        "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                        "type": "string"
                      },
                      "reload_rate": {
                        "description": "The number of tokens which are replenished in the bucket every hour.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "second_channel": {
                "properties": {
                  "ack_offset": {
                    "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                    "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"
                    ],
                    "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",
                    "type": "string"
                  },
                  "data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "frequency": {
                    "description": "The frequency (Hz) used by the wake on radio message.",
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "uplink_forwarding_rules": {
                "description": "Configured uplink forwarding rules.",
                "items": {
                  "properties": {
                    "device_id": {
                      "description": "End device identifier of the served end device.",
                      "type": "string"
                    },
                    "last_w_f_cnt": {
                      "description": "Last wake on radio frame counter used by the served end device.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "session_key_id": {
                      "description": "Session key ID of the session keys used to derive the root relay session key.",
                      "format": "byte",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NsRelayConfigurationServiceCreateRelayUplinkForwardingRuleBody

    Fields
    Name Type Description
    end_device_ids object End device identifiers of the relay.
    index integer Index of the uplink forwarding rule.
    rule object
    Schema
    {
      "end_device_ids": {
        "description": "End device identifiers of the relay.",
        "properties": {
          "application_ids": {
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "title": "End device identifiers of the relay.",
        "type": "object"
      },
      "index": {
        "description": "Index of the uplink forwarding rule.",
        "format": "int64",
        "type": "integer"
      },
      "rule": {
        "properties": {
          "device_id": {
            "description": "End device identifier of the served end device.",
            "type": "string"
          },
          "last_w_f_cnt": {
            "description": "Last wake on radio frame counter used by the served end device.",
            "format": "int64",
            "type": "integer"
          },
          "limits": {
            "properties": {
              "bucket_size": {
                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                "enum": [
                  "RELAY_LIMIT_BUCKET_SIZE_1",
                  "RELAY_LIMIT_BUCKET_SIZE_2",
                  "RELAY_LIMIT_BUCKET_SIZE_4",
                  "RELAY_LIMIT_BUCKET_SIZE_12"
                ],
                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                "type": "string"
              },
              "reload_rate": {
                "description": "The number of tokens which are replenished in the bucket every hour.",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "session_key_id": {
            "description": "Session key ID of the session keys used to derive the root relay session key.",
            "format": "byte",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NsRelayConfigurationServiceUpdateRelayBody

    Fields
    Name Type Description
    end_device_ids object End device identifiers of the relay.
    field_mask string Field mask of the fields to update.
    settings object RelaySettings represent the settings of a relay. This is used internally by the Network Server.
    Schema
    {
      "end_device_ids": {
        "description": "End device identifiers of the relay.",
        "properties": {
          "application_ids": {
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "title": "End device identifiers of the relay.",
        "type": "object"
      },
      "field_mask": {
        "description": "Field mask of the fields to update.",
        "type": "string"
      },
      "settings": {
        "description": "RelaySettings represent the settings of a relay.\nThis is used internally by the Network Server.",
        "properties": {
          "served": {
            "properties": {
              "always": {
                "type": "object"
              },
              "backoff": {
                "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.\nIf unset, the default value from Network Server configuration will be used.",
                "format": "int64",
                "type": "integer"
              },
              "dynamic": {
                "properties": {
                  "smart_enable_level": {
                    "default": "RELAY_SMART_ENABLE_LEVEL_8",
                    "enum": [
                      "RELAY_SMART_ENABLE_LEVEL_8",
                      "RELAY_SMART_ENABLE_LEVEL_16",
                      "RELAY_SMART_ENABLE_LEVEL_32",
                      "RELAY_SMART_ENABLE_LEVEL_64"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "end_device_controlled": {
                "type": "object"
              },
              "second_channel": {
                "properties": {
                  "ack_offset": {
                    "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                    "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"
                    ],
                    "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",
                    "type": "string"
                  },
                  "data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "frequency": {
                    "description": "The frequency (Hz) used by the wake on radio message.",
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "serving_device_id": {
                "description": "End device identifier of the serving end device.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "serving": {
            "properties": {
              "cad_periodicity": {
                "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                "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"
                ],
                "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                "type": "string"
              },
              "default_channel_index": {
                "description": "Index of the default wake on radio channel.\nIf unset, the default value from Network Server configuration will be used.",
                "format": "int64",
                "type": "integer"
              },
              "limits": {
                "properties": {
                  "join_requests": {
                    "properties": {
                      "bucket_size": {
                        "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                        "enum": [
                          "RELAY_LIMIT_BUCKET_SIZE_1",
                          "RELAY_LIMIT_BUCKET_SIZE_2",
                          "RELAY_LIMIT_BUCKET_SIZE_4",
                          "RELAY_LIMIT_BUCKET_SIZE_12"
                        ],
                        "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                        "type": "string"
                      },
                      "reload_rate": {
                        "description": "The number of tokens which are replenished in the bucket every hour.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "notifications": {
                    "properties": {
                      "bucket_size": {
                        "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                        "enum": [
                          "RELAY_LIMIT_BUCKET_SIZE_1",
                          "RELAY_LIMIT_BUCKET_SIZE_2",
                          "RELAY_LIMIT_BUCKET_SIZE_4",
                          "RELAY_LIMIT_BUCKET_SIZE_12"
                        ],
                        "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                        "type": "string"
                      },
                      "reload_rate": {
                        "description": "The number of tokens which are replenished in the bucket every hour.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "overall": {
                    "properties": {
                      "bucket_size": {
                        "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                        "enum": [
                          "RELAY_LIMIT_BUCKET_SIZE_1",
                          "RELAY_LIMIT_BUCKET_SIZE_2",
                          "RELAY_LIMIT_BUCKET_SIZE_4",
                          "RELAY_LIMIT_BUCKET_SIZE_12"
                        ],
                        "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                        "type": "string"
                      },
                      "reload_rate": {
                        "description": "The number of tokens which are replenished in the bucket every hour.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "reset_behavior": {
                    "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                    "enum": [
                      "RELAY_RESET_LIMIT_COUNTER_ZERO",
                      "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                      "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                      "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                    ],
                    "type": "string"
                  },
                  "uplink_messages": {
                    "properties": {
                      "bucket_size": {
                        "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                        "enum": [
                          "RELAY_LIMIT_BUCKET_SIZE_1",
                          "RELAY_LIMIT_BUCKET_SIZE_2",
                          "RELAY_LIMIT_BUCKET_SIZE_4",
                          "RELAY_LIMIT_BUCKET_SIZE_12"
                        ],
                        "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                        "type": "string"
                      },
                      "reload_rate": {
                        "description": "The number of tokens which are replenished in the bucket every hour.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "second_channel": {
                "properties": {
                  "ack_offset": {
                    "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                    "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"
                    ],
                    "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",
                    "type": "string"
                  },
                  "data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "frequency": {
                    "description": "The frequency (Hz) used by the wake on radio message.",
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "uplink_forwarding_rules": {
                "description": "Configured uplink forwarding rules.",
                "items": {
                  "properties": {
                    "device_id": {
                      "description": "End device identifier of the served end device.",
                      "type": "string"
                    },
                    "last_w_f_cnt": {
                      "description": "Last wake on radio frame counter used by the served end device.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "session_key_id": {
                      "description": "Session key ID of the session keys used to derive the root relay session key.",
                      "format": "byte",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    NsRelayConfigurationServiceUpdateRelayUplinkForwardingRuleBody

    Fields
    Name Type Description
    end_device_ids object End device identifiers of the relay.
    field_mask string Field mask of the fields to update.
    rule object
    Schema
    {
      "end_device_ids": {
        "description": "End device identifiers of the relay.",
        "properties": {
          "application_ids": {
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "title": "End device identifiers of the relay.",
        "type": "object"
      },
      "field_mask": {
        "description": "Field mask of the fields to update.",
        "type": "string"
      },
      "rule": {
        "properties": {
          "device_id": {
            "description": "End device identifier of the served end device.",
            "type": "string"
          },
          "last_w_f_cnt": {
            "description": "Last wake on radio frame counter used by the served end device.",
            "format": "int64",
            "type": "integer"
          },
          "limits": {
            "properties": {
              "bucket_size": {
                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                "enum": [
                  "RELAY_LIMIT_BUCKET_SIZE_1",
                  "RELAY_LIMIT_BUCKET_SIZE_2",
                  "RELAY_LIMIT_BUCKET_SIZE_4",
                  "RELAY_LIMIT_BUCKET_SIZE_12"
                ],
                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                "type": "string"
              },
              "reload_rate": {
                "description": "The number of tokens which are replenished in the bucket every hour.",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "session_key_id": {
            "description": "Session key ID of the session keys used to derive the root relay session key.",
            "format": "byte",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    OperatingConditionsLimits

    Fields
    Name Type Description
    max number Max value of operating conditions range.
    min number Min value of operating conditions range.
    Schema
    {
      "max": {
        "description": "Max value of operating conditions range.",
        "format": "float",
        "type": "number"
      },
      "min": {
        "description": "Min value of operating conditions range.",
        "format": "float",
        "type": "number"
      }
    }
    Show the schema of the message in JSON format.

    PacketErrorRatesTimeBucketsPacketErrorRate

    Fields
    Name Type Description
    packet_error_rate number
    time string
    Schema
    {
      "packet_error_rate": {
        "format": "float",
        "type": "number"
      },
      "time": {
        "format": "date-time",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    PbaSetHomeNetworkRoutingPolicyBody

    Fields
    Name Type Description
    downlink object
    home_network_id object Packet Broker identifier of the Home Network.
    uplink object
    Schema
    {
      "downlink": {
        "properties": {
          "application_data": {
            "description": "Allow downlink messages with FPort between 1 and 255.",
            "type": "boolean"
          },
          "join_accept": {
            "description": "Allow join-accept messages.",
            "type": "boolean"
          },
          "mac_data": {
            "description": "Allow downlink messages with FPort of 0.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "home_network_id": {
        "description": "Packet Broker identifier of the Home Network.",
        "title": "Packet Broker identifier of the Home Network.",
        "type": "object"
      },
      "uplink": {
        "properties": {
          "application_data": {
            "description": "Forward uplink messages with FPort between 1 and 255.",
            "type": "boolean"
          },
          "join_request": {
            "description": "Forward join-request messages.",
            "type": "boolean"
          },
          "localization": {
            "description": "Forward gateway location, RSSI, SNR and fine timestamp.",
            "type": "boolean"
          },
          "mac_data": {
            "description": "Forward uplink messages with FPort of 0.",
            "type": "boolean"
          },
          "signal_quality": {
            "description": "Forward RSSI and SNR.",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    PictureEmbedded

    Fields
    Name Type Description
    data string Picture data. A data URI can be constructed as follows: `data:<mime_type>;base64,<data>`.
    mime_type string MIME type of the picture.
    Schema
    {
      "data": {
        "description": "Picture data. A data URI can be constructed as follows:\n`data:\u003cmime_type\u003e;base64,\u003cdata\u003e`.",
        "format": "byte",
        "type": "string"
      },
      "mime_type": {
        "description": "MIME type of the picture.",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ProvisionEndDevicesRequestIdentifiersFromData

    Fields
    Name Type Description
    join_eui string
    Schema
    {
      "join_eui": {
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ProvisionEndDevicesRequestIdentifiersList

    Fields
    Name Type Description
    end_device_ids object
    join_eui string
    Schema
    {
      "end_device_ids": {
        "items": {
          "properties": {
            "application_ids": {
              "properties": {
                "application_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "dev_addr": {
              "description": "The LoRaWAN DevAddr.",
              "example": "2600ABCD",
              "format": "string",
              "type": "string"
            },
            "dev_eui": {
              "description": "The LoRaWAN DevEUI.",
              "example": "70B3D57ED000ABCD",
              "format": "string",
              "type": "string"
            },
            "device_id": {
              "type": "string"
            },
            "join_eui": {
              "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
              "example": "70B3D57ED000ABCD",
              "format": "string",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "join_eui": {
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ProvisionEndDevicesRequestIdentifiersRange

    Fields
    Name Type Description
    join_eui string
    start_dev_eui string DevEUI to start issuing from.
    Schema
    {
      "join_eui": {
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      },
      "start_dev_eui": {
        "description": "DevEUI to start issuing from.",
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    PubSubProviders

    Fields
    Name Type Description
    mqtt string - ENABLED: No restrictions are in place. - WARNING: Warnings are being emitted that the provider will be deprecated in the future. - DISABLED: New integrations cannot be set up, and old ones do not start.
    nats string - ENABLED: No restrictions are in place. - WARNING: Warnings are being emitted that the provider will be deprecated in the future. - DISABLED: New integrations cannot be set up, and old ones do not start.
    Schema
    {
      "mqtt": {
        "default": "ENABLED",
        "description": " - ENABLED: No restrictions are in place.\n - WARNING: Warnings are being emitted that the provider will be deprecated in the future.\n - DISABLED: New integrations cannot be set up, and old ones do not start.",
        "enum": [
          "ENABLED",
          "WARNING",
          "DISABLED"
        ],
        "type": "string"
      },
      "nats": {
        "default": "ENABLED",
        "description": " - ENABLED: No restrictions are in place.\n - WARNING: Warnings are being emitted that the provider will be deprecated in the future.\n - DISABLED: New integrations cannot be set up, and old ones do not start.",
        "enum": [
          "ENABLED",
          "WARNING",
          "DISABLED"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    PubSubProvidersStatus

    Supported values
    Name Description
    ENABLED No restrictions are in place.
    WARNING Warnings are being emitted that the provider will be deprecated in the future.
    DISABLED New integrations cannot be set up, and old ones do not start.

    QueueRetry

    Fields
    Name Type Description
    base_delay string
    delay_factor number
    jitter_factor number
    max_attempts string
    max_delay string
    Schema
    {
      "base_delay": {
        "type": "string"
      },
      "delay_factor": {
        "format": "double",
        "type": "number"
      },
      "jitter_factor": {
        "format": "double",
        "type": "number"
      },
      "max_attempts": {
        "format": "int64",
        "type": "string"
      },
      "max_delay": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    TenantAccessCreateSupportTokenBody

    Fields
    Name Type Description
    tenant_ids object
    Schema
    {
      "tenant_ids": {
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    TenantAccessResendAdminValidationBody

    Fields
    Name Type Description
    tenant_ids object
    Schema
    {
      "tenant_ids": {
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    TrafficRatesTimeBucketsDirection

    Fields
    Name Type Description
    rate number
    time string
    Schema
    {
      "rate": {
        "format": "float",
        "type": "number"
      },
      "time": {
        "format": "date-time",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    TxAcknowledgmentResult

    Supported values
  • SUCCESS
  • UNKNOWN_ERROR
  • TOO_LATE
  • TOO_EARLY
  • COLLISION_PACKET
  • COLLISION_BEACON
  • TX_FREQ
  • TX_POWER
  • GPS_UNLOCKED
  • Default: SUCCESS

    TxSettingsDownlink

    Transmission settings for downlink.
    Fields
    Name Type Description
    antenna_index integer Index of the antenna on which the uplink was received and/or downlink must be sent.
    invert_polarization boolean Invert LoRa polarization; false for LoRaWAN uplink, true for downlink.
    tx_power number Transmission power (dBm). Only on downlink.
    Schema
    {
      "antenna_index": {
        "description": "Index of the antenna on which the uplink was received and/or downlink must be sent.",
        "format": "int64",
        "type": "integer"
      },
      "invert_polarization": {
        "description": "Invert LoRa polarization; false for LoRaWAN uplink, true for downlink.",
        "type": "boolean"
      },
      "tx_power": {
        "description": "Transmission power (dBm). Only on downlink.",
        "format": "float",
        "type": "number"
      }
    }
    Show the schema of the message in JSON format.

    UplinkMessageRxMetadataPacketBrokerMetadata

    UplinkMessageRxMetadataRelayMetadata

    UserConsolePreferencesDashboardLayouts

    Fields
    Name Type Description
    api_key string DashboardLayout is a set of possible layout values to be used in the Console.
    application string DashboardLayout is a set of possible layout values to be used in the Console.
    collaborator string DashboardLayout is a set of possible layout values to be used in the Console.
    end_device string DashboardLayout is a set of possible layout values to be used in the Console.
    gateway string DashboardLayout is a set of possible layout values to be used in the Console.
    organization string DashboardLayout is a set of possible layout values to be used in the Console.
    overview string DashboardLayout is a set of possible layout values to be used in the Console.
    user string DashboardLayout is a set of possible layout values to be used in the Console.
    Schema
    {
      "api_key": {
        "default": "DASHBOARD_LAYOUT_TABLE",
        "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
        "enum": [
          "DASHBOARD_LAYOUT_TABLE",
          "DASHBOARD_LAYOUT_LIST",
          "DASHBOARD_LAYOUT_GRID"
        ],
        "type": "string"
      },
      "application": {
        "default": "DASHBOARD_LAYOUT_TABLE",
        "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
        "enum": [
          "DASHBOARD_LAYOUT_TABLE",
          "DASHBOARD_LAYOUT_LIST",
          "DASHBOARD_LAYOUT_GRID"
        ],
        "type": "string"
      },
      "collaborator": {
        "default": "DASHBOARD_LAYOUT_TABLE",
        "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
        "enum": [
          "DASHBOARD_LAYOUT_TABLE",
          "DASHBOARD_LAYOUT_LIST",
          "DASHBOARD_LAYOUT_GRID"
        ],
        "type": "string"
      },
      "end_device": {
        "default": "DASHBOARD_LAYOUT_TABLE",
        "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
        "enum": [
          "DASHBOARD_LAYOUT_TABLE",
          "DASHBOARD_LAYOUT_LIST",
          "DASHBOARD_LAYOUT_GRID"
        ],
        "type": "string"
      },
      "gateway": {
        "default": "DASHBOARD_LAYOUT_TABLE",
        "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
        "enum": [
          "DASHBOARD_LAYOUT_TABLE",
          "DASHBOARD_LAYOUT_LIST",
          "DASHBOARD_LAYOUT_GRID"
        ],
        "type": "string"
      },
      "organization": {
        "default": "DASHBOARD_LAYOUT_TABLE",
        "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
        "enum": [
          "DASHBOARD_LAYOUT_TABLE",
          "DASHBOARD_LAYOUT_LIST",
          "DASHBOARD_LAYOUT_GRID"
        ],
        "type": "string"
      },
      "overview": {
        "default": "DASHBOARD_LAYOUT_TABLE",
        "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
        "enum": [
          "DASHBOARD_LAYOUT_TABLE",
          "DASHBOARD_LAYOUT_LIST",
          "DASHBOARD_LAYOUT_GRID"
        ],
        "type": "string"
      },
      "user": {
        "default": "DASHBOARD_LAYOUT_TABLE",
        "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
        "enum": [
          "DASHBOARD_LAYOUT_TABLE",
          "DASHBOARD_LAYOUT_LIST",
          "DASHBOARD_LAYOUT_GRID"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    UserConsolePreferencesSortBy

    SortBy defines the field to which the Console will sort the display of entities.
    Fields
    Name Type Description
    api_key string
    application string
    collaborator string
    end_device string
    gateway string
    organization string
    user string
    Schema
    {
      "api_key": {
        "type": "string"
      },
      "application": {
        "type": "string"
      },
      "collaborator": {
        "type": "string"
      },
      "end_device": {
        "type": "string"
      },
      "gateway": {
        "type": "string"
      },
      "organization": {
        "type": "string"
      },
      "user": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    UserConsolePreferencesTutorials

    Fields
    Name Type Description
    seen string
    Schema
    {
      "seen": {
        "items": {
          "default": "TUTORIAL_UNKNOWN",
          "description": "Tutorial is a set of possible tutorials in the Console.",
          "enum": [
            "TUTORIAL_UNKNOWN",
            "TUTORIAL_LIVE_DATA_SPLIT_VIEW",
            "TUTORIAL_LORAWAN_STARTER_USER"
          ],
          "type": "string"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    UserRegistryUpdatePasswordBody

    Fields
    Name Type Description
    new string
    old string
    revoke_all_access boolean Revoke active sessions and access tokens of user if true. To be used if credentials are suspected to be compromised.
    user_ids object
    Schema
    {
      "new": {
        "type": "string"
      },
      "old": {
        "type": "string"
      },
      "revoke_all_access": {
        "description": "Revoke active sessions and access tokens of user if true. To be used if credentials are suspected to be compromised.",
        "type": "boolean"
      },
      "user_ids": {
        "properties": {
          "email": {
            "description": "Secondary identifier, which can only be used in specific requests.",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    googlerpcStatus

    Fields
    Name Type Description
    code integer
    details object
    message string
    Schema
    {
      "code": {
        "format": "int32",
        "type": "integer"
      },
      "details": {
        "items": {
          "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(\u0026foo)) {\n      ...\n    }\n\nExample 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 := \u0026pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := \u0026pb.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\": \u003cstring\u003e,\n      \"lastName\": \u003cstring\u003e\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    }",
          "properties": {
            "@type": {
              "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\nexpect 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.",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "message": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    lorawanBoolValue

    Fields
    Name Type Description
    value boolean
    Schema
    {
      "value": {
        "type": "boolean"
      }
    }
    Show the schema of the message in JSON format.

    lorawanConfiguration

    Fields
    Name Type Description
    clusters object Configuration per cluster (by ID).
    default_cluster object
    pb object
    Schema
    {
      "clusters": {
        "additionalProperties": {
          "properties": {
            "ars": {
              "properties": {
                "routing": {
                  "properties": {
                    "enabled": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "as": {
              "properties": {
                "webhooks": {
                  "properties": {
                    "queue": {
                      "properties": {
                        "enabled": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "gs": {
              "properties": {
                "mtls_authentication": {
                  "properties": {
                    "client_ca_pool": {
                      "description": "PEM encoded pool of X.509 root certificates to trust for verifying the presented TLS client certificate.",
                      "format": "byte",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "is": {
              "properties": {
                "admin_rights": {
                  "properties": {
                    "all": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "application_limits": {
                  "properties": {
                    "end_devices": {
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "email": {
                  "properties": {
                    "network": {
                      "properties": {
                        "branding_base_url": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "end_device_picture": {
                  "properties": {
                    "disable_upload": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "organization_limits": {
                  "properties": {
                    "applications": {
                      "format": "uint64",
                      "type": "string"
                    },
                    "clients": {
                      "format": "uint64",
                      "type": "string"
                    },
                    "gateways": {
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "profile_picture": {
                  "properties": {
                    "disable_upload": {
                      "type": "boolean"
                    },
                    "use_gravatar": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "user_limits": {
                  "properties": {
                    "applications": {
                      "format": "uint64",
                      "type": "string"
                    },
                    "clients": {
                      "format": "uint64",
                      "type": "string"
                    },
                    "gateways": {
                      "format": "uint64",
                      "type": "string"
                    },
                    "organizations": {
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "user_login": {
                  "properties": {
                    "disable_credentials_login": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "user_registration": {
                  "properties": {
                    "admin_approval": {
                      "properties": {
                        "required": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "contact_info_validation": {
                      "properties": {
                        "required": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "invitation": {
                      "properties": {
                        "required": {
                          "type": "boolean"
                        },
                        "token_ttl": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "password_requirements": {
                      "properties": {
                        "max_length": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "min_digits": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "min_length": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "min_special": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "min_uppercase": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "user_rights": {
                  "properties": {
                    "create_applications": {
                      "type": "boolean"
                    },
                    "create_clients": {
                      "type": "boolean"
                    },
                    "create_gateways": {
                      "type": "boolean"
                    },
                    "create_organizations": {
                      "type": "boolean"
                    },
                    "update_name": {
                      "type": "boolean"
                    },
                    "update_primary_email_address": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "js": {
              "properties": {
                "join_eui_prefixes": {
                  "example": [
                    "70B3D57ED0000000/56"
                  ],
                  "items": {
                    "format": "byte",
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "noc": {
              "properties": {
                "access": {
                  "properties": {
                    "extended": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "ns": {
              "properties": {
                "cooldown_window": {
                  "type": "string"
                },
                "deduplication_window": {
                  "type": "string"
                },
                "dev_addr_prefixes": {
                  "example": [
                    "2600AB00/24"
                  ],
                  "items": {
                    "format": "byte",
                    "type": "string"
                  },
                  "type": "array"
                },
                "net_id": {
                  "example": "000013",
                  "format": "string",
                  "type": "string"
                },
                "ns_id": {
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "ui": {
              "properties": {
                "branding_base_url": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "description": "Configuration per cluster (by ID).",
        "type": "object"
      },
      "default_cluster": {
        "properties": {
          "ars": {
            "properties": {
              "routing": {
                "properties": {
                  "enabled": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "as": {
            "properties": {
              "webhooks": {
                "properties": {
                  "queue": {
                    "properties": {
                      "enabled": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "gs": {
            "properties": {
              "mtls_authentication": {
                "properties": {
                  "client_ca_pool": {
                    "description": "PEM encoded pool of X.509 root certificates to trust for verifying the presented TLS client certificate.",
                    "format": "byte",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "is": {
            "properties": {
              "admin_rights": {
                "properties": {
                  "all": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "application_limits": {
                "properties": {
                  "end_devices": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "email": {
                "properties": {
                  "network": {
                    "properties": {
                      "branding_base_url": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "end_device_picture": {
                "properties": {
                  "disable_upload": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "organization_limits": {
                "properties": {
                  "applications": {
                    "format": "uint64",
                    "type": "string"
                  },
                  "clients": {
                    "format": "uint64",
                    "type": "string"
                  },
                  "gateways": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "profile_picture": {
                "properties": {
                  "disable_upload": {
                    "type": "boolean"
                  },
                  "use_gravatar": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "user_limits": {
                "properties": {
                  "applications": {
                    "format": "uint64",
                    "type": "string"
                  },
                  "clients": {
                    "format": "uint64",
                    "type": "string"
                  },
                  "gateways": {
                    "format": "uint64",
                    "type": "string"
                  },
                  "organizations": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "user_login": {
                "properties": {
                  "disable_credentials_login": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "user_registration": {
                "properties": {
                  "admin_approval": {
                    "properties": {
                      "required": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "contact_info_validation": {
                    "properties": {
                      "required": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "enabled": {
                    "type": "boolean"
                  },
                  "invitation": {
                    "properties": {
                      "required": {
                        "type": "boolean"
                      },
                      "token_ttl": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "password_requirements": {
                    "properties": {
                      "max_length": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "min_digits": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "min_length": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "min_special": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "min_uppercase": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "user_rights": {
                "properties": {
                  "create_applications": {
                    "type": "boolean"
                  },
                  "create_clients": {
                    "type": "boolean"
                  },
                  "create_gateways": {
                    "type": "boolean"
                  },
                  "create_organizations": {
                    "type": "boolean"
                  },
                  "update_name": {
                    "type": "boolean"
                  },
                  "update_primary_email_address": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "js": {
            "properties": {
              "join_eui_prefixes": {
                "example": [
                  "70B3D57ED0000000/56"
                ],
                "items": {
                  "format": "byte",
                  "type": "string"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "noc": {
            "properties": {
              "access": {
                "properties": {
                  "extended": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "ns": {
            "properties": {
              "cooldown_window": {
                "type": "string"
              },
              "deduplication_window": {
                "type": "string"
              },
              "dev_addr_prefixes": {
                "example": [
                  "2600AB00/24"
                ],
                "items": {
                  "format": "byte",
                  "type": "string"
                },
                "type": "array"
              },
              "net_id": {
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "ns_id": {
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          },
          "ui": {
            "properties": {
              "branding_base_url": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "pb": {
        "properties": {
          "listed": {
            "description": "Indicates whether the Home Network is publicly listed.",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    lorawanContactInfoValidation

    Fields
    Name Type Description
    contact_info object
    created_at string
    entity object EntityIdentifiers contains one of the possible entity identifiers.
    expires_at string
    id string
    token string
    updated_at string
    Schema
    {
      "contact_info": {
        "items": {
          "properties": {
            "contact_method": {
              "default": "CONTACT_METHOD_OTHER",
              "enum": [
                "CONTACT_METHOD_OTHER",
                "CONTACT_METHOD_EMAIL",
                "CONTACT_METHOD_PHONE"
              ],
              "type": "string"
            },
            "contact_type": {
              "default": "CONTACT_TYPE_OTHER",
              "enum": [
                "CONTACT_TYPE_OTHER",
                "CONTACT_TYPE_ABUSE",
                "CONTACT_TYPE_BILLING",
                "CONTACT_TYPE_TECHNICAL"
              ],
              "type": "string"
            },
            "public": {
              "type": "boolean"
            },
            "validated_at": {
              "format": "date-time",
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "created_at": {
        "format": "date-time",
        "type": "string"
      },
      "entity": {
        "description": "EntityIdentifiers contains one of the possible entity identifiers.",
        "properties": {
          "application_ids": {
            "properties": {
              "application_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "client_ids": {
            "properties": {
              "client_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "device_ids": {
            "properties": {
              "application_ids": {
                "properties": {
                  "application_id": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "dev_addr": {
                "description": "The LoRaWAN DevAddr.",
                "example": "2600ABCD",
                "format": "string",
                "type": "string"
              },
              "dev_eui": {
                "description": "The LoRaWAN DevEUI.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "device_id": {
                "type": "string"
              },
              "join_eui": {
                "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          },
          "gateway_ids": {
            "properties": {
              "eui": {
                "description": "Secondary identifier, which can only be used in specific requests.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "gateway_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "organization_ids": {
            "properties": {
              "organization_id": {
                "description": "This ID shares namespace with user IDs.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "user_ids": {
            "properties": {
              "email": {
                "description": "Secondary identifier, which can only be used in specific requests.",
                "type": "string"
              },
              "user_id": {
                "description": "This ID shares namespace with organization IDs.",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "expires_at": {
        "format": "date-time",
        "type": "string"
      },
      "id": {
        "type": "string"
      },
      "token": {
        "type": "string"
      },
      "updated_at": {
        "format": "date-time",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    lorawanDownlinkMessage

    Mapping from UDP message: imme: - tmst: scheduled.timestamp tmms: scheduled.time freq: scheduled.frequency rfch: (0) powe: scheduled.tx_power modu: scheduled.modulation datr: scheduled.data_rate_index (derived) codr: scheduled.coding_rate fdev: (derived from bandwidth) ipol: scheduled.invert_polarization prea: [scheduled.advanced] size: (derived from len(raw_payload)) data: raw_payload ncrc: [scheduled.advanced]
    Fields
    Name Type Description
    correlation_ids string
    end_device_ids object
    payload object
    raw_payload string
    request object TxRequest is a request for transmission. If sent to a roaming partner, this request is used to generate the DLMetadata Object (see Backend Interfaces 1.0, Table 22). If the gateway has a scheduler, this request is sent to the gateway, in the order of gateway_ids. Otherwise, the Gateway Server attempts to schedule the request and creates the TxSettings.
    scheduled object TxSettings contains the settings for a transmission. This message is used on both uplink and downlink. On downlink, this is a scheduled transmission.
    session_key_id string
    Schema
    {
      "correlation_ids": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "end_device_ids": {
        "properties": {
          "application_ids": {
            "properties": {
              "application_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "device_id": {
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "payload": {
        "properties": {
          "join_accept_payload": {
            "properties": {
              "cf_list": {
                "properties": {
                  "ch_masks": {
                    "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                    "items": {
                      "type": "boolean"
                    },
                    "type": "array"
                  },
                  "freq": {
                    "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                    "items": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "type": "array"
                  },
                  "type": {
                    "default": "FREQUENCIES",
                    "enum": [
                      "FREQUENCIES",
                      "CHANNEL_MASKS"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "dev_addr": {
                "example": "2600ABCD",
                "format": "string",
                "type": "string"
              },
              "dl_settings": {
                "properties": {
                  "opt_neg": {
                    "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                    "type": "boolean"
                  },
                  "rx1_dr_offset": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_dr": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "encrypted": {
                "format": "byte",
                "type": "string"
              },
              "join_nonce": {
                "example": "ABCDEF",
                "format": "string",
                "type": "string"
              },
              "net_id": {
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "rx_delay": {
                "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.",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "join_request_payload": {
            "properties": {
              "dev_eui": {
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "dev_nonce": {
                "example": "ABCD",
                "format": "string",
                "type": "string"
              },
              "join_eui": {
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          },
          "m_hdr": {
            "properties": {
              "m_type": {
                "default": "JOIN_REQUEST",
                "enum": [
                  "JOIN_REQUEST",
                  "JOIN_ACCEPT",
                  "UNCONFIRMED_UP",
                  "UNCONFIRMED_DOWN",
                  "CONFIRMED_UP",
                  "CONFIRMED_DOWN",
                  "REJOIN_REQUEST",
                  "PROPRIETARY"
                ],
                "type": "string"
              },
              "major": {
                "default": "LORAWAN_R1",
                "enum": [
                  "LORAWAN_R1"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "mac_payload": {
            "properties": {
              "decoded_payload": {
                "type": "object"
              },
              "f_hdr": {
                "properties": {
                  "dev_addr": {
                    "example": "2600ABCD",
                    "format": "string",
                    "type": "string"
                  },
                  "f_cnt": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "f_ctrl": {
                    "properties": {
                      "ack": {
                        "type": "boolean"
                      },
                      "adr": {
                        "type": "boolean"
                      },
                      "adr_ack_req": {
                        "description": "Only on uplink.",
                        "type": "boolean"
                      },
                      "class_b": {
                        "description": "Only on uplink.",
                        "type": "boolean"
                      },
                      "f_pending": {
                        "description": "Only on downlink.",
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "f_opts": {
                    "format": "byte",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "f_port": {
                "format": "int64",
                "type": "integer"
              },
              "frm_payload": {
                "format": "byte",
                "type": "string"
              },
              "full_f_cnt": {
                "description": "Full 32-bit FCnt value. Used internally by Network Server.",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "mic": {
            "format": "byte",
            "type": "string"
          },
          "rejoin_request_payload": {
            "properties": {
              "dev_eui": {
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "join_eui": {
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "net_id": {
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "rejoin_cnt": {
                "description": "Contains RJCount0 or RJCount1 depending on rejoin_type.",
                "format": "int64",
                "type": "integer"
              },
              "rejoin_type": {
                "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.",
                "enum": [
                  "CONTEXT",
                  "SESSION",
                  "KEYS"
                ],
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "title": "Message represents a LoRaWAN message",
        "type": "object"
      },
      "raw_payload": {
        "format": "byte",
        "type": "string"
      },
      "request": {
        "description": "TxRequest is a request for transmission.\nIf sent to a roaming partner, this request is used to generate the DLMetadata Object (see Backend Interfaces 1.0, Table 22).\nIf the gateway has a scheduler, this request is sent to the gateway, in the order of gateway_ids.\nOtherwise, the Gateway Server attempts to schedule the request and creates the TxSettings.",
        "properties": {
          "absolute_time": {
            "description": "Time when the downlink message should be transmitted.\nThis value is only valid for class C downlink; class A downlink uses uplink tokens and class B downlink is scheduled on ping slots.\nThis requires the gateway to have GPS time sychronization.\nIf the absolute time is not set, the first available time will be used that does not conflict or violate regional limitations.",
            "format": "date-time",
            "type": "string"
          },
          "advanced": {
            "title": "Advanced metadata fields\n- can be used for advanced information or experimental features that are not yet formally defined in the API\n- field names are written in snake_case",
            "type": "object"
          },
          "class": {
            "default": "CLASS_A",
            "enum": [
              "CLASS_A",
              "CLASS_B",
              "CLASS_C"
            ],
            "type": "string"
          },
          "downlink_paths": {
            "description": "Downlink paths used to select a gateway for downlink.\nIn class A, the downlink paths are required to only contain uplink tokens.\nIn class B and C, the downlink paths may contain uplink tokens and fixed gateways antenna identifiers.",
            "items": {
              "properties": {
                "fixed": {
                  "properties": {
                    "antenna_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "gateway_ids": {
                      "properties": {
                        "eui": {
                          "description": "Secondary identifier, which can only be used in specific requests.",
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "gateway_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "uplink_token": {
                  "format": "byte",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "frequency_plan_id": {
            "description": "Frequency plan ID from which the frequencies in this message are retrieved.",
            "type": "string"
          },
          "priority": {
            "default": "LOWEST",
            "enum": [
              "LOWEST",
              "LOW",
              "BELOW_NORMAL",
              "NORMAL",
              "ABOVE_NORMAL",
              "HIGH",
              "HIGHEST"
            ],
            "type": "string"
          },
          "rx1_data_rate": {
            "properties": {
              "fsk": {
                "properties": {
                  "bit_rate": {
                    "description": "Bit rate (bps).",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "lora": {
                "properties": {
                  "bandwidth": {
                    "description": "Bandwidth (Hz).",
                    "format": "int64",
                    "type": "integer"
                  },
                  "coding_rate": {
                    "type": "string"
                  },
                  "spreading_factor": {
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "lrfhss": {
                "properties": {
                  "coding_rate": {
                    "type": "string"
                  },
                  "modulation_type": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "operating_channel_width": {
                    "description": "Operating Channel Width (Hz).",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "rx1_delay": {
            "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.",
            "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"
            ],
            "type": "string"
          },
          "rx1_frequency": {
            "description": "Frequency (Hz) for Rx1.",
            "format": "uint64",
            "type": "string"
          },
          "rx2_data_rate": {
            "properties": {
              "fsk": {
                "properties": {
                  "bit_rate": {
                    "description": "Bit rate (bps).",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "lora": {
                "properties": {
                  "bandwidth": {
                    "description": "Bandwidth (Hz).",
                    "format": "int64",
                    "type": "integer"
                  },
                  "coding_rate": {
                    "type": "string"
                  },
                  "spreading_factor": {
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "lrfhss": {
                "properties": {
                  "coding_rate": {
                    "type": "string"
                  },
                  "modulation_type": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "operating_channel_width": {
                    "description": "Operating Channel Width (Hz).",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "rx2_frequency": {
            "description": "Frequency (Hz) for Rx2.",
            "format": "uint64",
            "type": "string"
          }
        },
        "type": "object"
      },
      "scheduled": {
        "description": "TxSettings contains the settings for a transmission.\nThis message is used on both uplink and downlink.\nOn downlink, this is a scheduled transmission.",
        "properties": {
          "concentrator_timestamp": {
            "description": "Concentrator timestamp for the downlink as calculated by the Gateway Server scheduler.\nThis value takes into account necessary offsets such as the RTT (Round Trip Time) and TOA (Time Of Arrival).\nThis field is set and used only by the Gateway Server.",
            "format": "int64",
            "type": "string"
          },
          "data_rate": {
            "properties": {
              "fsk": {
                "properties": {
                  "bit_rate": {
                    "description": "Bit rate (bps).",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "lora": {
                "properties": {
                  "bandwidth": {
                    "description": "Bandwidth (Hz).",
                    "format": "int64",
                    "type": "integer"
                  },
                  "coding_rate": {
                    "type": "string"
                  },
                  "spreading_factor": {
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "lrfhss": {
                "properties": {
                  "coding_rate": {
                    "type": "string"
                  },
                  "modulation_type": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "operating_channel_width": {
                    "description": "Operating Channel Width (Hz).",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "downlink": {
            "description": "Transmission settings for downlink.",
            "properties": {
              "antenna_index": {
                "description": "Index of the antenna on which the uplink was received and/or downlink must be sent.",
                "format": "int64",
                "type": "integer"
              },
              "invert_polarization": {
                "description": "Invert LoRa polarization; false for LoRaWAN uplink, true for downlink.",
                "type": "boolean"
              },
              "tx_power": {
                "description": "Transmission power (dBm). Only on downlink.",
                "format": "float",
                "type": "number"
              }
            },
            "type": "object"
          },
          "enable_crc": {
            "description": "Send a CRC in the packet; only on uplink; on downlink, CRC should not be enabled.",
            "type": "boolean"
          },
          "frequency": {
            "description": "Frequency (Hz).",
            "format": "uint64",
            "type": "string"
          },
          "time": {
            "description": "Time of the gateway when the uplink message was received, or when the downlink message should be transmitted.\nFor downlink, this requires the gateway to have GPS time synchronization.",
            "format": "date-time",
            "type": "string"
          },
          "timestamp": {
            "description": "Timestamp of the gateway concentrator when the uplink message was received, or when the downlink message should be transmitted (microseconds).\nOn downlink, set timestamp to 0 and time to null to use immediate scheduling.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "session_key_id": {
        "format": "byte",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    lorawanGatewayIdentifiers

    Fields
    Name Type Description
    eui string Secondary identifier, which can only be used in specific requests.
    gateway_id string
    Schema
    {
      "eui": {
        "description": "Secondary identifier, which can only be used in specific requests.",
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      },
      "gateway_id": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    lorawanInvitation

    Fields
    Name Type Description
    accepted_at string
    accepted_by object
    created_at string
    email string
    expires_at string
    token string
    updated_at string
    Schema
    {
      "accepted_at": {
        "format": "date-time",
        "type": "string"
      },
      "accepted_by": {
        "properties": {
          "email": {
            "description": "Secondary identifier, which can only be used in specific requests.",
            "type": "string"
          },
          "user_id": {
            "description": "This ID shares namespace with organization IDs.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "created_at": {
        "format": "date-time",
        "type": "string"
      },
      "email": {
        "type": "string"
      },
      "expires_at": {
        "format": "date-time",
        "type": "string"
      },
      "token": {
        "type": "string"
      },
      "updated_at": {
        "format": "date-time",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    lorawanLabel

    Fields
    Name Type Description
    color string
    created_at string When the label was created. This information is public and can be seen by any authenticated user in the network.
    description string
    entities object EXPERIMENTAL: These definitions are subject to change.
    ids object
    name string
    updated_at string When the label was last updated. This information is public and can be seen by any authenticated user in the network.
    Schema
    {
      "color": {
        "type": "string"
      },
      "created_at": {
        "description": "When the label was created. This information is public and can be seen by any authenticated user in the network.",
        "format": "date-time",
        "type": "string"
      },
      "description": {
        "type": "string"
      },
      "entities": {
        "description": "EXPERIMENTAL: These definitions are subject to change.",
        "properties": {
          "applications": {
            "items": {
              "properties": {
                "application_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "clients": {
            "items": {
              "properties": {
                "client_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "end_devices": {
            "items": {
              "properties": {
                "application_ids": {
                  "properties": {
                    "application_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "dev_addr": {
                  "description": "The LoRaWAN DevAddr.",
                  "example": "2600ABCD",
                  "format": "string",
                  "type": "string"
                },
                "dev_eui": {
                  "description": "The LoRaWAN DevEUI.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "device_id": {
                  "type": "string"
                },
                "join_eui": {
                  "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "gateways": {
            "items": {
              "properties": {
                "eui": {
                  "description": "Secondary identifier, which can only be used in specific requests.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "gateway_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ids": {
        "properties": {
          "label_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": {
        "type": "string"
      },
      "updated_at": {
        "description": "When the label was last updated. This information is public and can be seen by any authenticated user in the network.",
        "format": "date-time",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    lorawanLocation

    Fields
    Name Type Description
    accuracy integer The accuracy of the location (meters).
    altitude integer The altitude (meters), where 0 is the mean sea level.
    latitude number The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.
    longitude number The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.
    source string - SOURCE_UNKNOWN: The source of the location is not known or not set. - SOURCE_GPS: The location is determined by GPS. - SOURCE_REGISTRY: The location is set in and updated from a registry. - SOURCE_IP_GEOLOCATION: The location is estimated with IP geolocation. - SOURCE_WIFI_RSSI_GEOLOCATION: The location is estimated with WiFi RSSI geolocation. - SOURCE_BT_RSSI_GEOLOCATION: The location is estimated with BT/BLE RSSI geolocation. - SOURCE_LORA_RSSI_GEOLOCATION: The location is estimated with LoRa RSSI geolocation. - SOURCE_LORA_TDOA_GEOLOCATION: The location is estimated with LoRa TDOA geolocation. - SOURCE_COMBINED_GEOLOCATION: The location is estimated by a combination of geolocation sources. More estimation methods can be added.
    Schema
    {
      "accuracy": {
        "description": "The accuracy of the location (meters).",
        "format": "int32",
        "type": "integer"
      },
      "altitude": {
        "description": "The altitude (meters), where 0 is the mean sea level.",
        "format": "int32",
        "type": "integer"
      },
      "latitude": {
        "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
        "format": "double",
        "type": "number"
      },
      "longitude": {
        "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
        "format": "double",
        "type": "number"
      },
      "source": {
        "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.",
        "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"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    lorawanMACPayload

    Fields
    Name Type Description
    decoded_payload object
    f_hdr object
    f_port integer
    frm_payload string
    full_f_cnt integer Full 32-bit FCnt value. Used internally by Network Server.
    Schema
    {
      "decoded_payload": {
        "type": "object"
      },
      "f_hdr": {
        "properties": {
          "dev_addr": {
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "f_cnt": {
            "format": "int64",
            "type": "integer"
          },
          "f_ctrl": {
            "properties": {
              "ack": {
                "type": "boolean"
              },
              "adr": {
                "type": "boolean"
              },
              "adr_ack_req": {
                "description": "Only on uplink.",
                "type": "boolean"
              },
              "class_b": {
                "description": "Only on uplink.",
                "type": "boolean"
              },
              "f_pending": {
                "description": "Only on downlink.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "f_opts": {
            "format": "byte",
            "type": "string"
          }
        },
        "type": "object"
      },
      "f_port": {
        "format": "int64",
        "type": "integer"
      },
      "frm_payload": {
        "format": "byte",
        "type": "string"
      },
      "full_f_cnt": {
        "description": "Full 32-bit FCnt value. Used internally by Network Server.",
        "format": "int64",
        "type": "integer"
      }
    }
    Show the schema of the message in JSON format.

    lorawanMHDR

    Fields
    Name Type Description
    m_type string
    major string
    Schema
    {
      "m_type": {
        "default": "JOIN_REQUEST",
        "enum": [
          "JOIN_REQUEST",
          "JOIN_ACCEPT",
          "UNCONFIRMED_UP",
          "UNCONFIRMED_DOWN",
          "CONFIRMED_UP",
          "CONFIRMED_DOWN",
          "REJOIN_REQUEST",
          "PROPRIETARY"
        ],
        "type": "string"
      },
      "major": {
        "default": "LORAWAN_R1",
        "enum": [
          "LORAWAN_R1"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    lorawanMessage

    Fields
    Name Type Description
    join_accept_payload object
    join_request_payload object
    m_hdr object
    mac_payload object
    mic string
    rejoin_request_payload object
    Schema
    {
      "join_accept_payload": {
        "properties": {
          "cf_list": {
            "properties": {
              "ch_masks": {
                "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                "items": {
                  "type": "boolean"
                },
                "type": "array"
              },
              "freq": {
                "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                "items": {
                  "format": "int64",
                  "type": "integer"
                },
                "type": "array"
              },
              "type": {
                "default": "FREQUENCIES",
                "enum": [
                  "FREQUENCIES",
                  "CHANNEL_MASKS"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "dev_addr": {
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dl_settings": {
            "properties": {
              "opt_neg": {
                "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                "type": "boolean"
              },
              "rx1_dr_offset": {
                "default": "DATA_RATE_OFFSET_0",
                "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"
                ],
                "type": "string"
              },
              "rx2_dr": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "encrypted": {
            "format": "byte",
            "type": "string"
          },
          "join_nonce": {
            "example": "ABCDEF",
            "format": "string",
            "type": "string"
          },
          "net_id": {
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "rx_delay": {
            "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.",
            "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"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "join_request_payload": {
        "properties": {
          "dev_eui": {
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_nonce": {
            "example": "ABCD",
            "format": "string",
            "type": "string"
          },
          "join_eui": {
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "m_hdr": {
        "properties": {
          "m_type": {
            "default": "JOIN_REQUEST",
            "enum": [
              "JOIN_REQUEST",
              "JOIN_ACCEPT",
              "UNCONFIRMED_UP",
              "UNCONFIRMED_DOWN",
              "CONFIRMED_UP",
              "CONFIRMED_DOWN",
              "REJOIN_REQUEST",
              "PROPRIETARY"
            ],
            "type": "string"
          },
          "major": {
            "default": "LORAWAN_R1",
            "enum": [
              "LORAWAN_R1"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "mac_payload": {
        "properties": {
          "decoded_payload": {
            "type": "object"
          },
          "f_hdr": {
            "properties": {
              "dev_addr": {
                "example": "2600ABCD",
                "format": "string",
                "type": "string"
              },
              "f_cnt": {
                "format": "int64",
                "type": "integer"
              },
              "f_ctrl": {
                "properties": {
                  "ack": {
                    "type": "boolean"
                  },
                  "adr": {
                    "type": "boolean"
                  },
                  "adr_ack_req": {
                    "description": "Only on uplink.",
                    "type": "boolean"
                  },
                  "class_b": {
                    "description": "Only on uplink.",
                    "type": "boolean"
                  },
                  "f_pending": {
                    "description": "Only on downlink.",
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "f_opts": {
                "format": "byte",
                "type": "string"
              }
            },
            "type": "object"
          },
          "f_port": {
            "format": "int64",
            "type": "integer"
          },
          "frm_payload": {
            "format": "byte",
            "type": "string"
          },
          "full_f_cnt": {
            "description": "Full 32-bit FCnt value. Used internally by Network Server.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "mic": {
        "format": "byte",
        "type": "string"
      },
      "rejoin_request_payload": {
        "properties": {
          "dev_eui": {
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "join_eui": {
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "net_id": {
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "rejoin_cnt": {
            "description": "Contains RJCount0 or RJCount1 depending on rejoin_type.",
            "format": "int64",
            "type": "integer"
          },
          "rejoin_type": {
            "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.",
            "enum": [
              "CONTEXT",
              "SESSION",
              "KEYS"
            ],
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    lorawanPacketBrokerMetadata

    Fields
    Name Type Description
    forwarder_cluster_id string Forwarder Cluster ID of the Packet Broker Forwarder.
    forwarder_gateway_eui string Forwarder gateway EUI.
    forwarder_gateway_id string Forwarder gateway ID.
    forwarder_net_id string LoRa Alliance NetID of the Packet Broker Forwarder Member.
    forwarder_tenant_id string Tenant ID managed by the Packet Broker Forwarder Member.
    home_network_cluster_id string Home Network Cluster ID of the Packet Broker Home Network.
    home_network_net_id string LoRa Alliance NetID of the Packet Broker Home Network Member.
    home_network_tenant_id string Tenant ID managed by the Packet Broker Home Network Member. This value is empty if it cannot be determined by the Packet Broker Router.
    hops object Hops that the message passed. Each Packet Broker Router service appends an entry.
    message_id string Message identifier generated by Packet Broker Router.
    Schema
    {
      "forwarder_cluster_id": {
        "description": "Forwarder Cluster ID of the Packet Broker Forwarder.",
        "type": "string"
      },
      "forwarder_gateway_eui": {
        "description": "Forwarder gateway EUI.",
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      },
      "forwarder_gateway_id": {
        "description": "Forwarder gateway ID.",
        "type": "string"
      },
      "forwarder_net_id": {
        "description": "LoRa Alliance NetID of the Packet Broker Forwarder Member.",
        "example": "000013",
        "format": "string",
        "type": "string"
      },
      "forwarder_tenant_id": {
        "description": "Tenant ID managed by the Packet Broker Forwarder Member.",
        "type": "string"
      },
      "home_network_cluster_id": {
        "description": "Home Network Cluster ID of the Packet Broker Home Network.",
        "type": "string"
      },
      "home_network_net_id": {
        "description": "LoRa Alliance NetID of the Packet Broker Home Network Member.",
        "example": "000013",
        "format": "string",
        "type": "string"
      },
      "home_network_tenant_id": {
        "description": "Tenant ID managed by the Packet Broker Home Network Member.\nThis value is empty if it cannot be determined by the Packet Broker Router.",
        "type": "string"
      },
      "hops": {
        "description": "Hops that the message passed. Each Packet Broker Router service appends an entry.",
        "items": {
          "properties": {
            "received_at": {
              "description": "Time when the service received the message.",
              "format": "date-time",
              "type": "string"
            },
            "receiver_agent": {
              "description": "Receiver agent.",
              "type": "string"
            },
            "receiver_name": {
              "description": "Receiver of the message.",
              "type": "string"
            },
            "sender_address": {
              "description": "Sender IP address or host name.",
              "type": "string"
            },
            "sender_name": {
              "description": "Sender of the message, typically the authorized client identifier.",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "message_id": {
        "description": "Message identifier generated by Packet Broker Router.",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    lorawanRelayMetadata

    Fields
    Name Type Description
    device_id string End device identifiers of the relay.
    wor_channel string
    Schema
    {
      "device_id": {
        "description": "End device identifiers of the relay.",
        "type": "string"
      },
      "wor_channel": {
        "default": "RELAY_WOR_CHANNEL_DEFAULT",
        "enum": [
          "RELAY_WOR_CHANNEL_DEFAULT",
          "RELAY_WOR_CHANNEL_SECONDARY"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    lorawanRelayParameters

    RelayParameters represent the parameters of a relay. This is used internally by the Network Server.
    Fields
    Name Type Description
    served object
    serving object
    Schema
    {
      "served": {
        "properties": {
          "always": {
            "type": "object"
          },
          "backoff": {
            "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
            "format": "int64",
            "type": "integer"
          },
          "dynamic": {
            "properties": {
              "smart_enable_level": {
                "default": "RELAY_SMART_ENABLE_LEVEL_8",
                "enum": [
                  "RELAY_SMART_ENABLE_LEVEL_8",
                  "RELAY_SMART_ENABLE_LEVEL_16",
                  "RELAY_SMART_ENABLE_LEVEL_32",
                  "RELAY_SMART_ENABLE_LEVEL_64"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "end_device_controlled": {
            "type": "object"
          },
          "second_channel": {
            "properties": {
              "ack_offset": {
                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                "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"
                ],
                "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",
                "type": "string"
              },
              "data_rate_index": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              },
              "frequency": {
                "description": "The frequency (Hz) used by the wake on radio message.",
                "format": "uint64",
                "type": "string"
              }
            },
            "type": "object"
          },
          "serving_device_id": {
            "description": "End device identifier of the serving end device.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "serving": {
        "properties": {
          "cad_periodicity": {
            "default": "RELAY_CAD_PERIODICITY_1_SECOND",
            "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"
            ],
            "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
            "type": "string"
          },
          "default_channel_index": {
            "description": "Index of the default wake on radio channel.",
            "format": "int64",
            "type": "integer"
          },
          "limits": {
            "properties": {
              "join_requests": {
                "properties": {
                  "bucket_size": {
                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                    "enum": [
                      "RELAY_LIMIT_BUCKET_SIZE_1",
                      "RELAY_LIMIT_BUCKET_SIZE_2",
                      "RELAY_LIMIT_BUCKET_SIZE_4",
                      "RELAY_LIMIT_BUCKET_SIZE_12"
                    ],
                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                    "type": "string"
                  },
                  "reload_rate": {
                    "description": "The number of tokens which are replenished in the bucket every hour.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "notifications": {
                "properties": {
                  "bucket_size": {
                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                    "enum": [
                      "RELAY_LIMIT_BUCKET_SIZE_1",
                      "RELAY_LIMIT_BUCKET_SIZE_2",
                      "RELAY_LIMIT_BUCKET_SIZE_4",
                      "RELAY_LIMIT_BUCKET_SIZE_12"
                    ],
                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                    "type": "string"
                  },
                  "reload_rate": {
                    "description": "The number of tokens which are replenished in the bucket every hour.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "overall": {
                "properties": {
                  "bucket_size": {
                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                    "enum": [
                      "RELAY_LIMIT_BUCKET_SIZE_1",
                      "RELAY_LIMIT_BUCKET_SIZE_2",
                      "RELAY_LIMIT_BUCKET_SIZE_4",
                      "RELAY_LIMIT_BUCKET_SIZE_12"
                    ],
                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                    "type": "string"
                  },
                  "reload_rate": {
                    "description": "The number of tokens which are replenished in the bucket every hour.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "reset_behavior": {
                "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                "enum": [
                  "RELAY_RESET_LIMIT_COUNTER_ZERO",
                  "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                  "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                  "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                ],
                "type": "string"
              },
              "uplink_messages": {
                "properties": {
                  "bucket_size": {
                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                    "enum": [
                      "RELAY_LIMIT_BUCKET_SIZE_1",
                      "RELAY_LIMIT_BUCKET_SIZE_2",
                      "RELAY_LIMIT_BUCKET_SIZE_4",
                      "RELAY_LIMIT_BUCKET_SIZE_12"
                    ],
                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                    "type": "string"
                  },
                  "reload_rate": {
                    "description": "The number of tokens which are replenished in the bucket every hour.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "second_channel": {
            "properties": {
              "ack_offset": {
                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                "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"
                ],
                "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",
                "type": "string"
              },
              "data_rate_index": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              },
              "frequency": {
                "description": "The frequency (Hz) used by the wake on radio message.",
                "format": "uint64",
                "type": "string"
              }
            },
            "type": "object"
          },
          "uplink_forwarding_rules": {
            "description": "Configured uplink forwarding rules.",
            "items": {
              "properties": {
                "device_id": {
                  "description": "End device identifier of the served end device.",
                  "type": "string"
                },
                "last_w_f_cnt": {
                  "description": "Last wake on radio frame counter used by the served end device.",
                  "format": "int64",
                  "type": "integer"
                },
                "limits": {
                  "properties": {
                    "bucket_size": {
                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                      "enum": [
                        "RELAY_LIMIT_BUCKET_SIZE_1",
                        "RELAY_LIMIT_BUCKET_SIZE_2",
                        "RELAY_LIMIT_BUCKET_SIZE_4",
                        "RELAY_LIMIT_BUCKET_SIZE_12"
                      ],
                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                      "type": "string"
                    },
                    "reload_rate": {
                      "description": "The number of tokens which are replenished in the bucket every hour.",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "session_key_id": {
                  "description": "Session key ID of the session keys used to derive the root relay session key.",
                  "format": "byte",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    lorawanRelayWORChannel

    Supported values
  • RELAY_WOR_CHANNEL_DEFAULT
  • RELAY_WOR_CHANNEL_SECONDARY
  • Default: RELAY_WOR_CHANNEL_DEFAULT

    lorawanRxMetadata

    Contains metadata for a received message. Each antenna that receives a message corresponds to one RxMetadata.
    Fields
    Name Type Description
    advanced object
    antenna_index integer
    channel_index integer Index of the gateway channel that received the message.
    channel_rssi number Received signal strength indicator of the channel (dBm).
    downlink_path_constraint string - DOWNLINK_PATH_CONSTRAINT_NONE: Indicates that the gateway can be selected for downlink without constraints by the Network Server. - DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER: Indicates that the gateway can be selected for downlink only if no other or better gateway can be selected. - DOWNLINK_PATH_CONSTRAINT_NEVER: Indicates that this gateway will never be selected for downlink, even if that results in no available downlink path.
    encrypted_fine_timestamp string Encrypted gateway's internal fine timestamp when the Rx finished (nanoseconds).
    encrypted_fine_timestamp_key_id string
    fine_timestamp string Gateway's internal fine timestamp when the Rx finished (nanoseconds).
    frequency_drift integer Frequency drift in Hz between start and end of an LR-FHSS packet (signed).
    frequency_offset string Frequency offset (Hz).
    gateway_ids object
    gps_time string Timestamp at the end of the transmission, provided by the gateway. Guaranteed to be based on a GPS PPS signal, with an accuracy of 1 millisecond.
    hopping_width integer Hopping width; a number describing the number of steps of the LR-FHSS grid.
    location object
    packet_broker object
    received_at string Timestamp at which the Gateway Server has received the message.
    relay object
    rssi number Received signal strength indicator (dBm). This value equals `channel_rssi`.
    rssi_standard_deviation number Standard deviation of the RSSI during preamble.
    signal_rssi number Received signal strength indicator of the signal (dBm).
    snr number Signal-to-noise ratio (dB).
    time string Timestamp at the end of the transmission, provided by the gateway. The accuracy is undefined.
    timestamp integer Gateway concentrator timestamp when the Rx finished (microseconds).
    uplink_token string Uplink token to be included in the Tx request in class A downlink; injected by gateway, Gateway Server or fNS.
    Schema
    {
      "advanced": {
        "title": "Advanced metadata fields\n- can be used for advanced information or experimental features that are not yet formally defined in the API\n- field names are written in snake_case",
        "type": "object"
      },
      "antenna_index": {
        "format": "int64",
        "type": "integer"
      },
      "channel_index": {
        "description": "Index of the gateway channel that received the message.",
        "format": "int64",
        "type": "integer"
      },
      "channel_rssi": {
        "description": "Received signal strength indicator of the channel (dBm).",
        "format": "float",
        "type": "number"
      },
      "downlink_path_constraint": {
        "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.",
        "enum": [
          "DOWNLINK_PATH_CONSTRAINT_NONE",
          "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
          "DOWNLINK_PATH_CONSTRAINT_NEVER"
        ],
        "type": "string"
      },
      "encrypted_fine_timestamp": {
        "description": "Encrypted gateway's internal fine timestamp when the Rx finished (nanoseconds).",
        "format": "byte",
        "type": "string"
      },
      "encrypted_fine_timestamp_key_id": {
        "type": "string"
      },
      "fine_timestamp": {
        "description": "Gateway's internal fine timestamp when the Rx finished (nanoseconds).",
        "format": "uint64",
        "type": "string"
      },
      "frequency_drift": {
        "description": "Frequency drift in Hz between start and end of an LR-FHSS packet (signed).",
        "format": "int32",
        "type": "integer"
      },
      "frequency_offset": {
        "description": "Frequency offset (Hz).",
        "format": "int64",
        "type": "string"
      },
      "gateway_ids": {
        "properties": {
          "eui": {
            "description": "Secondary identifier, which can only be used in specific requests.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "gateway_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "gps_time": {
        "description": "Timestamp at the end of the transmission, provided by the gateway.\nGuaranteed to be based on a GPS PPS signal, with an accuracy of 1 millisecond.",
        "format": "date-time",
        "type": "string"
      },
      "hopping_width": {
        "description": "Hopping width; a number describing the number of steps of the LR-FHSS grid.",
        "format": "int64",
        "type": "integer"
      },
      "location": {
        "properties": {
          "accuracy": {
            "description": "The accuracy of the location (meters).",
            "format": "int32",
            "type": "integer"
          },
          "altitude": {
            "description": "The altitude (meters), where 0 is the mean sea level.",
            "format": "int32",
            "type": "integer"
          },
          "latitude": {
            "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
            "format": "double",
            "type": "number"
          },
          "longitude": {
            "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
            "format": "double",
            "type": "number"
          },
          "source": {
            "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.",
            "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"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "packet_broker": {
        "properties": {
          "forwarder_cluster_id": {
            "description": "Forwarder Cluster ID of the Packet Broker Forwarder.",
            "type": "string"
          },
          "forwarder_gateway_eui": {
            "description": "Forwarder gateway EUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "forwarder_gateway_id": {
            "description": "Forwarder gateway ID.",
            "type": "string"
          },
          "forwarder_net_id": {
            "description": "LoRa Alliance NetID of the Packet Broker Forwarder Member.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "forwarder_tenant_id": {
            "description": "Tenant ID managed by the Packet Broker Forwarder Member.",
            "type": "string"
          },
          "home_network_cluster_id": {
            "description": "Home Network Cluster ID of the Packet Broker Home Network.",
            "type": "string"
          },
          "home_network_net_id": {
            "description": "LoRa Alliance NetID of the Packet Broker Home Network Member.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "home_network_tenant_id": {
            "description": "Tenant ID managed by the Packet Broker Home Network Member.\nThis value is empty if it cannot be determined by the Packet Broker Router.",
            "type": "string"
          },
          "hops": {
            "description": "Hops that the message passed. Each Packet Broker Router service appends an entry.",
            "items": {
              "properties": {
                "received_at": {
                  "description": "Time when the service received the message.",
                  "format": "date-time",
                  "type": "string"
                },
                "receiver_agent": {
                  "description": "Receiver agent.",
                  "type": "string"
                },
                "receiver_name": {
                  "description": "Receiver of the message.",
                  "type": "string"
                },
                "sender_address": {
                  "description": "Sender IP address or host name.",
                  "type": "string"
                },
                "sender_name": {
                  "description": "Sender of the message, typically the authorized client identifier.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "message_id": {
            "description": "Message identifier generated by Packet Broker Router.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "received_at": {
        "description": "Timestamp at which the Gateway Server has received the message.",
        "format": "date-time",
        "type": "string"
      },
      "relay": {
        "properties": {
          "device_id": {
            "description": "End device identifiers of the relay.",
            "type": "string"
          },
          "wor_channel": {
            "default": "RELAY_WOR_CHANNEL_DEFAULT",
            "enum": [
              "RELAY_WOR_CHANNEL_DEFAULT",
              "RELAY_WOR_CHANNEL_SECONDARY"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "rssi": {
        "description": "Received signal strength indicator (dBm).\nThis value equals `channel_rssi`.",
        "format": "float",
        "type": "number"
      },
      "rssi_standard_deviation": {
        "description": "Standard deviation of the RSSI during preamble.",
        "format": "float",
        "type": "number"
      },
      "signal_rssi": {
        "description": "Received signal strength indicator of the signal (dBm).",
        "format": "float",
        "type": "number"
      },
      "snr": {
        "description": "Signal-to-noise ratio (dB).",
        "format": "float",
        "type": "number"
      },
      "time": {
        "description": "Timestamp at the end of the transmission, provided by the gateway. The accuracy is undefined.",
        "format": "date-time",
        "type": "string"
      },
      "timestamp": {
        "description": "Gateway concentrator timestamp when the Rx finished (microseconds).",
        "format": "int64",
        "type": "integer"
      },
      "uplink_token": {
        "description": "Uplink token to be included in the Tx request in class A downlink; injected by gateway, Gateway Server or fNS.",
        "format": "byte",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    lorawanTxSettings

    TxSettings contains the settings for a transmission. This message is used on both uplink and downlink. On downlink, this is a scheduled transmission.
    Fields
    Name Type Description
    concentrator_timestamp string Concentrator timestamp for the downlink as calculated by the Gateway Server scheduler. This value takes into account necessary offsets such as the RTT (Round Trip Time) and TOA (Time Of Arrival). This field is set and used only by the Gateway Server.
    data_rate object
    downlink object Transmission settings for downlink.
    enable_crc boolean Send a CRC in the packet; only on uplink; on downlink, CRC should not be enabled.
    frequency string Frequency (Hz).
    time string Time of the gateway when the uplink message was received, or when the downlink message should be transmitted. For downlink, this requires the gateway to have GPS time synchronization.
    timestamp integer Timestamp of the gateway concentrator when the uplink message was received, or when the downlink message should be transmitted (microseconds). On downlink, set timestamp to 0 and time to null to use immediate scheduling.
    Schema
    {
      "concentrator_timestamp": {
        "description": "Concentrator timestamp for the downlink as calculated by the Gateway Server scheduler.\nThis value takes into account necessary offsets such as the RTT (Round Trip Time) and TOA (Time Of Arrival).\nThis field is set and used only by the Gateway Server.",
        "format": "int64",
        "type": "string"
      },
      "data_rate": {
        "properties": {
          "fsk": {
            "properties": {
              "bit_rate": {
                "description": "Bit rate (bps).",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "lora": {
            "properties": {
              "bandwidth": {
                "description": "Bandwidth (Hz).",
                "format": "int64",
                "type": "integer"
              },
              "coding_rate": {
                "type": "string"
              },
              "spreading_factor": {
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "lrfhss": {
            "properties": {
              "coding_rate": {
                "type": "string"
              },
              "modulation_type": {
                "format": "int64",
                "type": "integer"
              },
              "operating_channel_width": {
                "description": "Operating Channel Width (Hz).",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "downlink": {
        "description": "Transmission settings for downlink.",
        "properties": {
          "antenna_index": {
            "description": "Index of the antenna on which the uplink was received and/or downlink must be sent.",
            "format": "int64",
            "type": "integer"
          },
          "invert_polarization": {
            "description": "Invert LoRa polarization; false for LoRaWAN uplink, true for downlink.",
            "type": "boolean"
          },
          "tx_power": {
            "description": "Transmission power (dBm). Only on downlink.",
            "format": "float",
            "type": "number"
          }
        },
        "type": "object"
      },
      "enable_crc": {
        "description": "Send a CRC in the packet; only on uplink; on downlink, CRC should not be enabled.",
        "type": "boolean"
      },
      "frequency": {
        "description": "Frequency (Hz).",
        "format": "uint64",
        "type": "string"
      },
      "time": {
        "description": "Time of the gateway when the uplink message was received, or when the downlink message should be transmitted.\nFor downlink, this requires the gateway to have GPS time synchronization.",
        "format": "date-time",
        "type": "string"
      },
      "timestamp": {
        "description": "Timestamp of the gateway concentrator when the uplink message was received, or when the downlink message should be transmitted (microseconds).\nOn downlink, set timestamp to 0 and time to null to use immediate scheduling.",
        "format": "int64",
        "type": "integer"
      }
    }
    Show the schema of the message in JSON format.

    lorawanUplinkMessage

    Mapping from UDP message (other fields can be set in "advanced"): - time: rx_metadata.time - tmst: rx_metadata.timestamp - freq: settings.frequency - modu: settings.modulation - datr: settings.data_rate_index (and derived fields) - codr: settings.coding_rate - size: len(raw_payload) - data: raw_payload (and derived payload) - rsig: rx_metadata - ant: rx_metadata.antenna_index - chan: rx_metadata.channel_index - rssis: rx_metadata.rssi - lsnr: rx_metadata.snr
    Fields
    Name Type Description
    consumed_airtime string Consumed airtime for the transmission of the uplink message. Calculated by Network Server using the RawPayload size and the transmission settings.
    correlation_ids string
    crc_status boolean Cyclic Redundancy Check (CRC) status of demodulating the frame. If unset, the modulation does not support CRC or the gateway did not provide a CRC status. If set to false, this message should not be processed.
    device_channel_index integer Index of the device channel that received the message. Set by Network Server.
    payload object
    raw_payload string
    received_at string Server time when a component received the message. The Gateway Server and Network Server set this value to their local server time of reception.
    rx_metadata object
    settings object TxSettings contains the settings for a transmission. This message is used on both uplink and downlink. On downlink, this is a scheduled transmission.
    Schema
    {
      "consumed_airtime": {
        "description": "Consumed airtime for the transmission of the uplink message. Calculated by Network Server using the RawPayload size and the transmission settings.",
        "type": "string"
      },
      "correlation_ids": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "crc_status": {
        "description": "Cyclic Redundancy Check (CRC) status of demodulating the frame.\nIf unset, the modulation does not support CRC or the gateway did not provide a CRC status.\nIf set to false, this message should not be processed.",
        "type": "boolean"
      },
      "device_channel_index": {
        "description": "Index of the device channel that received the message.\nSet by Network Server.",
        "format": "int64",
        "type": "integer"
      },
      "payload": {
        "properties": {
          "join_accept_payload": {
            "properties": {
              "cf_list": {
                "properties": {
                  "ch_masks": {
                    "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                    "items": {
                      "type": "boolean"
                    },
                    "type": "array"
                  },
                  "freq": {
                    "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                    "items": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "type": "array"
                  },
                  "type": {
                    "default": "FREQUENCIES",
                    "enum": [
                      "FREQUENCIES",
                      "CHANNEL_MASKS"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "dev_addr": {
                "example": "2600ABCD",
                "format": "string",
                "type": "string"
              },
              "dl_settings": {
                "properties": {
                  "opt_neg": {
                    "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                    "type": "boolean"
                  },
                  "rx1_dr_offset": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_dr": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "encrypted": {
                "format": "byte",
                "type": "string"
              },
              "join_nonce": {
                "example": "ABCDEF",
                "format": "string",
                "type": "string"
              },
              "net_id": {
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "rx_delay": {
                "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.",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "join_request_payload": {
            "properties": {
              "dev_eui": {
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "dev_nonce": {
                "example": "ABCD",
                "format": "string",
                "type": "string"
              },
              "join_eui": {
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          },
          "m_hdr": {
            "properties": {
              "m_type": {
                "default": "JOIN_REQUEST",
                "enum": [
                  "JOIN_REQUEST",
                  "JOIN_ACCEPT",
                  "UNCONFIRMED_UP",
                  "UNCONFIRMED_DOWN",
                  "CONFIRMED_UP",
                  "CONFIRMED_DOWN",
                  "REJOIN_REQUEST",
                  "PROPRIETARY"
                ],
                "type": "string"
              },
              "major": {
                "default": "LORAWAN_R1",
                "enum": [
                  "LORAWAN_R1"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "mac_payload": {
            "properties": {
              "decoded_payload": {
                "type": "object"
              },
              "f_hdr": {
                "properties": {
                  "dev_addr": {
                    "example": "2600ABCD",
                    "format": "string",
                    "type": "string"
                  },
                  "f_cnt": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "f_ctrl": {
                    "properties": {
                      "ack": {
                        "type": "boolean"
                      },
                      "adr": {
                        "type": "boolean"
                      },
                      "adr_ack_req": {
                        "description": "Only on uplink.",
                        "type": "boolean"
                      },
                      "class_b": {
                        "description": "Only on uplink.",
                        "type": "boolean"
                      },
                      "f_pending": {
                        "description": "Only on downlink.",
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "f_opts": {
                    "format": "byte",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "f_port": {
                "format": "int64",
                "type": "integer"
              },
              "frm_payload": {
                "format": "byte",
                "type": "string"
              },
              "full_f_cnt": {
                "description": "Full 32-bit FCnt value. Used internally by Network Server.",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "mic": {
            "format": "byte",
            "type": "string"
          },
          "rejoin_request_payload": {
            "properties": {
              "dev_eui": {
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "join_eui": {
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "net_id": {
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "rejoin_cnt": {
                "description": "Contains RJCount0 or RJCount1 depending on rejoin_type.",
                "format": "int64",
                "type": "integer"
              },
              "rejoin_type": {
                "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.",
                "enum": [
                  "CONTEXT",
                  "SESSION",
                  "KEYS"
                ],
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "title": "Message represents a LoRaWAN message",
        "type": "object"
      },
      "raw_payload": {
        "format": "byte",
        "type": "string"
      },
      "received_at": {
        "description": "Server time when a component received the message.\nThe Gateway Server and Network Server set this value to their local server time of reception.",
        "format": "date-time",
        "type": "string"
      },
      "rx_metadata": {
        "items": {
          "description": "Contains metadata for a received message. Each antenna that receives\na message corresponds to one RxMetadata.",
          "properties": {
            "advanced": {
              "title": "Advanced metadata fields\n- can be used for advanced information or experimental features that are not yet formally defined in the API\n- field names are written in snake_case",
              "type": "object"
            },
            "antenna_index": {
              "format": "int64",
              "type": "integer"
            },
            "channel_index": {
              "description": "Index of the gateway channel that received the message.",
              "format": "int64",
              "type": "integer"
            },
            "channel_rssi": {
              "description": "Received signal strength indicator of the channel (dBm).",
              "format": "float",
              "type": "number"
            },
            "downlink_path_constraint": {
              "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.",
              "enum": [
                "DOWNLINK_PATH_CONSTRAINT_NONE",
                "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
                "DOWNLINK_PATH_CONSTRAINT_NEVER"
              ],
              "type": "string"
            },
            "encrypted_fine_timestamp": {
              "description": "Encrypted gateway's internal fine timestamp when the Rx finished (nanoseconds).",
              "format": "byte",
              "type": "string"
            },
            "encrypted_fine_timestamp_key_id": {
              "type": "string"
            },
            "fine_timestamp": {
              "description": "Gateway's internal fine timestamp when the Rx finished (nanoseconds).",
              "format": "uint64",
              "type": "string"
            },
            "frequency_drift": {
              "description": "Frequency drift in Hz between start and end of an LR-FHSS packet (signed).",
              "format": "int32",
              "type": "integer"
            },
            "frequency_offset": {
              "description": "Frequency offset (Hz).",
              "format": "int64",
              "type": "string"
            },
            "gateway_ids": {
              "properties": {
                "eui": {
                  "description": "Secondary identifier, which can only be used in specific requests.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "gateway_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "gps_time": {
              "description": "Timestamp at the end of the transmission, provided by the gateway.\nGuaranteed to be based on a GPS PPS signal, with an accuracy of 1 millisecond.",
              "format": "date-time",
              "type": "string"
            },
            "hopping_width": {
              "description": "Hopping width; a number describing the number of steps of the LR-FHSS grid.",
              "format": "int64",
              "type": "integer"
            },
            "location": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "packet_broker": {
              "properties": {
                "forwarder_cluster_id": {
                  "description": "Forwarder Cluster ID of the Packet Broker Forwarder.",
                  "type": "string"
                },
                "forwarder_gateway_eui": {
                  "description": "Forwarder gateway EUI.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "forwarder_gateway_id": {
                  "description": "Forwarder gateway ID.",
                  "type": "string"
                },
                "forwarder_net_id": {
                  "description": "LoRa Alliance NetID of the Packet Broker Forwarder Member.",
                  "example": "000013",
                  "format": "string",
                  "type": "string"
                },
                "forwarder_tenant_id": {
                  "description": "Tenant ID managed by the Packet Broker Forwarder Member.",
                  "type": "string"
                },
                "home_network_cluster_id": {
                  "description": "Home Network Cluster ID of the Packet Broker Home Network.",
                  "type": "string"
                },
                "home_network_net_id": {
                  "description": "LoRa Alliance NetID of the Packet Broker Home Network Member.",
                  "example": "000013",
                  "format": "string",
                  "type": "string"
                },
                "home_network_tenant_id": {
                  "description": "Tenant ID managed by the Packet Broker Home Network Member.\nThis value is empty if it cannot be determined by the Packet Broker Router.",
                  "type": "string"
                },
                "hops": {
                  "description": "Hops that the message passed. Each Packet Broker Router service appends an entry.",
                  "items": {
                    "properties": {
                      "received_at": {
                        "description": "Time when the service received the message.",
                        "format": "date-time",
                        "type": "string"
                      },
                      "receiver_agent": {
                        "description": "Receiver agent.",
                        "type": "string"
                      },
                      "receiver_name": {
                        "description": "Receiver of the message.",
                        "type": "string"
                      },
                      "sender_address": {
                        "description": "Sender IP address or host name.",
                        "type": "string"
                      },
                      "sender_name": {
                        "description": "Sender of the message, typically the authorized client identifier.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "message_id": {
                  "description": "Message identifier generated by Packet Broker Router.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "received_at": {
              "description": "Timestamp at which the Gateway Server has received the message.",
              "format": "date-time",
              "type": "string"
            },
            "relay": {
              "properties": {
                "device_id": {
                  "description": "End device identifiers of the relay.",
                  "type": "string"
                },
                "wor_channel": {
                  "default": "RELAY_WOR_CHANNEL_DEFAULT",
                  "enum": [
                    "RELAY_WOR_CHANNEL_DEFAULT",
                    "RELAY_WOR_CHANNEL_SECONDARY"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "rssi": {
              "description": "Received signal strength indicator (dBm).\nThis value equals `channel_rssi`.",
              "format": "float",
              "type": "number"
            },
            "rssi_standard_deviation": {
              "description": "Standard deviation of the RSSI during preamble.",
              "format": "float",
              "type": "number"
            },
            "signal_rssi": {
              "description": "Received signal strength indicator of the signal (dBm).",
              "format": "float",
              "type": "number"
            },
            "snr": {
              "description": "Signal-to-noise ratio (dB).",
              "format": "float",
              "type": "number"
            },
            "time": {
              "description": "Timestamp at the end of the transmission, provided by the gateway. The accuracy is undefined.",
              "format": "date-time",
              "type": "string"
            },
            "timestamp": {
              "description": "Gateway concentrator timestamp when the Rx finished (microseconds).",
              "format": "int64",
              "type": "integer"
            },
            "uplink_token": {
              "description": "Uplink token to be included in the Tx request in class A downlink; injected by gateway, Gateway Server or fNS.",
              "format": "byte",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "settings": {
        "description": "TxSettings contains the settings for a transmission.\nThis message is used on both uplink and downlink.\nOn downlink, this is a scheduled transmission.",
        "properties": {
          "concentrator_timestamp": {
            "description": "Concentrator timestamp for the downlink as calculated by the Gateway Server scheduler.\nThis value takes into account necessary offsets such as the RTT (Round Trip Time) and TOA (Time Of Arrival).\nThis field is set and used only by the Gateway Server.",
            "format": "int64",
            "type": "string"
          },
          "data_rate": {
            "properties": {
              "fsk": {
                "properties": {
                  "bit_rate": {
                    "description": "Bit rate (bps).",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "lora": {
                "properties": {
                  "bandwidth": {
                    "description": "Bandwidth (Hz).",
                    "format": "int64",
                    "type": "integer"
                  },
                  "coding_rate": {
                    "type": "string"
                  },
                  "spreading_factor": {
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "lrfhss": {
                "properties": {
                  "coding_rate": {
                    "type": "string"
                  },
                  "modulation_type": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "operating_channel_width": {
                    "description": "Operating Channel Width (Hz).",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "downlink": {
            "description": "Transmission settings for downlink.",
            "properties": {
              "antenna_index": {
                "description": "Index of the antenna on which the uplink was received and/or downlink must be sent.",
                "format": "int64",
                "type": "integer"
              },
              "invert_polarization": {
                "description": "Invert LoRa polarization; false for LoRaWAN uplink, true for downlink.",
                "type": "boolean"
              },
              "tx_power": {
                "description": "Transmission power (dBm). Only on downlink.",
                "format": "float",
                "type": "number"
              }
            },
            "type": "object"
          },
          "enable_crc": {
            "description": "Send a CRC in the packet; only on uplink; on downlink, CRC should not be enabled.",
            "type": "boolean"
          },
          "frequency": {
            "description": "Frequency (Hz).",
            "format": "uint64",
            "type": "string"
          },
          "time": {
            "description": "Time of the gateway when the uplink message was received, or when the downlink message should be transmitted.\nFor downlink, this requires the gateway to have GPS time synchronization.",
            "format": "date-time",
            "type": "string"
          },
          "timestamp": {
            "description": "Timestamp of the gateway concentrator when the uplink message was received, or when the downlink message should be transmitted (microseconds).\nOn downlink, set timestamp to 0 and time to null to use immediate scheduling.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    protobufAny

    `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": <string>, "lastName": <string> } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" }
    Fields
    Name Type Description
    @type string A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
    Schema
    {
      "@type": {
        "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\nexpect 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.",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    protobufNullValue

    Supported values
    Name Description
    NULL_VALUE Null value.

    ADRAckDelayExponent

    Supported values
  • 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

    ADRAckDelayExponentValue

    Fields
    Name Type Description
    value string
    Schema
    {
      "value": {
        "default": "ADR_ACK_DELAY_1",
        "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"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ADRAckLimitExponent

    Supported values
  • 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

    ADRAckLimitExponentValue

    Fields
    Name Type Description
    value string
    Schema
    {
      "value": {
        "default": "ADR_ACK_LIMIT_1",
        "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"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ADRSettings

    Adaptive Data Rate settings.
    Fields
    Name Type Description
    disabled object Configuration options for cases in which ADR is to be disabled completely.
    dynamic object Configuration options for dynamic ADR.
    static object Configuration options for static ADR.
    Schema
    {
      "disabled": {
        "description": "Configuration options for cases in which ADR is to be disabled\ncompletely.",
        "type": "object"
      },
      "dynamic": {
        "description": "Configuration options for dynamic ADR.",
        "properties": {
          "channel_steering": {
            "description": "EXPERIMENTAL: Channel steering settings.",
            "properties": {
              "disabled": {
                "description": "Configuration options for cases in which ADR is not supposed to steer the end device\nto another set of channels.",
                "type": "object"
              },
              "lora_narrow": {
                "description": "Configuration options for LoRa narrow channels steering.\nThe narrow mode attempts to steer the end device towards\nusing the LoRa modulated, 125kHz bandwidth channels.",
                "type": "object"
              }
            },
            "type": "object"
          },
          "margin": {
            "description": "The ADR margin (dB) tells the network server how much margin it should add in ADR requests.\nA bigger margin is less efficient, but gives a better chance of successful reception.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "float",
            "type": "number"
          },
          "max_data_rate_index": {
            "properties": {
              "value": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "max_nb_trans": {
            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          },
          "max_tx_power_index": {
            "description": "Maximum transmission power index.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          },
          "min_data_rate_index": {
            "properties": {
              "value": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "min_nb_trans": {
            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          },
          "min_tx_power_index": {
            "description": "Minimum transmission power index.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          },
          "overrides": {
            "description": "EXPERIMENTAL: Configuration overrides.",
            "properties": {
              "data_rate_0": {
                "description": "EXPERIMENTAL: Data rate index override settings.",
                "properties": {
                  "max_nb_trans": {
                    "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "min_nb_trans": {
                    "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "data_rate_1": {
                "description": "EXPERIMENTAL: Data rate index override settings.",
                "properties": {
                  "max_nb_trans": {
                    "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "min_nb_trans": {
                    "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "data_rate_10": {
                "description": "EXPERIMENTAL: Data rate index override settings.",
                "properties": {
                  "max_nb_trans": {
                    "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "min_nb_trans": {
                    "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "data_rate_11": {
                "description": "EXPERIMENTAL: Data rate index override settings.",
                "properties": {
                  "max_nb_trans": {
                    "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "min_nb_trans": {
                    "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "data_rate_12": {
                "description": "EXPERIMENTAL: Data rate index override settings.",
                "properties": {
                  "max_nb_trans": {
                    "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "min_nb_trans": {
                    "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "data_rate_13": {
                "description": "EXPERIMENTAL: Data rate index override settings.",
                "properties": {
                  "max_nb_trans": {
                    "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "min_nb_trans": {
                    "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "data_rate_14": {
                "description": "EXPERIMENTAL: Data rate index override settings.",
                "properties": {
                  "max_nb_trans": {
                    "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "min_nb_trans": {
                    "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "data_rate_15": {
                "description": "EXPERIMENTAL: Data rate index override settings.",
                "properties": {
                  "max_nb_trans": {
                    "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "min_nb_trans": {
                    "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "data_rate_2": {
                "description": "EXPERIMENTAL: Data rate index override settings.",
                "properties": {
                  "max_nb_trans": {
                    "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "min_nb_trans": {
                    "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "data_rate_3": {
                "description": "EXPERIMENTAL: Data rate index override settings.",
                "properties": {
                  "max_nb_trans": {
                    "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "min_nb_trans": {
                    "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "data_rate_4": {
                "description": "EXPERIMENTAL: Data rate index override settings.",
                "properties": {
                  "max_nb_trans": {
                    "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "min_nb_trans": {
                    "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "data_rate_5": {
                "description": "EXPERIMENTAL: Data rate index override settings.",
                "properties": {
                  "max_nb_trans": {
                    "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "min_nb_trans": {
                    "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "data_rate_6": {
                "description": "EXPERIMENTAL: Data rate index override settings.",
                "properties": {
                  "max_nb_trans": {
                    "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "min_nb_trans": {
                    "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "data_rate_7": {
                "description": "EXPERIMENTAL: Data rate index override settings.",
                "properties": {
                  "max_nb_trans": {
                    "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "min_nb_trans": {
                    "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "data_rate_8": {
                "description": "EXPERIMENTAL: Data rate index override settings.",
                "properties": {
                  "max_nb_trans": {
                    "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "min_nb_trans": {
                    "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "data_rate_9": {
                "description": "EXPERIMENTAL: Data rate index override settings.",
                "properties": {
                  "max_nb_trans": {
                    "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "min_nb_trans": {
                    "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "static": {
        "description": "Configuration options for static ADR.",
        "properties": {
          "data_rate_index": {
            "default": "DATA_RATE_0",
            "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"
            ],
            "type": "string"
          },
          "nb_trans": {
            "description": "Number of retransmissions.",
            "format": "int64",
            "type": "integer"
          },
          "tx_power_index": {
            "description": "Transmission power index to use.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ADRSettingsDisabledMode

    APIKey

    Fields
    Name Type Description
    created_at string
    expires_at string
    id string Immutable and unique public identifier for the API key. Generated by the Access Server.
    key string Immutable and unique secret value of the API key. Generated by the Access Server.
    name string User-defined (friendly) name for the API key.
    rights string Rights that are granted to this API key.
    updated_at string
    Schema
    {
      "created_at": {
        "format": "date-time",
        "type": "string"
      },
      "expires_at": {
        "format": "date-time",
        "type": "string"
      },
      "id": {
        "description": "Immutable and unique public identifier for the API key.\nGenerated by the Access Server.",
        "type": "string"
      },
      "key": {
        "description": "Immutable and unique secret value of the API key.\nGenerated by the Access Server.",
        "type": "string"
      },
      "name": {
        "description": "User-defined (friendly) name for the API key.",
        "type": "string"
      },
      "rights": {
        "description": "Rights that are granted to this API key.",
        "items": {
          "default": "right_invalid",
          "description": "Right is the enum that defines all the different rights to do something in the network.\n\n - RIGHT_USER_INFO: The right to view user information.\n - RIGHT_USER_SETTINGS_BASIC: The right to edit basic user settings.\n - RIGHT_USER_LIST: The right to list users accounts.\n - RIGHT_USER_CREATE: The right to create an user account.\n - RIGHT_USER_SETTINGS_API_KEYS: The right to view and edit user API keys.\n - RIGHT_USER_DELETE: The right to delete user account.\n - RIGHT_USER_PURGE: The right to purge user account.\n - RIGHT_USER_AUTHORIZED_CLIENTS: The right to view and edit authorized OAuth clients of the user.\n - RIGHT_USER_APPLICATIONS_LIST: The right to list applications the user is a collaborator of.\n - RIGHT_USER_APPLICATIONS_CREATE: The right to create an application under the user account.\n - RIGHT_USER_GATEWAYS_LIST: The right to list gateways the user is a collaborator of.\n - RIGHT_USER_GATEWAYS_CREATE: The right to create a gateway under the account of the user.\n - RIGHT_USER_CLIENTS_LIST: The right to list OAuth clients the user is a collaborator of.\n - RIGHT_USER_CLIENTS_CREATE: The right to create an OAuth client under the account of the user.\n - RIGHT_USER_ORGANIZATIONS_LIST: The right to list organizations the user is a member of.\n - RIGHT_USER_ORGANIZATIONS_CREATE: The right to create an organization under the user account.\n - RIGHT_USER_NOTIFICATIONS_READ: The right to read notifications sent to the user.\n - RIGHT_USER_ALL: The pseudo-right for all (current and future) user rights.\n - RIGHT_APPLICATION_INFO: The right to view application information.\n - RIGHT_APPLICATION_SETTINGS_BASIC: The right to edit basic application settings.\n - RIGHT_APPLICATION_SETTINGS_API_KEYS: The right to view and edit application API keys.\n - RIGHT_APPLICATION_SETTINGS_COLLABORATORS: The right to view and edit application collaborators.\n - RIGHT_APPLICATION_SETTINGS_PACKAGES: The right to view and edit application packages and associations.\n - RIGHT_APPLICATION_DELETE: The right to delete application.\n - RIGHT_APPLICATION_PURGE: The right to purge application.\n - RIGHT_APPLICATION_DEVICES_READ: The right to view devices in application.\n - RIGHT_APPLICATION_DEVICES_WRITE: The right to create devices in application.\n - RIGHT_APPLICATION_DEVICES_READ_KEYS: The right to view device keys in application.\nNote that keys may not be stored in a way that supports viewing them.\n - RIGHT_APPLICATION_DEVICES_WRITE_KEYS: The right to edit device keys in application.\n - RIGHT_APPLICATION_TRAFFIC_READ: The right to read application traffic (uplink and downlink).\n - RIGHT_APPLICATION_TRAFFIC_UP_WRITE: The right to write uplink application traffic.\n - RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE: The right to write downlink application traffic.\n - RIGHT_APPLICATION_LINK: The right to link as Application to a Network Server for traffic exchange,\ni.e. read uplink and write downlink (API keys only).\nThis right is typically only given to an Application Server.\nThis right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ,\nand RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.\n - RIGHT_APPLICATION_ALL: The pseudo-right for all (current and future) application rights.\n - RIGHT_CLIENT_ALL: The pseudo-right for all (current and future) OAuth client rights.\n - RIGHT_CLIENT_INFO: The right to read client information.\n - RIGHT_CLIENT_SETTINGS_BASIC: The right to edit basic client settings.\n - RIGHT_CLIENT_SETTINGS_COLLABORATORS: The right to view and edit client collaborators.\n - RIGHT_CLIENT_DELETE: The right to delete a client.\n - RIGHT_CLIENT_PURGE: The right to purge a client.\n - RIGHT_GATEWAY_INFO: The right to view gateway information.\n - RIGHT_GATEWAY_SETTINGS_BASIC: The right to edit basic gateway settings.\n - RIGHT_GATEWAY_SETTINGS_API_KEYS: The right to view and edit gateway API keys.\n - RIGHT_GATEWAY_SETTINGS_COLLABORATORS: The right to view and edit gateway collaborators.\n - RIGHT_GATEWAY_DELETE: The right to delete gateway.\n - RIGHT_GATEWAY_PURGE: The right to purge gateway.\n - RIGHT_GATEWAY_TRAFFIC_READ: The right to read gateway traffic.\n - RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE: The right to write downlink gateway traffic.\n - RIGHT_GATEWAY_LINK: The right to link as Gateway to a Gateway Server for traffic exchange,\ni.e. write uplink and read downlink (API keys only)\nThis right is typically only given to a gateway.\nThis right implies RIGHT_GATEWAY_INFO.\n - RIGHT_GATEWAY_STATUS_READ: The right to view gateway status.\n - RIGHT_GATEWAY_LOCATION_READ: The right to view view gateway location.\n - RIGHT_GATEWAY_WRITE_SECRETS: The right to store secrets associated with this gateway.\n - RIGHT_GATEWAY_READ_SECRETS: The right to retrieve secrets associated with this gateway.\n - RIGHT_GATEWAY_ALL: The pseudo-right for all (current and future) gateway rights.\n - RIGHT_ORGANIZATION_INFO: The right to view organization information.\n - RIGHT_ORGANIZATION_SETTINGS_BASIC: The right to edit basic organization settings.\n - RIGHT_ORGANIZATION_SETTINGS_API_KEYS: The right to view and edit organization API keys.\n - RIGHT_ORGANIZATION_SETTINGS_MEMBERS: The right to view and edit organization members.\n - RIGHT_ORGANIZATION_DELETE: The right to delete organization.\n - RIGHT_ORGANIZATION_PURGE: The right to purge organization.\n - RIGHT_ORGANIZATION_APPLICATIONS_LIST: The right to list the applications the organization is a collaborator of.\n - RIGHT_ORGANIZATION_APPLICATIONS_CREATE: The right to create an application under the organization.\n - RIGHT_ORGANIZATION_GATEWAYS_LIST: The right to list the gateways the organization is a collaborator of.\n - RIGHT_ORGANIZATION_GATEWAYS_CREATE: The right to create a gateway under the organization.\n - RIGHT_ORGANIZATION_CLIENTS_LIST: The right to list the OAuth clients the organization is a collaborator of.\n - RIGHT_ORGANIZATION_CLIENTS_CREATE: The right to create an OAuth client under the organization.\n - RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR: The right to add the organization as a collaborator on an existing entity.\n - RIGHT_ORGANIZATION_ALL: The pseudo-right for all (current and future) organization rights.\n - RIGHT_SEND_INVITES: The right to send invites to new users.\nNote that this is not prefixed with \"USER_\"; it is not a right on the user entity.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE: The right to create an alert notification profile.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_INFO: The right to view an alert notification profile information.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_LIST: The right to list the alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE: The right to update an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE: The right to delete an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE: The right to create an alert notification receiver.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO: The right to view an alert notification receiver information.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST: The right to list the alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE: The right to update an alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE: The right to delete an alert notification receivers.\n - RIGHT_AUTHENTICATION_PROVIDER_CREATE: The right to create an authentication provider.\n - RIGHT_AUTHENTICATION_PROVIDER_INFO: The right to view an authentication provider information.\n - RIGHT_AUTHENTICATION_PROVIDER_LIST: The right to list the authentication providers\n - RIGHT_AUTHENTICATION_PROVIDER_UPDATE: The right to update an authentication providers.\n - RIGHT_AUTHENTICATION_PROVIDER_DELETE: The right to delete an authentication providers.\n - RIGHT_EXTERNAL_USER_CREATE: The right to create an external user.\n - RIGHT_EXTERNAL_USER_INFO: The right to view an external user's information.\n - RIGHT_EXTERNAL_USER_DELETE: The right to delete an external user.\n - RIGHT_PACKET_BROKER_AGENT_READ: The right to read any information related to the PBA.\n - RIGHT_PACKET_BROKER_AGENT_WRITE: The right to perform operations in the PBA.\n - RIGHT_TENANT_CONFIGURATION_UPDATE: The right to update a tenant's configuration.\n - RIGHT_LABEL_CREATE: The right to create a label.\n - RIGHT_LABEL_INFO: The right to view a label's information.\n - RIGHT_LABELS_LIST: The right to list the labels.\n - RIGHT_LABEL_UPDATE: The right to update a label.\n - RIGHT_LABEL_DELETE: The right to delete a label.\n - RIGHT_LABEL_ASSIGN: The right to assign a label to an entity.\n - RIGHT_ALL: The pseudo-right for all (current and future) possible rights.",
          "enum": [
            "right_invalid",
            "RIGHT_USER_INFO",
            "RIGHT_USER_SETTINGS_BASIC",
            "RIGHT_USER_LIST",
            "RIGHT_USER_CREATE",
            "RIGHT_USER_SETTINGS_API_KEYS",
            "RIGHT_USER_DELETE",
            "RIGHT_USER_PURGE",
            "RIGHT_USER_AUTHORIZED_CLIENTS",
            "RIGHT_USER_APPLICATIONS_LIST",
            "RIGHT_USER_APPLICATIONS_CREATE",
            "RIGHT_USER_GATEWAYS_LIST",
            "RIGHT_USER_GATEWAYS_CREATE",
            "RIGHT_USER_CLIENTS_LIST",
            "RIGHT_USER_CLIENTS_CREATE",
            "RIGHT_USER_ORGANIZATIONS_LIST",
            "RIGHT_USER_ORGANIZATIONS_CREATE",
            "RIGHT_USER_NOTIFICATIONS_READ",
            "RIGHT_USER_ALL",
            "RIGHT_APPLICATION_INFO",
            "RIGHT_APPLICATION_SETTINGS_BASIC",
            "RIGHT_APPLICATION_SETTINGS_API_KEYS",
            "RIGHT_APPLICATION_SETTINGS_COLLABORATORS",
            "RIGHT_APPLICATION_SETTINGS_PACKAGES",
            "RIGHT_APPLICATION_DELETE",
            "RIGHT_APPLICATION_PURGE",
            "RIGHT_APPLICATION_DEVICES_READ",
            "RIGHT_APPLICATION_DEVICES_WRITE",
            "RIGHT_APPLICATION_DEVICES_READ_KEYS",
            "RIGHT_APPLICATION_DEVICES_WRITE_KEYS",
            "RIGHT_APPLICATION_TRAFFIC_READ",
            "RIGHT_APPLICATION_TRAFFIC_UP_WRITE",
            "RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE",
            "RIGHT_APPLICATION_LINK",
            "RIGHT_APPLICATION_ALL",
            "RIGHT_CLIENT_ALL",
            "RIGHT_CLIENT_INFO",
            "RIGHT_CLIENT_SETTINGS_BASIC",
            "RIGHT_CLIENT_SETTINGS_COLLABORATORS",
            "RIGHT_CLIENT_DELETE",
            "RIGHT_CLIENT_PURGE",
            "RIGHT_GATEWAY_INFO",
            "RIGHT_GATEWAY_SETTINGS_BASIC",
            "RIGHT_GATEWAY_SETTINGS_API_KEYS",
            "RIGHT_GATEWAY_SETTINGS_COLLABORATORS",
            "RIGHT_GATEWAY_DELETE",
            "RIGHT_GATEWAY_PURGE",
            "RIGHT_GATEWAY_TRAFFIC_READ",
            "RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE",
            "RIGHT_GATEWAY_LINK",
            "RIGHT_GATEWAY_STATUS_READ",
            "RIGHT_GATEWAY_LOCATION_READ",
            "RIGHT_GATEWAY_WRITE_SECRETS",
            "RIGHT_GATEWAY_READ_SECRETS",
            "RIGHT_GATEWAY_ALL",
            "RIGHT_ORGANIZATION_INFO",
            "RIGHT_ORGANIZATION_SETTINGS_BASIC",
            "RIGHT_ORGANIZATION_SETTINGS_API_KEYS",
            "RIGHT_ORGANIZATION_SETTINGS_MEMBERS",
            "RIGHT_ORGANIZATION_DELETE",
            "RIGHT_ORGANIZATION_PURGE",
            "RIGHT_ORGANIZATION_APPLICATIONS_LIST",
            "RIGHT_ORGANIZATION_APPLICATIONS_CREATE",
            "RIGHT_ORGANIZATION_GATEWAYS_LIST",
            "RIGHT_ORGANIZATION_GATEWAYS_CREATE",
            "RIGHT_ORGANIZATION_CLIENTS_LIST",
            "RIGHT_ORGANIZATION_CLIENTS_CREATE",
            "RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR",
            "RIGHT_ORGANIZATION_ALL",
            "RIGHT_SEND_INVITES",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_INFO",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_LIST",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE",
            "RIGHT_AUTHENTICATION_PROVIDER_CREATE",
            "RIGHT_AUTHENTICATION_PROVIDER_INFO",
            "RIGHT_AUTHENTICATION_PROVIDER_LIST",
            "RIGHT_AUTHENTICATION_PROVIDER_UPDATE",
            "RIGHT_AUTHENTICATION_PROVIDER_DELETE",
            "RIGHT_EXTERNAL_USER_CREATE",
            "RIGHT_EXTERNAL_USER_INFO",
            "RIGHT_EXTERNAL_USER_DELETE",
            "RIGHT_PACKET_BROKER_AGENT_READ",
            "RIGHT_PACKET_BROKER_AGENT_WRITE",
            "RIGHT_TENANT_CONFIGURATION_UPDATE",
            "RIGHT_LABEL_CREATE",
            "RIGHT_LABEL_INFO",
            "RIGHT_LABELS_LIST",
            "RIGHT_LABEL_UPDATE",
            "RIGHT_LABEL_DELETE",
            "RIGHT_LABEL_ASSIGN",
            "RIGHT_ALL"
          ],
          "type": "string"
        },
        "type": "array"
      },
      "updated_at": {
        "format": "date-time",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    APIKeys

    Fields
    Name Type Description
    api_keys object
    Schema
    {
      "api_keys": {
        "items": {
          "properties": {
            "created_at": {
              "format": "date-time",
              "type": "string"
            },
            "expires_at": {
              "format": "date-time",
              "type": "string"
            },
            "id": {
              "description": "Immutable and unique public identifier for the API key.\nGenerated by the Access Server.",
              "type": "string"
            },
            "key": {
              "description": "Immutable and unique secret value of the API key.\nGenerated by the Access Server.",
              "type": "string"
            },
            "name": {
              "description": "User-defined (friendly) name for the API key.",
              "type": "string"
            },
            "rights": {
              "description": "Rights that are granted to this API key.",
              "items": {
                "default": "right_invalid",
                "description": "Right is the enum that defines all the different rights to do something in the network.\n\n - RIGHT_USER_INFO: The right to view user information.\n - RIGHT_USER_SETTINGS_BASIC: The right to edit basic user settings.\n - RIGHT_USER_LIST: The right to list users accounts.\n - RIGHT_USER_CREATE: The right to create an user account.\n - RIGHT_USER_SETTINGS_API_KEYS: The right to view and edit user API keys.\n - RIGHT_USER_DELETE: The right to delete user account.\n - RIGHT_USER_PURGE: The right to purge user account.\n - RIGHT_USER_AUTHORIZED_CLIENTS: The right to view and edit authorized OAuth clients of the user.\n - RIGHT_USER_APPLICATIONS_LIST: The right to list applications the user is a collaborator of.\n - RIGHT_USER_APPLICATIONS_CREATE: The right to create an application under the user account.\n - RIGHT_USER_GATEWAYS_LIST: The right to list gateways the user is a collaborator of.\n - RIGHT_USER_GATEWAYS_CREATE: The right to create a gateway under the account of the user.\n - RIGHT_USER_CLIENTS_LIST: The right to list OAuth clients the user is a collaborator of.\n - RIGHT_USER_CLIENTS_CREATE: The right to create an OAuth client under the account of the user.\n - RIGHT_USER_ORGANIZATIONS_LIST: The right to list organizations the user is a member of.\n - RIGHT_USER_ORGANIZATIONS_CREATE: The right to create an organization under the user account.\n - RIGHT_USER_NOTIFICATIONS_READ: The right to read notifications sent to the user.\n - RIGHT_USER_ALL: The pseudo-right for all (current and future) user rights.\n - RIGHT_APPLICATION_INFO: The right to view application information.\n - RIGHT_APPLICATION_SETTINGS_BASIC: The right to edit basic application settings.\n - RIGHT_APPLICATION_SETTINGS_API_KEYS: The right to view and edit application API keys.\n - RIGHT_APPLICATION_SETTINGS_COLLABORATORS: The right to view and edit application collaborators.\n - RIGHT_APPLICATION_SETTINGS_PACKAGES: The right to view and edit application packages and associations.\n - RIGHT_APPLICATION_DELETE: The right to delete application.\n - RIGHT_APPLICATION_PURGE: The right to purge application.\n - RIGHT_APPLICATION_DEVICES_READ: The right to view devices in application.\n - RIGHT_APPLICATION_DEVICES_WRITE: The right to create devices in application.\n - RIGHT_APPLICATION_DEVICES_READ_KEYS: The right to view device keys in application.\nNote that keys may not be stored in a way that supports viewing them.\n - RIGHT_APPLICATION_DEVICES_WRITE_KEYS: The right to edit device keys in application.\n - RIGHT_APPLICATION_TRAFFIC_READ: The right to read application traffic (uplink and downlink).\n - RIGHT_APPLICATION_TRAFFIC_UP_WRITE: The right to write uplink application traffic.\n - RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE: The right to write downlink application traffic.\n - RIGHT_APPLICATION_LINK: The right to link as Application to a Network Server for traffic exchange,\ni.e. read uplink and write downlink (API keys only).\nThis right is typically only given to an Application Server.\nThis right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ,\nand RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.\n - RIGHT_APPLICATION_ALL: The pseudo-right for all (current and future) application rights.\n - RIGHT_CLIENT_ALL: The pseudo-right for all (current and future) OAuth client rights.\n - RIGHT_CLIENT_INFO: The right to read client information.\n - RIGHT_CLIENT_SETTINGS_BASIC: The right to edit basic client settings.\n - RIGHT_CLIENT_SETTINGS_COLLABORATORS: The right to view and edit client collaborators.\n - RIGHT_CLIENT_DELETE: The right to delete a client.\n - RIGHT_CLIENT_PURGE: The right to purge a client.\n - RIGHT_GATEWAY_INFO: The right to view gateway information.\n - RIGHT_GATEWAY_SETTINGS_BASIC: The right to edit basic gateway settings.\n - RIGHT_GATEWAY_SETTINGS_API_KEYS: The right to view and edit gateway API keys.\n - RIGHT_GATEWAY_SETTINGS_COLLABORATORS: The right to view and edit gateway collaborators.\n - RIGHT_GATEWAY_DELETE: The right to delete gateway.\n - RIGHT_GATEWAY_PURGE: The right to purge gateway.\n - RIGHT_GATEWAY_TRAFFIC_READ: The right to read gateway traffic.\n - RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE: The right to write downlink gateway traffic.\n - RIGHT_GATEWAY_LINK: The right to link as Gateway to a Gateway Server for traffic exchange,\ni.e. write uplink and read downlink (API keys only)\nThis right is typically only given to a gateway.\nThis right implies RIGHT_GATEWAY_INFO.\n - RIGHT_GATEWAY_STATUS_READ: The right to view gateway status.\n - RIGHT_GATEWAY_LOCATION_READ: The right to view view gateway location.\n - RIGHT_GATEWAY_WRITE_SECRETS: The right to store secrets associated with this gateway.\n - RIGHT_GATEWAY_READ_SECRETS: The right to retrieve secrets associated with this gateway.\n - RIGHT_GATEWAY_ALL: The pseudo-right for all (current and future) gateway rights.\n - RIGHT_ORGANIZATION_INFO: The right to view organization information.\n - RIGHT_ORGANIZATION_SETTINGS_BASIC: The right to edit basic organization settings.\n - RIGHT_ORGANIZATION_SETTINGS_API_KEYS: The right to view and edit organization API keys.\n - RIGHT_ORGANIZATION_SETTINGS_MEMBERS: The right to view and edit organization members.\n - RIGHT_ORGANIZATION_DELETE: The right to delete organization.\n - RIGHT_ORGANIZATION_PURGE: The right to purge organization.\n - RIGHT_ORGANIZATION_APPLICATIONS_LIST: The right to list the applications the organization is a collaborator of.\n - RIGHT_ORGANIZATION_APPLICATIONS_CREATE: The right to create an application under the organization.\n - RIGHT_ORGANIZATION_GATEWAYS_LIST: The right to list the gateways the organization is a collaborator of.\n - RIGHT_ORGANIZATION_GATEWAYS_CREATE: The right to create a gateway under the organization.\n - RIGHT_ORGANIZATION_CLIENTS_LIST: The right to list the OAuth clients the organization is a collaborator of.\n - RIGHT_ORGANIZATION_CLIENTS_CREATE: The right to create an OAuth client under the organization.\n - RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR: The right to add the organization as a collaborator on an existing entity.\n - RIGHT_ORGANIZATION_ALL: The pseudo-right for all (current and future) organization rights.\n - RIGHT_SEND_INVITES: The right to send invites to new users.\nNote that this is not prefixed with \"USER_\"; it is not a right on the user entity.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE: The right to create an alert notification profile.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_INFO: The right to view an alert notification profile information.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_LIST: The right to list the alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE: The right to update an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE: The right to delete an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE: The right to create an alert notification receiver.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO: The right to view an alert notification receiver information.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST: The right to list the alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE: The right to update an alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE: The right to delete an alert notification receivers.\n - RIGHT_AUTHENTICATION_PROVIDER_CREATE: The right to create an authentication provider.\n - RIGHT_AUTHENTICATION_PROVIDER_INFO: The right to view an authentication provider information.\n - RIGHT_AUTHENTICATION_PROVIDER_LIST: The right to list the authentication providers\n - RIGHT_AUTHENTICATION_PROVIDER_UPDATE: The right to update an authentication providers.\n - RIGHT_AUTHENTICATION_PROVIDER_DELETE: The right to delete an authentication providers.\n - RIGHT_EXTERNAL_USER_CREATE: The right to create an external user.\n - RIGHT_EXTERNAL_USER_INFO: The right to view an external user's information.\n - RIGHT_EXTERNAL_USER_DELETE: The right to delete an external user.\n - RIGHT_PACKET_BROKER_AGENT_READ: The right to read any information related to the PBA.\n - RIGHT_PACKET_BROKER_AGENT_WRITE: The right to perform operations in the PBA.\n - RIGHT_TENANT_CONFIGURATION_UPDATE: The right to update a tenant's configuration.\n - RIGHT_LABEL_CREATE: The right to create a label.\n - RIGHT_LABEL_INFO: The right to view a label's information.\n - RIGHT_LABELS_LIST: The right to list the labels.\n - RIGHT_LABEL_UPDATE: The right to update a label.\n - RIGHT_LABEL_DELETE: The right to delete a label.\n - RIGHT_LABEL_ASSIGN: The right to assign a label to an entity.\n - RIGHT_ALL: The pseudo-right for all (current and future) possible rights.",
                "enum": [
                  "right_invalid",
                  "RIGHT_USER_INFO",
                  "RIGHT_USER_SETTINGS_BASIC",
                  "RIGHT_USER_LIST",
                  "RIGHT_USER_CREATE",
                  "RIGHT_USER_SETTINGS_API_KEYS",
                  "RIGHT_USER_DELETE",
                  "RIGHT_USER_PURGE",
                  "RIGHT_USER_AUTHORIZED_CLIENTS",
                  "RIGHT_USER_APPLICATIONS_LIST",
                  "RIGHT_USER_APPLICATIONS_CREATE",
                  "RIGHT_USER_GATEWAYS_LIST",
                  "RIGHT_USER_GATEWAYS_CREATE",
                  "RIGHT_USER_CLIENTS_LIST",
                  "RIGHT_USER_CLIENTS_CREATE",
                  "RIGHT_USER_ORGANIZATIONS_LIST",
                  "RIGHT_USER_ORGANIZATIONS_CREATE",
                  "RIGHT_USER_NOTIFICATIONS_READ",
                  "RIGHT_USER_ALL",
                  "RIGHT_APPLICATION_INFO",
                  "RIGHT_APPLICATION_SETTINGS_BASIC",
                  "RIGHT_APPLICATION_SETTINGS_API_KEYS",
                  "RIGHT_APPLICATION_SETTINGS_COLLABORATORS",
                  "RIGHT_APPLICATION_SETTINGS_PACKAGES",
                  "RIGHT_APPLICATION_DELETE",
                  "RIGHT_APPLICATION_PURGE",
                  "RIGHT_APPLICATION_DEVICES_READ",
                  "RIGHT_APPLICATION_DEVICES_WRITE",
                  "RIGHT_APPLICATION_DEVICES_READ_KEYS",
                  "RIGHT_APPLICATION_DEVICES_WRITE_KEYS",
                  "RIGHT_APPLICATION_TRAFFIC_READ",
                  "RIGHT_APPLICATION_TRAFFIC_UP_WRITE",
                  "RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE",
                  "RIGHT_APPLICATION_LINK",
                  "RIGHT_APPLICATION_ALL",
                  "RIGHT_CLIENT_ALL",
                  "RIGHT_CLIENT_INFO",
                  "RIGHT_CLIENT_SETTINGS_BASIC",
                  "RIGHT_CLIENT_SETTINGS_COLLABORATORS",
                  "RIGHT_CLIENT_DELETE",
                  "RIGHT_CLIENT_PURGE",
                  "RIGHT_GATEWAY_INFO",
                  "RIGHT_GATEWAY_SETTINGS_BASIC",
                  "RIGHT_GATEWAY_SETTINGS_API_KEYS",
                  "RIGHT_GATEWAY_SETTINGS_COLLABORATORS",
                  "RIGHT_GATEWAY_DELETE",
                  "RIGHT_GATEWAY_PURGE",
                  "RIGHT_GATEWAY_TRAFFIC_READ",
                  "RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE",
                  "RIGHT_GATEWAY_LINK",
                  "RIGHT_GATEWAY_STATUS_READ",
                  "RIGHT_GATEWAY_LOCATION_READ",
                  "RIGHT_GATEWAY_WRITE_SECRETS",
                  "RIGHT_GATEWAY_READ_SECRETS",
                  "RIGHT_GATEWAY_ALL",
                  "RIGHT_ORGANIZATION_INFO",
                  "RIGHT_ORGANIZATION_SETTINGS_BASIC",
                  "RIGHT_ORGANIZATION_SETTINGS_API_KEYS",
                  "RIGHT_ORGANIZATION_SETTINGS_MEMBERS",
                  "RIGHT_ORGANIZATION_DELETE",
                  "RIGHT_ORGANIZATION_PURGE",
                  "RIGHT_ORGANIZATION_APPLICATIONS_LIST",
                  "RIGHT_ORGANIZATION_APPLICATIONS_CREATE",
                  "RIGHT_ORGANIZATION_GATEWAYS_LIST",
                  "RIGHT_ORGANIZATION_GATEWAYS_CREATE",
                  "RIGHT_ORGANIZATION_CLIENTS_LIST",
                  "RIGHT_ORGANIZATION_CLIENTS_CREATE",
                  "RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR",
                  "RIGHT_ORGANIZATION_ALL",
                  "RIGHT_SEND_INVITES",
                  "RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE",
                  "RIGHT_ALERT_NOTIFICATION_PROFILE_INFO",
                  "RIGHT_ALERT_NOTIFICATION_PROFILE_LIST",
                  "RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE",
                  "RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE",
                  "RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE",
                  "RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO",
                  "RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST",
                  "RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE",
                  "RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE",
                  "RIGHT_AUTHENTICATION_PROVIDER_CREATE",
                  "RIGHT_AUTHENTICATION_PROVIDER_INFO",
                  "RIGHT_AUTHENTICATION_PROVIDER_LIST",
                  "RIGHT_AUTHENTICATION_PROVIDER_UPDATE",
                  "RIGHT_AUTHENTICATION_PROVIDER_DELETE",
                  "RIGHT_EXTERNAL_USER_CREATE",
                  "RIGHT_EXTERNAL_USER_INFO",
                  "RIGHT_EXTERNAL_USER_DELETE",
                  "RIGHT_PACKET_BROKER_AGENT_READ",
                  "RIGHT_PACKET_BROKER_AGENT_WRITE",
                  "RIGHT_TENANT_CONFIGURATION_UPDATE",
                  "RIGHT_LABEL_CREATE",
                  "RIGHT_LABEL_INFO",
                  "RIGHT_LABELS_LIST",
                  "RIGHT_LABEL_UPDATE",
                  "RIGHT_LABEL_DELETE",
                  "RIGHT_LABEL_ASSIGN",
                  "RIGHT_ALL"
                ],
                "type": "string"
              },
              "type": "array"
            },
            "updated_at": {
              "format": "date-time",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    AggregatedDutyCycle

    Supported values
    Name Description
    DUTY_CYCLE_1 100%.
    DUTY_CYCLE_2 50%.
    DUTY_CYCLE_4 25%.
    DUTY_CYCLE_8 12.5%.
    DUTY_CYCLE_16 6.25%.
    DUTY_CYCLE_32 3.125%.
    DUTY_CYCLE_64 1.5625%.
    DUTY_CYCLE_128 Roughly 0.781%.
    DUTY_CYCLE_256 Roughly 0.390%.
    DUTY_CYCLE_512 Roughly 0.195%.
    DUTY_CYCLE_1024 Roughly 0.098%.
    DUTY_CYCLE_2048 Roughly 0.049%.
    DUTY_CYCLE_4096 Roughly 0.024%.
    DUTY_CYCLE_8192 Roughly 0.012%.
    DUTY_CYCLE_16384 Roughly 0.006%.
    DUTY_CYCLE_32768 Roughly 0.003%.

    AggregatedDutyCycleValue

    Fields
    Name Type Description
    value string - DUTY_CYCLE_1: 100%. - DUTY_CYCLE_2: 50%. - DUTY_CYCLE_4: 25%. - DUTY_CYCLE_8: 12.5%. - DUTY_CYCLE_16: 6.25%. - DUTY_CYCLE_32: 3.125%. - DUTY_CYCLE_64: 1.5625%. - DUTY_CYCLE_128: Roughly 0.781%. - DUTY_CYCLE_256: Roughly 0.390%. - DUTY_CYCLE_512: Roughly 0.195%. - DUTY_CYCLE_1024: Roughly 0.098%. - DUTY_CYCLE_2048: Roughly 0.049%. - DUTY_CYCLE_4096: Roughly 0.024%. - DUTY_CYCLE_8192: Roughly 0.012%. - DUTY_CYCLE_16384: Roughly 0.006%. - DUTY_CYCLE_32768: Roughly 0.003%.
    Schema
    {
      "value": {
        "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%.",
        "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"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    AlertNotificationProfile

    Fields
    Name Type Description
    created_at string
    description string
    ids object
    is_default boolean Whether this profile is the default alert notification profile for the network.
    name string
    receivers_ids object List of receivers that will be notified when an alert is triggered for this profile.
    updated_at string
    Schema
    {
      "created_at": {
        "format": "date-time",
        "type": "string"
      },
      "description": {
        "type": "string"
      },
      "ids": {
        "properties": {
          "profile_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "is_default": {
        "description": "Whether this profile is the default alert notification profile for the network.",
        "type": "boolean"
      },
      "name": {
        "type": "string"
      },
      "receivers_ids": {
        "description": "List of receivers that will be notified when an alert is triggered for this profile.",
        "items": {
          "properties": {
            "receiver_id": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "updated_at": {
        "format": "date-time",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    AlertNotificationProfileIdentifiers

    Fields
    Name Type Description
    profile_id string
    Schema
    {
      "profile_id": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    AlertNotificationProfileRegistryUpdateBody

    Fields
    Name Type Description
    field_mask string
    profile object
    Schema
    {
      "field_mask": {
        "type": "string"
      },
      "profile": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "ids": {
            "description": "The identifiers of the profile. These are public and can be seen by any authenticated user in the network.",
            "title": "The identifiers of the profile. These are public and can be seen by any authenticated user in the network.",
            "type": "object"
          },
          "is_default": {
            "description": "Whether this profile is the default alert notification profile for the network.",
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "receivers_ids": {
            "description": "List of receivers that will be notified when an alert is triggered for this profile.",
            "items": {
              "properties": {
                "receiver_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    AlertNotificationProfiles

    Fields
    Name Type Description
    profiles object
    Schema
    {
      "profiles": {
        "items": {
          "properties": {
            "created_at": {
              "format": "date-time",
              "type": "string"
            },
            "description": {
              "type": "string"
            },
            "ids": {
              "properties": {
                "profile_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "is_default": {
              "description": "Whether this profile is the default alert notification profile for the network.",
              "type": "boolean"
            },
            "name": {
              "type": "string"
            },
            "receivers_ids": {
              "description": "List of receivers that will be notified when an alert is triggered for this profile.",
              "items": {
                "properties": {
                  "receiver_id": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "updated_at": {
              "format": "date-time",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    AlertNotificationReceiver

    Fields
    Name Type Description
    created_at string
    email object
    ids object
    name string
    sms object
    updated_at string
    webhook object
    Schema
    {
      "created_at": {
        "format": "date-time",
        "type": "string"
      },
      "email": {
        "properties": {
          "recipient": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ids": {
        "properties": {
          "receiver_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": {
        "type": "string"
      },
      "sms": {
        "properties": {
          "phone_number": {
            "description": "According to the international phone numbering plan (ITU-T E. 164)\nphone numbers cannot contain less than 7 digits and more than 15 digits.\nThe validation is done via an regex and accounts for the '+' formating character.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "updated_at": {
        "format": "date-time",
        "type": "string"
      },
      "webhook": {
        "properties": {
          "headers": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    AlertNotificationReceiverEmail

    Fields
    Name Type Description
    recipient string
    Schema
    {
      "recipient": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    AlertNotificationReceiverIdentifiers

    Fields
    Name Type Description
    receiver_id string
    Schema
    {
      "receiver_id": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    AlertNotificationReceiverRegistryUpdateBody

    Fields
    Name Type Description
    field_mask string
    receiver object
    Schema
    {
      "field_mask": {
        "type": "string"
      },
      "receiver": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "email": {
            "properties": {
              "recipient": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "ids": {
            "description": "The identifiers of the receiver. These can be seen by any admin user in the network.",
            "title": "The identifiers of the receiver. These can be seen by any admin user in the network.",
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "sms": {
            "properties": {
              "phone_number": {
                "description": "According to the international phone numbering plan (ITU-T E. 164)\nphone numbers cannot contain less than 7 digits and more than 15 digits.\nThe validation is done via an regex and accounts for the '+' formating character.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          },
          "webhook": {
            "properties": {
              "headers": {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              "url": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    AlertNotificationReceivers

    Fields
    Name Type Description
    receivers object
    Schema
    {
      "receivers": {
        "items": {
          "properties": {
            "created_at": {
              "format": "date-time",
              "type": "string"
            },
            "email": {
              "properties": {
                "recipient": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "ids": {
              "properties": {
                "receiver_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "name": {
              "type": "string"
            },
            "sms": {
              "properties": {
                "phone_number": {
                  "description": "According to the international phone numbering plan (ITU-T E. 164)\nphone numbers cannot contain less than 7 digits and more than 15 digits.\nThe validation is done via an regex and accounts for the '+' formating character.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "updated_at": {
              "format": "date-time",
              "type": "string"
            },
            "webhook": {
              "properties": {
                "headers": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "type": "object"
                },
                "url": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    AppAsDownlinkQueuePushBody

    Fields
    Name Type Description
    downlinks object
    end_device_ids object
    Schema
    {
      "downlinks": {
        "items": {
          "properties": {
            "attributes": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Attributes for devices, set by the Application Server while handling the message.",
              "type": "object"
            },
            "class_b_c": {
              "properties": {
                "absolute_time": {
                  "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                  "format": "date-time",
                  "type": "string"
                },
                "gateways": {
                  "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                  "items": {
                    "properties": {
                      "antenna_index": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "gateway_ids": {
                        "properties": {
                          "eui": {
                            "description": "Secondary identifier, which can only be used in specific requests.",
                            "example": "70B3D57ED000ABCD",
                            "format": "string",
                            "type": "string"
                          },
                          "gateway_id": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "group_index": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "confirmed": {
              "type": "boolean"
            },
            "confirmed_retry": {
              "properties": {
                "attempt": {
                  "description": "The number of attempted confirmed downlink acknowledgements.",
                  "format": "int64",
                  "type": "integer"
                },
                "max_attempts": {
                  "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                  "format": "int64",
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "correlation_ids": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "decoded_payload": {
              "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
              "type": "object"
            },
            "decoded_payload_warnings": {
              "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "f_cnt": {
              "format": "int64",
              "type": "integer"
            },
            "f_port": {
              "format": "int64",
              "type": "integer"
            },
            "frm_payload": {
              "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
              "format": "byte",
              "type": "string"
            },
            "locations": {
              "additionalProperties": {
                "properties": {
                  "accuracy": {
                    "description": "The accuracy of the location (meters).",
                    "format": "int32",
                    "type": "integer"
                  },
                  "altitude": {
                    "description": "The altitude (meters), where 0 is the mean sea level.",
                    "format": "int32",
                    "type": "integer"
                  },
                  "latitude": {
                    "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                    "format": "double",
                    "type": "number"
                  },
                  "longitude": {
                    "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                    "format": "double",
                    "type": "number"
                  },
                  "source": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "description": "End device location metadata, set by the Application Server while handling the message.",
              "type": "object"
            },
            "network_ids": {
              "description": "Identifies a Network Server.",
              "properties": {
                "cluster_address": {
                  "description": "Cluster address of the Network Server.",
                  "type": "string"
                },
                "cluster_id": {
                  "description": "Cluster identifier of the Network Server.",
                  "type": "string"
                },
                "net_id": {
                  "description": "LoRa Alliance NetID.",
                  "example": "000013",
                  "format": "string",
                  "type": "string"
                },
                "ns_id": {
                  "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "tenant_address": {
                  "description": "Optional tenant address for multi-tenant deployments.",
                  "type": "string"
                },
                "tenant_id": {
                  "description": "Optional tenant identifier for multi-tenant deployments.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "priority": {
              "default": "LOWEST",
              "enum": [
                "LOWEST",
                "LOW",
                "BELOW_NORMAL",
                "NORMAL",
                "ABOVE_NORMAL",
                "HIGH",
                "HIGHEST"
              ],
              "type": "string"
            },
            "session_key_id": {
              "description": "Join Server issued identifier for the session keys used by this downlink.",
              "format": "byte",
              "type": "string"
            },
            "version_ids": {
              "description": "Identifies an end device model with version information.",
              "properties": {
                "band_id": {
                  "type": "string"
                },
                "brand_id": {
                  "type": "string"
                },
                "firmware_version": {
                  "type": "string"
                },
                "hardware_version": {
                  "type": "string"
                },
                "model_id": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "end_device_ids": {
        "properties": {
          "application_ids": {
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    AppAsDownlinkQueueReplaceBody

    Fields
    Name Type Description
    downlinks object
    end_device_ids object
    Schema
    {
      "downlinks": {
        "items": {
          "properties": {
            "attributes": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Attributes for devices, set by the Application Server while handling the message.",
              "type": "object"
            },
            "class_b_c": {
              "properties": {
                "absolute_time": {
                  "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                  "format": "date-time",
                  "type": "string"
                },
                "gateways": {
                  "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                  "items": {
                    "properties": {
                      "antenna_index": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "gateway_ids": {
                        "properties": {
                          "eui": {
                            "description": "Secondary identifier, which can only be used in specific requests.",
                            "example": "70B3D57ED000ABCD",
                            "format": "string",
                            "type": "string"
                          },
                          "gateway_id": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "group_index": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "confirmed": {
              "type": "boolean"
            },
            "confirmed_retry": {
              "properties": {
                "attempt": {
                  "description": "The number of attempted confirmed downlink acknowledgements.",
                  "format": "int64",
                  "type": "integer"
                },
                "max_attempts": {
                  "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                  "format": "int64",
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "correlation_ids": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "decoded_payload": {
              "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
              "type": "object"
            },
            "decoded_payload_warnings": {
              "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "f_cnt": {
              "format": "int64",
              "type": "integer"
            },
            "f_port": {
              "format": "int64",
              "type": "integer"
            },
            "frm_payload": {
              "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
              "format": "byte",
              "type": "string"
            },
            "locations": {
              "additionalProperties": {
                "properties": {
                  "accuracy": {
                    "description": "The accuracy of the location (meters).",
                    "format": "int32",
                    "type": "integer"
                  },
                  "altitude": {
                    "description": "The altitude (meters), where 0 is the mean sea level.",
                    "format": "int32",
                    "type": "integer"
                  },
                  "latitude": {
                    "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                    "format": "double",
                    "type": "number"
                  },
                  "longitude": {
                    "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                    "format": "double",
                    "type": "number"
                  },
                  "source": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "description": "End device location metadata, set by the Application Server while handling the message.",
              "type": "object"
            },
            "network_ids": {
              "description": "Identifies a Network Server.",
              "properties": {
                "cluster_address": {
                  "description": "Cluster address of the Network Server.",
                  "type": "string"
                },
                "cluster_id": {
                  "description": "Cluster identifier of the Network Server.",
                  "type": "string"
                },
                "net_id": {
                  "description": "LoRa Alliance NetID.",
                  "example": "000013",
                  "format": "string",
                  "type": "string"
                },
                "ns_id": {
                  "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "tenant_address": {
                  "description": "Optional tenant address for multi-tenant deployments.",
                  "type": "string"
                },
                "tenant_id": {
                  "description": "Optional tenant identifier for multi-tenant deployments.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "priority": {
              "default": "LOWEST",
              "enum": [
                "LOWEST",
                "LOW",
                "BELOW_NORMAL",
                "NORMAL",
                "ABOVE_NORMAL",
                "HIGH",
                "HIGHEST"
              ],
              "type": "string"
            },
            "session_key_id": {
              "description": "Join Server issued identifier for the session keys used by this downlink.",
              "format": "byte",
              "type": "string"
            },
            "version_ids": {
              "description": "Identifies an end device model with version information.",
              "properties": {
                "band_id": {
                  "type": "string"
                },
                "brand_id": {
                  "type": "string"
                },
                "firmware_version": {
                  "type": "string"
                },
                "hardware_version": {
                  "type": "string"
                },
                "model_id": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "end_device_ids": {
        "properties": {
          "application_ids": {
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    AppSKeyResponse

    Fields
    Name Type Description
    app_s_key object
    Schema
    {
      "app_s_key": {
        "properties": {
          "encrypted_key": {
            "format": "byte",
            "type": "string"
          },
          "kek_label": {
            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
            "type": "string"
          },
          "key": {
            "description": "The unencrypted AES key.",
            "example": "0123456789ABCDEF0123456789ABCDEF",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    Application

    Application is the message that defines an Application in the network.
    Fields
    Name Type Description
    administrative_contact object OrganizationOrUserIdentifiers contains either organization or user identifiers.
    application_server_address string The address of the Application Server where this application is supposed to be registered. If set, this fields indicates where end devices for this application should 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.
    attributes object Key-value attributes for this application. Typically used for organizing applications or for storing integration-specific data.
    contact_info object Contact information for this application. Typically used to indicate who to contact with technical/security questions about the application. This field is deprecated. Use administrative_contact and technical_contact instead.
    created_at string When the application was created. This information is public and can be seen by any authenticated user in the network.
    deleted_at string When the application was deleted. This information is public and can be seen by any authenticated user in the network.
    description string A description for the application.
    dev_eui_counter integer
    end_device_limit string The limit of the number of end devices that can be registered for this application. This field can only be modified by admins.
    ids object
    join_server_address string The address of the Join Server where this application is supposed to be registered. If set, this fields indicates where end devices for this application should 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.
    label_ids string
    name string The name of the application.
    network_server_address string The address of the Network Server where this application is supposed to be registered. If set, this fields indicates where end devices for this application should 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.
    technical_contact object OrganizationOrUserIdentifiers contains either organization or user identifiers.
    updated_at string When the application was last updated. This information is public and can be seen by any authenticated user in the network.
    Schema
    {
      "administrative_contact": {
        "description": "OrganizationOrUserIdentifiers contains either organization or user identifiers.",
        "properties": {
          "organization_ids": {
            "properties": {
              "organization_id": {
                "description": "This ID shares namespace with user IDs.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "user_ids": {
            "properties": {
              "email": {
                "description": "Secondary identifier, which can only be used in specific requests.",
                "type": "string"
              },
              "user_id": {
                "description": "This ID shares namespace with organization IDs.",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "application_server_address": {
        "description": "The address of the Application Server where this application is supposed to be registered.\nIf set, this fields indicates where end devices for this application should be registered.\n\nStored in Entity Registry.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
        "type": "string"
      },
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Key-value attributes for this application. Typically used for organizing applications or for storing integration-specific data.",
        "type": "object"
      },
      "contact_info": {
        "description": "Contact information for this application. Typically used to indicate who to contact with technical/security questions about the application.\nThis field is deprecated. Use administrative_contact and technical_contact instead.",
        "items": {
          "properties": {
            "contact_method": {
              "default": "CONTACT_METHOD_OTHER",
              "enum": [
                "CONTACT_METHOD_OTHER",
                "CONTACT_METHOD_EMAIL",
                "CONTACT_METHOD_PHONE"
              ],
              "type": "string"
            },
            "contact_type": {
              "default": "CONTACT_TYPE_OTHER",
              "enum": [
                "CONTACT_TYPE_OTHER",
                "CONTACT_TYPE_ABUSE",
                "CONTACT_TYPE_BILLING",
                "CONTACT_TYPE_TECHNICAL"
              ],
              "type": "string"
            },
            "public": {
              "type": "boolean"
            },
            "validated_at": {
              "format": "date-time",
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "created_at": {
        "description": "When the application was created. This information is public and can be seen by any authenticated user in the network.",
        "format": "date-time",
        "type": "string"
      },
      "deleted_at": {
        "description": "When the application was deleted. This information is public and can be seen by any authenticated user in the network.",
        "format": "date-time",
        "type": "string"
      },
      "description": {
        "description": "A description for the application.",
        "type": "string"
      },
      "dev_eui_counter": {
        "format": "int64",
        "type": "integer"
      },
      "end_device_limit": {
        "description": "The limit of the number of end devices that can be registered for this application.\nThis field can only be modified by admins.",
        "format": "uint64",
        "type": "string"
      },
      "ids": {
        "properties": {
          "application_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "join_server_address": {
        "description": "The address of the Join Server where this application is supposed to be registered.\nIf set, this fields indicates where end devices for this application should be registered.\n\nStored in Entity Registry.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
        "type": "string"
      },
      "label_ids": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "name": {
        "description": "The name of the application.",
        "type": "string"
      },
      "network_server_address": {
        "description": "The address of the Network Server where this application is supposed to be registered.\nIf set, this fields indicates where end devices for this application should be registered.\n\nStored in Entity Registry.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
        "type": "string"
      },
      "technical_contact": {
        "description": "OrganizationOrUserIdentifiers contains either organization or user identifiers.",
        "properties": {
          "organization_ids": {
            "properties": {
              "organization_id": {
                "description": "This ID shares namespace with user IDs.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "user_ids": {
            "properties": {
              "email": {
                "description": "Secondary identifier, which can only be used in specific requests.",
                "type": "string"
              },
              "user_id": {
                "description": "This ID shares namespace with organization IDs.",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "updated_at": {
        "description": "When the application was last updated. This information is public and can be seen by any authenticated user in the network.",
        "format": "date-time",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationAccessCreateAPIKeyBody

    Fields
    Name Type Description
    application_ids object
    expires_at string
    name string
    rights string
    Schema
    {
      "application_ids": {
        "type": "object"
      },
      "expires_at": {
        "format": "date-time",
        "type": "string"
      },
      "name": {
        "type": "string"
      },
      "rights": {
        "items": {
          "default": "right_invalid",
          "description": "Right is the enum that defines all the different rights to do something in the network.\n\n - RIGHT_USER_INFO: The right to view user information.\n - RIGHT_USER_SETTINGS_BASIC: The right to edit basic user settings.\n - RIGHT_USER_LIST: The right to list users accounts.\n - RIGHT_USER_CREATE: The right to create an user account.\n - RIGHT_USER_SETTINGS_API_KEYS: The right to view and edit user API keys.\n - RIGHT_USER_DELETE: The right to delete user account.\n - RIGHT_USER_PURGE: The right to purge user account.\n - RIGHT_USER_AUTHORIZED_CLIENTS: The right to view and edit authorized OAuth clients of the user.\n - RIGHT_USER_APPLICATIONS_LIST: The right to list applications the user is a collaborator of.\n - RIGHT_USER_APPLICATIONS_CREATE: The right to create an application under the user account.\n - RIGHT_USER_GATEWAYS_LIST: The right to list gateways the user is a collaborator of.\n - RIGHT_USER_GATEWAYS_CREATE: The right to create a gateway under the account of the user.\n - RIGHT_USER_CLIENTS_LIST: The right to list OAuth clients the user is a collaborator of.\n - RIGHT_USER_CLIENTS_CREATE: The right to create an OAuth client under the account of the user.\n - RIGHT_USER_ORGANIZATIONS_LIST: The right to list organizations the user is a member of.\n - RIGHT_USER_ORGANIZATIONS_CREATE: The right to create an organization under the user account.\n - RIGHT_USER_NOTIFICATIONS_READ: The right to read notifications sent to the user.\n - RIGHT_USER_ALL: The pseudo-right for all (current and future) user rights.\n - RIGHT_APPLICATION_INFO: The right to view application information.\n - RIGHT_APPLICATION_SETTINGS_BASIC: The right to edit basic application settings.\n - RIGHT_APPLICATION_SETTINGS_API_KEYS: The right to view and edit application API keys.\n - RIGHT_APPLICATION_SETTINGS_COLLABORATORS: The right to view and edit application collaborators.\n - RIGHT_APPLICATION_SETTINGS_PACKAGES: The right to view and edit application packages and associations.\n - RIGHT_APPLICATION_DELETE: The right to delete application.\n - RIGHT_APPLICATION_PURGE: The right to purge application.\n - RIGHT_APPLICATION_DEVICES_READ: The right to view devices in application.\n - RIGHT_APPLICATION_DEVICES_WRITE: The right to create devices in application.\n - RIGHT_APPLICATION_DEVICES_READ_KEYS: The right to view device keys in application.\nNote that keys may not be stored in a way that supports viewing them.\n - RIGHT_APPLICATION_DEVICES_WRITE_KEYS: The right to edit device keys in application.\n - RIGHT_APPLICATION_TRAFFIC_READ: The right to read application traffic (uplink and downlink).\n - RIGHT_APPLICATION_TRAFFIC_UP_WRITE: The right to write uplink application traffic.\n - RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE: The right to write downlink application traffic.\n - RIGHT_APPLICATION_LINK: The right to link as Application to a Network Server for traffic exchange,\ni.e. read uplink and write downlink (API keys only).\nThis right is typically only given to an Application Server.\nThis right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ,\nand RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.\n - RIGHT_APPLICATION_ALL: The pseudo-right for all (current and future) application rights.\n - RIGHT_CLIENT_ALL: The pseudo-right for all (current and future) OAuth client rights.\n - RIGHT_CLIENT_INFO: The right to read client information.\n - RIGHT_CLIENT_SETTINGS_BASIC: The right to edit basic client settings.\n - RIGHT_CLIENT_SETTINGS_COLLABORATORS: The right to view and edit client collaborators.\n - RIGHT_CLIENT_DELETE: The right to delete a client.\n - RIGHT_CLIENT_PURGE: The right to purge a client.\n - RIGHT_GATEWAY_INFO: The right to view gateway information.\n - RIGHT_GATEWAY_SETTINGS_BASIC: The right to edit basic gateway settings.\n - RIGHT_GATEWAY_SETTINGS_API_KEYS: The right to view and edit gateway API keys.\n - RIGHT_GATEWAY_SETTINGS_COLLABORATORS: The right to view and edit gateway collaborators.\n - RIGHT_GATEWAY_DELETE: The right to delete gateway.\n - RIGHT_GATEWAY_PURGE: The right to purge gateway.\n - RIGHT_GATEWAY_TRAFFIC_READ: The right to read gateway traffic.\n - RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE: The right to write downlink gateway traffic.\n - RIGHT_GATEWAY_LINK: The right to link as Gateway to a Gateway Server for traffic exchange,\ni.e. write uplink and read downlink (API keys only)\nThis right is typically only given to a gateway.\nThis right implies RIGHT_GATEWAY_INFO.\n - RIGHT_GATEWAY_STATUS_READ: The right to view gateway status.\n - RIGHT_GATEWAY_LOCATION_READ: The right to view view gateway location.\n - RIGHT_GATEWAY_WRITE_SECRETS: The right to store secrets associated with this gateway.\n - RIGHT_GATEWAY_READ_SECRETS: The right to retrieve secrets associated with this gateway.\n - RIGHT_GATEWAY_ALL: The pseudo-right for all (current and future) gateway rights.\n - RIGHT_ORGANIZATION_INFO: The right to view organization information.\n - RIGHT_ORGANIZATION_SETTINGS_BASIC: The right to edit basic organization settings.\n - RIGHT_ORGANIZATION_SETTINGS_API_KEYS: The right to view and edit organization API keys.\n - RIGHT_ORGANIZATION_SETTINGS_MEMBERS: The right to view and edit organization members.\n - RIGHT_ORGANIZATION_DELETE: The right to delete organization.\n - RIGHT_ORGANIZATION_PURGE: The right to purge organization.\n - RIGHT_ORGANIZATION_APPLICATIONS_LIST: The right to list the applications the organization is a collaborator of.\n - RIGHT_ORGANIZATION_APPLICATIONS_CREATE: The right to create an application under the organization.\n - RIGHT_ORGANIZATION_GATEWAYS_LIST: The right to list the gateways the organization is a collaborator of.\n - RIGHT_ORGANIZATION_GATEWAYS_CREATE: The right to create a gateway under the organization.\n - RIGHT_ORGANIZATION_CLIENTS_LIST: The right to list the OAuth clients the organization is a collaborator of.\n - RIGHT_ORGANIZATION_CLIENTS_CREATE: The right to create an OAuth client under the organization.\n - RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR: The right to add the organization as a collaborator on an existing entity.\n - RIGHT_ORGANIZATION_ALL: The pseudo-right for all (current and future) organization rights.\n - RIGHT_SEND_INVITES: The right to send invites to new users.\nNote that this is not prefixed with \"USER_\"; it is not a right on the user entity.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE: The right to create an alert notification profile.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_INFO: The right to view an alert notification profile information.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_LIST: The right to list the alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE: The right to update an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE: The right to delete an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE: The right to create an alert notification receiver.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO: The right to view an alert notification receiver information.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST: The right to list the alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE: The right to update an alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE: The right to delete an alert notification receivers.\n - RIGHT_AUTHENTICATION_PROVIDER_CREATE: The right to create an authentication provider.\n - RIGHT_AUTHENTICATION_PROVIDER_INFO: The right to view an authentication provider information.\n - RIGHT_AUTHENTICATION_PROVIDER_LIST: The right to list the authentication providers\n - RIGHT_AUTHENTICATION_PROVIDER_UPDATE: The right to update an authentication providers.\n - RIGHT_AUTHENTICATION_PROVIDER_DELETE: The right to delete an authentication providers.\n - RIGHT_EXTERNAL_USER_CREATE: The right to create an external user.\n - RIGHT_EXTERNAL_USER_INFO: The right to view an external user's information.\n - RIGHT_EXTERNAL_USER_DELETE: The right to delete an external user.\n - RIGHT_PACKET_BROKER_AGENT_READ: The right to read any information related to the PBA.\n - RIGHT_PACKET_BROKER_AGENT_WRITE: The right to perform operations in the PBA.\n - RIGHT_TENANT_CONFIGURATION_UPDATE: The right to update a tenant's configuration.\n - RIGHT_LABEL_CREATE: The right to create a label.\n - RIGHT_LABEL_INFO: The right to view a label's information.\n - RIGHT_LABELS_LIST: The right to list the labels.\n - RIGHT_LABEL_UPDATE: The right to update a label.\n - RIGHT_LABEL_DELETE: The right to delete a label.\n - RIGHT_LABEL_ASSIGN: The right to assign a label to an entity.\n - RIGHT_ALL: The pseudo-right for all (current and future) possible rights.",
          "enum": [
            "right_invalid",
            "RIGHT_USER_INFO",
            "RIGHT_USER_SETTINGS_BASIC",
            "RIGHT_USER_LIST",
            "RIGHT_USER_CREATE",
            "RIGHT_USER_SETTINGS_API_KEYS",
            "RIGHT_USER_DELETE",
            "RIGHT_USER_PURGE",
            "RIGHT_USER_AUTHORIZED_CLIENTS",
            "RIGHT_USER_APPLICATIONS_LIST",
            "RIGHT_USER_APPLICATIONS_CREATE",
            "RIGHT_USER_GATEWAYS_LIST",
            "RIGHT_USER_GATEWAYS_CREATE",
            "RIGHT_USER_CLIENTS_LIST",
            "RIGHT_USER_CLIENTS_CREATE",
            "RIGHT_USER_ORGANIZATIONS_LIST",
            "RIGHT_USER_ORGANIZATIONS_CREATE",
            "RIGHT_USER_NOTIFICATIONS_READ",
            "RIGHT_USER_ALL",
            "RIGHT_APPLICATION_INFO",
            "RIGHT_APPLICATION_SETTINGS_BASIC",
            "RIGHT_APPLICATION_SETTINGS_API_KEYS",
            "RIGHT_APPLICATION_SETTINGS_COLLABORATORS",
            "RIGHT_APPLICATION_SETTINGS_PACKAGES",
            "RIGHT_APPLICATION_DELETE",
            "RIGHT_APPLICATION_PURGE",
            "RIGHT_APPLICATION_DEVICES_READ",
            "RIGHT_APPLICATION_DEVICES_WRITE",
            "RIGHT_APPLICATION_DEVICES_READ_KEYS",
            "RIGHT_APPLICATION_DEVICES_WRITE_KEYS",
            "RIGHT_APPLICATION_TRAFFIC_READ",
            "RIGHT_APPLICATION_TRAFFIC_UP_WRITE",
            "RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE",
            "RIGHT_APPLICATION_LINK",
            "RIGHT_APPLICATION_ALL",
            "RIGHT_CLIENT_ALL",
            "RIGHT_CLIENT_INFO",
            "RIGHT_CLIENT_SETTINGS_BASIC",
            "RIGHT_CLIENT_SETTINGS_COLLABORATORS",
            "RIGHT_CLIENT_DELETE",
            "RIGHT_CLIENT_PURGE",
            "RIGHT_GATEWAY_INFO",
            "RIGHT_GATEWAY_SETTINGS_BASIC",
            "RIGHT_GATEWAY_SETTINGS_API_KEYS",
            "RIGHT_GATEWAY_SETTINGS_COLLABORATORS",
            "RIGHT_GATEWAY_DELETE",
            "RIGHT_GATEWAY_PURGE",
            "RIGHT_GATEWAY_TRAFFIC_READ",
            "RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE",
            "RIGHT_GATEWAY_LINK",
            "RIGHT_GATEWAY_STATUS_READ",
            "RIGHT_GATEWAY_LOCATION_READ",
            "RIGHT_GATEWAY_WRITE_SECRETS",
            "RIGHT_GATEWAY_READ_SECRETS",
            "RIGHT_GATEWAY_ALL",
            "RIGHT_ORGANIZATION_INFO",
            "RIGHT_ORGANIZATION_SETTINGS_BASIC",
            "RIGHT_ORGANIZATION_SETTINGS_API_KEYS",
            "RIGHT_ORGANIZATION_SETTINGS_MEMBERS",
            "RIGHT_ORGANIZATION_DELETE",
            "RIGHT_ORGANIZATION_PURGE",
            "RIGHT_ORGANIZATION_APPLICATIONS_LIST",
            "RIGHT_ORGANIZATION_APPLICATIONS_CREATE",
            "RIGHT_ORGANIZATION_GATEWAYS_LIST",
            "RIGHT_ORGANIZATION_GATEWAYS_CREATE",
            "RIGHT_ORGANIZATION_CLIENTS_LIST",
            "RIGHT_ORGANIZATION_CLIENTS_CREATE",
            "RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR",
            "RIGHT_ORGANIZATION_ALL",
            "RIGHT_SEND_INVITES",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_INFO",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_LIST",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE",
            "RIGHT_AUTHENTICATION_PROVIDER_CREATE",
            "RIGHT_AUTHENTICATION_PROVIDER_INFO",
            "RIGHT_AUTHENTICATION_PROVIDER_LIST",
            "RIGHT_AUTHENTICATION_PROVIDER_UPDATE",
            "RIGHT_AUTHENTICATION_PROVIDER_DELETE",
            "RIGHT_EXTERNAL_USER_CREATE",
            "RIGHT_EXTERNAL_USER_INFO",
            "RIGHT_EXTERNAL_USER_DELETE",
            "RIGHT_PACKET_BROKER_AGENT_READ",
            "RIGHT_PACKET_BROKER_AGENT_WRITE",
            "RIGHT_TENANT_CONFIGURATION_UPDATE",
            "RIGHT_LABEL_CREATE",
            "RIGHT_LABEL_INFO",
            "RIGHT_LABELS_LIST",
            "RIGHT_LABEL_UPDATE",
            "RIGHT_LABEL_DELETE",
            "RIGHT_LABEL_ASSIGN",
            "RIGHT_ALL"
          ],
          "type": "string"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationAccessSetCollaboratorBody

    Fields
    Name Type Description
    application_ids object
    collaborator object
    Schema
    {
      "application_ids": {
        "type": "object"
      },
      "collaborator": {
        "properties": {
          "ids": {
            "description": "OrganizationOrUserIdentifiers contains either organization or user identifiers.",
            "properties": {
              "organization_ids": {
                "properties": {
                  "organization_id": {
                    "description": "This ID shares namespace with user IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "user_ids": {
                "properties": {
                  "email": {
                    "description": "Secondary identifier, which can only be used in specific requests.",
                    "type": "string"
                  },
                  "user_id": {
                    "description": "This ID shares namespace with organization IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "rights": {
            "items": {
              "default": "right_invalid",
              "description": "Right is the enum that defines all the different rights to do something in the network.\n\n - RIGHT_USER_INFO: The right to view user information.\n - RIGHT_USER_SETTINGS_BASIC: The right to edit basic user settings.\n - RIGHT_USER_LIST: The right to list users accounts.\n - RIGHT_USER_CREATE: The right to create an user account.\n - RIGHT_USER_SETTINGS_API_KEYS: The right to view and edit user API keys.\n - RIGHT_USER_DELETE: The right to delete user account.\n - RIGHT_USER_PURGE: The right to purge user account.\n - RIGHT_USER_AUTHORIZED_CLIENTS: The right to view and edit authorized OAuth clients of the user.\n - RIGHT_USER_APPLICATIONS_LIST: The right to list applications the user is a collaborator of.\n - RIGHT_USER_APPLICATIONS_CREATE: The right to create an application under the user account.\n - RIGHT_USER_GATEWAYS_LIST: The right to list gateways the user is a collaborator of.\n - RIGHT_USER_GATEWAYS_CREATE: The right to create a gateway under the account of the user.\n - RIGHT_USER_CLIENTS_LIST: The right to list OAuth clients the user is a collaborator of.\n - RIGHT_USER_CLIENTS_CREATE: The right to create an OAuth client under the account of the user.\n - RIGHT_USER_ORGANIZATIONS_LIST: The right to list organizations the user is a member of.\n - RIGHT_USER_ORGANIZATIONS_CREATE: The right to create an organization under the user account.\n - RIGHT_USER_NOTIFICATIONS_READ: The right to read notifications sent to the user.\n - RIGHT_USER_ALL: The pseudo-right for all (current and future) user rights.\n - RIGHT_APPLICATION_INFO: The right to view application information.\n - RIGHT_APPLICATION_SETTINGS_BASIC: The right to edit basic application settings.\n - RIGHT_APPLICATION_SETTINGS_API_KEYS: The right to view and edit application API keys.\n - RIGHT_APPLICATION_SETTINGS_COLLABORATORS: The right to view and edit application collaborators.\n - RIGHT_APPLICATION_SETTINGS_PACKAGES: The right to view and edit application packages and associations.\n - RIGHT_APPLICATION_DELETE: The right to delete application.\n - RIGHT_APPLICATION_PURGE: The right to purge application.\n - RIGHT_APPLICATION_DEVICES_READ: The right to view devices in application.\n - RIGHT_APPLICATION_DEVICES_WRITE: The right to create devices in application.\n - RIGHT_APPLICATION_DEVICES_READ_KEYS: The right to view device keys in application.\nNote that keys may not be stored in a way that supports viewing them.\n - RIGHT_APPLICATION_DEVICES_WRITE_KEYS: The right to edit device keys in application.\n - RIGHT_APPLICATION_TRAFFIC_READ: The right to read application traffic (uplink and downlink).\n - RIGHT_APPLICATION_TRAFFIC_UP_WRITE: The right to write uplink application traffic.\n - RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE: The right to write downlink application traffic.\n - RIGHT_APPLICATION_LINK: The right to link as Application to a Network Server for traffic exchange,\ni.e. read uplink and write downlink (API keys only).\nThis right is typically only given to an Application Server.\nThis right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ,\nand RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.\n - RIGHT_APPLICATION_ALL: The pseudo-right for all (current and future) application rights.\n - RIGHT_CLIENT_ALL: The pseudo-right for all (current and future) OAuth client rights.\n - RIGHT_CLIENT_INFO: The right to read client information.\n - RIGHT_CLIENT_SETTINGS_BASIC: The right to edit basic client settings.\n - RIGHT_CLIENT_SETTINGS_COLLABORATORS: The right to view and edit client collaborators.\n - RIGHT_CLIENT_DELETE: The right to delete a client.\n - RIGHT_CLIENT_PURGE: The right to purge a client.\n - RIGHT_GATEWAY_INFO: The right to view gateway information.\n - RIGHT_GATEWAY_SETTINGS_BASIC: The right to edit basic gateway settings.\n - RIGHT_GATEWAY_SETTINGS_API_KEYS: The right to view and edit gateway API keys.\n - RIGHT_GATEWAY_SETTINGS_COLLABORATORS: The right to view and edit gateway collaborators.\n - RIGHT_GATEWAY_DELETE: The right to delete gateway.\n - RIGHT_GATEWAY_PURGE: The right to purge gateway.\n - RIGHT_GATEWAY_TRAFFIC_READ: The right to read gateway traffic.\n - RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE: The right to write downlink gateway traffic.\n - RIGHT_GATEWAY_LINK: The right to link as Gateway to a Gateway Server for traffic exchange,\ni.e. write uplink and read downlink (API keys only)\nThis right is typically only given to a gateway.\nThis right implies RIGHT_GATEWAY_INFO.\n - RIGHT_GATEWAY_STATUS_READ: The right to view gateway status.\n - RIGHT_GATEWAY_LOCATION_READ: The right to view view gateway location.\n - RIGHT_GATEWAY_WRITE_SECRETS: The right to store secrets associated with this gateway.\n - RIGHT_GATEWAY_READ_SECRETS: The right to retrieve secrets associated with this gateway.\n - RIGHT_GATEWAY_ALL: The pseudo-right for all (current and future) gateway rights.\n - RIGHT_ORGANIZATION_INFO: The right to view organization information.\n - RIGHT_ORGANIZATION_SETTINGS_BASIC: The right to edit basic organization settings.\n - RIGHT_ORGANIZATION_SETTINGS_API_KEYS: The right to view and edit organization API keys.\n - RIGHT_ORGANIZATION_SETTINGS_MEMBERS: The right to view and edit organization members.\n - RIGHT_ORGANIZATION_DELETE: The right to delete organization.\n - RIGHT_ORGANIZATION_PURGE: The right to purge organization.\n - RIGHT_ORGANIZATION_APPLICATIONS_LIST: The right to list the applications the organization is a collaborator of.\n - RIGHT_ORGANIZATION_APPLICATIONS_CREATE: The right to create an application under the organization.\n - RIGHT_ORGANIZATION_GATEWAYS_LIST: The right to list the gateways the organization is a collaborator of.\n - RIGHT_ORGANIZATION_GATEWAYS_CREATE: The right to create a gateway under the organization.\n - RIGHT_ORGANIZATION_CLIENTS_LIST: The right to list the OAuth clients the organization is a collaborator of.\n - RIGHT_ORGANIZATION_CLIENTS_CREATE: The right to create an OAuth client under the organization.\n - RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR: The right to add the organization as a collaborator on an existing entity.\n - RIGHT_ORGANIZATION_ALL: The pseudo-right for all (current and future) organization rights.\n - RIGHT_SEND_INVITES: The right to send invites to new users.\nNote that this is not prefixed with \"USER_\"; it is not a right on the user entity.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE: The right to create an alert notification profile.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_INFO: The right to view an alert notification profile information.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_LIST: The right to list the alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE: The right to update an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE: The right to delete an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE: The right to create an alert notification receiver.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO: The right to view an alert notification receiver information.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST: The right to list the alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE: The right to update an alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE: The right to delete an alert notification receivers.\n - RIGHT_AUTHENTICATION_PROVIDER_CREATE: The right to create an authentication provider.\n - RIGHT_AUTHENTICATION_PROVIDER_INFO: The right to view an authentication provider information.\n - RIGHT_AUTHENTICATION_PROVIDER_LIST: The right to list the authentication providers\n - RIGHT_AUTHENTICATION_PROVIDER_UPDATE: The right to update an authentication providers.\n - RIGHT_AUTHENTICATION_PROVIDER_DELETE: The right to delete an authentication providers.\n - RIGHT_EXTERNAL_USER_CREATE: The right to create an external user.\n - RIGHT_EXTERNAL_USER_INFO: The right to view an external user's information.\n - RIGHT_EXTERNAL_USER_DELETE: The right to delete an external user.\n - RIGHT_PACKET_BROKER_AGENT_READ: The right to read any information related to the PBA.\n - RIGHT_PACKET_BROKER_AGENT_WRITE: The right to perform operations in the PBA.\n - RIGHT_TENANT_CONFIGURATION_UPDATE: The right to update a tenant's configuration.\n - RIGHT_LABEL_CREATE: The right to create a label.\n - RIGHT_LABEL_INFO: The right to view a label's information.\n - RIGHT_LABELS_LIST: The right to list the labels.\n - RIGHT_LABEL_UPDATE: The right to update a label.\n - RIGHT_LABEL_DELETE: The right to delete a label.\n - RIGHT_LABEL_ASSIGN: The right to assign a label to an entity.\n - RIGHT_ALL: The pseudo-right for all (current and future) possible rights.",
              "enum": [
                "right_invalid",
                "RIGHT_USER_INFO",
                "RIGHT_USER_SETTINGS_BASIC",
                "RIGHT_USER_LIST",
                "RIGHT_USER_CREATE",
                "RIGHT_USER_SETTINGS_API_KEYS",
                "RIGHT_USER_DELETE",
                "RIGHT_USER_PURGE",
                "RIGHT_USER_AUTHORIZED_CLIENTS",
                "RIGHT_USER_APPLICATIONS_LIST",
                "RIGHT_USER_APPLICATIONS_CREATE",
                "RIGHT_USER_GATEWAYS_LIST",
                "RIGHT_USER_GATEWAYS_CREATE",
                "RIGHT_USER_CLIENTS_LIST",
                "RIGHT_USER_CLIENTS_CREATE",
                "RIGHT_USER_ORGANIZATIONS_LIST",
                "RIGHT_USER_ORGANIZATIONS_CREATE",
                "RIGHT_USER_NOTIFICATIONS_READ",
                "RIGHT_USER_ALL",
                "RIGHT_APPLICATION_INFO",
                "RIGHT_APPLICATION_SETTINGS_BASIC",
                "RIGHT_APPLICATION_SETTINGS_API_KEYS",
                "RIGHT_APPLICATION_SETTINGS_COLLABORATORS",
                "RIGHT_APPLICATION_SETTINGS_PACKAGES",
                "RIGHT_APPLICATION_DELETE",
                "RIGHT_APPLICATION_PURGE",
                "RIGHT_APPLICATION_DEVICES_READ",
                "RIGHT_APPLICATION_DEVICES_WRITE",
                "RIGHT_APPLICATION_DEVICES_READ_KEYS",
                "RIGHT_APPLICATION_DEVICES_WRITE_KEYS",
                "RIGHT_APPLICATION_TRAFFIC_READ",
                "RIGHT_APPLICATION_TRAFFIC_UP_WRITE",
                "RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE",
                "RIGHT_APPLICATION_LINK",
                "RIGHT_APPLICATION_ALL",
                "RIGHT_CLIENT_ALL",
                "RIGHT_CLIENT_INFO",
                "RIGHT_CLIENT_SETTINGS_BASIC",
                "RIGHT_CLIENT_SETTINGS_COLLABORATORS",
                "RIGHT_CLIENT_DELETE",
                "RIGHT_CLIENT_PURGE",
                "RIGHT_GATEWAY_INFO",
                "RIGHT_GATEWAY_SETTINGS_BASIC",
                "RIGHT_GATEWAY_SETTINGS_API_KEYS",
                "RIGHT_GATEWAY_SETTINGS_COLLABORATORS",
                "RIGHT_GATEWAY_DELETE",
                "RIGHT_GATEWAY_PURGE",
                "RIGHT_GATEWAY_TRAFFIC_READ",
                "RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE",
                "RIGHT_GATEWAY_LINK",
                "RIGHT_GATEWAY_STATUS_READ",
                "RIGHT_GATEWAY_LOCATION_READ",
                "RIGHT_GATEWAY_WRITE_SECRETS",
                "RIGHT_GATEWAY_READ_SECRETS",
                "RIGHT_GATEWAY_ALL",
                "RIGHT_ORGANIZATION_INFO",
                "RIGHT_ORGANIZATION_SETTINGS_BASIC",
                "RIGHT_ORGANIZATION_SETTINGS_API_KEYS",
                "RIGHT_ORGANIZATION_SETTINGS_MEMBERS",
                "RIGHT_ORGANIZATION_DELETE",
                "RIGHT_ORGANIZATION_PURGE",
                "RIGHT_ORGANIZATION_APPLICATIONS_LIST",
                "RIGHT_ORGANIZATION_APPLICATIONS_CREATE",
                "RIGHT_ORGANIZATION_GATEWAYS_LIST",
                "RIGHT_ORGANIZATION_GATEWAYS_CREATE",
                "RIGHT_ORGANIZATION_CLIENTS_LIST",
                "RIGHT_ORGANIZATION_CLIENTS_CREATE",
                "RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR",
                "RIGHT_ORGANIZATION_ALL",
                "RIGHT_SEND_INVITES",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_INFO",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_LIST",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE",
                "RIGHT_AUTHENTICATION_PROVIDER_CREATE",
                "RIGHT_AUTHENTICATION_PROVIDER_INFO",
                "RIGHT_AUTHENTICATION_PROVIDER_LIST",
                "RIGHT_AUTHENTICATION_PROVIDER_UPDATE",
                "RIGHT_AUTHENTICATION_PROVIDER_DELETE",
                "RIGHT_EXTERNAL_USER_CREATE",
                "RIGHT_EXTERNAL_USER_INFO",
                "RIGHT_EXTERNAL_USER_DELETE",
                "RIGHT_PACKET_BROKER_AGENT_READ",
                "RIGHT_PACKET_BROKER_AGENT_WRITE",
                "RIGHT_TENANT_CONFIGURATION_UPDATE",
                "RIGHT_LABEL_CREATE",
                "RIGHT_LABEL_INFO",
                "RIGHT_LABELS_LIST",
                "RIGHT_LABEL_UPDATE",
                "RIGHT_LABEL_DELETE",
                "RIGHT_LABEL_ASSIGN",
                "RIGHT_ALL"
              ],
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationAccessUpdateAPIKeyBody

    Fields
    Name Type Description
    api_key object
    application_ids object
    field_mask string The names of the api key fields that should be updated.
    Schema
    {
      "api_key": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "type": "string"
          },
          "key": {
            "description": "Immutable and unique secret value of the API key.\nGenerated by the Access Server.",
            "type": "string"
          },
          "name": {
            "description": "User-defined (friendly) name for the API key.",
            "type": "string"
          },
          "rights": {
            "description": "Rights that are granted to this API key.",
            "items": {
              "default": "right_invalid",
              "description": "Right is the enum that defines all the different rights to do something in the network.\n\n - RIGHT_USER_INFO: The right to view user information.\n - RIGHT_USER_SETTINGS_BASIC: The right to edit basic user settings.\n - RIGHT_USER_LIST: The right to list users accounts.\n - RIGHT_USER_CREATE: The right to create an user account.\n - RIGHT_USER_SETTINGS_API_KEYS: The right to view and edit user API keys.\n - RIGHT_USER_DELETE: The right to delete user account.\n - RIGHT_USER_PURGE: The right to purge user account.\n - RIGHT_USER_AUTHORIZED_CLIENTS: The right to view and edit authorized OAuth clients of the user.\n - RIGHT_USER_APPLICATIONS_LIST: The right to list applications the user is a collaborator of.\n - RIGHT_USER_APPLICATIONS_CREATE: The right to create an application under the user account.\n - RIGHT_USER_GATEWAYS_LIST: The right to list gateways the user is a collaborator of.\n - RIGHT_USER_GATEWAYS_CREATE: The right to create a gateway under the account of the user.\n - RIGHT_USER_CLIENTS_LIST: The right to list OAuth clients the user is a collaborator of.\n - RIGHT_USER_CLIENTS_CREATE: The right to create an OAuth client under the account of the user.\n - RIGHT_USER_ORGANIZATIONS_LIST: The right to list organizations the user is a member of.\n - RIGHT_USER_ORGANIZATIONS_CREATE: The right to create an organization under the user account.\n - RIGHT_USER_NOTIFICATIONS_READ: The right to read notifications sent to the user.\n - RIGHT_USER_ALL: The pseudo-right for all (current and future) user rights.\n - RIGHT_APPLICATION_INFO: The right to view application information.\n - RIGHT_APPLICATION_SETTINGS_BASIC: The right to edit basic application settings.\n - RIGHT_APPLICATION_SETTINGS_API_KEYS: The right to view and edit application API keys.\n - RIGHT_APPLICATION_SETTINGS_COLLABORATORS: The right to view and edit application collaborators.\n - RIGHT_APPLICATION_SETTINGS_PACKAGES: The right to view and edit application packages and associations.\n - RIGHT_APPLICATION_DELETE: The right to delete application.\n - RIGHT_APPLICATION_PURGE: The right to purge application.\n - RIGHT_APPLICATION_DEVICES_READ: The right to view devices in application.\n - RIGHT_APPLICATION_DEVICES_WRITE: The right to create devices in application.\n - RIGHT_APPLICATION_DEVICES_READ_KEYS: The right to view device keys in application.\nNote that keys may not be stored in a way that supports viewing them.\n - RIGHT_APPLICATION_DEVICES_WRITE_KEYS: The right to edit device keys in application.\n - RIGHT_APPLICATION_TRAFFIC_READ: The right to read application traffic (uplink and downlink).\n - RIGHT_APPLICATION_TRAFFIC_UP_WRITE: The right to write uplink application traffic.\n - RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE: The right to write downlink application traffic.\n - RIGHT_APPLICATION_LINK: The right to link as Application to a Network Server for traffic exchange,\ni.e. read uplink and write downlink (API keys only).\nThis right is typically only given to an Application Server.\nThis right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ,\nand RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.\n - RIGHT_APPLICATION_ALL: The pseudo-right for all (current and future) application rights.\n - RIGHT_CLIENT_ALL: The pseudo-right for all (current and future) OAuth client rights.\n - RIGHT_CLIENT_INFO: The right to read client information.\n - RIGHT_CLIENT_SETTINGS_BASIC: The right to edit basic client settings.\n - RIGHT_CLIENT_SETTINGS_COLLABORATORS: The right to view and edit client collaborators.\n - RIGHT_CLIENT_DELETE: The right to delete a client.\n - RIGHT_CLIENT_PURGE: The right to purge a client.\n - RIGHT_GATEWAY_INFO: The right to view gateway information.\n - RIGHT_GATEWAY_SETTINGS_BASIC: The right to edit basic gateway settings.\n - RIGHT_GATEWAY_SETTINGS_API_KEYS: The right to view and edit gateway API keys.\n - RIGHT_GATEWAY_SETTINGS_COLLABORATORS: The right to view and edit gateway collaborators.\n - RIGHT_GATEWAY_DELETE: The right to delete gateway.\n - RIGHT_GATEWAY_PURGE: The right to purge gateway.\n - RIGHT_GATEWAY_TRAFFIC_READ: The right to read gateway traffic.\n - RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE: The right to write downlink gateway traffic.\n - RIGHT_GATEWAY_LINK: The right to link as Gateway to a Gateway Server for traffic exchange,\ni.e. write uplink and read downlink (API keys only)\nThis right is typically only given to a gateway.\nThis right implies RIGHT_GATEWAY_INFO.\n - RIGHT_GATEWAY_STATUS_READ: The right to view gateway status.\n - RIGHT_GATEWAY_LOCATION_READ: The right to view view gateway location.\n - RIGHT_GATEWAY_WRITE_SECRETS: The right to store secrets associated with this gateway.\n - RIGHT_GATEWAY_READ_SECRETS: The right to retrieve secrets associated with this gateway.\n - RIGHT_GATEWAY_ALL: The pseudo-right for all (current and future) gateway rights.\n - RIGHT_ORGANIZATION_INFO: The right to view organization information.\n - RIGHT_ORGANIZATION_SETTINGS_BASIC: The right to edit basic organization settings.\n - RIGHT_ORGANIZATION_SETTINGS_API_KEYS: The right to view and edit organization API keys.\n - RIGHT_ORGANIZATION_SETTINGS_MEMBERS: The right to view and edit organization members.\n - RIGHT_ORGANIZATION_DELETE: The right to delete organization.\n - RIGHT_ORGANIZATION_PURGE: The right to purge organization.\n - RIGHT_ORGANIZATION_APPLICATIONS_LIST: The right to list the applications the organization is a collaborator of.\n - RIGHT_ORGANIZATION_APPLICATIONS_CREATE: The right to create an application under the organization.\n - RIGHT_ORGANIZATION_GATEWAYS_LIST: The right to list the gateways the organization is a collaborator of.\n - RIGHT_ORGANIZATION_GATEWAYS_CREATE: The right to create a gateway under the organization.\n - RIGHT_ORGANIZATION_CLIENTS_LIST: The right to list the OAuth clients the organization is a collaborator of.\n - RIGHT_ORGANIZATION_CLIENTS_CREATE: The right to create an OAuth client under the organization.\n - RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR: The right to add the organization as a collaborator on an existing entity.\n - RIGHT_ORGANIZATION_ALL: The pseudo-right for all (current and future) organization rights.\n - RIGHT_SEND_INVITES: The right to send invites to new users.\nNote that this is not prefixed with \"USER_\"; it is not a right on the user entity.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE: The right to create an alert notification profile.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_INFO: The right to view an alert notification profile information.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_LIST: The right to list the alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE: The right to update an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE: The right to delete an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE: The right to create an alert notification receiver.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO: The right to view an alert notification receiver information.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST: The right to list the alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE: The right to update an alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE: The right to delete an alert notification receivers.\n - RIGHT_AUTHENTICATION_PROVIDER_CREATE: The right to create an authentication provider.\n - RIGHT_AUTHENTICATION_PROVIDER_INFO: The right to view an authentication provider information.\n - RIGHT_AUTHENTICATION_PROVIDER_LIST: The right to list the authentication providers\n - RIGHT_AUTHENTICATION_PROVIDER_UPDATE: The right to update an authentication providers.\n - RIGHT_AUTHENTICATION_PROVIDER_DELETE: The right to delete an authentication providers.\n - RIGHT_EXTERNAL_USER_CREATE: The right to create an external user.\n - RIGHT_EXTERNAL_USER_INFO: The right to view an external user's information.\n - RIGHT_EXTERNAL_USER_DELETE: The right to delete an external user.\n - RIGHT_PACKET_BROKER_AGENT_READ: The right to read any information related to the PBA.\n - RIGHT_PACKET_BROKER_AGENT_WRITE: The right to perform operations in the PBA.\n - RIGHT_TENANT_CONFIGURATION_UPDATE: The right to update a tenant's configuration.\n - RIGHT_LABEL_CREATE: The right to create a label.\n - RIGHT_LABEL_INFO: The right to view a label's information.\n - RIGHT_LABELS_LIST: The right to list the labels.\n - RIGHT_LABEL_UPDATE: The right to update a label.\n - RIGHT_LABEL_DELETE: The right to delete a label.\n - RIGHT_LABEL_ASSIGN: The right to assign a label to an entity.\n - RIGHT_ALL: The pseudo-right for all (current and future) possible rights.",
              "enum": [
                "right_invalid",
                "RIGHT_USER_INFO",
                "RIGHT_USER_SETTINGS_BASIC",
                "RIGHT_USER_LIST",
                "RIGHT_USER_CREATE",
                "RIGHT_USER_SETTINGS_API_KEYS",
                "RIGHT_USER_DELETE",
                "RIGHT_USER_PURGE",
                "RIGHT_USER_AUTHORIZED_CLIENTS",
                "RIGHT_USER_APPLICATIONS_LIST",
                "RIGHT_USER_APPLICATIONS_CREATE",
                "RIGHT_USER_GATEWAYS_LIST",
                "RIGHT_USER_GATEWAYS_CREATE",
                "RIGHT_USER_CLIENTS_LIST",
                "RIGHT_USER_CLIENTS_CREATE",
                "RIGHT_USER_ORGANIZATIONS_LIST",
                "RIGHT_USER_ORGANIZATIONS_CREATE",
                "RIGHT_USER_NOTIFICATIONS_READ",
                "RIGHT_USER_ALL",
                "RIGHT_APPLICATION_INFO",
                "RIGHT_APPLICATION_SETTINGS_BASIC",
                "RIGHT_APPLICATION_SETTINGS_API_KEYS",
                "RIGHT_APPLICATION_SETTINGS_COLLABORATORS",
                "RIGHT_APPLICATION_SETTINGS_PACKAGES",
                "RIGHT_APPLICATION_DELETE",
                "RIGHT_APPLICATION_PURGE",
                "RIGHT_APPLICATION_DEVICES_READ",
                "RIGHT_APPLICATION_DEVICES_WRITE",
                "RIGHT_APPLICATION_DEVICES_READ_KEYS",
                "RIGHT_APPLICATION_DEVICES_WRITE_KEYS",
                "RIGHT_APPLICATION_TRAFFIC_READ",
                "RIGHT_APPLICATION_TRAFFIC_UP_WRITE",
                "RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE",
                "RIGHT_APPLICATION_LINK",
                "RIGHT_APPLICATION_ALL",
                "RIGHT_CLIENT_ALL",
                "RIGHT_CLIENT_INFO",
                "RIGHT_CLIENT_SETTINGS_BASIC",
                "RIGHT_CLIENT_SETTINGS_COLLABORATORS",
                "RIGHT_CLIENT_DELETE",
                "RIGHT_CLIENT_PURGE",
                "RIGHT_GATEWAY_INFO",
                "RIGHT_GATEWAY_SETTINGS_BASIC",
                "RIGHT_GATEWAY_SETTINGS_API_KEYS",
                "RIGHT_GATEWAY_SETTINGS_COLLABORATORS",
                "RIGHT_GATEWAY_DELETE",
                "RIGHT_GATEWAY_PURGE",
                "RIGHT_GATEWAY_TRAFFIC_READ",
                "RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE",
                "RIGHT_GATEWAY_LINK",
                "RIGHT_GATEWAY_STATUS_READ",
                "RIGHT_GATEWAY_LOCATION_READ",
                "RIGHT_GATEWAY_WRITE_SECRETS",
                "RIGHT_GATEWAY_READ_SECRETS",
                "RIGHT_GATEWAY_ALL",
                "RIGHT_ORGANIZATION_INFO",
                "RIGHT_ORGANIZATION_SETTINGS_BASIC",
                "RIGHT_ORGANIZATION_SETTINGS_API_KEYS",
                "RIGHT_ORGANIZATION_SETTINGS_MEMBERS",
                "RIGHT_ORGANIZATION_DELETE",
                "RIGHT_ORGANIZATION_PURGE",
                "RIGHT_ORGANIZATION_APPLICATIONS_LIST",
                "RIGHT_ORGANIZATION_APPLICATIONS_CREATE",
                "RIGHT_ORGANIZATION_GATEWAYS_LIST",
                "RIGHT_ORGANIZATION_GATEWAYS_CREATE",
                "RIGHT_ORGANIZATION_CLIENTS_LIST",
                "RIGHT_ORGANIZATION_CLIENTS_CREATE",
                "RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR",
                "RIGHT_ORGANIZATION_ALL",
                "RIGHT_SEND_INVITES",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_INFO",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_LIST",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE",
                "RIGHT_AUTHENTICATION_PROVIDER_CREATE",
                "RIGHT_AUTHENTICATION_PROVIDER_INFO",
                "RIGHT_AUTHENTICATION_PROVIDER_LIST",
                "RIGHT_AUTHENTICATION_PROVIDER_UPDATE",
                "RIGHT_AUTHENTICATION_PROVIDER_DELETE",
                "RIGHT_EXTERNAL_USER_CREATE",
                "RIGHT_EXTERNAL_USER_INFO",
                "RIGHT_EXTERNAL_USER_DELETE",
                "RIGHT_PACKET_BROKER_AGENT_READ",
                "RIGHT_PACKET_BROKER_AGENT_WRITE",
                "RIGHT_TENANT_CONFIGURATION_UPDATE",
                "RIGHT_LABEL_CREATE",
                "RIGHT_LABEL_INFO",
                "RIGHT_LABELS_LIST",
                "RIGHT_LABEL_UPDATE",
                "RIGHT_LABEL_DELETE",
                "RIGHT_LABEL_ASSIGN",
                "RIGHT_ALL"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "application_ids": {
        "type": "object"
      },
      "field_mask": {
        "description": "The names of the api key fields that should be updated.",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationActivationSettingRegistrySetBody

    Fields
    Name Type Description
    application_ids object
    field_mask string
    settings object
    Schema
    {
      "application_ids": {
        "type": "object"
      },
      "field_mask": {
        "type": "string"
      },
      "settings": {
        "properties": {
          "application_server_id": {
            "description": "The AS-ID of the Application Server to use.",
            "type": "string"
          },
          "home_net_id": {
            "description": "Home NetID.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "kek": {
            "properties": {
              "encrypted_key": {
                "format": "byte",
                "type": "string"
              },
              "kek_label": {
                "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                "type": "string"
              },
              "key": {
                "description": "The unencrypted AES key.",
                "example": "0123456789ABCDEF0123456789ABCDEF",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          },
          "kek_label": {
            "description": "The KEK label to use for wrapping application keys.",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationActivationSettings

    Fields
    Name Type Description
    application_server_id string The AS-ID of the Application Server to use.
    home_net_id string Home NetID.
    kek object
    kek_label string The KEK label to use for wrapping application keys.
    Schema
    {
      "application_server_id": {
        "description": "The AS-ID of the Application Server to use.",
        "type": "string"
      },
      "home_net_id": {
        "description": "Home NetID.",
        "example": "000013",
        "format": "string",
        "type": "string"
      },
      "kek": {
        "properties": {
          "encrypted_key": {
            "format": "byte",
            "type": "string"
          },
          "kek_label": {
            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
            "type": "string"
          },
          "key": {
            "description": "The unencrypted AES key.",
            "example": "0123456789ABCDEF0123456789ABCDEF",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "kek_label": {
        "description": "The KEK label to use for wrapping application keys.",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationDownlink

    Fields
    Name Type Description
    attributes object Attributes for devices, set by the Application Server while handling the message.
    class_b_c object
    confirmed boolean
    confirmed_retry object
    correlation_ids string
    decoded_payload object 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 string Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).
    f_cnt integer
    f_port integer
    frm_payload string The frame payload of the downlink message. The payload is encrypted if the skip_payload_crypto field of the EndDevice is true.
    locations object End device location metadata, set by the Application Server while handling the message.
    network_ids object Identifies a Network Server.
    priority string
    session_key_id string Join Server issued identifier for the session keys used by this downlink.
    version_ids object Identifies an end device model with version information.
    Schema
    {
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Attributes for devices, set by the Application Server while handling the message.",
        "type": "object"
      },
      "class_b_c": {
        "properties": {
          "absolute_time": {
            "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
            "format": "date-time",
            "type": "string"
          },
          "gateways": {
            "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
            "items": {
              "properties": {
                "antenna_index": {
                  "format": "int64",
                  "type": "integer"
                },
                "gateway_ids": {
                  "properties": {
                    "eui": {
                      "description": "Secondary identifier, which can only be used in specific requests.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "gateway_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "group_index": {
                  "format": "int64",
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "confirmed": {
        "type": "boolean"
      },
      "confirmed_retry": {
        "properties": {
          "attempt": {
            "description": "The number of attempted confirmed downlink acknowledgements.",
            "format": "int64",
            "type": "integer"
          },
          "max_attempts": {
            "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "correlation_ids": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "decoded_payload": {
        "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
        "type": "object"
      },
      "decoded_payload_warnings": {
        "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "f_cnt": {
        "format": "int64",
        "type": "integer"
      },
      "f_port": {
        "format": "int64",
        "type": "integer"
      },
      "frm_payload": {
        "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
        "format": "byte",
        "type": "string"
      },
      "locations": {
        "additionalProperties": {
          "properties": {
            "accuracy": {
              "description": "The accuracy of the location (meters).",
              "format": "int32",
              "type": "integer"
            },
            "altitude": {
              "description": "The altitude (meters), where 0 is the mean sea level.",
              "format": "int32",
              "type": "integer"
            },
            "latitude": {
              "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
              "format": "double",
              "type": "number"
            },
            "longitude": {
              "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
              "format": "double",
              "type": "number"
            },
            "source": {
              "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.",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "End device location metadata, set by the Application Server while handling the message.",
        "type": "object"
      },
      "network_ids": {
        "description": "Identifies a Network Server.",
        "properties": {
          "cluster_address": {
            "description": "Cluster address of the Network Server.",
            "type": "string"
          },
          "cluster_id": {
            "description": "Cluster identifier of the Network Server.",
            "type": "string"
          },
          "net_id": {
            "description": "LoRa Alliance NetID.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "ns_id": {
            "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "tenant_address": {
            "description": "Optional tenant address for multi-tenant deployments.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Optional tenant identifier for multi-tenant deployments.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "priority": {
        "default": "LOWEST",
        "enum": [
          "LOWEST",
          "LOW",
          "BELOW_NORMAL",
          "NORMAL",
          "ABOVE_NORMAL",
          "HIGH",
          "HIGHEST"
        ],
        "type": "string"
      },
      "session_key_id": {
        "description": "Join Server issued identifier for the session keys used by this downlink.",
        "format": "byte",
        "type": "string"
      },
      "version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationDownlinkFailed

    Fields
    Name Type Description
    attributes object Attributes for devices, set by the Application Server while handling the message.
    downlink object
    error ErrorDetails
    locations object End device location metadata, set by the Application Server while handling the message.
    network_ids object Identifies a Network Server.
    version_ids object Identifies an end device model with version information.
    Schema
    {
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Attributes for devices, set by the Application Server while handling the message.",
        "type": "object"
      },
      "downlink": {
        "properties": {
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Attributes for devices, set by the Application Server while handling the message.",
            "type": "object"
          },
          "class_b_c": {
            "properties": {
              "absolute_time": {
                "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                "format": "date-time",
                "type": "string"
              },
              "gateways": {
                "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                "items": {
                  "properties": {
                    "antenna_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "gateway_ids": {
                      "properties": {
                        "eui": {
                          "description": "Secondary identifier, which can only be used in specific requests.",
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "gateway_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "group_index": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "confirmed": {
            "type": "boolean"
          },
          "confirmed_retry": {
            "properties": {
              "attempt": {
                "description": "The number of attempted confirmed downlink acknowledgements.",
                "format": "int64",
                "type": "integer"
              },
              "max_attempts": {
                "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "correlation_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "decoded_payload": {
            "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
            "type": "object"
          },
          "decoded_payload_warnings": {
            "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "f_cnt": {
            "format": "int64",
            "type": "integer"
          },
          "f_port": {
            "format": "int64",
            "type": "integer"
          },
          "frm_payload": {
            "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
            "format": "byte",
            "type": "string"
          },
          "locations": {
            "additionalProperties": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "description": "End device location metadata, set by the Application Server while handling the message.",
            "type": "object"
          },
          "network_ids": {
            "description": "Identifies a Network Server.",
            "properties": {
              "cluster_address": {
                "description": "Cluster address of the Network Server.",
                "type": "string"
              },
              "cluster_id": {
                "description": "Cluster identifier of the Network Server.",
                "type": "string"
              },
              "net_id": {
                "description": "LoRa Alliance NetID.",
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "ns_id": {
                "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "tenant_address": {
                "description": "Optional tenant address for multi-tenant deployments.",
                "type": "string"
              },
              "tenant_id": {
                "description": "Optional tenant identifier for multi-tenant deployments.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "priority": {
            "default": "LOWEST",
            "enum": [
              "LOWEST",
              "LOW",
              "BELOW_NORMAL",
              "NORMAL",
              "ABOVE_NORMAL",
              "HIGH",
              "HIGHEST"
            ],
            "type": "string"
          },
          "session_key_id": {
            "description": "Join Server issued identifier for the session keys used by this downlink.",
            "format": "byte",
            "type": "string"
          },
          "version_ids": {
            "description": "Identifies an end device model with version information.",
            "properties": {
              "band_id": {
                "type": "string"
              },
              "brand_id": {
                "type": "string"
              },
              "firmware_version": {
                "type": "string"
              },
              "hardware_version": {
                "type": "string"
              },
              "model_id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "error": {
        "$ref": "#/definitions/v3ErrorDetails"
      },
      "locations": {
        "additionalProperties": {
          "properties": {
            "accuracy": {
              "description": "The accuracy of the location (meters).",
              "format": "int32",
              "type": "integer"
            },
            "altitude": {
              "description": "The altitude (meters), where 0 is the mean sea level.",
              "format": "int32",
              "type": "integer"
            },
            "latitude": {
              "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
              "format": "double",
              "type": "number"
            },
            "longitude": {
              "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
              "format": "double",
              "type": "number"
            },
            "source": {
              "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.",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "End device location metadata, set by the Application Server while handling the message.",
        "type": "object"
      },
      "network_ids": {
        "description": "Identifies a Network Server.",
        "properties": {
          "cluster_address": {
            "description": "Cluster address of the Network Server.",
            "type": "string"
          },
          "cluster_id": {
            "description": "Cluster identifier of the Network Server.",
            "type": "string"
          },
          "net_id": {
            "description": "LoRa Alliance NetID.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "ns_id": {
            "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "tenant_address": {
            "description": "Optional tenant address for multi-tenant deployments.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Optional tenant identifier for multi-tenant deployments.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationDownlinks

    Fields
    Name Type Description
    downlinks object
    Schema
    {
      "downlinks": {
        "items": {
          "properties": {
            "attributes": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Attributes for devices, set by the Application Server while handling the message.",
              "type": "object"
            },
            "class_b_c": {
              "properties": {
                "absolute_time": {
                  "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                  "format": "date-time",
                  "type": "string"
                },
                "gateways": {
                  "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                  "items": {
                    "properties": {
                      "antenna_index": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "gateway_ids": {
                        "properties": {
                          "eui": {
                            "description": "Secondary identifier, which can only be used in specific requests.",
                            "example": "70B3D57ED000ABCD",
                            "format": "string",
                            "type": "string"
                          },
                          "gateway_id": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "group_index": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "confirmed": {
              "type": "boolean"
            },
            "confirmed_retry": {
              "properties": {
                "attempt": {
                  "description": "The number of attempted confirmed downlink acknowledgements.",
                  "format": "int64",
                  "type": "integer"
                },
                "max_attempts": {
                  "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                  "format": "int64",
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "correlation_ids": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "decoded_payload": {
              "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
              "type": "object"
            },
            "decoded_payload_warnings": {
              "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "f_cnt": {
              "format": "int64",
              "type": "integer"
            },
            "f_port": {
              "format": "int64",
              "type": "integer"
            },
            "frm_payload": {
              "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
              "format": "byte",
              "type": "string"
            },
            "locations": {
              "additionalProperties": {
                "properties": {
                  "accuracy": {
                    "description": "The accuracy of the location (meters).",
                    "format": "int32",
                    "type": "integer"
                  },
                  "altitude": {
                    "description": "The altitude (meters), where 0 is the mean sea level.",
                    "format": "int32",
                    "type": "integer"
                  },
                  "latitude": {
                    "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                    "format": "double",
                    "type": "number"
                  },
                  "longitude": {
                    "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                    "format": "double",
                    "type": "number"
                  },
                  "source": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "description": "End device location metadata, set by the Application Server while handling the message.",
              "type": "object"
            },
            "network_ids": {
              "description": "Identifies a Network Server.",
              "properties": {
                "cluster_address": {
                  "description": "Cluster address of the Network Server.",
                  "type": "string"
                },
                "cluster_id": {
                  "description": "Cluster identifier of the Network Server.",
                  "type": "string"
                },
                "net_id": {
                  "description": "LoRa Alliance NetID.",
                  "example": "000013",
                  "format": "string",
                  "type": "string"
                },
                "ns_id": {
                  "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "tenant_address": {
                  "description": "Optional tenant address for multi-tenant deployments.",
                  "type": "string"
                },
                "tenant_id": {
                  "description": "Optional tenant identifier for multi-tenant deployments.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "priority": {
              "default": "LOWEST",
              "enum": [
                "LOWEST",
                "LOW",
                "BELOW_NORMAL",
                "NORMAL",
                "ABOVE_NORMAL",
                "HIGH",
                "HIGHEST"
              ],
              "type": "string"
            },
            "session_key_id": {
              "description": "Join Server issued identifier for the session keys used by this downlink.",
              "format": "byte",
              "type": "string"
            },
            "version_ids": {
              "description": "Identifies an end device model with version information.",
              "properties": {
                "band_id": {
                  "type": "string"
                },
                "brand_id": {
                  "type": "string"
                },
                "firmware_version": {
                  "type": "string"
                },
                "hardware_version": {
                  "type": "string"
                },
                "model_id": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationEndDeviceStatistic

    Application end devices statistic.
    Fields
    Name Type Description
    best_channel_rssi number
    best_gateway_ids object
    end_device_ids object
    last_packet_error_rate number
    last_seen string
    packet_count string
    Schema
    {
      "best_channel_rssi": {
        "format": "float",
        "type": "number"
      },
      "best_gateway_ids": {
        "properties": {
          "eui": {
            "description": "Secondary identifier, which can only be used in specific requests.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "gateway_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "end_device_ids": {
        "properties": {
          "application_ids": {
            "properties": {
              "application_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "device_id": {
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "last_packet_error_rate": {
        "format": "float",
        "type": "number"
      },
      "last_seen": {
        "format": "date-time",
        "type": "string"
      },
      "packet_count": {
        "format": "uint64",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationEndDeviceStatistics

    Application end devices statistics.
    Fields
    Name Type Description
    stats object
    Schema
    {
      "stats": {
        "items": {
          "description": "Application end devices statistic.",
          "properties": {
            "best_channel_rssi": {
              "format": "float",
              "type": "number"
            },
            "best_gateway_ids": {
              "properties": {
                "eui": {
                  "description": "Secondary identifier, which can only be used in specific requests.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "gateway_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "end_device_ids": {
              "properties": {
                "application_ids": {
                  "properties": {
                    "application_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "dev_addr": {
                  "description": "The LoRaWAN DevAddr.",
                  "example": "2600ABCD",
                  "format": "string",
                  "type": "string"
                },
                "dev_eui": {
                  "description": "The LoRaWAN DevEUI.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "device_id": {
                  "type": "string"
                },
                "join_eui": {
                  "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "last_packet_error_rate": {
              "format": "float",
              "type": "number"
            },
            "last_seen": {
              "format": "date-time",
              "type": "string"
            },
            "packet_count": {
              "format": "uint64",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationEventForwardCount

    Fields
    Name Type Description
    count object Application Server forwarded events count per event name.
    time string
    Schema
    {
      "count": {
        "additionalProperties": {
          "format": "uint64",
          "type": "string"
        },
        "description": "Application Server forwarded events count per event name.",
        "type": "object"
      },
      "time": {
        "format": "date-time",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationEventsForwardCount

    Fields
    Name Type Description
    event_forward_count object
    Schema
    {
      "event_forward_count": {
        "items": {
          "properties": {
            "count": {
              "additionalProperties": {
                "format": "uint64",
                "type": "string"
              },
              "description": "Application Server forwarded events count per event name.",
              "type": "object"
            },
            "time": {
              "format": "date-time",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationGatewaysSeen

    Fields
    Name Type Description
    gateways object
    Schema
    {
      "gateways": {
        "items": {
          "properties": {
            "best_channel_rssi": {
              "format": "float",
              "type": "number"
            },
            "gateway_id": {
              "properties": {
                "eui": {
                  "description": "Secondary identifier, which can only be used in specific requests.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "gateway_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "packet_count": {
              "format": "uint64",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationIdentifiers

    Fields
    Name Type Description
    application_id string
    Schema
    {
      "application_id": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationInvalidatedDownlinks

    Fields
    Name Type Description
    attributes object Attributes for devices, set by the Application Server while handling the message.
    downlinks object
    last_f_cnt_down integer
    locations object End device location metadata, set by the Application Server while handling the message.
    network_ids object Identifies a Network Server.
    session_key_id string
    version_ids object Identifies an end device model with version information.
    Schema
    {
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Attributes for devices, set by the Application Server while handling the message.",
        "type": "object"
      },
      "downlinks": {
        "items": {
          "properties": {
            "attributes": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Attributes for devices, set by the Application Server while handling the message.",
              "type": "object"
            },
            "class_b_c": {
              "properties": {
                "absolute_time": {
                  "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                  "format": "date-time",
                  "type": "string"
                },
                "gateways": {
                  "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                  "items": {
                    "properties": {
                      "antenna_index": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "gateway_ids": {
                        "properties": {
                          "eui": {
                            "description": "Secondary identifier, which can only be used in specific requests.",
                            "example": "70B3D57ED000ABCD",
                            "format": "string",
                            "type": "string"
                          },
                          "gateway_id": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "group_index": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "confirmed": {
              "type": "boolean"
            },
            "confirmed_retry": {
              "properties": {
                "attempt": {
                  "description": "The number of attempted confirmed downlink acknowledgements.",
                  "format": "int64",
                  "type": "integer"
                },
                "max_attempts": {
                  "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                  "format": "int64",
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "correlation_ids": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "decoded_payload": {
              "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
              "type": "object"
            },
            "decoded_payload_warnings": {
              "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "f_cnt": {
              "format": "int64",
              "type": "integer"
            },
            "f_port": {
              "format": "int64",
              "type": "integer"
            },
            "frm_payload": {
              "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
              "format": "byte",
              "type": "string"
            },
            "locations": {
              "additionalProperties": {
                "properties": {
                  "accuracy": {
                    "description": "The accuracy of the location (meters).",
                    "format": "int32",
                    "type": "integer"
                  },
                  "altitude": {
                    "description": "The altitude (meters), where 0 is the mean sea level.",
                    "format": "int32",
                    "type": "integer"
                  },
                  "latitude": {
                    "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                    "format": "double",
                    "type": "number"
                  },
                  "longitude": {
                    "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                    "format": "double",
                    "type": "number"
                  },
                  "source": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "description": "End device location metadata, set by the Application Server while handling the message.",
              "type": "object"
            },
            "network_ids": {
              "description": "Identifies a Network Server.",
              "properties": {
                "cluster_address": {
                  "description": "Cluster address of the Network Server.",
                  "type": "string"
                },
                "cluster_id": {
                  "description": "Cluster identifier of the Network Server.",
                  "type": "string"
                },
                "net_id": {
                  "description": "LoRa Alliance NetID.",
                  "example": "000013",
                  "format": "string",
                  "type": "string"
                },
                "ns_id": {
                  "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "tenant_address": {
                  "description": "Optional tenant address for multi-tenant deployments.",
                  "type": "string"
                },
                "tenant_id": {
                  "description": "Optional tenant identifier for multi-tenant deployments.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "priority": {
              "default": "LOWEST",
              "enum": [
                "LOWEST",
                "LOW",
                "BELOW_NORMAL",
                "NORMAL",
                "ABOVE_NORMAL",
                "HIGH",
                "HIGHEST"
              ],
              "type": "string"
            },
            "session_key_id": {
              "description": "Join Server issued identifier for the session keys used by this downlink.",
              "format": "byte",
              "type": "string"
            },
            "version_ids": {
              "description": "Identifies an end device model with version information.",
              "properties": {
                "band_id": {
                  "type": "string"
                },
                "brand_id": {
                  "type": "string"
                },
                "firmware_version": {
                  "type": "string"
                },
                "hardware_version": {
                  "type": "string"
                },
                "model_id": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "last_f_cnt_down": {
        "format": "int64",
        "type": "integer"
      },
      "locations": {
        "additionalProperties": {
          "properties": {
            "accuracy": {
              "description": "The accuracy of the location (meters).",
              "format": "int32",
              "type": "integer"
            },
            "altitude": {
              "description": "The altitude (meters), where 0 is the mean sea level.",
              "format": "int32",
              "type": "integer"
            },
            "latitude": {
              "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
              "format": "double",
              "type": "number"
            },
            "longitude": {
              "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
              "format": "double",
              "type": "number"
            },
            "source": {
              "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.",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "End device location metadata, set by the Application Server while handling the message.",
        "type": "object"
      },
      "network_ids": {
        "description": "Identifies a Network Server.",
        "properties": {
          "cluster_address": {
            "description": "Cluster address of the Network Server.",
            "type": "string"
          },
          "cluster_id": {
            "description": "Cluster identifier of the Network Server.",
            "type": "string"
          },
          "net_id": {
            "description": "LoRa Alliance NetID.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "ns_id": {
            "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "tenant_address": {
            "description": "Optional tenant address for multi-tenant deployments.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Optional tenant identifier for multi-tenant deployments.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "session_key_id": {
        "format": "byte",
        "type": "string"
      },
      "version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationJoinAccept

    Fields
    Name Type Description
    app_s_key object
    attributes object Attributes for devices, set by the Application Server while handling the message.
    invalidated_downlinks object Downlink messages in the queue that got invalidated because of the session change.
    locations object End device location metadata, set by the Application Server while handling the message.
    network_ids object Identifies a Network Server.
    pending_session boolean Indicates whether the security context refers to the pending session, i.e. when this join-accept is an answer to a rejoin-request.
    received_at string Server time when the Network Server received the message.
    session_key_id string Join Server issued identifier for the session keys negotiated in this join.
    version_ids object Identifies an end device model with version information.
    Schema
    {
      "app_s_key": {
        "properties": {
          "encrypted_key": {
            "format": "byte",
            "type": "string"
          },
          "kek_label": {
            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
            "type": "string"
          },
          "key": {
            "description": "The unencrypted AES key.",
            "example": "0123456789ABCDEF0123456789ABCDEF",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Attributes for devices, set by the Application Server while handling the message.",
        "type": "object"
      },
      "invalidated_downlinks": {
        "description": "Downlink messages in the queue that got invalidated because of the session change.",
        "items": {
          "properties": {
            "attributes": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Attributes for devices, set by the Application Server while handling the message.",
              "type": "object"
            },
            "class_b_c": {
              "properties": {
                "absolute_time": {
                  "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                  "format": "date-time",
                  "type": "string"
                },
                "gateways": {
                  "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                  "items": {
                    "properties": {
                      "antenna_index": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "gateway_ids": {
                        "properties": {
                          "eui": {
                            "description": "Secondary identifier, which can only be used in specific requests.",
                            "example": "70B3D57ED000ABCD",
                            "format": "string",
                            "type": "string"
                          },
                          "gateway_id": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "group_index": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "confirmed": {
              "type": "boolean"
            },
            "confirmed_retry": {
              "properties": {
                "attempt": {
                  "description": "The number of attempted confirmed downlink acknowledgements.",
                  "format": "int64",
                  "type": "integer"
                },
                "max_attempts": {
                  "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                  "format": "int64",
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "correlation_ids": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "decoded_payload": {
              "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
              "type": "object"
            },
            "decoded_payload_warnings": {
              "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "f_cnt": {
              "format": "int64",
              "type": "integer"
            },
            "f_port": {
              "format": "int64",
              "type": "integer"
            },
            "frm_payload": {
              "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
              "format": "byte",
              "type": "string"
            },
            "locations": {
              "additionalProperties": {
                "properties": {
                  "accuracy": {
                    "description": "The accuracy of the location (meters).",
                    "format": "int32",
                    "type": "integer"
                  },
                  "altitude": {
                    "description": "The altitude (meters), where 0 is the mean sea level.",
                    "format": "int32",
                    "type": "integer"
                  },
                  "latitude": {
                    "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                    "format": "double",
                    "type": "number"
                  },
                  "longitude": {
                    "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                    "format": "double",
                    "type": "number"
                  },
                  "source": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "description": "End device location metadata, set by the Application Server while handling the message.",
              "type": "object"
            },
            "network_ids": {
              "description": "Identifies a Network Server.",
              "properties": {
                "cluster_address": {
                  "description": "Cluster address of the Network Server.",
                  "type": "string"
                },
                "cluster_id": {
                  "description": "Cluster identifier of the Network Server.",
                  "type": "string"
                },
                "net_id": {
                  "description": "LoRa Alliance NetID.",
                  "example": "000013",
                  "format": "string",
                  "type": "string"
                },
                "ns_id": {
                  "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "tenant_address": {
                  "description": "Optional tenant address for multi-tenant deployments.",
                  "type": "string"
                },
                "tenant_id": {
                  "description": "Optional tenant identifier for multi-tenant deployments.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "priority": {
              "default": "LOWEST",
              "enum": [
                "LOWEST",
                "LOW",
                "BELOW_NORMAL",
                "NORMAL",
                "ABOVE_NORMAL",
                "HIGH",
                "HIGHEST"
              ],
              "type": "string"
            },
            "session_key_id": {
              "description": "Join Server issued identifier for the session keys used by this downlink.",
              "format": "byte",
              "type": "string"
            },
            "version_ids": {
              "description": "Identifies an end device model with version information.",
              "properties": {
                "band_id": {
                  "type": "string"
                },
                "brand_id": {
                  "type": "string"
                },
                "firmware_version": {
                  "type": "string"
                },
                "hardware_version": {
                  "type": "string"
                },
                "model_id": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "locations": {
        "additionalProperties": {
          "properties": {
            "accuracy": {
              "description": "The accuracy of the location (meters).",
              "format": "int32",
              "type": "integer"
            },
            "altitude": {
              "description": "The altitude (meters), where 0 is the mean sea level.",
              "format": "int32",
              "type": "integer"
            },
            "latitude": {
              "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
              "format": "double",
              "type": "number"
            },
            "longitude": {
              "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
              "format": "double",
              "type": "number"
            },
            "source": {
              "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.",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "End device location metadata, set by the Application Server while handling the message.",
        "type": "object"
      },
      "network_ids": {
        "description": "Identifies a Network Server.",
        "properties": {
          "cluster_address": {
            "description": "Cluster address of the Network Server.",
            "type": "string"
          },
          "cluster_id": {
            "description": "Cluster identifier of the Network Server.",
            "type": "string"
          },
          "net_id": {
            "description": "LoRa Alliance NetID.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "ns_id": {
            "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "tenant_address": {
            "description": "Optional tenant address for multi-tenant deployments.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Optional tenant identifier for multi-tenant deployments.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "pending_session": {
        "description": "Indicates whether the security context refers to the pending session, i.e. when this join-accept is an answer to a\nrejoin-request.",
        "type": "boolean"
      },
      "received_at": {
        "description": "Server time when the Network Server received the message.",
        "format": "date-time",
        "type": "string"
      },
      "session_key_id": {
        "description": "Join Server issued identifier for the session keys negotiated in this join.",
        "format": "byte",
        "type": "string"
      },
      "version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationLink

    Fields
    Name Type Description
    default_formatters object
    skip_payload_crypto boolean Skip decryption of uplink payloads and encryption of downlink payloads. Leave empty for the using the Application Server's default setting.
    Schema
    {
      "default_formatters": {
        "properties": {
          "down_formatter": {
            "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.",
            "enum": [
              "FORMATTER_NONE",
              "FORMATTER_REPOSITORY",
              "FORMATTER_GRPC_SERVICE",
              "FORMATTER_JAVASCRIPT",
              "FORMATTER_CAYENNELPP"
            ],
            "type": "string"
          },
          "down_formatter_parameter": {
            "description": "Parameter for the down_formatter, must be set together. The API enforces a maximum length of 16KB, but the size may be restricted further by deployment configuration.",
            "type": "string"
          },
          "up_formatter": {
            "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.",
            "enum": [
              "FORMATTER_NONE",
              "FORMATTER_REPOSITORY",
              "FORMATTER_GRPC_SERVICE",
              "FORMATTER_JAVASCRIPT",
              "FORMATTER_CAYENNELPP"
            ],
            "type": "string"
          },
          "up_formatter_parameter": {
            "description": "Parameter for the up_formatter, must be set together. The API enforces a maximum length of 16KB, but the size may be restricted further by deployment configuration.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "skip_payload_crypto": {
        "description": "Skip decryption of uplink payloads and encryption of downlink payloads.\nLeave empty for the using the Application Server's default setting.",
        "type": "boolean"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationLinkStats

    Link stats as monitored by the Application Server.
    Fields
    Name Type Description
    downlink_count string Number of downlink messages forwarded.
    last_downlink_forwarded_at string Timestamp when the last downlink message has been forwarded to a Network Server.
    last_up_received_at string Timestamp when the last upstream message has been received from a Network Server. This can be a join-accept, uplink message or downlink message event.
    linked_at string
    network_server_address string
    up_count string Number of upstream messages received.
    Schema
    {
      "downlink_count": {
        "description": "Number of downlink messages forwarded.",
        "format": "uint64",
        "type": "string"
      },
      "last_downlink_forwarded_at": {
        "description": "Timestamp when the last downlink message has been forwarded to a Network Server.",
        "format": "date-time",
        "type": "string"
      },
      "last_up_received_at": {
        "description": "Timestamp when the last upstream message has been received from a Network Server.\nThis can be a join-accept, uplink message or downlink message event.",
        "format": "date-time",
        "type": "string"
      },
      "linked_at": {
        "format": "date-time",
        "type": "string"
      },
      "network_server_address": {
        "type": "string"
      },
      "up_count": {
        "description": "Number of upstream messages received.",
        "format": "uint64",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationLocation

    Fields
    Name Type Description
    attributes object
    location object
    service string
    Schema
    {
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "type": "object"
      },
      "location": {
        "properties": {
          "accuracy": {
            "description": "The accuracy of the location (meters).",
            "format": "int32",
            "type": "integer"
          },
          "altitude": {
            "description": "The altitude (meters), where 0 is the mean sea level.",
            "format": "int32",
            "type": "integer"
          },
          "latitude": {
            "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
            "format": "double",
            "type": "number"
          },
          "longitude": {
            "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
            "format": "double",
            "type": "number"
          },
          "source": {
            "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.",
            "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"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "service": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationPackage

    Fields
    Name Type Description
    default_f_port integer
    name string
    Schema
    {
      "default_f_port": {
        "format": "int64",
        "type": "integer"
      },
      "name": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationPackageAssociation

    Fields
    Name Type Description
    created_at string
    data object
    ids object
    package_name string
    updated_at string
    Schema
    {
      "created_at": {
        "format": "date-time",
        "type": "string"
      },
      "data": {
        "type": "object"
      },
      "ids": {
        "properties": {
          "end_device_ids": {
            "properties": {
              "application_ids": {
                "properties": {
                  "application_id": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "dev_addr": {
                "description": "The LoRaWAN DevAddr.",
                "example": "2600ABCD",
                "format": "string",
                "type": "string"
              },
              "dev_eui": {
                "description": "The LoRaWAN DevEUI.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "device_id": {
                "type": "string"
              },
              "join_eui": {
                "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          },
          "f_port": {
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "package_name": {
        "type": "string"
      },
      "updated_at": {
        "format": "date-time",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationPackageAssociationIdentifiers

    Fields
    Name Type Description
    end_device_ids object
    f_port integer
    Schema
    {
      "end_device_ids": {
        "properties": {
          "application_ids": {
            "properties": {
              "application_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "device_id": {
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "f_port": {
        "format": "int64",
        "type": "integer"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationPackageAssociations

    Fields
    Name Type Description
    associations object
    Schema
    {
      "associations": {
        "items": {
          "properties": {
            "created_at": {
              "format": "date-time",
              "type": "string"
            },
            "data": {
              "type": "object"
            },
            "ids": {
              "properties": {
                "end_device_ids": {
                  "properties": {
                    "application_ids": {
                      "properties": {
                        "application_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "dev_addr": {
                      "description": "The LoRaWAN DevAddr.",
                      "example": "2600ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "dev_eui": {
                      "description": "The LoRaWAN DevEUI.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "device_id": {
                      "type": "string"
                    },
                    "join_eui": {
                      "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "f_port": {
                  "format": "int64",
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "package_name": {
              "type": "string"
            },
            "updated_at": {
              "format": "date-time",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationPackageDefaultAssociation

    Fields
    Name Type Description
    created_at string
    data object
    ids object
    package_name string
    updated_at string
    Schema
    {
      "created_at": {
        "format": "date-time",
        "type": "string"
      },
      "data": {
        "type": "object"
      },
      "ids": {
        "properties": {
          "application_ids": {
            "properties": {
              "application_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "f_port": {
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "package_name": {
        "type": "string"
      },
      "updated_at": {
        "format": "date-time",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationPackageDefaultAssociationIdentifiers

    Fields
    Name Type Description
    application_ids object
    f_port integer
    Schema
    {
      "application_ids": {
        "properties": {
          "application_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "f_port": {
        "format": "int64",
        "type": "integer"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationPackageDefaultAssociations

    Fields
    Name Type Description
    defaults object
    Schema
    {
      "defaults": {
        "items": {
          "properties": {
            "created_at": {
              "format": "date-time",
              "type": "string"
            },
            "data": {
              "type": "object"
            },
            "ids": {
              "properties": {
                "application_ids": {
                  "properties": {
                    "application_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "f_port": {
                  "format": "int64",
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "package_name": {
              "type": "string"
            },
            "updated_at": {
              "format": "date-time",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationPackages

    Fields
    Name Type Description
    packages object
    Schema
    {
      "packages": {
        "items": {
          "properties": {
            "default_f_port": {
              "format": "int64",
              "type": "integer"
            },
            "name": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationPubSub

    Fields
    Name Type Description
    aws_iot object
    base_topic string Base topic name to which the messages topic is appended.
    created_at string
    downlink_ack object
    downlink_failed object
    downlink_nack object
    downlink_push object
    downlink_queue_invalidated object
    downlink_queued object
    downlink_replace object
    downlink_sent object
    format string The format to use for the body. Supported values depend on the Application Server configuration.
    ids object
    join_accept object
    location_solved object
    mqtt object The MQTT provider settings.
    nats object The NATS provider settings.
    service_data object
    updated_at string
    uplink_message object
    uplink_normalized object
    Schema
    {
      "aws_iot": {
        "properties": {
          "access_key": {
            "properties": {
              "access_key_id": {
                "type": "string"
              },
              "secret_access_key": {
                "type": "string"
              },
              "session_token": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "assume_role": {
            "properties": {
              "arn": {
                "type": "string"
              },
              "external_id": {
                "type": "string"
              },
              "session_duration": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "default": {
            "properties": {
              "stack_name": {
                "description": "The stack name that is associated with the CloudFormation deployment of The Things Stack Enterprise integration.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "endpoint_address": {
            "description": "The endpoint address to connect to. If the endpoint address is left empty,\nthe integration will try to discover it.",
            "type": "string"
          },
          "region": {
            "description": "The AWS region.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "base_topic": {
        "description": "Base topic name to which the messages topic is appended.",
        "type": "string"
      },
      "created_at": {
        "format": "date-time",
        "type": "string"
      },
      "downlink_ack": {
        "properties": {
          "topic": {
            "description": "The topic on which the Application Server publishes or receives the messages.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "downlink_failed": {
        "properties": {
          "topic": {
            "description": "The topic on which the Application Server publishes or receives the messages.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "downlink_nack": {
        "properties": {
          "topic": {
            "description": "The topic on which the Application Server publishes or receives the messages.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "downlink_push": {
        "properties": {
          "topic": {
            "description": "The topic on which the Application Server publishes or receives the messages.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "downlink_queue_invalidated": {
        "properties": {
          "topic": {
            "description": "The topic on which the Application Server publishes or receives the messages.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "downlink_queued": {
        "properties": {
          "topic": {
            "description": "The topic on which the Application Server publishes or receives the messages.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "downlink_replace": {
        "properties": {
          "topic": {
            "description": "The topic on which the Application Server publishes or receives the messages.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "downlink_sent": {
        "properties": {
          "topic": {
            "description": "The topic on which the Application Server publishes or receives the messages.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "format": {
        "description": "The format to use for the body.\nSupported values depend on the Application Server configuration.",
        "type": "string"
      },
      "ids": {
        "properties": {
          "application_ids": {
            "properties": {
              "application_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "pub_sub_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "join_accept": {
        "properties": {
          "topic": {
            "description": "The topic on which the Application Server publishes or receives the messages.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "location_solved": {
        "properties": {
          "topic": {
            "description": "The topic on which the Application Server publishes or receives the messages.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "mqtt": {
        "description": "The MQTT provider settings.",
        "properties": {
          "client_id": {
            "type": "string"
          },
          "headers": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "HTTP headers to use on MQTT-over-Websocket connections.",
            "type": "object"
          },
          "password": {
            "type": "string"
          },
          "publish_qos": {
            "default": "AT_MOST_ONCE",
            "enum": [
              "AT_MOST_ONCE",
              "AT_LEAST_ONCE",
              "EXACTLY_ONCE"
            ],
            "type": "string"
          },
          "server_url": {
            "type": "string"
          },
          "subscribe_qos": {
            "default": "AT_MOST_ONCE",
            "enum": [
              "AT_MOST_ONCE",
              "AT_LEAST_ONCE",
              "EXACTLY_ONCE"
            ],
            "type": "string"
          },
          "tls_ca": {
            "description": "The server Root CA certificate. PEM formatted.",
            "format": "byte",
            "type": "string"
          },
          "tls_client_cert": {
            "description": "The client certificate. PEM formatted.",
            "format": "byte",
            "type": "string"
          },
          "tls_client_key": {
            "description": "The client private key. PEM formatted.",
            "format": "byte",
            "type": "string"
          },
          "use_tls": {
            "type": "boolean"
          },
          "username": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "nats": {
        "description": "The NATS provider settings.",
        "properties": {
          "server_url": {
            "description": "The server connection URL.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "service_data": {
        "properties": {
          "topic": {
            "description": "The topic on which the Application Server publishes or receives the messages.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "updated_at": {
        "format": "date-time",
        "type": "string"
      },
      "uplink_message": {
        "properties": {
          "topic": {
            "description": "The topic on which the Application Server publishes or receives the messages.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "uplink_normalized": {
        "properties": {
          "topic": {
            "description": "The topic on which the Application Server publishes or receives the messages.",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationPubSubFormats

    Fields
    Name Type Description
    formats object Format and description.
    Schema
    {
      "formats": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Format and description.",
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationPubSubIdentifiers

    Fields
    Name Type Description
    application_ids object
    pub_sub_id string
    Schema
    {
      "application_ids": {
        "properties": {
          "application_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "pub_sub_id": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationPubSubMessage

    Fields
    Name Type Description
    topic string The topic on which the Application Server publishes or receives the messages.
    Schema
    {
      "topic": {
        "description": "The topic on which the Application Server publishes or receives the messages.",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationPubSubRegistrySetBody

    Fields
    Name Type Description
    field_mask string
    pubsub object
    Schema
    {
      "field_mask": {
        "type": "string"
      },
      "pubsub": {
        "properties": {
          "aws_iot": {
            "properties": {
              "access_key": {
                "properties": {
                  "access_key_id": {
                    "type": "string"
                  },
                  "secret_access_key": {
                    "type": "string"
                  },
                  "session_token": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "assume_role": {
                "properties": {
                  "arn": {
                    "type": "string"
                  },
                  "external_id": {
                    "type": "string"
                  },
                  "session_duration": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "default": {
                "properties": {
                  "stack_name": {
                    "description": "The stack name that is associated with the CloudFormation deployment of The Things Stack Enterprise integration.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "endpoint_address": {
                "description": "The endpoint address to connect to. If the endpoint address is left empty,\nthe integration will try to discover it.",
                "type": "string"
              },
              "region": {
                "description": "The AWS region.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "base_topic": {
            "description": "Base topic name to which the messages topic is appended.",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "downlink_ack": {
            "properties": {
              "topic": {
                "description": "The topic on which the Application Server publishes or receives the messages.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "downlink_failed": {
            "properties": {
              "topic": {
                "description": "The topic on which the Application Server publishes or receives the messages.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "downlink_nack": {
            "properties": {
              "topic": {
                "description": "The topic on which the Application Server publishes or receives the messages.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "downlink_push": {
            "properties": {
              "topic": {
                "description": "The topic on which the Application Server publishes or receives the messages.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "downlink_queue_invalidated": {
            "properties": {
              "topic": {
                "description": "The topic on which the Application Server publishes or receives the messages.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "downlink_queued": {
            "properties": {
              "topic": {
                "description": "The topic on which the Application Server publishes or receives the messages.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "downlink_replace": {
            "properties": {
              "topic": {
                "description": "The topic on which the Application Server publishes or receives the messages.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "downlink_sent": {
            "properties": {
              "topic": {
                "description": "The topic on which the Application Server publishes or receives the messages.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "format": {
            "description": "The format to use for the body.\nSupported values depend on the Application Server configuration.",
            "type": "string"
          },
          "ids": {
            "properties": {
              "application_ids": {
                "type": "object"
              },
              "pub_sub_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "join_accept": {
            "properties": {
              "topic": {
                "description": "The topic on which the Application Server publishes or receives the messages.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "location_solved": {
            "properties": {
              "topic": {
                "description": "The topic on which the Application Server publishes or receives the messages.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "mqtt": {
            "description": "The MQTT provider settings.",
            "properties": {
              "client_id": {
                "type": "string"
              },
              "headers": {
                "additionalProperties": {
                  "type": "string"
                },
                "description": "HTTP headers to use on MQTT-over-Websocket connections.",
                "type": "object"
              },
              "password": {
                "type": "string"
              },
              "publish_qos": {
                "default": "AT_MOST_ONCE",
                "enum": [
                  "AT_MOST_ONCE",
                  "AT_LEAST_ONCE",
                  "EXACTLY_ONCE"
                ],
                "type": "string"
              },
              "server_url": {
                "type": "string"
              },
              "subscribe_qos": {
                "default": "AT_MOST_ONCE",
                "enum": [
                  "AT_MOST_ONCE",
                  "AT_LEAST_ONCE",
                  "EXACTLY_ONCE"
                ],
                "type": "string"
              },
              "tls_ca": {
                "description": "The server Root CA certificate. PEM formatted.",
                "format": "byte",
                "type": "string"
              },
              "tls_client_cert": {
                "description": "The client certificate. PEM formatted.",
                "format": "byte",
                "type": "string"
              },
              "tls_client_key": {
                "description": "The client private key. PEM formatted.",
                "format": "byte",
                "type": "string"
              },
              "use_tls": {
                "type": "boolean"
              },
              "username": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "nats": {
            "description": "The NATS provider settings.",
            "properties": {
              "server_url": {
                "description": "The server connection URL.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "service_data": {
            "properties": {
              "topic": {
                "description": "The topic on which the Application Server publishes or receives the messages.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          },
          "uplink_message": {
            "properties": {
              "topic": {
                "description": "The topic on which the Application Server publishes or receives the messages.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "uplink_normalized": {
            "properties": {
              "topic": {
                "description": "The topic on which the Application Server publishes or receives the messages.",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationPubSubs

    Fields
    Name Type Description
    pubsubs object
    Schema
    {
      "pubsubs": {
        "items": {
          "properties": {
            "aws_iot": {
              "properties": {
                "access_key": {
                  "properties": {
                    "access_key_id": {
                      "type": "string"
                    },
                    "secret_access_key": {
                      "type": "string"
                    },
                    "session_token": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "assume_role": {
                  "properties": {
                    "arn": {
                      "type": "string"
                    },
                    "external_id": {
                      "type": "string"
                    },
                    "session_duration": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "default": {
                  "properties": {
                    "stack_name": {
                      "description": "The stack name that is associated with the CloudFormation deployment of The Things Stack Enterprise integration.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "endpoint_address": {
                  "description": "The endpoint address to connect to. If the endpoint address is left empty,\nthe integration will try to discover it.",
                  "type": "string"
                },
                "region": {
                  "description": "The AWS region.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "base_topic": {
              "description": "Base topic name to which the messages topic is appended.",
              "type": "string"
            },
            "created_at": {
              "format": "date-time",
              "type": "string"
            },
            "downlink_ack": {
              "properties": {
                "topic": {
                  "description": "The topic on which the Application Server publishes or receives the messages.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "downlink_failed": {
              "properties": {
                "topic": {
                  "description": "The topic on which the Application Server publishes or receives the messages.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "downlink_nack": {
              "properties": {
                "topic": {
                  "description": "The topic on which the Application Server publishes or receives the messages.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "downlink_push": {
              "properties": {
                "topic": {
                  "description": "The topic on which the Application Server publishes or receives the messages.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "downlink_queue_invalidated": {
              "properties": {
                "topic": {
                  "description": "The topic on which the Application Server publishes or receives the messages.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "downlink_queued": {
              "properties": {
                "topic": {
                  "description": "The topic on which the Application Server publishes or receives the messages.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "downlink_replace": {
              "properties": {
                "topic": {
                  "description": "The topic on which the Application Server publishes or receives the messages.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "downlink_sent": {
              "properties": {
                "topic": {
                  "description": "The topic on which the Application Server publishes or receives the messages.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "format": {
              "description": "The format to use for the body.\nSupported values depend on the Application Server configuration.",
              "type": "string"
            },
            "ids": {
              "properties": {
                "application_ids": {
                  "properties": {
                    "application_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "pub_sub_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "join_accept": {
              "properties": {
                "topic": {
                  "description": "The topic on which the Application Server publishes or receives the messages.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "location_solved": {
              "properties": {
                "topic": {
                  "description": "The topic on which the Application Server publishes or receives the messages.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "mqtt": {
              "description": "The MQTT provider settings.",
              "properties": {
                "client_id": {
                  "type": "string"
                },
                "headers": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "HTTP headers to use on MQTT-over-Websocket connections.",
                  "type": "object"
                },
                "password": {
                  "type": "string"
                },
                "publish_qos": {
                  "default": "AT_MOST_ONCE",
                  "enum": [
                    "AT_MOST_ONCE",
                    "AT_LEAST_ONCE",
                    "EXACTLY_ONCE"
                  ],
                  "type": "string"
                },
                "server_url": {
                  "type": "string"
                },
                "subscribe_qos": {
                  "default": "AT_MOST_ONCE",
                  "enum": [
                    "AT_MOST_ONCE",
                    "AT_LEAST_ONCE",
                    "EXACTLY_ONCE"
                  ],
                  "type": "string"
                },
                "tls_ca": {
                  "description": "The server Root CA certificate. PEM formatted.",
                  "format": "byte",
                  "type": "string"
                },
                "tls_client_cert": {
                  "description": "The client certificate. PEM formatted.",
                  "format": "byte",
                  "type": "string"
                },
                "tls_client_key": {
                  "description": "The client private key. PEM formatted.",
                  "format": "byte",
                  "type": "string"
                },
                "use_tls": {
                  "type": "boolean"
                },
                "username": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "nats": {
              "description": "The NATS provider settings.",
              "properties": {
                "server_url": {
                  "description": "The server connection URL.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "service_data": {
              "properties": {
                "topic": {
                  "description": "The topic on which the Application Server publishes or receives the messages.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "updated_at": {
              "format": "date-time",
              "type": "string"
            },
            "uplink_message": {
              "properties": {
                "topic": {
                  "description": "The topic on which the Application Server publishes or receives the messages.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "uplink_normalized": {
              "properties": {
                "topic": {
                  "description": "The topic on which the Application Server publishes or receives the messages.",
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationRegistryCreateBody

    Fields
    Name Type Description
    application object Application is the message that defines an Application in the network.
    collaborator object Collaborator to grant all rights on the newly created application.
    Schema
    {
      "application": {
        "description": "Application is the message that defines an Application in the network.",
        "properties": {
          "administrative_contact": {
            "description": "OrganizationOrUserIdentifiers contains either organization or user identifiers.",
            "properties": {
              "organization_ids": {
                "properties": {
                  "organization_id": {
                    "description": "This ID shares namespace with user IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "user_ids": {
                "properties": {
                  "email": {
                    "description": "Secondary identifier, which can only be used in specific requests.",
                    "type": "string"
                  },
                  "user_id": {
                    "description": "This ID shares namespace with organization IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "application_server_address": {
            "description": "The address of the Application Server where this application is supposed to be registered.\nIf set, this fields indicates where end devices for this application should be registered.\n\nStored in Entity Registry.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
            "type": "string"
          },
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Key-value attributes for this application. Typically used for organizing applications or for storing integration-specific data.",
            "type": "object"
          },
          "contact_info": {
            "description": "Contact information for this application. Typically used to indicate who to contact with technical/security questions about the application.\nThis field is deprecated. Use administrative_contact and technical_contact instead.",
            "items": {
              "properties": {
                "contact_method": {
                  "default": "CONTACT_METHOD_OTHER",
                  "enum": [
                    "CONTACT_METHOD_OTHER",
                    "CONTACT_METHOD_EMAIL",
                    "CONTACT_METHOD_PHONE"
                  ],
                  "type": "string"
                },
                "contact_type": {
                  "default": "CONTACT_TYPE_OTHER",
                  "enum": [
                    "CONTACT_TYPE_OTHER",
                    "CONTACT_TYPE_ABUSE",
                    "CONTACT_TYPE_BILLING",
                    "CONTACT_TYPE_TECHNICAL"
                  ],
                  "type": "string"
                },
                "public": {
                  "type": "boolean"
                },
                "validated_at": {
                  "format": "date-time",
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "created_at": {
            "description": "When the application was created. This information is public and can be seen by any authenticated user in the network.",
            "format": "date-time",
            "type": "string"
          },
          "deleted_at": {
            "description": "When the application was deleted. This information is public and can be seen by any authenticated user in the network.",
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "A description for the application.",
            "type": "string"
          },
          "dev_eui_counter": {
            "format": "int64",
            "type": "integer"
          },
          "end_device_limit": {
            "description": "The limit of the number of end devices that can be registered for this application.\nThis field can only be modified by admins.",
            "format": "uint64",
            "type": "string"
          },
          "ids": {
            "properties": {
              "application_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "join_server_address": {
            "description": "The address of the Join Server where this application is supposed to be registered.\nIf set, this fields indicates where end devices for this application should be registered.\n\nStored in Entity Registry.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
            "type": "string"
          },
          "label_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the application.",
            "type": "string"
          },
          "network_server_address": {
            "description": "The address of the Network Server where this application is supposed to be registered.\nIf set, this fields indicates where end devices for this application should be registered.\n\nStored in Entity Registry.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
            "type": "string"
          },
          "technical_contact": {
            "description": "OrganizationOrUserIdentifiers contains either organization or user identifiers.",
            "properties": {
              "organization_ids": {
                "properties": {
                  "organization_id": {
                    "description": "This ID shares namespace with user IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "user_ids": {
                "properties": {
                  "email": {
                    "description": "Secondary identifier, which can only be used in specific requests.",
                    "type": "string"
                  },
                  "user_id": {
                    "description": "This ID shares namespace with organization IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "updated_at": {
            "description": "When the application was last updated. This information is public and can be seen by any authenticated user in the network.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "collaborator": {
        "description": "Collaborator to grant all rights on the newly created application.",
        "properties": {
          "organization_ids": {
            "type": "object"
          },
          "user_ids": {
            "properties": {
              "email": {
                "description": "Secondary identifier, which can only be used in specific requests.",
                "type": "string"
              },
              "user_id": {
                "description": "This ID shares namespace with organization IDs.",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "title": "Collaborator to grant all rights on the newly created application.",
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationRegistryUpdateBody

    Fields
    Name Type Description
    application object Application is the message that defines an Application in the network.
    field_mask string The names of the application fields that should be updated.
    Schema
    {
      "application": {
        "description": "Application is the message that defines an Application in the network.",
        "properties": {
          "administrative_contact": {
            "description": "OrganizationOrUserIdentifiers contains either organization or user identifiers.",
            "properties": {
              "organization_ids": {
                "properties": {
                  "organization_id": {
                    "description": "This ID shares namespace with user IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "user_ids": {
                "properties": {
                  "email": {
                    "description": "Secondary identifier, which can only be used in specific requests.",
                    "type": "string"
                  },
                  "user_id": {
                    "description": "This ID shares namespace with organization IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "application_server_address": {
            "description": "The address of the Application Server where this application is supposed to be registered.\nIf set, this fields indicates where end devices for this application should be registered.\n\nStored in Entity Registry.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
            "type": "string"
          },
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Key-value attributes for this application. Typically used for organizing applications or for storing integration-specific data.",
            "type": "object"
          },
          "contact_info": {
            "description": "Contact information for this application. Typically used to indicate who to contact with technical/security questions about the application.\nThis field is deprecated. Use administrative_contact and technical_contact instead.",
            "items": {
              "properties": {
                "contact_method": {
                  "default": "CONTACT_METHOD_OTHER",
                  "enum": [
                    "CONTACT_METHOD_OTHER",
                    "CONTACT_METHOD_EMAIL",
                    "CONTACT_METHOD_PHONE"
                  ],
                  "type": "string"
                },
                "contact_type": {
                  "default": "CONTACT_TYPE_OTHER",
                  "enum": [
                    "CONTACT_TYPE_OTHER",
                    "CONTACT_TYPE_ABUSE",
                    "CONTACT_TYPE_BILLING",
                    "CONTACT_TYPE_TECHNICAL"
                  ],
                  "type": "string"
                },
                "public": {
                  "type": "boolean"
                },
                "validated_at": {
                  "format": "date-time",
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "created_at": {
            "description": "When the application was created. This information is public and can be seen by any authenticated user in the network.",
            "format": "date-time",
            "type": "string"
          },
          "deleted_at": {
            "description": "When the application was deleted. This information is public and can be seen by any authenticated user in the network.",
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "A description for the application.",
            "type": "string"
          },
          "dev_eui_counter": {
            "format": "int64",
            "type": "integer"
          },
          "end_device_limit": {
            "description": "The limit of the number of end devices that can be registered for this application.\nThis field can only be modified by admins.",
            "format": "uint64",
            "type": "string"
          },
          "ids": {
            "description": "The identifiers of the application. These are public and can be seen by any authenticated user in the network.",
            "title": "The identifiers of the application. These are public and can be seen by any authenticated user in the network.",
            "type": "object"
          },
          "join_server_address": {
            "description": "The address of the Join Server where this application is supposed to be registered.\nIf set, this fields indicates where end devices for this application should be registered.\n\nStored in Entity Registry.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
            "type": "string"
          },
          "label_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the application.",
            "type": "string"
          },
          "network_server_address": {
            "description": "The address of the Network Server where this application is supposed to be registered.\nIf set, this fields indicates where end devices for this application should be registered.\n\nStored in Entity Registry.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
            "type": "string"
          },
          "technical_contact": {
            "description": "OrganizationOrUserIdentifiers contains either organization or user identifiers.",
            "properties": {
              "organization_ids": {
                "properties": {
                  "organization_id": {
                    "description": "This ID shares namespace with user IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "user_ids": {
                "properties": {
                  "email": {
                    "description": "Secondary identifier, which can only be used in specific requests.",
                    "type": "string"
                  },
                  "user_id": {
                    "description": "This ID shares namespace with organization IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "updated_at": {
            "description": "When the application was last updated. This information is public and can be seen by any authenticated user in the network.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "field_mask": {
        "description": "The names of the application fields that should be updated.",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationServiceData

    Fields
    Name Type Description
    attributes object Attributes for devices, set by the Application Server while handling the message.
    data object
    locations object End device location metadata, set by the Application Server while handling the message.
    network_ids object Identifies a Network Server.
    service string
    version_ids object Identifies an end device model with version information.
    Schema
    {
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Attributes for devices, set by the Application Server while handling the message.",
        "type": "object"
      },
      "data": {
        "type": "object"
      },
      "locations": {
        "additionalProperties": {
          "properties": {
            "accuracy": {
              "description": "The accuracy of the location (meters).",
              "format": "int32",
              "type": "integer"
            },
            "altitude": {
              "description": "The altitude (meters), where 0 is the mean sea level.",
              "format": "int32",
              "type": "integer"
            },
            "latitude": {
              "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
              "format": "double",
              "type": "number"
            },
            "longitude": {
              "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
              "format": "double",
              "type": "number"
            },
            "source": {
              "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.",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "End device location metadata, set by the Application Server while handling the message.",
        "type": "object"
      },
      "network_ids": {
        "description": "Identifies a Network Server.",
        "properties": {
          "cluster_address": {
            "description": "Cluster address of the Network Server.",
            "type": "string"
          },
          "cluster_id": {
            "description": "Cluster identifier of the Network Server.",
            "type": "string"
          },
          "net_id": {
            "description": "LoRa Alliance NetID.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "ns_id": {
            "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "tenant_address": {
            "description": "Optional tenant address for multi-tenant deployments.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Optional tenant identifier for multi-tenant deployments.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "service": {
        "type": "string"
      },
      "version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationUp

    Application uplink message.
    Fields
    Name Type Description
    correlation_ids string
    downlink_ack object
    downlink_failed object
    downlink_nack object
    downlink_queue_invalidated object
    downlink_queued object
    downlink_sent object
    end_device_ids object
    join_accept object
    location_solved object
    received_at string Server time when the Application Server received the message.
    service_data object
    simulated boolean Signals if the message is coming from the Network Server or is simulated. The Application Server automatically sets this field, and callers must not manually set it.
    uplink_message object
    uplink_normalized object
    Schema
    {
      "correlation_ids": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "downlink_ack": {
        "properties": {
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Attributes for devices, set by the Application Server while handling the message.",
            "type": "object"
          },
          "class_b_c": {
            "properties": {
              "absolute_time": {
                "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                "format": "date-time",
                "type": "string"
              },
              "gateways": {
                "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                "items": {
                  "properties": {
                    "antenna_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "gateway_ids": {
                      "properties": {
                        "eui": {
                          "description": "Secondary identifier, which can only be used in specific requests.",
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "gateway_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "group_index": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "confirmed": {
            "type": "boolean"
          },
          "confirmed_retry": {
            "properties": {
              "attempt": {
                "description": "The number of attempted confirmed downlink acknowledgements.",
                "format": "int64",
                "type": "integer"
              },
              "max_attempts": {
                "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "correlation_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "decoded_payload": {
            "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
            "type": "object"
          },
          "decoded_payload_warnings": {
            "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "f_cnt": {
            "format": "int64",
            "type": "integer"
          },
          "f_port": {
            "format": "int64",
            "type": "integer"
          },
          "frm_payload": {
            "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
            "format": "byte",
            "type": "string"
          },
          "locations": {
            "additionalProperties": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "description": "End device location metadata, set by the Application Server while handling the message.",
            "type": "object"
          },
          "network_ids": {
            "description": "Identifies a Network Server.",
            "properties": {
              "cluster_address": {
                "description": "Cluster address of the Network Server.",
                "type": "string"
              },
              "cluster_id": {
                "description": "Cluster identifier of the Network Server.",
                "type": "string"
              },
              "net_id": {
                "description": "LoRa Alliance NetID.",
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "ns_id": {
                "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "tenant_address": {
                "description": "Optional tenant address for multi-tenant deployments.",
                "type": "string"
              },
              "tenant_id": {
                "description": "Optional tenant identifier for multi-tenant deployments.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "priority": {
            "default": "LOWEST",
            "enum": [
              "LOWEST",
              "LOW",
              "BELOW_NORMAL",
              "NORMAL",
              "ABOVE_NORMAL",
              "HIGH",
              "HIGHEST"
            ],
            "type": "string"
          },
          "session_key_id": {
            "description": "Join Server issued identifier for the session keys used by this downlink.",
            "format": "byte",
            "type": "string"
          },
          "version_ids": {
            "description": "Identifies an end device model with version information.",
            "properties": {
              "band_id": {
                "type": "string"
              },
              "brand_id": {
                "type": "string"
              },
              "firmware_version": {
                "type": "string"
              },
              "hardware_version": {
                "type": "string"
              },
              "model_id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "downlink_failed": {
        "properties": {
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Attributes for devices, set by the Application Server while handling the message.",
            "type": "object"
          },
          "downlink": {
            "properties": {
              "attributes": {
                "additionalProperties": {
                  "type": "string"
                },
                "description": "Attributes for devices, set by the Application Server while handling the message.",
                "type": "object"
              },
              "class_b_c": {
                "properties": {
                  "absolute_time": {
                    "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                    "format": "date-time",
                    "type": "string"
                  },
                  "gateways": {
                    "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                    "items": {
                      "properties": {
                        "antenna_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "gateway_ids": {
                          "properties": {
                            "eui": {
                              "description": "Secondary identifier, which can only be used in specific requests.",
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "gateway_id": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "group_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  }
                },
                "type": "object"
              },
              "confirmed": {
                "type": "boolean"
              },
              "confirmed_retry": {
                "properties": {
                  "attempt": {
                    "description": "The number of attempted confirmed downlink acknowledgements.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "max_attempts": {
                    "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "correlation_ids": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "decoded_payload": {
                "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                "type": "object"
              },
              "decoded_payload_warnings": {
                "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "f_cnt": {
                "format": "int64",
                "type": "integer"
              },
              "f_port": {
                "format": "int64",
                "type": "integer"
              },
              "frm_payload": {
                "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                "format": "byte",
                "type": "string"
              },
              "locations": {
                "additionalProperties": {
                  "properties": {
                    "accuracy": {
                      "description": "The accuracy of the location (meters).",
                      "format": "int32",
                      "type": "integer"
                    },
                    "altitude": {
                      "description": "The altitude (meters), where 0 is the mean sea level.",
                      "format": "int32",
                      "type": "integer"
                    },
                    "latitude": {
                      "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                      "format": "double",
                      "type": "number"
                    },
                    "longitude": {
                      "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                      "format": "double",
                      "type": "number"
                    },
                    "source": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "description": "End device location metadata, set by the Application Server while handling the message.",
                "type": "object"
              },
              "network_ids": {
                "description": "Identifies a Network Server.",
                "properties": {
                  "cluster_address": {
                    "description": "Cluster address of the Network Server.",
                    "type": "string"
                  },
                  "cluster_id": {
                    "description": "Cluster identifier of the Network Server.",
                    "type": "string"
                  },
                  "net_id": {
                    "description": "LoRa Alliance NetID.",
                    "example": "000013",
                    "format": "string",
                    "type": "string"
                  },
                  "ns_id": {
                    "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                    "example": "70B3D57ED000ABCD",
                    "format": "string",
                    "type": "string"
                  },
                  "tenant_address": {
                    "description": "Optional tenant address for multi-tenant deployments.",
                    "type": "string"
                  },
                  "tenant_id": {
                    "description": "Optional tenant identifier for multi-tenant deployments.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "priority": {
                "default": "LOWEST",
                "enum": [
                  "LOWEST",
                  "LOW",
                  "BELOW_NORMAL",
                  "NORMAL",
                  "ABOVE_NORMAL",
                  "HIGH",
                  "HIGHEST"
                ],
                "type": "string"
              },
              "session_key_id": {
                "description": "Join Server issued identifier for the session keys used by this downlink.",
                "format": "byte",
                "type": "string"
              },
              "version_ids": {
                "description": "Identifies an end device model with version information.",
                "properties": {
                  "band_id": {
                    "type": "string"
                  },
                  "brand_id": {
                    "type": "string"
                  },
                  "firmware_version": {
                    "type": "string"
                  },
                  "hardware_version": {
                    "type": "string"
                  },
                  "model_id": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "error": {
            "$ref": "#/definitions/v3ErrorDetails"
          },
          "locations": {
            "additionalProperties": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "description": "End device location metadata, set by the Application Server while handling the message.",
            "type": "object"
          },
          "network_ids": {
            "description": "Identifies a Network Server.",
            "properties": {
              "cluster_address": {
                "description": "Cluster address of the Network Server.",
                "type": "string"
              },
              "cluster_id": {
                "description": "Cluster identifier of the Network Server.",
                "type": "string"
              },
              "net_id": {
                "description": "LoRa Alliance NetID.",
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "ns_id": {
                "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "tenant_address": {
                "description": "Optional tenant address for multi-tenant deployments.",
                "type": "string"
              },
              "tenant_id": {
                "description": "Optional tenant identifier for multi-tenant deployments.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "version_ids": {
            "description": "Identifies an end device model with version information.",
            "properties": {
              "band_id": {
                "type": "string"
              },
              "brand_id": {
                "type": "string"
              },
              "firmware_version": {
                "type": "string"
              },
              "hardware_version": {
                "type": "string"
              },
              "model_id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "downlink_nack": {
        "properties": {
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Attributes for devices, set by the Application Server while handling the message.",
            "type": "object"
          },
          "class_b_c": {
            "properties": {
              "absolute_time": {
                "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                "format": "date-time",
                "type": "string"
              },
              "gateways": {
                "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                "items": {
                  "properties": {
                    "antenna_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "gateway_ids": {
                      "properties": {
                        "eui": {
                          "description": "Secondary identifier, which can only be used in specific requests.",
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "gateway_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "group_index": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "confirmed": {
            "type": "boolean"
          },
          "confirmed_retry": {
            "properties": {
              "attempt": {
                "description": "The number of attempted confirmed downlink acknowledgements.",
                "format": "int64",
                "type": "integer"
              },
              "max_attempts": {
                "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "correlation_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "decoded_payload": {
            "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
            "type": "object"
          },
          "decoded_payload_warnings": {
            "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "f_cnt": {
            "format": "int64",
            "type": "integer"
          },
          "f_port": {
            "format": "int64",
            "type": "integer"
          },
          "frm_payload": {
            "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
            "format": "byte",
            "type": "string"
          },
          "locations": {
            "additionalProperties": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "description": "End device location metadata, set by the Application Server while handling the message.",
            "type": "object"
          },
          "network_ids": {
            "description": "Identifies a Network Server.",
            "properties": {
              "cluster_address": {
                "description": "Cluster address of the Network Server.",
                "type": "string"
              },
              "cluster_id": {
                "description": "Cluster identifier of the Network Server.",
                "type": "string"
              },
              "net_id": {
                "description": "LoRa Alliance NetID.",
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "ns_id": {
                "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "tenant_address": {
                "description": "Optional tenant address for multi-tenant deployments.",
                "type": "string"
              },
              "tenant_id": {
                "description": "Optional tenant identifier for multi-tenant deployments.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "priority": {
            "default": "LOWEST",
            "enum": [
              "LOWEST",
              "LOW",
              "BELOW_NORMAL",
              "NORMAL",
              "ABOVE_NORMAL",
              "HIGH",
              "HIGHEST"
            ],
            "type": "string"
          },
          "session_key_id": {
            "description": "Join Server issued identifier for the session keys used by this downlink.",
            "format": "byte",
            "type": "string"
          },
          "version_ids": {
            "description": "Identifies an end device model with version information.",
            "properties": {
              "band_id": {
                "type": "string"
              },
              "brand_id": {
                "type": "string"
              },
              "firmware_version": {
                "type": "string"
              },
              "hardware_version": {
                "type": "string"
              },
              "model_id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "downlink_queue_invalidated": {
        "properties": {
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Attributes for devices, set by the Application Server while handling the message.",
            "type": "object"
          },
          "downlinks": {
            "items": {
              "properties": {
                "attributes": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Attributes for devices, set by the Application Server while handling the message.",
                  "type": "object"
                },
                "class_b_c": {
                  "properties": {
                    "absolute_time": {
                      "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                      "format": "date-time",
                      "type": "string"
                    },
                    "gateways": {
                      "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                      "items": {
                        "properties": {
                          "antenna_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "gateway_ids": {
                            "properties": {
                              "eui": {
                                "description": "Secondary identifier, which can only be used in specific requests.",
                                "example": "70B3D57ED000ABCD",
                                "format": "string",
                                "type": "string"
                              },
                              "gateway_id": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "group_index": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "confirmed": {
                  "type": "boolean"
                },
                "confirmed_retry": {
                  "properties": {
                    "attempt": {
                      "description": "The number of attempted confirmed downlink acknowledgements.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "max_attempts": {
                      "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "correlation_ids": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "decoded_payload": {
                  "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                  "type": "object"
                },
                "decoded_payload_warnings": {
                  "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "f_cnt": {
                  "format": "int64",
                  "type": "integer"
                },
                "f_port": {
                  "format": "int64",
                  "type": "integer"
                },
                "frm_payload": {
                  "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                  "format": "byte",
                  "type": "string"
                },
                "locations": {
                  "additionalProperties": {
                    "properties": {
                      "accuracy": {
                        "description": "The accuracy of the location (meters).",
                        "format": "int32",
                        "type": "integer"
                      },
                      "altitude": {
                        "description": "The altitude (meters), where 0 is the mean sea level.",
                        "format": "int32",
                        "type": "integer"
                      },
                      "latitude": {
                        "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                        "format": "double",
                        "type": "number"
                      },
                      "longitude": {
                        "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                        "format": "double",
                        "type": "number"
                      },
                      "source": {
                        "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.",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "description": "End device location metadata, set by the Application Server while handling the message.",
                  "type": "object"
                },
                "network_ids": {
                  "description": "Identifies a Network Server.",
                  "properties": {
                    "cluster_address": {
                      "description": "Cluster address of the Network Server.",
                      "type": "string"
                    },
                    "cluster_id": {
                      "description": "Cluster identifier of the Network Server.",
                      "type": "string"
                    },
                    "net_id": {
                      "description": "LoRa Alliance NetID.",
                      "example": "000013",
                      "format": "string",
                      "type": "string"
                    },
                    "ns_id": {
                      "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "tenant_address": {
                      "description": "Optional tenant address for multi-tenant deployments.",
                      "type": "string"
                    },
                    "tenant_id": {
                      "description": "Optional tenant identifier for multi-tenant deployments.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "priority": {
                  "default": "LOWEST",
                  "enum": [
                    "LOWEST",
                    "LOW",
                    "BELOW_NORMAL",
                    "NORMAL",
                    "ABOVE_NORMAL",
                    "HIGH",
                    "HIGHEST"
                  ],
                  "type": "string"
                },
                "session_key_id": {
                  "description": "Join Server issued identifier for the session keys used by this downlink.",
                  "format": "byte",
                  "type": "string"
                },
                "version_ids": {
                  "description": "Identifies an end device model with version information.",
                  "properties": {
                    "band_id": {
                      "type": "string"
                    },
                    "brand_id": {
                      "type": "string"
                    },
                    "firmware_version": {
                      "type": "string"
                    },
                    "hardware_version": {
                      "type": "string"
                    },
                    "model_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "last_f_cnt_down": {
            "format": "int64",
            "type": "integer"
          },
          "locations": {
            "additionalProperties": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "description": "End device location metadata, set by the Application Server while handling the message.",
            "type": "object"
          },
          "network_ids": {
            "description": "Identifies a Network Server.",
            "properties": {
              "cluster_address": {
                "description": "Cluster address of the Network Server.",
                "type": "string"
              },
              "cluster_id": {
                "description": "Cluster identifier of the Network Server.",
                "type": "string"
              },
              "net_id": {
                "description": "LoRa Alliance NetID.",
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "ns_id": {
                "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "tenant_address": {
                "description": "Optional tenant address for multi-tenant deployments.",
                "type": "string"
              },
              "tenant_id": {
                "description": "Optional tenant identifier for multi-tenant deployments.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "session_key_id": {
            "format": "byte",
            "type": "string"
          },
          "version_ids": {
            "description": "Identifies an end device model with version information.",
            "properties": {
              "band_id": {
                "type": "string"
              },
              "brand_id": {
                "type": "string"
              },
              "firmware_version": {
                "type": "string"
              },
              "hardware_version": {
                "type": "string"
              },
              "model_id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "downlink_queued": {
        "properties": {
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Attributes for devices, set by the Application Server while handling the message.",
            "type": "object"
          },
          "class_b_c": {
            "properties": {
              "absolute_time": {
                "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                "format": "date-time",
                "type": "string"
              },
              "gateways": {
                "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                "items": {
                  "properties": {
                    "antenna_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "gateway_ids": {
                      "properties": {
                        "eui": {
                          "description": "Secondary identifier, which can only be used in specific requests.",
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "gateway_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "group_index": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "confirmed": {
            "type": "boolean"
          },
          "confirmed_retry": {
            "properties": {
              "attempt": {
                "description": "The number of attempted confirmed downlink acknowledgements.",
                "format": "int64",
                "type": "integer"
              },
              "max_attempts": {
                "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "correlation_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "decoded_payload": {
            "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
            "type": "object"
          },
          "decoded_payload_warnings": {
            "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "f_cnt": {
            "format": "int64",
            "type": "integer"
          },
          "f_port": {
            "format": "int64",
            "type": "integer"
          },
          "frm_payload": {
            "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
            "format": "byte",
            "type": "string"
          },
          "locations": {
            "additionalProperties": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "description": "End device location metadata, set by the Application Server while handling the message.",
            "type": "object"
          },
          "network_ids": {
            "description": "Identifies a Network Server.",
            "properties": {
              "cluster_address": {
                "description": "Cluster address of the Network Server.",
                "type": "string"
              },
              "cluster_id": {
                "description": "Cluster identifier of the Network Server.",
                "type": "string"
              },
              "net_id": {
                "description": "LoRa Alliance NetID.",
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "ns_id": {
                "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "tenant_address": {
                "description": "Optional tenant address for multi-tenant deployments.",
                "type": "string"
              },
              "tenant_id": {
                "description": "Optional tenant identifier for multi-tenant deployments.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "priority": {
            "default": "LOWEST",
            "enum": [
              "LOWEST",
              "LOW",
              "BELOW_NORMAL",
              "NORMAL",
              "ABOVE_NORMAL",
              "HIGH",
              "HIGHEST"
            ],
            "type": "string"
          },
          "session_key_id": {
            "description": "Join Server issued identifier for the session keys used by this downlink.",
            "format": "byte",
            "type": "string"
          },
          "version_ids": {
            "description": "Identifies an end device model with version information.",
            "properties": {
              "band_id": {
                "type": "string"
              },
              "brand_id": {
                "type": "string"
              },
              "firmware_version": {
                "type": "string"
              },
              "hardware_version": {
                "type": "string"
              },
              "model_id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "downlink_sent": {
        "properties": {
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Attributes for devices, set by the Application Server while handling the message.",
            "type": "object"
          },
          "class_b_c": {
            "properties": {
              "absolute_time": {
                "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                "format": "date-time",
                "type": "string"
              },
              "gateways": {
                "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                "items": {
                  "properties": {
                    "antenna_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "gateway_ids": {
                      "properties": {
                        "eui": {
                          "description": "Secondary identifier, which can only be used in specific requests.",
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "gateway_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "group_index": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "confirmed": {
            "type": "boolean"
          },
          "confirmed_retry": {
            "properties": {
              "attempt": {
                "description": "The number of attempted confirmed downlink acknowledgements.",
                "format": "int64",
                "type": "integer"
              },
              "max_attempts": {
                "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "correlation_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "decoded_payload": {
            "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
            "type": "object"
          },
          "decoded_payload_warnings": {
            "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "f_cnt": {
            "format": "int64",
            "type": "integer"
          },
          "f_port": {
            "format": "int64",
            "type": "integer"
          },
          "frm_payload": {
            "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
            "format": "byte",
            "type": "string"
          },
          "locations": {
            "additionalProperties": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "description": "End device location metadata, set by the Application Server while handling the message.",
            "type": "object"
          },
          "network_ids": {
            "description": "Identifies a Network Server.",
            "properties": {
              "cluster_address": {
                "description": "Cluster address of the Network Server.",
                "type": "string"
              },
              "cluster_id": {
                "description": "Cluster identifier of the Network Server.",
                "type": "string"
              },
              "net_id": {
                "description": "LoRa Alliance NetID.",
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "ns_id": {
                "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "tenant_address": {
                "description": "Optional tenant address for multi-tenant deployments.",
                "type": "string"
              },
              "tenant_id": {
                "description": "Optional tenant identifier for multi-tenant deployments.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "priority": {
            "default": "LOWEST",
            "enum": [
              "LOWEST",
              "LOW",
              "BELOW_NORMAL",
              "NORMAL",
              "ABOVE_NORMAL",
              "HIGH",
              "HIGHEST"
            ],
            "type": "string"
          },
          "session_key_id": {
            "description": "Join Server issued identifier for the session keys used by this downlink.",
            "format": "byte",
            "type": "string"
          },
          "version_ids": {
            "description": "Identifies an end device model with version information.",
            "properties": {
              "band_id": {
                "type": "string"
              },
              "brand_id": {
                "type": "string"
              },
              "firmware_version": {
                "type": "string"
              },
              "hardware_version": {
                "type": "string"
              },
              "model_id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "end_device_ids": {
        "properties": {
          "application_ids": {
            "properties": {
              "application_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "device_id": {
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "join_accept": {
        "properties": {
          "app_s_key": {
            "properties": {
              "encrypted_key": {
                "format": "byte",
                "type": "string"
              },
              "kek_label": {
                "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                "type": "string"
              },
              "key": {
                "description": "The unencrypted AES key.",
                "example": "0123456789ABCDEF0123456789ABCDEF",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          },
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Attributes for devices, set by the Application Server while handling the message.",
            "type": "object"
          },
          "invalidated_downlinks": {
            "description": "Downlink messages in the queue that got invalidated because of the session change.",
            "items": {
              "properties": {
                "attributes": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Attributes for devices, set by the Application Server while handling the message.",
                  "type": "object"
                },
                "class_b_c": {
                  "properties": {
                    "absolute_time": {
                      "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                      "format": "date-time",
                      "type": "string"
                    },
                    "gateways": {
                      "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                      "items": {
                        "properties": {
                          "antenna_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "gateway_ids": {
                            "properties": {
                              "eui": {
                                "description": "Secondary identifier, which can only be used in specific requests.",
                                "example": "70B3D57ED000ABCD",
                                "format": "string",
                                "type": "string"
                              },
                              "gateway_id": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "group_index": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "confirmed": {
                  "type": "boolean"
                },
                "confirmed_retry": {
                  "properties": {
                    "attempt": {
                      "description": "The number of attempted confirmed downlink acknowledgements.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "max_attempts": {
                      "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "correlation_ids": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "decoded_payload": {
                  "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                  "type": "object"
                },
                "decoded_payload_warnings": {
                  "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "f_cnt": {
                  "format": "int64",
                  "type": "integer"
                },
                "f_port": {
                  "format": "int64",
                  "type": "integer"
                },
                "frm_payload": {
                  "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                  "format": "byte",
                  "type": "string"
                },
                "locations": {
                  "additionalProperties": {
                    "properties": {
                      "accuracy": {
                        "description": "The accuracy of the location (meters).",
                        "format": "int32",
                        "type": "integer"
                      },
                      "altitude": {
                        "description": "The altitude (meters), where 0 is the mean sea level.",
                        "format": "int32",
                        "type": "integer"
                      },
                      "latitude": {
                        "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                        "format": "double",
                        "type": "number"
                      },
                      "longitude": {
                        "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                        "format": "double",
                        "type": "number"
                      },
                      "source": {
                        "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.",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "description": "End device location metadata, set by the Application Server while handling the message.",
                  "type": "object"
                },
                "network_ids": {
                  "description": "Identifies a Network Server.",
                  "properties": {
                    "cluster_address": {
                      "description": "Cluster address of the Network Server.",
                      "type": "string"
                    },
                    "cluster_id": {
                      "description": "Cluster identifier of the Network Server.",
                      "type": "string"
                    },
                    "net_id": {
                      "description": "LoRa Alliance NetID.",
                      "example": "000013",
                      "format": "string",
                      "type": "string"
                    },
                    "ns_id": {
                      "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "tenant_address": {
                      "description": "Optional tenant address for multi-tenant deployments.",
                      "type": "string"
                    },
                    "tenant_id": {
                      "description": "Optional tenant identifier for multi-tenant deployments.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "priority": {
                  "default": "LOWEST",
                  "enum": [
                    "LOWEST",
                    "LOW",
                    "BELOW_NORMAL",
                    "NORMAL",
                    "ABOVE_NORMAL",
                    "HIGH",
                    "HIGHEST"
                  ],
                  "type": "string"
                },
                "session_key_id": {
                  "description": "Join Server issued identifier for the session keys used by this downlink.",
                  "format": "byte",
                  "type": "string"
                },
                "version_ids": {
                  "description": "Identifies an end device model with version information.",
                  "properties": {
                    "band_id": {
                      "type": "string"
                    },
                    "brand_id": {
                      "type": "string"
                    },
                    "firmware_version": {
                      "type": "string"
                    },
                    "hardware_version": {
                      "type": "string"
                    },
                    "model_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "locations": {
            "additionalProperties": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "description": "End device location metadata, set by the Application Server while handling the message.",
            "type": "object"
          },
          "network_ids": {
            "description": "Identifies a Network Server.",
            "properties": {
              "cluster_address": {
                "description": "Cluster address of the Network Server.",
                "type": "string"
              },
              "cluster_id": {
                "description": "Cluster identifier of the Network Server.",
                "type": "string"
              },
              "net_id": {
                "description": "LoRa Alliance NetID.",
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "ns_id": {
                "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "tenant_address": {
                "description": "Optional tenant address for multi-tenant deployments.",
                "type": "string"
              },
              "tenant_id": {
                "description": "Optional tenant identifier for multi-tenant deployments.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "pending_session": {
            "description": "Indicates whether the security context refers to the pending session, i.e. when this join-accept is an answer to a\nrejoin-request.",
            "type": "boolean"
          },
          "received_at": {
            "description": "Server time when the Network Server received the message.",
            "format": "date-time",
            "type": "string"
          },
          "session_key_id": {
            "description": "Join Server issued identifier for the session keys negotiated in this join.",
            "format": "byte",
            "type": "string"
          },
          "version_ids": {
            "description": "Identifies an end device model with version information.",
            "properties": {
              "band_id": {
                "type": "string"
              },
              "brand_id": {
                "type": "string"
              },
              "firmware_version": {
                "type": "string"
              },
              "hardware_version": {
                "type": "string"
              },
              "model_id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "location_solved": {
        "properties": {
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "location": {
            "properties": {
              "accuracy": {
                "description": "The accuracy of the location (meters).",
                "format": "int32",
                "type": "integer"
              },
              "altitude": {
                "description": "The altitude (meters), where 0 is the mean sea level.",
                "format": "int32",
                "type": "integer"
              },
              "latitude": {
                "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                "format": "double",
                "type": "number"
              },
              "longitude": {
                "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                "format": "double",
                "type": "number"
              },
              "source": {
                "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.",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "service": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "received_at": {
        "description": "Server time when the Application Server received the message.",
        "format": "date-time",
        "type": "string"
      },
      "service_data": {
        "properties": {
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Attributes for devices, set by the Application Server while handling the message.",
            "type": "object"
          },
          "data": {
            "type": "object"
          },
          "locations": {
            "additionalProperties": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "description": "End device location metadata, set by the Application Server while handling the message.",
            "type": "object"
          },
          "network_ids": {
            "description": "Identifies a Network Server.",
            "properties": {
              "cluster_address": {
                "description": "Cluster address of the Network Server.",
                "type": "string"
              },
              "cluster_id": {
                "description": "Cluster identifier of the Network Server.",
                "type": "string"
              },
              "net_id": {
                "description": "LoRa Alliance NetID.",
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "ns_id": {
                "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "tenant_address": {
                "description": "Optional tenant address for multi-tenant deployments.",
                "type": "string"
              },
              "tenant_id": {
                "description": "Optional tenant identifier for multi-tenant deployments.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "service": {
            "type": "string"
          },
          "version_ids": {
            "description": "Identifies an end device model with version information.",
            "properties": {
              "band_id": {
                "type": "string"
              },
              "brand_id": {
                "type": "string"
              },
              "firmware_version": {
                "type": "string"
              },
              "hardware_version": {
                "type": "string"
              },
              "model_id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "simulated": {
        "description": "Signals if the message is coming from the Network Server or is simulated.\nThe Application Server automatically sets this field, and callers must not manually set it.",
        "type": "boolean"
      },
      "uplink_message": {
        "properties": {
          "app_s_key": {
            "properties": {
              "encrypted_key": {
                "format": "byte",
                "type": "string"
              },
              "kek_label": {
                "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                "type": "string"
              },
              "key": {
                "description": "The unencrypted AES key.",
                "example": "0123456789ABCDEF0123456789ABCDEF",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          },
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Attributes for devices, set by the Application Server while handling the message.",
            "type": "object"
          },
          "confirmed": {
            "description": "Indicates whether the end device used confirmed data uplink.",
            "type": "boolean"
          },
          "consumed_airtime": {
            "description": "Consumed airtime for the transmission of the uplink message. Calculated by Network Server using the raw payload size and the transmission settings.",
            "type": "string"
          },
          "decoded_payload": {
            "description": "The decoded frame payload of the uplink message.\nThis field is set by the message processor that is configured for the end device (see formatters) or application (see default_formatters).",
            "type": "object"
          },
          "decoded_payload_warnings": {
            "description": "Warnings generated by the message processor while decoding the frm_payload.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "f_cnt": {
            "description": "LoRaWAN FCntUp of the uplink message.",
            "format": "int64",
            "type": "integer"
          },
          "f_port": {
            "description": "LoRaWAN FPort of the uplink message.",
            "format": "int64",
            "type": "integer"
          },
          "frm_payload": {
            "description": "The frame payload of the uplink message.\nThe payload is still encrypted if the skip_payload_crypto field of the EndDevice\nis true, which is indicated by the presence of the app_s_key field.",
            "format": "byte",
            "type": "string"
          },
          "last_a_f_cnt_down": {
            "description": "The last AFCntDown of the current session.\nThis field is only present if the skip_payload_crypto field of the EndDevice\nis true.\nCan be used with app_s_key to encrypt downlink payloads.",
            "format": "int64",
            "type": "integer"
          },
          "last_battery_percentage": {
            "properties": {
              "f_cnt": {
                "description": "Frame counter value of last uplink containing DevStatusAns.",
                "format": "int64",
                "type": "integer"
              },
              "received_at": {
                "description": "Time when last DevStatus MAC command was received.",
                "format": "date-time",
                "type": "string"
              },
              "value": {
                "description": "The battery percentage of the end device.\nThe value is defined in the [0, 100] interval.",
                "format": "float",
                "type": "number"
              }
            },
            "type": "object"
          },
          "locations": {
            "additionalProperties": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "description": "End device location metadata, set by the Application Server while handling the message.",
            "type": "object"
          },
          "network_ids": {
            "description": "Identifies a Network Server.",
            "properties": {
              "cluster_address": {
                "description": "Cluster address of the Network Server.",
                "type": "string"
              },
              "cluster_id": {
                "description": "Cluster identifier of the Network Server.",
                "type": "string"
              },
              "net_id": {
                "description": "LoRa Alliance NetID.",
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "ns_id": {
                "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "tenant_address": {
                "description": "Optional tenant address for multi-tenant deployments.",
                "type": "string"
              },
              "tenant_id": {
                "description": "Optional tenant identifier for multi-tenant deployments.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "normalized_payload": {
            "description": "The normalized frame payload of the uplink message.\nThis field is set by the message processor that is configured for the end device (see formatters) or application (see default_formatters).\nIf the message processor is a custom script, there is no uplink normalizer script and the decoded output is valid\nnormalized payload, this field contains the decoded payload.",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "normalized_payload_warnings": {
            "description": "Warnings generated by the message processor while normalizing the decoded payload.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "packet_error_rate": {
            "description": "Packet error rate of the recent uplinks in the current session.\nCalculated by the Network Server. The value is defined in the [0, 1] interval.",
            "format": "float",
            "type": "number"
          },
          "received_at": {
            "description": "Server time when the Network Server received the message.",
            "format": "date-time",
            "type": "string"
          },
          "rx_metadata": {
            "description": "A list of metadata for each antenna of each gateway that received this message.",
            "items": {
              "description": "Contains metadata for a received message. Each antenna that receives\na message corresponds to one RxMetadata.",
              "properties": {
                "advanced": {
                  "title": "Advanced metadata fields\n- can be used for advanced information or experimental features that are not yet formally defined in the API\n- field names are written in snake_case",
                  "type": "object"
                },
                "antenna_index": {
                  "format": "int64",
                  "type": "integer"
                },
                "channel_index": {
                  "description": "Index of the gateway channel that received the message.",
                  "format": "int64",
                  "type": "integer"
                },
                "channel_rssi": {
                  "description": "Received signal strength indicator of the channel (dBm).",
                  "format": "float",
                  "type": "number"
                },
                "downlink_path_constraint": {
                  "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.",
                  "enum": [
                    "DOWNLINK_PATH_CONSTRAINT_NONE",
                    "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
                    "DOWNLINK_PATH_CONSTRAINT_NEVER"
                  ],
                  "type": "string"
                },
                "encrypted_fine_timestamp": {
                  "description": "Encrypted gateway's internal fine timestamp when the Rx finished (nanoseconds).",
                  "format": "byte",
                  "type": "string"
                },
                "encrypted_fine_timestamp_key_id": {
                  "type": "string"
                },
                "fine_timestamp": {
                  "description": "Gateway's internal fine timestamp when the Rx finished (nanoseconds).",
                  "format": "uint64",
                  "type": "string"
                },
                "frequency_drift": {
                  "description": "Frequency drift in Hz between start and end of an LR-FHSS packet (signed).",
                  "format": "int32",
                  "type": "integer"
                },
                "frequency_offset": {
                  "description": "Frequency offset (Hz).",
                  "format": "int64",
                  "type": "string"
                },
                "gateway_ids": {
                  "properties": {
                    "eui": {
                      "description": "Secondary identifier, which can only be used in specific requests.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "gateway_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "gps_time": {
                  "description": "Timestamp at the end of the transmission, provided by the gateway.\nGuaranteed to be based on a GPS PPS signal, with an accuracy of 1 millisecond.",
                  "format": "date-time",
                  "type": "string"
                },
                "hopping_width": {
                  "description": "Hopping width; a number describing the number of steps of the LR-FHSS grid.",
                  "format": "int64",
                  "type": "integer"
                },
                "location": {
                  "properties": {
                    "accuracy": {
                      "description": "The accuracy of the location (meters).",
                      "format": "int32",
                      "type": "integer"
                    },
                    "altitude": {
                      "description": "The altitude (meters), where 0 is the mean sea level.",
                      "format": "int32",
                      "type": "integer"
                    },
                    "latitude": {
                      "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                      "format": "double",
                      "type": "number"
                    },
                    "longitude": {
                      "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                      "format": "double",
                      "type": "number"
                    },
                    "source": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "packet_broker": {
                  "properties": {
                    "forwarder_cluster_id": {
                      "description": "Forwarder Cluster ID of the Packet Broker Forwarder.",
                      "type": "string"
                    },
                    "forwarder_gateway_eui": {
                      "description": "Forwarder gateway EUI.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "forwarder_gateway_id": {
                      "description": "Forwarder gateway ID.",
                      "type": "string"
                    },
                    "forwarder_net_id": {
                      "description": "LoRa Alliance NetID of the Packet Broker Forwarder Member.",
                      "example": "000013",
                      "format": "string",
                      "type": "string"
                    },
                    "forwarder_tenant_id": {
                      "description": "Tenant ID managed by the Packet Broker Forwarder Member.",
                      "type": "string"
                    },
                    "home_network_cluster_id": {
                      "description": "Home Network Cluster ID of the Packet Broker Home Network.",
                      "type": "string"
                    },
                    "home_network_net_id": {
                      "description": "LoRa Alliance NetID of the Packet Broker Home Network Member.",
                      "example": "000013",
                      "format": "string",
                      "type": "string"
                    },
                    "home_network_tenant_id": {
                      "description": "Tenant ID managed by the Packet Broker Home Network Member.\nThis value is empty if it cannot be determined by the Packet Broker Router.",
                      "type": "string"
                    },
                    "hops": {
                      "description": "Hops that the message passed. Each Packet Broker Router service appends an entry.",
                      "items": {
                        "properties": {
                          "received_at": {
                            "description": "Time when the service received the message.",
                            "format": "date-time",
                            "type": "string"
                          },
                          "receiver_agent": {
                            "description": "Receiver agent.",
                            "type": "string"
                          },
                          "receiver_name": {
                            "description": "Receiver of the message.",
                            "type": "string"
                          },
                          "sender_address": {
                            "description": "Sender IP address or host name.",
                            "type": "string"
                          },
                          "sender_name": {
                            "description": "Sender of the message, typically the authorized client identifier.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "message_id": {
                      "description": "Message identifier generated by Packet Broker Router.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "received_at": {
                  "description": "Timestamp at which the Gateway Server has received the message.",
                  "format": "date-time",
                  "type": "string"
                },
                "relay": {
                  "properties": {
                    "device_id": {
                      "description": "End device identifiers of the relay.",
                      "type": "string"
                    },
                    "wor_channel": {
                      "default": "RELAY_WOR_CHANNEL_DEFAULT",
                      "enum": [
                        "RELAY_WOR_CHANNEL_DEFAULT",
                        "RELAY_WOR_CHANNEL_SECONDARY"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rssi": {
                  "description": "Received signal strength indicator (dBm).\nThis value equals `channel_rssi`.",
                  "format": "float",
                  "type": "number"
                },
                "rssi_standard_deviation": {
                  "description": "Standard deviation of the RSSI during preamble.",
                  "format": "float",
                  "type": "number"
                },
                "signal_rssi": {
                  "description": "Received signal strength indicator of the signal (dBm).",
                  "format": "float",
                  "type": "number"
                },
                "snr": {
                  "description": "Signal-to-noise ratio (dB).",
                  "format": "float",
                  "type": "number"
                },
                "time": {
                  "description": "Timestamp at the end of the transmission, provided by the gateway. The accuracy is undefined.",
                  "format": "date-time",
                  "type": "string"
                },
                "timestamp": {
                  "description": "Gateway concentrator timestamp when the Rx finished (microseconds).",
                  "format": "int64",
                  "type": "integer"
                },
                "uplink_token": {
                  "description": "Uplink token to be included in the Tx request in class A downlink; injected by gateway, Gateway Server or fNS.",
                  "format": "byte",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "session_key_id": {
            "description": "Join Server issued identifier for the session keys used by this uplink.",
            "format": "byte",
            "type": "string"
          },
          "settings": {
            "description": "TxSettings contains the settings for a transmission.\nThis message is used on both uplink and downlink.\nOn downlink, this is a scheduled transmission.",
            "properties": {
              "concentrator_timestamp": {
                "description": "Concentrator timestamp for the downlink as calculated by the Gateway Server scheduler.\nThis value takes into account necessary offsets such as the RTT (Round Trip Time) and TOA (Time Of Arrival).\nThis field is set and used only by the Gateway Server.",
                "format": "int64",
                "type": "string"
              },
              "data_rate": {
                "properties": {
                  "fsk": {
                    "properties": {
                      "bit_rate": {
                        "description": "Bit rate (bps).",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "lora": {
                    "properties": {
                      "bandwidth": {
                        "description": "Bandwidth (Hz).",
                        "format": "int64",
                        "type": "integer"
                      },
                      "coding_rate": {
                        "type": "string"
                      },
                      "spreading_factor": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "lrfhss": {
                    "properties": {
                      "coding_rate": {
                        "type": "string"
                      },
                      "modulation_type": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "operating_channel_width": {
                        "description": "Operating Channel Width (Hz).",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "downlink": {
                "description": "Transmission settings for downlink.",
                "properties": {
                  "antenna_index": {
                    "description": "Index of the antenna on which the uplink was received and/or downlink must be sent.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "invert_polarization": {
                    "description": "Invert LoRa polarization; false for LoRaWAN uplink, true for downlink.",
                    "type": "boolean"
                  },
                  "tx_power": {
                    "description": "Transmission power (dBm). Only on downlink.",
                    "format": "float",
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "enable_crc": {
                "description": "Send a CRC in the packet; only on uplink; on downlink, CRC should not be enabled.",
                "type": "boolean"
              },
              "frequency": {
                "description": "Frequency (Hz).",
                "format": "uint64",
                "type": "string"
              },
              "time": {
                "description": "Time of the gateway when the uplink message was received, or when the downlink message should be transmitted.\nFor downlink, this requires the gateway to have GPS time synchronization.",
                "format": "date-time",
                "type": "string"
              },
              "timestamp": {
                "description": "Timestamp of the gateway concentrator when the uplink message was received, or when the downlink message should be transmitted (microseconds).\nOn downlink, set timestamp to 0 and time to null to use immediate scheduling.",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "version_ids": {
            "description": "Identifies an end device model with version information.",
            "properties": {
              "band_id": {
                "type": "string"
              },
              "brand_id": {
                "type": "string"
              },
              "firmware_version": {
                "type": "string"
              },
              "hardware_version": {
                "type": "string"
              },
              "model_id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "uplink_normalized": {
        "properties": {
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Attributes for devices, set by the Application Server while handling the message.",
            "type": "object"
          },
          "confirmed": {
            "description": "Indicates whether the end device used confirmed data uplink.",
            "type": "boolean"
          },
          "consumed_airtime": {
            "description": "Consumed airtime for the transmission of the uplink message. Calculated by Network Server using the raw payload size and the transmission settings.",
            "type": "string"
          },
          "f_cnt": {
            "description": "LoRaWAN FCntUp of the uplink message.",
            "format": "int64",
            "type": "integer"
          },
          "f_port": {
            "description": "LoRaWAN FPort of the uplink message.",
            "format": "int64",
            "type": "integer"
          },
          "frm_payload": {
            "description": "The frame payload of the uplink message.\nThis field is always decrypted with AppSKey.",
            "format": "byte",
            "type": "string"
          },
          "locations": {
            "additionalProperties": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "description": "End device location metadata, set by the Application Server while handling the message.",
            "type": "object"
          },
          "network_ids": {
            "description": "Identifies a Network Server.",
            "properties": {
              "cluster_address": {
                "description": "Cluster address of the Network Server.",
                "type": "string"
              },
              "cluster_id": {
                "description": "Cluster identifier of the Network Server.",
                "type": "string"
              },
              "net_id": {
                "description": "LoRa Alliance NetID.",
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "ns_id": {
                "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "tenant_address": {
                "description": "Optional tenant address for multi-tenant deployments.",
                "type": "string"
              },
              "tenant_id": {
                "description": "Optional tenant identifier for multi-tenant deployments.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "normalized_payload": {
            "description": "The normalized frame payload of the uplink message.\nThis field is set for each item in normalized_payload in the corresponding ApplicationUplink message.",
            "type": "object"
          },
          "normalized_payload_warnings": {
            "description": "This field is set to normalized_payload_warnings in the corresponding ApplicationUplink message.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "received_at": {
            "description": "Server time when the Network Server received the message.",
            "format": "date-time",
            "type": "string"
          },
          "rx_metadata": {
            "description": "A list of metadata for each antenna of each gateway that received this message.",
            "items": {
              "description": "Contains metadata for a received message. Each antenna that receives\na message corresponds to one RxMetadata.",
              "properties": {
                "advanced": {
                  "title": "Advanced metadata fields\n- can be used for advanced information or experimental features that are not yet formally defined in the API\n- field names are written in snake_case",
                  "type": "object"
                },
                "antenna_index": {
                  "format": "int64",
                  "type": "integer"
                },
                "channel_index": {
                  "description": "Index of the gateway channel that received the message.",
                  "format": "int64",
                  "type": "integer"
                },
                "channel_rssi": {
                  "description": "Received signal strength indicator of the channel (dBm).",
                  "format": "float",
                  "type": "number"
                },
                "downlink_path_constraint": {
                  "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.",
                  "enum": [
                    "DOWNLINK_PATH_CONSTRAINT_NONE",
                    "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
                    "DOWNLINK_PATH_CONSTRAINT_NEVER"
                  ],
                  "type": "string"
                },
                "encrypted_fine_timestamp": {
                  "description": "Encrypted gateway's internal fine timestamp when the Rx finished (nanoseconds).",
                  "format": "byte",
                  "type": "string"
                },
                "encrypted_fine_timestamp_key_id": {
                  "type": "string"
                },
                "fine_timestamp": {
                  "description": "Gateway's internal fine timestamp when the Rx finished (nanoseconds).",
                  "format": "uint64",
                  "type": "string"
                },
                "frequency_drift": {
                  "description": "Frequency drift in Hz between start and end of an LR-FHSS packet (signed).",
                  "format": "int32",
                  "type": "integer"
                },
                "frequency_offset": {
                  "description": "Frequency offset (Hz).",
                  "format": "int64",
                  "type": "string"
                },
                "gateway_ids": {
                  "properties": {
                    "eui": {
                      "description": "Secondary identifier, which can only be used in specific requests.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "gateway_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "gps_time": {
                  "description": "Timestamp at the end of the transmission, provided by the gateway.\nGuaranteed to be based on a GPS PPS signal, with an accuracy of 1 millisecond.",
                  "format": "date-time",
                  "type": "string"
                },
                "hopping_width": {
                  "description": "Hopping width; a number describing the number of steps of the LR-FHSS grid.",
                  "format": "int64",
                  "type": "integer"
                },
                "location": {
                  "properties": {
                    "accuracy": {
                      "description": "The accuracy of the location (meters).",
                      "format": "int32",
                      "type": "integer"
                    },
                    "altitude": {
                      "description": "The altitude (meters), where 0 is the mean sea level.",
                      "format": "int32",
                      "type": "integer"
                    },
                    "latitude": {
                      "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                      "format": "double",
                      "type": "number"
                    },
                    "longitude": {
                      "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                      "format": "double",
                      "type": "number"
                    },
                    "source": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "packet_broker": {
                  "properties": {
                    "forwarder_cluster_id": {
                      "description": "Forwarder Cluster ID of the Packet Broker Forwarder.",
                      "type": "string"
                    },
                    "forwarder_gateway_eui": {
                      "description": "Forwarder gateway EUI.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "forwarder_gateway_id": {
                      "description": "Forwarder gateway ID.",
                      "type": "string"
                    },
                    "forwarder_net_id": {
                      "description": "LoRa Alliance NetID of the Packet Broker Forwarder Member.",
                      "example": "000013",
                      "format": "string",
                      "type": "string"
                    },
                    "forwarder_tenant_id": {
                      "description": "Tenant ID managed by the Packet Broker Forwarder Member.",
                      "type": "string"
                    },
                    "home_network_cluster_id": {
                      "description": "Home Network Cluster ID of the Packet Broker Home Network.",
                      "type": "string"
                    },
                    "home_network_net_id": {
                      "description": "LoRa Alliance NetID of the Packet Broker Home Network Member.",
                      "example": "000013",
                      "format": "string",
                      "type": "string"
                    },
                    "home_network_tenant_id": {
                      "description": "Tenant ID managed by the Packet Broker Home Network Member.\nThis value is empty if it cannot be determined by the Packet Broker Router.",
                      "type": "string"
                    },
                    "hops": {
                      "description": "Hops that the message passed. Each Packet Broker Router service appends an entry.",
                      "items": {
                        "properties": {
                          "received_at": {
                            "description": "Time when the service received the message.",
                            "format": "date-time",
                            "type": "string"
                          },
                          "receiver_agent": {
                            "description": "Receiver agent.",
                            "type": "string"
                          },
                          "receiver_name": {
                            "description": "Receiver of the message.",
                            "type": "string"
                          },
                          "sender_address": {
                            "description": "Sender IP address or host name.",
                            "type": "string"
                          },
                          "sender_name": {
                            "description": "Sender of the message, typically the authorized client identifier.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "message_id": {
                      "description": "Message identifier generated by Packet Broker Router.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "received_at": {
                  "description": "Timestamp at which the Gateway Server has received the message.",
                  "format": "date-time",
                  "type": "string"
                },
                "relay": {
                  "properties": {
                    "device_id": {
                      "description": "End device identifiers of the relay.",
                      "type": "string"
                    },
                    "wor_channel": {
                      "default": "RELAY_WOR_CHANNEL_DEFAULT",
                      "enum": [
                        "RELAY_WOR_CHANNEL_DEFAULT",
                        "RELAY_WOR_CHANNEL_SECONDARY"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rssi": {
                  "description": "Received signal strength indicator (dBm).\nThis value equals `channel_rssi`.",
                  "format": "float",
                  "type": "number"
                },
                "rssi_standard_deviation": {
                  "description": "Standard deviation of the RSSI during preamble.",
                  "format": "float",
                  "type": "number"
                },
                "signal_rssi": {
                  "description": "Received signal strength indicator of the signal (dBm).",
                  "format": "float",
                  "type": "number"
                },
                "snr": {
                  "description": "Signal-to-noise ratio (dB).",
                  "format": "float",
                  "type": "number"
                },
                "time": {
                  "description": "Timestamp at the end of the transmission, provided by the gateway. The accuracy is undefined.",
                  "format": "date-time",
                  "type": "string"
                },
                "timestamp": {
                  "description": "Gateway concentrator timestamp when the Rx finished (microseconds).",
                  "format": "int64",
                  "type": "integer"
                },
                "uplink_token": {
                  "description": "Uplink token to be included in the Tx request in class A downlink; injected by gateway, Gateway Server or fNS.",
                  "format": "byte",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "session_key_id": {
            "description": "Join Server issued identifier for the session keys used by this uplink.",
            "format": "byte",
            "type": "string"
          },
          "settings": {
            "description": "TxSettings contains the settings for a transmission.\nThis message is used on both uplink and downlink.\nOn downlink, this is a scheduled transmission.",
            "properties": {
              "concentrator_timestamp": {
                "description": "Concentrator timestamp for the downlink as calculated by the Gateway Server scheduler.\nThis value takes into account necessary offsets such as the RTT (Round Trip Time) and TOA (Time Of Arrival).\nThis field is set and used only by the Gateway Server.",
                "format": "int64",
                "type": "string"
              },
              "data_rate": {
                "properties": {
                  "fsk": {
                    "properties": {
                      "bit_rate": {
                        "description": "Bit rate (bps).",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "lora": {
                    "properties": {
                      "bandwidth": {
                        "description": "Bandwidth (Hz).",
                        "format": "int64",
                        "type": "integer"
                      },
                      "coding_rate": {
                        "type": "string"
                      },
                      "spreading_factor": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "lrfhss": {
                    "properties": {
                      "coding_rate": {
                        "type": "string"
                      },
                      "modulation_type": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "operating_channel_width": {
                        "description": "Operating Channel Width (Hz).",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "downlink": {
                "description": "Transmission settings for downlink.",
                "properties": {
                  "antenna_index": {
                    "description": "Index of the antenna on which the uplink was received and/or downlink must be sent.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "invert_polarization": {
                    "description": "Invert LoRa polarization; false for LoRaWAN uplink, true for downlink.",
                    "type": "boolean"
                  },
                  "tx_power": {
                    "description": "Transmission power (dBm). Only on downlink.",
                    "format": "float",
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "enable_crc": {
                "description": "Send a CRC in the packet; only on uplink; on downlink, CRC should not be enabled.",
                "type": "boolean"
              },
              "frequency": {
                "description": "Frequency (Hz).",
                "format": "uint64",
                "type": "string"
              },
              "time": {
                "description": "Time of the gateway when the uplink message was received, or when the downlink message should be transmitted.\nFor downlink, this requires the gateway to have GPS time synchronization.",
                "format": "date-time",
                "type": "string"
              },
              "timestamp": {
                "description": "Timestamp of the gateway concentrator when the uplink message was received, or when the downlink message should be transmitted (microseconds).\nOn downlink, set timestamp to 0 and time to null to use immediate scheduling.",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "version_ids": {
            "description": "Identifies an end device model with version information.",
            "properties": {
              "band_id": {
                "type": "string"
              },
              "brand_id": {
                "type": "string"
              },
              "firmware_version": {
                "type": "string"
              },
              "hardware_version": {
                "type": "string"
              },
              "model_id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationUplink

    Fields
    Name Type Description
    app_s_key object
    attributes object Attributes for devices, set by the Application Server while handling the message.
    confirmed boolean Indicates whether the end device used confirmed data uplink.
    consumed_airtime string Consumed airtime for the transmission of the uplink message. Calculated by Network Server using the raw payload size and the transmission settings.
    decoded_payload object The decoded frame payload of the uplink message. This field is set by the message processor that is configured for the end device (see formatters) or application (see default_formatters).
    decoded_payload_warnings string Warnings generated by the message processor while decoding the frm_payload.
    f_cnt integer LoRaWAN FCntUp of the uplink message.
    f_port integer LoRaWAN FPort of the uplink message.
    frm_payload string The frame payload of the uplink message. The payload is still encrypted if the skip_payload_crypto field of the EndDevice is true, which is indicated by the presence of the app_s_key field.
    last_a_f_cnt_down integer The last AFCntDown of the current session. This field is only present if the skip_payload_crypto field of the EndDevice is true. Can be used with app_s_key to encrypt downlink payloads.
    last_battery_percentage object
    locations object End device location metadata, set by the Application Server while handling the message.
    network_ids object Identifies a Network Server.
    normalized_payload object The normalized frame payload of the uplink message. This field is set by the message processor that is configured for the end device (see formatters) or application (see default_formatters). If the message processor is a custom script, there is no uplink normalizer script and the decoded output is valid normalized payload, this field contains the decoded payload.
    normalized_payload_warnings string Warnings generated by the message processor while normalizing the decoded payload.
    packet_error_rate number Packet error rate of the recent uplinks in the current session. Calculated by the Network Server. The value is defined in the [0, 1] interval.
    received_at string Server time when the Network Server received the message.
    rx_metadata object A list of metadata for each antenna of each gateway that received this message.
    session_key_id string Join Server issued identifier for the session keys used by this uplink.
    settings object TxSettings contains the settings for a transmission. This message is used on both uplink and downlink. On downlink, this is a scheduled transmission.
    version_ids object Identifies an end device model with version information.
    Schema
    {
      "app_s_key": {
        "properties": {
          "encrypted_key": {
            "format": "byte",
            "type": "string"
          },
          "kek_label": {
            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
            "type": "string"
          },
          "key": {
            "description": "The unencrypted AES key.",
            "example": "0123456789ABCDEF0123456789ABCDEF",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Attributes for devices, set by the Application Server while handling the message.",
        "type": "object"
      },
      "confirmed": {
        "description": "Indicates whether the end device used confirmed data uplink.",
        "type": "boolean"
      },
      "consumed_airtime": {
        "description": "Consumed airtime for the transmission of the uplink message. Calculated by Network Server using the raw payload size and the transmission settings.",
        "type": "string"
      },
      "decoded_payload": {
        "description": "The decoded frame payload of the uplink message.\nThis field is set by the message processor that is configured for the end device (see formatters) or application (see default_formatters).",
        "type": "object"
      },
      "decoded_payload_warnings": {
        "description": "Warnings generated by the message processor while decoding the frm_payload.",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "f_cnt": {
        "description": "LoRaWAN FCntUp of the uplink message.",
        "format": "int64",
        "type": "integer"
      },
      "f_port": {
        "description": "LoRaWAN FPort of the uplink message.",
        "format": "int64",
        "type": "integer"
      },
      "frm_payload": {
        "description": "The frame payload of the uplink message.\nThe payload is still encrypted if the skip_payload_crypto field of the EndDevice\nis true, which is indicated by the presence of the app_s_key field.",
        "format": "byte",
        "type": "string"
      },
      "last_a_f_cnt_down": {
        "description": "The last AFCntDown of the current session.\nThis field is only present if the skip_payload_crypto field of the EndDevice\nis true.\nCan be used with app_s_key to encrypt downlink payloads.",
        "format": "int64",
        "type": "integer"
      },
      "last_battery_percentage": {
        "properties": {
          "f_cnt": {
            "description": "Frame counter value of last uplink containing DevStatusAns.",
            "format": "int64",
            "type": "integer"
          },
          "received_at": {
            "description": "Time when last DevStatus MAC command was received.",
            "format": "date-time",
            "type": "string"
          },
          "value": {
            "description": "The battery percentage of the end device.\nThe value is defined in the [0, 100] interval.",
            "format": "float",
            "type": "number"
          }
        },
        "type": "object"
      },
      "locations": {
        "additionalProperties": {
          "properties": {
            "accuracy": {
              "description": "The accuracy of the location (meters).",
              "format": "int32",
              "type": "integer"
            },
            "altitude": {
              "description": "The altitude (meters), where 0 is the mean sea level.",
              "format": "int32",
              "type": "integer"
            },
            "latitude": {
              "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
              "format": "double",
              "type": "number"
            },
            "longitude": {
              "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
              "format": "double",
              "type": "number"
            },
            "source": {
              "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.",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "End device location metadata, set by the Application Server while handling the message.",
        "type": "object"
      },
      "network_ids": {
        "description": "Identifies a Network Server.",
        "properties": {
          "cluster_address": {
            "description": "Cluster address of the Network Server.",
            "type": "string"
          },
          "cluster_id": {
            "description": "Cluster identifier of the Network Server.",
            "type": "string"
          },
          "net_id": {
            "description": "LoRa Alliance NetID.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "ns_id": {
            "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "tenant_address": {
            "description": "Optional tenant address for multi-tenant deployments.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Optional tenant identifier for multi-tenant deployments.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "normalized_payload": {
        "description": "The normalized frame payload of the uplink message.\nThis field is set by the message processor that is configured for the end device (see formatters) or application (see default_formatters).\nIf the message processor is a custom script, there is no uplink normalizer script and the decoded output is valid\nnormalized payload, this field contains the decoded payload.",
        "items": {
          "type": "object"
        },
        "type": "array"
      },
      "normalized_payload_warnings": {
        "description": "Warnings generated by the message processor while normalizing the decoded payload.",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "packet_error_rate": {
        "description": "Packet error rate of the recent uplinks in the current session.\nCalculated by the Network Server. The value is defined in the [0, 1] interval.",
        "format": "float",
        "type": "number"
      },
      "received_at": {
        "description": "Server time when the Network Server received the message.",
        "format": "date-time",
        "type": "string"
      },
      "rx_metadata": {
        "description": "A list of metadata for each antenna of each gateway that received this message.",
        "items": {
          "description": "Contains metadata for a received message. Each antenna that receives\na message corresponds to one RxMetadata.",
          "properties": {
            "advanced": {
              "title": "Advanced metadata fields\n- can be used for advanced information or experimental features that are not yet formally defined in the API\n- field names are written in snake_case",
              "type": "object"
            },
            "antenna_index": {
              "format": "int64",
              "type": "integer"
            },
            "channel_index": {
              "description": "Index of the gateway channel that received the message.",
              "format": "int64",
              "type": "integer"
            },
            "channel_rssi": {
              "description": "Received signal strength indicator of the channel (dBm).",
              "format": "float",
              "type": "number"
            },
            "downlink_path_constraint": {
              "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.",
              "enum": [
                "DOWNLINK_PATH_CONSTRAINT_NONE",
                "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
                "DOWNLINK_PATH_CONSTRAINT_NEVER"
              ],
              "type": "string"
            },
            "encrypted_fine_timestamp": {
              "description": "Encrypted gateway's internal fine timestamp when the Rx finished (nanoseconds).",
              "format": "byte",
              "type": "string"
            },
            "encrypted_fine_timestamp_key_id": {
              "type": "string"
            },
            "fine_timestamp": {
              "description": "Gateway's internal fine timestamp when the Rx finished (nanoseconds).",
              "format": "uint64",
              "type": "string"
            },
            "frequency_drift": {
              "description": "Frequency drift in Hz between start and end of an LR-FHSS packet (signed).",
              "format": "int32",
              "type": "integer"
            },
            "frequency_offset": {
              "description": "Frequency offset (Hz).",
              "format": "int64",
              "type": "string"
            },
            "gateway_ids": {
              "properties": {
                "eui": {
                  "description": "Secondary identifier, which can only be used in specific requests.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "gateway_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "gps_time": {
              "description": "Timestamp at the end of the transmission, provided by the gateway.\nGuaranteed to be based on a GPS PPS signal, with an accuracy of 1 millisecond.",
              "format": "date-time",
              "type": "string"
            },
            "hopping_width": {
              "description": "Hopping width; a number describing the number of steps of the LR-FHSS grid.",
              "format": "int64",
              "type": "integer"
            },
            "location": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "packet_broker": {
              "properties": {
                "forwarder_cluster_id": {
                  "description": "Forwarder Cluster ID of the Packet Broker Forwarder.",
                  "type": "string"
                },
                "forwarder_gateway_eui": {
                  "description": "Forwarder gateway EUI.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "forwarder_gateway_id": {
                  "description": "Forwarder gateway ID.",
                  "type": "string"
                },
                "forwarder_net_id": {
                  "description": "LoRa Alliance NetID of the Packet Broker Forwarder Member.",
                  "example": "000013",
                  "format": "string",
                  "type": "string"
                },
                "forwarder_tenant_id": {
                  "description": "Tenant ID managed by the Packet Broker Forwarder Member.",
                  "type": "string"
                },
                "home_network_cluster_id": {
                  "description": "Home Network Cluster ID of the Packet Broker Home Network.",
                  "type": "string"
                },
                "home_network_net_id": {
                  "description": "LoRa Alliance NetID of the Packet Broker Home Network Member.",
                  "example": "000013",
                  "format": "string",
                  "type": "string"
                },
                "home_network_tenant_id": {
                  "description": "Tenant ID managed by the Packet Broker Home Network Member.\nThis value is empty if it cannot be determined by the Packet Broker Router.",
                  "type": "string"
                },
                "hops": {
                  "description": "Hops that the message passed. Each Packet Broker Router service appends an entry.",
                  "items": {
                    "properties": {
                      "received_at": {
                        "description": "Time when the service received the message.",
                        "format": "date-time",
                        "type": "string"
                      },
                      "receiver_agent": {
                        "description": "Receiver agent.",
                        "type": "string"
                      },
                      "receiver_name": {
                        "description": "Receiver of the message.",
                        "type": "string"
                      },
                      "sender_address": {
                        "description": "Sender IP address or host name.",
                        "type": "string"
                      },
                      "sender_name": {
                        "description": "Sender of the message, typically the authorized client identifier.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "message_id": {
                  "description": "Message identifier generated by Packet Broker Router.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "received_at": {
              "description": "Timestamp at which the Gateway Server has received the message.",
              "format": "date-time",
              "type": "string"
            },
            "relay": {
              "properties": {
                "device_id": {
                  "description": "End device identifiers of the relay.",
                  "type": "string"
                },
                "wor_channel": {
                  "default": "RELAY_WOR_CHANNEL_DEFAULT",
                  "enum": [
                    "RELAY_WOR_CHANNEL_DEFAULT",
                    "RELAY_WOR_CHANNEL_SECONDARY"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "rssi": {
              "description": "Received signal strength indicator (dBm).\nThis value equals `channel_rssi`.",
              "format": "float",
              "type": "number"
            },
            "rssi_standard_deviation": {
              "description": "Standard deviation of the RSSI during preamble.",
              "format": "float",
              "type": "number"
            },
            "signal_rssi": {
              "description": "Received signal strength indicator of the signal (dBm).",
              "format": "float",
              "type": "number"
            },
            "snr": {
              "description": "Signal-to-noise ratio (dB).",
              "format": "float",
              "type": "number"
            },
            "time": {
              "description": "Timestamp at the end of the transmission, provided by the gateway. The accuracy is undefined.",
              "format": "date-time",
              "type": "string"
            },
            "timestamp": {
              "description": "Gateway concentrator timestamp when the Rx finished (microseconds).",
              "format": "int64",
              "type": "integer"
            },
            "uplink_token": {
              "description": "Uplink token to be included in the Tx request in class A downlink; injected by gateway, Gateway Server or fNS.",
              "format": "byte",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "session_key_id": {
        "description": "Join Server issued identifier for the session keys used by this uplink.",
        "format": "byte",
        "type": "string"
      },
      "settings": {
        "description": "TxSettings contains the settings for a transmission.\nThis message is used on both uplink and downlink.\nOn downlink, this is a scheduled transmission.",
        "properties": {
          "concentrator_timestamp": {
            "description": "Concentrator timestamp for the downlink as calculated by the Gateway Server scheduler.\nThis value takes into account necessary offsets such as the RTT (Round Trip Time) and TOA (Time Of Arrival).\nThis field is set and used only by the Gateway Server.",
            "format": "int64",
            "type": "string"
          },
          "data_rate": {
            "properties": {
              "fsk": {
                "properties": {
                  "bit_rate": {
                    "description": "Bit rate (bps).",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "lora": {
                "properties": {
                  "bandwidth": {
                    "description": "Bandwidth (Hz).",
                    "format": "int64",
                    "type": "integer"
                  },
                  "coding_rate": {
                    "type": "string"
                  },
                  "spreading_factor": {
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "lrfhss": {
                "properties": {
                  "coding_rate": {
                    "type": "string"
                  },
                  "modulation_type": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "operating_channel_width": {
                    "description": "Operating Channel Width (Hz).",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "downlink": {
            "description": "Transmission settings for downlink.",
            "properties": {
              "antenna_index": {
                "description": "Index of the antenna on which the uplink was received and/or downlink must be sent.",
                "format": "int64",
                "type": "integer"
              },
              "invert_polarization": {
                "description": "Invert LoRa polarization; false for LoRaWAN uplink, true for downlink.",
                "type": "boolean"
              },
              "tx_power": {
                "description": "Transmission power (dBm). Only on downlink.",
                "format": "float",
                "type": "number"
              }
            },
            "type": "object"
          },
          "enable_crc": {
            "description": "Send a CRC in the packet; only on uplink; on downlink, CRC should not be enabled.",
            "type": "boolean"
          },
          "frequency": {
            "description": "Frequency (Hz).",
            "format": "uint64",
            "type": "string"
          },
          "time": {
            "description": "Time of the gateway when the uplink message was received, or when the downlink message should be transmitted.\nFor downlink, this requires the gateway to have GPS time synchronization.",
            "format": "date-time",
            "type": "string"
          },
          "timestamp": {
            "description": "Timestamp of the gateway concentrator when the uplink message was received, or when the downlink message should be transmitted (microseconds).\nOn downlink, set timestamp to 0 and time to null to use immediate scheduling.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationUplinkNormalized

    Fields
    Name Type Description
    attributes object Attributes for devices, set by the Application Server while handling the message.
    confirmed boolean Indicates whether the end device used confirmed data uplink.
    consumed_airtime string Consumed airtime for the transmission of the uplink message. Calculated by Network Server using the raw payload size and the transmission settings.
    f_cnt integer LoRaWAN FCntUp of the uplink message.
    f_port integer LoRaWAN FPort of the uplink message.
    frm_payload string The frame payload of the uplink message. This field is always decrypted with AppSKey.
    locations object End device location metadata, set by the Application Server while handling the message.
    network_ids object Identifies a Network Server.
    normalized_payload object The normalized frame payload of the uplink message. This field is set for each item in normalized_payload in the corresponding ApplicationUplink message.
    normalized_payload_warnings string This field is set to normalized_payload_warnings in the corresponding ApplicationUplink message.
    received_at string Server time when the Network Server received the message.
    rx_metadata object A list of metadata for each antenna of each gateway that received this message.
    session_key_id string Join Server issued identifier for the session keys used by this uplink.
    settings object TxSettings contains the settings for a transmission. This message is used on both uplink and downlink. On downlink, this is a scheduled transmission.
    version_ids object Identifies an end device model with version information.
    Schema
    {
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Attributes for devices, set by the Application Server while handling the message.",
        "type": "object"
      },
      "confirmed": {
        "description": "Indicates whether the end device used confirmed data uplink.",
        "type": "boolean"
      },
      "consumed_airtime": {
        "description": "Consumed airtime for the transmission of the uplink message. Calculated by Network Server using the raw payload size and the transmission settings.",
        "type": "string"
      },
      "f_cnt": {
        "description": "LoRaWAN FCntUp of the uplink message.",
        "format": "int64",
        "type": "integer"
      },
      "f_port": {
        "description": "LoRaWAN FPort of the uplink message.",
        "format": "int64",
        "type": "integer"
      },
      "frm_payload": {
        "description": "The frame payload of the uplink message.\nThis field is always decrypted with AppSKey.",
        "format": "byte",
        "type": "string"
      },
      "locations": {
        "additionalProperties": {
          "properties": {
            "accuracy": {
              "description": "The accuracy of the location (meters).",
              "format": "int32",
              "type": "integer"
            },
            "altitude": {
              "description": "The altitude (meters), where 0 is the mean sea level.",
              "format": "int32",
              "type": "integer"
            },
            "latitude": {
              "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
              "format": "double",
              "type": "number"
            },
            "longitude": {
              "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
              "format": "double",
              "type": "number"
            },
            "source": {
              "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.",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "End device location metadata, set by the Application Server while handling the message.",
        "type": "object"
      },
      "network_ids": {
        "description": "Identifies a Network Server.",
        "properties": {
          "cluster_address": {
            "description": "Cluster address of the Network Server.",
            "type": "string"
          },
          "cluster_id": {
            "description": "Cluster identifier of the Network Server.",
            "type": "string"
          },
          "net_id": {
            "description": "LoRa Alliance NetID.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "ns_id": {
            "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "tenant_address": {
            "description": "Optional tenant address for multi-tenant deployments.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Optional tenant identifier for multi-tenant deployments.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "normalized_payload": {
        "description": "The normalized frame payload of the uplink message.\nThis field is set for each item in normalized_payload in the corresponding ApplicationUplink message.",
        "type": "object"
      },
      "normalized_payload_warnings": {
        "description": "This field is set to normalized_payload_warnings in the corresponding ApplicationUplink message.",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "received_at": {
        "description": "Server time when the Network Server received the message.",
        "format": "date-time",
        "type": "string"
      },
      "rx_metadata": {
        "description": "A list of metadata for each antenna of each gateway that received this message.",
        "items": {
          "description": "Contains metadata for a received message. Each antenna that receives\na message corresponds to one RxMetadata.",
          "properties": {
            "advanced": {
              "title": "Advanced metadata fields\n- can be used for advanced information or experimental features that are not yet formally defined in the API\n- field names are written in snake_case",
              "type": "object"
            },
            "antenna_index": {
              "format": "int64",
              "type": "integer"
            },
            "channel_index": {
              "description": "Index of the gateway channel that received the message.",
              "format": "int64",
              "type": "integer"
            },
            "channel_rssi": {
              "description": "Received signal strength indicator of the channel (dBm).",
              "format": "float",
              "type": "number"
            },
            "downlink_path_constraint": {
              "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.",
              "enum": [
                "DOWNLINK_PATH_CONSTRAINT_NONE",
                "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
                "DOWNLINK_PATH_CONSTRAINT_NEVER"
              ],
              "type": "string"
            },
            "encrypted_fine_timestamp": {
              "description": "Encrypted gateway's internal fine timestamp when the Rx finished (nanoseconds).",
              "format": "byte",
              "type": "string"
            },
            "encrypted_fine_timestamp_key_id": {
              "type": "string"
            },
            "fine_timestamp": {
              "description": "Gateway's internal fine timestamp when the Rx finished (nanoseconds).",
              "format": "uint64",
              "type": "string"
            },
            "frequency_drift": {
              "description": "Frequency drift in Hz between start and end of an LR-FHSS packet (signed).",
              "format": "int32",
              "type": "integer"
            },
            "frequency_offset": {
              "description": "Frequency offset (Hz).",
              "format": "int64",
              "type": "string"
            },
            "gateway_ids": {
              "properties": {
                "eui": {
                  "description": "Secondary identifier, which can only be used in specific requests.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "gateway_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "gps_time": {
              "description": "Timestamp at the end of the transmission, provided by the gateway.\nGuaranteed to be based on a GPS PPS signal, with an accuracy of 1 millisecond.",
              "format": "date-time",
              "type": "string"
            },
            "hopping_width": {
              "description": "Hopping width; a number describing the number of steps of the LR-FHSS grid.",
              "format": "int64",
              "type": "integer"
            },
            "location": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "packet_broker": {
              "properties": {
                "forwarder_cluster_id": {
                  "description": "Forwarder Cluster ID of the Packet Broker Forwarder.",
                  "type": "string"
                },
                "forwarder_gateway_eui": {
                  "description": "Forwarder gateway EUI.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "forwarder_gateway_id": {
                  "description": "Forwarder gateway ID.",
                  "type": "string"
                },
                "forwarder_net_id": {
                  "description": "LoRa Alliance NetID of the Packet Broker Forwarder Member.",
                  "example": "000013",
                  "format": "string",
                  "type": "string"
                },
                "forwarder_tenant_id": {
                  "description": "Tenant ID managed by the Packet Broker Forwarder Member.",
                  "type": "string"
                },
                "home_network_cluster_id": {
                  "description": "Home Network Cluster ID of the Packet Broker Home Network.",
                  "type": "string"
                },
                "home_network_net_id": {
                  "description": "LoRa Alliance NetID of the Packet Broker Home Network Member.",
                  "example": "000013",
                  "format": "string",
                  "type": "string"
                },
                "home_network_tenant_id": {
                  "description": "Tenant ID managed by the Packet Broker Home Network Member.\nThis value is empty if it cannot be determined by the Packet Broker Router.",
                  "type": "string"
                },
                "hops": {
                  "description": "Hops that the message passed. Each Packet Broker Router service appends an entry.",
                  "items": {
                    "properties": {
                      "received_at": {
                        "description": "Time when the service received the message.",
                        "format": "date-time",
                        "type": "string"
                      },
                      "receiver_agent": {
                        "description": "Receiver agent.",
                        "type": "string"
                      },
                      "receiver_name": {
                        "description": "Receiver of the message.",
                        "type": "string"
                      },
                      "sender_address": {
                        "description": "Sender IP address or host name.",
                        "type": "string"
                      },
                      "sender_name": {
                        "description": "Sender of the message, typically the authorized client identifier.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "message_id": {
                  "description": "Message identifier generated by Packet Broker Router.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "received_at": {
              "description": "Timestamp at which the Gateway Server has received the message.",
              "format": "date-time",
              "type": "string"
            },
            "relay": {
              "properties": {
                "device_id": {
                  "description": "End device identifiers of the relay.",
                  "type": "string"
                },
                "wor_channel": {
                  "default": "RELAY_WOR_CHANNEL_DEFAULT",
                  "enum": [
                    "RELAY_WOR_CHANNEL_DEFAULT",
                    "RELAY_WOR_CHANNEL_SECONDARY"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "rssi": {
              "description": "Received signal strength indicator (dBm).\nThis value equals `channel_rssi`.",
              "format": "float",
              "type": "number"
            },
            "rssi_standard_deviation": {
              "description": "Standard deviation of the RSSI during preamble.",
              "format": "float",
              "type": "number"
            },
            "signal_rssi": {
              "description": "Received signal strength indicator of the signal (dBm).",
              "format": "float",
              "type": "number"
            },
            "snr": {
              "description": "Signal-to-noise ratio (dB).",
              "format": "float",
              "type": "number"
            },
            "time": {
              "description": "Timestamp at the end of the transmission, provided by the gateway. The accuracy is undefined.",
              "format": "date-time",
              "type": "string"
            },
            "timestamp": {
              "description": "Gateway concentrator timestamp when the Rx finished (microseconds).",
              "format": "int64",
              "type": "integer"
            },
            "uplink_token": {
              "description": "Uplink token to be included in the Tx request in class A downlink; injected by gateway, Gateway Server or fNS.",
              "format": "byte",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "session_key_id": {
        "description": "Join Server issued identifier for the session keys used by this uplink.",
        "format": "byte",
        "type": "string"
      },
      "settings": {
        "description": "TxSettings contains the settings for a transmission.\nThis message is used on both uplink and downlink.\nOn downlink, this is a scheduled transmission.",
        "properties": {
          "concentrator_timestamp": {
            "description": "Concentrator timestamp for the downlink as calculated by the Gateway Server scheduler.\nThis value takes into account necessary offsets such as the RTT (Round Trip Time) and TOA (Time Of Arrival).\nThis field is set and used only by the Gateway Server.",
            "format": "int64",
            "type": "string"
          },
          "data_rate": {
            "properties": {
              "fsk": {
                "properties": {
                  "bit_rate": {
                    "description": "Bit rate (bps).",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "lora": {
                "properties": {
                  "bandwidth": {
                    "description": "Bandwidth (Hz).",
                    "format": "int64",
                    "type": "integer"
                  },
                  "coding_rate": {
                    "type": "string"
                  },
                  "spreading_factor": {
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "lrfhss": {
                "properties": {
                  "coding_rate": {
                    "type": "string"
                  },
                  "modulation_type": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "operating_channel_width": {
                    "description": "Operating Channel Width (Hz).",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "downlink": {
            "description": "Transmission settings for downlink.",
            "properties": {
              "antenna_index": {
                "description": "Index of the antenna on which the uplink was received and/or downlink must be sent.",
                "format": "int64",
                "type": "integer"
              },
              "invert_polarization": {
                "description": "Invert LoRa polarization; false for LoRaWAN uplink, true for downlink.",
                "type": "boolean"
              },
              "tx_power": {
                "description": "Transmission power (dBm). Only on downlink.",
                "format": "float",
                "type": "number"
              }
            },
            "type": "object"
          },
          "enable_crc": {
            "description": "Send a CRC in the packet; only on uplink; on downlink, CRC should not be enabled.",
            "type": "boolean"
          },
          "frequency": {
            "description": "Frequency (Hz).",
            "format": "uint64",
            "type": "string"
          },
          "time": {
            "description": "Time of the gateway when the uplink message was received, or when the downlink message should be transmitted.\nFor downlink, this requires the gateway to have GPS time synchronization.",
            "format": "date-time",
            "type": "string"
          },
          "timestamp": {
            "description": "Timestamp of the gateway concentrator when the uplink message was received, or when the downlink message should be transmitted (microseconds).\nOn downlink, set timestamp to 0 and time to null to use immediate scheduling.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationWebhook

    Fields
    Name Type Description
    base_url string Base URL to which the message's path is appended.
    created_at string
    custom_ca string Custom CA certificate for the server where the webhooks are sent to. PEM formatted.
    downlink_ack object
    downlink_api_key string The API key to be used for downlink queue operations. The field is provided for convenience reasons, and can contain API keys with additional rights (albeit this is discouraged).
    downlink_failed object
    downlink_nack object
    downlink_queue_invalidated object
    downlink_queued object
    downlink_sent object
    field_mask string
    format string The format to use for the body. Supported values depend on the Application Server configuration.
    headers object HTTP headers to use.
    health_status object
    ids object
    join_accept object
    location_solved object
    paused boolean Set to temporarily pause forwarding uplink data to this end point and receiving downlinks from this end point.
    queue object
    service_data object
    template_fields object The value of the fields used by the template. Maps field.id to the value.
    template_ids object
    updated_at string
    uplink_message object
    uplink_normalized object
    Schema
    {
      "base_url": {
        "description": "Base URL to which the message's path is appended.",
        "type": "string"
      },
      "created_at": {
        "format": "date-time",
        "type": "string"
      },
      "custom_ca": {
        "description": "Custom CA certificate for the server where the webhooks are sent to. PEM formatted.",
        "format": "byte",
        "type": "string"
      },
      "downlink_ack": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "downlink_api_key": {
        "description": "The API key to be used for downlink queue operations.\nThe field is provided for convenience reasons, and can contain API keys with additional rights (albeit this is discouraged).",
        "type": "string"
      },
      "downlink_failed": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "downlink_nack": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "downlink_queue_invalidated": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "downlink_queued": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "downlink_sent": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "field_mask": {
        "type": "string"
      },
      "format": {
        "description": "The format to use for the body.\nSupported values depend on the Application Server configuration.",
        "type": "string"
      },
      "headers": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "HTTP headers to use.",
        "type": "object"
      },
      "health_status": {
        "properties": {
          "healthy": {
            "type": "object"
          },
          "unhealthy": {
            "properties": {
              "failed_attempts": {
                "format": "uint64",
                "type": "string"
              },
              "last_failed_attempt_at": {
                "format": "date-time",
                "type": "string"
              },
              "last_failed_attempt_details": {
                "description": "Error details that are communicated over gRPC (and HTTP) APIs.\nThe messages (for translation) are stored as \"error:\u003cnamespace\u003e:\u003cname\u003e\".",
                "properties": {
                  "attributes": {
                    "description": "Attributes that should be filled into the message format. Any extra attributes\ncan be displayed as error details.",
                    "type": "object"
                  },
                  "cause": {
                    "$ref": "#/definitions/v3ErrorDetails",
                    "description": "The error that caused this error."
                  },
                  "code": {
                    "description": "The status code of the error.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "correlation_id": {
                    "description": "The correlation ID of the error can be used to correlate the error to stack\ntraces the network may (or may not) store about recent errors.",
                    "type": "string"
                  },
                  "details": {
                    "description": "The details of the error.",
                    "items": {
                      "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(\u0026foo)) {\n      ...\n    }\n\nExample 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 := \u0026pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := \u0026pb.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\": \u003cstring\u003e,\n      \"lastName\": \u003cstring\u003e\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    }",
                      "properties": {
                        "@type": {
                          "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\nexpect 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.",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "message_format": {
                    "description": "The default (fallback) message format that should be used for the error.\nThis is also used if the client does not have a translation for the error.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name of the error.",
                    "type": "string"
                  },
                  "namespace": {
                    "description": "Namespace of the error (typically the package name in The Things Stack).",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "ids": {
        "properties": {
          "application_ids": {
            "properties": {
              "application_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "webhook_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "join_accept": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "location_solved": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "paused": {
        "description": "Set to temporarily pause forwarding uplink data to this end point and receiving downlinks from this end point.",
        "type": "boolean"
      },
      "queue": {
        "properties": {
          "enabled": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "service_data": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "template_fields": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "The value of the fields used by the template. Maps field.id to the value.",
        "type": "object"
      },
      "template_ids": {
        "properties": {
          "template_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "updated_at": {
        "format": "date-time",
        "type": "string"
      },
      "uplink_message": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "uplink_normalized": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL.",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationWebhookFailureByStatusCodeCount

    Fields
    Name Type Description
    time string
    totals object
    Schema
    {
      "time": {
        "format": "date-time",
        "type": "string"
      },
      "totals": {
        "additionalProperties": {
          "format": "uint64",
          "type": "string"
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationWebhookFailureCount

    Fields
    Name Type Description
    time string
    total string
    Schema
    {
      "time": {
        "format": "date-time",
        "type": "string"
      },
      "total": {
        "format": "uint64",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationWebhookFailureToForwardRatio

    Fields
    Name Type Description
    webhook_failure_to_forward_ratio number
    Schema
    {
      "webhook_failure_to_forward_ratio": {
        "format": "float",
        "type": "number"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationWebhookFailuresByStatusCodeCount

    Fields
    Name Type Description
    counts object
    Schema
    {
      "counts": {
        "items": {
          "properties": {
            "time": {
              "format": "date-time",
              "type": "string"
            },
            "totals": {
              "additionalProperties": {
                "format": "uint64",
                "type": "string"
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationWebhookFailuresCount

    Fields
    Name Type Description
    webhook_failure object
    Schema
    {
      "webhook_failure": {
        "items": {
          "properties": {
            "time": {
              "format": "date-time",
              "type": "string"
            },
            "total": {
              "format": "uint64",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationWebhookFormats

    Fields
    Name Type Description
    formats object Format and description.
    Schema
    {
      "formats": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Format and description.",
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationWebhookHealth

    Fields
    Name Type Description
    healthy object
    unhealthy object
    Schema
    {
      "healthy": {
        "type": "object"
      },
      "unhealthy": {
        "properties": {
          "failed_attempts": {
            "format": "uint64",
            "type": "string"
          },
          "last_failed_attempt_at": {
            "format": "date-time",
            "type": "string"
          },
          "last_failed_attempt_details": {
            "description": "Error details that are communicated over gRPC (and HTTP) APIs.\nThe messages (for translation) are stored as \"error:\u003cnamespace\u003e:\u003cname\u003e\".",
            "properties": {
              "attributes": {
                "description": "Attributes that should be filled into the message format. Any extra attributes\ncan be displayed as error details.",
                "type": "object"
              },
              "cause": {
                "$ref": "#/definitions/v3ErrorDetails",
                "description": "The error that caused this error."
              },
              "code": {
                "description": "The status code of the error.",
                "format": "int64",
                "type": "integer"
              },
              "correlation_id": {
                "description": "The correlation ID of the error can be used to correlate the error to stack\ntraces the network may (or may not) store about recent errors.",
                "type": "string"
              },
              "details": {
                "description": "The details of the error.",
                "items": {
                  "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(\u0026foo)) {\n      ...\n    }\n\nExample 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 := \u0026pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := \u0026pb.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\": \u003cstring\u003e,\n      \"lastName\": \u003cstring\u003e\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    }",
                  "properties": {
                    "@type": {
                      "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\nexpect 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.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "message_format": {
                "description": "The default (fallback) message format that should be used for the error.\nThis is also used if the client does not have a translation for the error.",
                "type": "string"
              },
              "name": {
                "description": "Name of the error.",
                "type": "string"
              },
              "namespace": {
                "description": "Namespace of the error (typically the package name in The Things Stack).",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationWebhookIdentifiers

    Fields
    Name Type Description
    application_ids object
    webhook_id string
    Schema
    {
      "application_ids": {
        "properties": {
          "application_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "webhook_id": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationWebhookMessage

    Fields
    Name Type Description
    path string Path to append to the base URL.
    Schema
    {
      "path": {
        "description": "Path to append to the base URL.",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationWebhookQueue

    Fields
    Name Type Description
    enabled boolean
    Schema
    {
      "enabled": {
        "type": "boolean"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationWebhookRegistrySetBody

    Fields
    Name Type Description
    field_mask string
    webhook object
    Schema
    {
      "field_mask": {
        "type": "string"
      },
      "webhook": {
        "properties": {
          "base_url": {
            "description": "Base URL to which the message's path is appended.",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "custom_ca": {
            "description": "Custom CA certificate for the server where the webhooks are sent to. PEM formatted.",
            "format": "byte",
            "type": "string"
          },
          "downlink_ack": {
            "properties": {
              "path": {
                "description": "Path to append to the base URL.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "downlink_api_key": {
            "description": "The API key to be used for downlink queue operations.\nThe field is provided for convenience reasons, and can contain API keys with additional rights (albeit this is discouraged).",
            "type": "string"
          },
          "downlink_failed": {
            "properties": {
              "path": {
                "description": "Path to append to the base URL.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "downlink_nack": {
            "properties": {
              "path": {
                "description": "Path to append to the base URL.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "downlink_queue_invalidated": {
            "properties": {
              "path": {
                "description": "Path to append to the base URL.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "downlink_queued": {
            "properties": {
              "path": {
                "description": "Path to append to the base URL.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "downlink_sent": {
            "properties": {
              "path": {
                "description": "Path to append to the base URL.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "field_mask": {
            "type": "string"
          },
          "format": {
            "description": "The format to use for the body.\nSupported values depend on the Application Server configuration.",
            "type": "string"
          },
          "headers": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "HTTP headers to use.",
            "type": "object"
          },
          "health_status": {
            "properties": {
              "healthy": {
                "type": "object"
              },
              "unhealthy": {
                "properties": {
                  "failed_attempts": {
                    "format": "uint64",
                    "type": "string"
                  },
                  "last_failed_attempt_at": {
                    "format": "date-time",
                    "type": "string"
                  },
                  "last_failed_attempt_details": {
                    "description": "Error details that are communicated over gRPC (and HTTP) APIs.\nThe messages (for translation) are stored as \"error:\u003cnamespace\u003e:\u003cname\u003e\".",
                    "properties": {
                      "attributes": {
                        "description": "Attributes that should be filled into the message format. Any extra attributes\ncan be displayed as error details.",
                        "type": "object"
                      },
                      "cause": {
                        "$ref": "#/definitions/v3ErrorDetails",
                        "description": "The error that caused this error."
                      },
                      "code": {
                        "description": "The status code of the error.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "correlation_id": {
                        "description": "The correlation ID of the error can be used to correlate the error to stack\ntraces the network may (or may not) store about recent errors.",
                        "type": "string"
                      },
                      "details": {
                        "description": "The details of the error.",
                        "items": {
                          "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(\u0026foo)) {\n      ...\n    }\n\nExample 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 := \u0026pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := \u0026pb.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\": \u003cstring\u003e,\n      \"lastName\": \u003cstring\u003e\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    }",
                          "properties": {
                            "@type": {
                              "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\nexpect 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.",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "message_format": {
                        "description": "The default (fallback) message format that should be used for the error.\nThis is also used if the client does not have a translation for the error.",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name of the error.",
                        "type": "string"
                      },
                      "namespace": {
                        "description": "Namespace of the error (typically the package name in The Things Stack).",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "ids": {
            "properties": {
              "application_ids": {
                "type": "object"
              },
              "webhook_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "join_accept": {
            "properties": {
              "path": {
                "description": "Path to append to the base URL.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "location_solved": {
            "properties": {
              "path": {
                "description": "Path to append to the base URL.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "paused": {
            "description": "Set to temporarily pause forwarding uplink data to this end point and receiving downlinks from this end point.",
            "type": "boolean"
          },
          "queue": {
            "properties": {
              "enabled": {
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "service_data": {
            "properties": {
              "path": {
                "description": "Path to append to the base URL.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "template_fields": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The value of the fields used by the template. Maps field.id to the value.",
            "type": "object"
          },
          "template_ids": {
            "properties": {
              "template_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          },
          "uplink_message": {
            "properties": {
              "path": {
                "description": "Path to append to the base URL.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "uplink_normalized": {
            "properties": {
              "path": {
                "description": "Path to append to the base URL.",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationWebhookTemplate

    Fields
    Name Type Description
    base_url string The base URL of the template. Can contain template fields, in RFC 6570 format.
    create_downlink_api_key boolean Control the creation of the downlink queue operations API key.
    description string
    documentation_url string
    downlink_ack object
    downlink_failed object
    downlink_nack object
    downlink_queue_invalidated object
    downlink_queued object
    downlink_sent object
    field_mask string
    fields object
    format string
    headers object The HTTP headers used by the template. Both the key and the value can contain template fields.
    ids object
    info_url string
    join_accept object
    location_solved object
    logo_url string
    name string
    service_data object
    uplink_message object
    uplink_normalized object
    Schema
    {
      "base_url": {
        "description": "The base URL of the template. Can contain template fields, in RFC 6570 format.",
        "type": "string"
      },
      "create_downlink_api_key": {
        "description": "Control the creation of the downlink queue operations API key.",
        "type": "boolean"
      },
      "description": {
        "type": "string"
      },
      "documentation_url": {
        "type": "string"
      },
      "downlink_ack": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "downlink_failed": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "downlink_nack": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "downlink_queue_invalidated": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "downlink_queued": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "downlink_sent": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "field_mask": {
        "type": "string"
      },
      "fields": {
        "items": {
          "description": "ApplicationWebhookTemplateField represents a custom field that needs to be filled by the user in order to use the template.\nA field can be an API key, an username or password, or any custom platform specific field (such as region).\nThe fields are meant to be replaced inside the URLs and headers when the webhook is created.",
          "properties": {
            "default_value": {
              "type": "string"
            },
            "description": {
              "type": "string"
            },
            "id": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "optional": {
              "type": "boolean"
            },
            "secret": {
              "description": "Secret decides if the field should be shown in plain-text or should stay hidden.",
              "type": "boolean"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "format": {
        "type": "string"
      },
      "headers": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "The HTTP headers used by the template. Both the key and the value can contain template fields.",
        "type": "object"
      },
      "ids": {
        "properties": {
          "template_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "info_url": {
        "type": "string"
      },
      "join_accept": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "location_solved": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "logo_url": {
        "type": "string"
      },
      "name": {
        "type": "string"
      },
      "service_data": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "uplink_message": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "uplink_normalized": {
        "properties": {
          "path": {
            "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationWebhookTemplateField

    ApplicationWebhookTemplateField represents a custom field that needs to be filled by the user in order to use the template. A field can be an API key, an username or password, or any custom platform specific field (such as region). The fields are meant to be replaced inside the URLs and headers when the webhook is created.
    Fields
    Name Type Description
    default_value string
    description string
    id string
    name string
    optional boolean
    secret boolean Secret decides if the field should be shown in plain-text or should stay hidden.
    Schema
    {
      "default_value": {
        "type": "string"
      },
      "description": {
        "type": "string"
      },
      "id": {
        "type": "string"
      },
      "name": {
        "type": "string"
      },
      "optional": {
        "type": "boolean"
      },
      "secret": {
        "description": "Secret decides if the field should be shown in plain-text or should stay hidden.",
        "type": "boolean"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationWebhookTemplateIdentifiers

    Fields
    Name Type Description
    template_id string
    Schema
    {
      "template_id": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationWebhookTemplateMessage

    Fields
    Name Type Description
    path string Path to append to the base URL. Can contain template fields, in RFC 6570 format.
    Schema
    {
      "path": {
        "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationWebhookTemplates

    Fields
    Name Type Description
    templates object
    Schema
    {
      "templates": {
        "items": {
          "properties": {
            "base_url": {
              "description": "The base URL of the template. Can contain template fields, in RFC 6570 format.",
              "type": "string"
            },
            "create_downlink_api_key": {
              "description": "Control the creation of the downlink queue operations API key.",
              "type": "boolean"
            },
            "description": {
              "type": "string"
            },
            "documentation_url": {
              "type": "string"
            },
            "downlink_ack": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "downlink_failed": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "downlink_nack": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "downlink_queue_invalidated": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "downlink_queued": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "downlink_sent": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "field_mask": {
              "type": "string"
            },
            "fields": {
              "items": {
                "description": "ApplicationWebhookTemplateField represents a custom field that needs to be filled by the user in order to use the template.\nA field can be an API key, an username or password, or any custom platform specific field (such as region).\nThe fields are meant to be replaced inside the URLs and headers when the webhook is created.",
                "properties": {
                  "default_value": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "optional": {
                    "type": "boolean"
                  },
                  "secret": {
                    "description": "Secret decides if the field should be shown in plain-text or should stay hidden.",
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "format": {
              "type": "string"
            },
            "headers": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "The HTTP headers used by the template. Both the key and the value can contain template fields.",
              "type": "object"
            },
            "ids": {
              "properties": {
                "template_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "info_url": {
              "type": "string"
            },
            "join_accept": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "location_solved": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "logo_url": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "service_data": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "uplink_message": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "uplink_normalized": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL. Can contain template fields, in RFC 6570 format.",
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationWebhooks

    Fields
    Name Type Description
    webhooks object
    Schema
    {
      "webhooks": {
        "items": {
          "properties": {
            "base_url": {
              "description": "Base URL to which the message's path is appended.",
              "type": "string"
            },
            "created_at": {
              "format": "date-time",
              "type": "string"
            },
            "custom_ca": {
              "description": "Custom CA certificate for the server where the webhooks are sent to. PEM formatted.",
              "format": "byte",
              "type": "string"
            },
            "downlink_ack": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "downlink_api_key": {
              "description": "The API key to be used for downlink queue operations.\nThe field is provided for convenience reasons, and can contain API keys with additional rights (albeit this is discouraged).",
              "type": "string"
            },
            "downlink_failed": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "downlink_nack": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "downlink_queue_invalidated": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "downlink_queued": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "downlink_sent": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "field_mask": {
              "type": "string"
            },
            "format": {
              "description": "The format to use for the body.\nSupported values depend on the Application Server configuration.",
              "type": "string"
            },
            "headers": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "HTTP headers to use.",
              "type": "object"
            },
            "health_status": {
              "properties": {
                "healthy": {
                  "type": "object"
                },
                "unhealthy": {
                  "properties": {
                    "failed_attempts": {
                      "format": "uint64",
                      "type": "string"
                    },
                    "last_failed_attempt_at": {
                      "format": "date-time",
                      "type": "string"
                    },
                    "last_failed_attempt_details": {
                      "description": "Error details that are communicated over gRPC (and HTTP) APIs.\nThe messages (for translation) are stored as \"error:\u003cnamespace\u003e:\u003cname\u003e\".",
                      "properties": {
                        "attributes": {
                          "description": "Attributes that should be filled into the message format. Any extra attributes\ncan be displayed as error details.",
                          "type": "object"
                        },
                        "cause": {
                          "$ref": "#/definitions/v3ErrorDetails",
                          "description": "The error that caused this error."
                        },
                        "code": {
                          "description": "The status code of the error.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "correlation_id": {
                          "description": "The correlation ID of the error can be used to correlate the error to stack\ntraces the network may (or may not) store about recent errors.",
                          "type": "string"
                        },
                        "details": {
                          "description": "The details of the error.",
                          "items": {
                            "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(\u0026foo)) {\n      ...\n    }\n\nExample 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 := \u0026pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := \u0026pb.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\": \u003cstring\u003e,\n      \"lastName\": \u003cstring\u003e\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    }",
                            "properties": {
                              "@type": {
                                "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\nexpect 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.",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        },
                        "message_format": {
                          "description": "The default (fallback) message format that should be used for the error.\nThis is also used if the client does not have a translation for the error.",
                          "type": "string"
                        },
                        "name": {
                          "description": "Name of the error.",
                          "type": "string"
                        },
                        "namespace": {
                          "description": "Namespace of the error (typically the package name in The Things Stack).",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "ids": {
              "properties": {
                "application_ids": {
                  "properties": {
                    "application_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "webhook_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "join_accept": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "location_solved": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "paused": {
              "description": "Set to temporarily pause forwarding uplink data to this end point and receiving downlinks from this end point.",
              "type": "boolean"
            },
            "queue": {
              "properties": {
                "enabled": {
                  "type": "boolean"
                }
              },
              "type": "object"
            },
            "service_data": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "template_fields": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "The value of the fields used by the template. Maps field.id to the value.",
              "type": "object"
            },
            "template_ids": {
              "properties": {
                "template_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "updated_at": {
              "format": "date-time",
              "type": "string"
            },
            "uplink_message": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "uplink_normalized": {
              "properties": {
                "path": {
                  "description": "Path to append to the base URL.",
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    Applications

    Fields
    Name Type Description
    applications object
    Schema
    {
      "applications": {
        "items": {
          "description": "Application is the message that defines an Application in the network.",
          "properties": {
            "administrative_contact": {
              "description": "OrganizationOrUserIdentifiers contains either organization or user identifiers.",
              "properties": {
                "organization_ids": {
                  "properties": {
                    "organization_id": {
                      "description": "This ID shares namespace with user IDs.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "user_ids": {
                  "properties": {
                    "email": {
                      "description": "Secondary identifier, which can only be used in specific requests.",
                      "type": "string"
                    },
                    "user_id": {
                      "description": "This ID shares namespace with organization IDs.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "application_server_address": {
              "description": "The address of the Application Server where this application is supposed to be registered.\nIf set, this fields indicates where end devices for this application should be registered.\n\nStored in Entity Registry.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
              "type": "string"
            },
            "attributes": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Key-value attributes for this application. Typically used for organizing applications or for storing integration-specific data.",
              "type": "object"
            },
            "contact_info": {
              "description": "Contact information for this application. Typically used to indicate who to contact with technical/security questions about the application.\nThis field is deprecated. Use administrative_contact and technical_contact instead.",
              "items": {
                "properties": {
                  "contact_method": {
                    "default": "CONTACT_METHOD_OTHER",
                    "enum": [
                      "CONTACT_METHOD_OTHER",
                      "CONTACT_METHOD_EMAIL",
                      "CONTACT_METHOD_PHONE"
                    ],
                    "type": "string"
                  },
                  "contact_type": {
                    "default": "CONTACT_TYPE_OTHER",
                    "enum": [
                      "CONTACT_TYPE_OTHER",
                      "CONTACT_TYPE_ABUSE",
                      "CONTACT_TYPE_BILLING",
                      "CONTACT_TYPE_TECHNICAL"
                    ],
                    "type": "string"
                  },
                  "public": {
                    "type": "boolean"
                  },
                  "validated_at": {
                    "format": "date-time",
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "created_at": {
              "description": "When the application was created. This information is public and can be seen by any authenticated user in the network.",
              "format": "date-time",
              "type": "string"
            },
            "deleted_at": {
              "description": "When the application was deleted. This information is public and can be seen by any authenticated user in the network.",
              "format": "date-time",
              "type": "string"
            },
            "description": {
              "description": "A description for the application.",
              "type": "string"
            },
            "dev_eui_counter": {
              "format": "int64",
              "type": "integer"
            },
            "end_device_limit": {
              "description": "The limit of the number of end devices that can be registered for this application.\nThis field can only be modified by admins.",
              "format": "uint64",
              "type": "string"
            },
            "ids": {
              "properties": {
                "application_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "join_server_address": {
              "description": "The address of the Join Server where this application is supposed to be registered.\nIf set, this fields indicates where end devices for this application should be registered.\n\nStored in Entity Registry.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
              "type": "string"
            },
            "label_ids": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "name": {
              "description": "The name of the application.",
              "type": "string"
            },
            "network_server_address": {
              "description": "The address of the Network Server where this application is supposed to be registered.\nIf set, this fields indicates where end devices for this application should be registered.\n\nStored in Entity Registry.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
              "type": "string"
            },
            "technical_contact": {
              "description": "OrganizationOrUserIdentifiers contains either organization or user identifiers.",
              "properties": {
                "organization_ids": {
                  "properties": {
                    "organization_id": {
                      "description": "This ID shares namespace with user IDs.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "user_ids": {
                  "properties": {
                    "email": {
                      "description": "Secondary identifier, which can only be used in specific requests.",
                      "type": "string"
                    },
                    "user_id": {
                      "description": "This ID shares namespace with organization IDs.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "updated_at": {
              "description": "When the application was last updated. This information is public and can be seen by any authenticated user in the network.",
              "format": "date-time",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationsActiveMetrics

    Identifiers of active applications.
    Fields
    Name Type Description
    application_ids object
    Schema
    {
      "application_ids": {
        "items": {
          "properties": {
            "application_id": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationsStatistic

    Applications statistic.
    Fields
    Name Type Description
    active_devices integer
    application_ids object
    average_packet_error_rate number
    Schema
    {
      "active_devices": {
        "format": "int64",
        "type": "integer"
      },
      "application_ids": {
        "properties": {
          "application_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "average_packet_error_rate": {
        "format": "float",
        "type": "number"
      }
    }
    Show the schema of the message in JSON format.

    ApplicationsStatistics

    Applications statistics.
    Fields
    Name Type Description
    stats object
    Schema
    {
      "stats": {
        "items": {
          "description": "Applications statistic.",
          "properties": {
            "active_devices": {
              "format": "int64",
              "type": "integer"
            },
            "application_ids": {
              "properties": {
                "application_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "average_packet_error_rate": {
              "format": "float",
              "type": "number"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    ArsConfiguration

    Fields
    Name Type Description
    routing object
    Schema
    {
      "routing": {
        "properties": {
          "enabled": {
            "type": "boolean"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ArsConfigurationRouting

    Fields
    Name Type Description
    enabled boolean
    Schema
    {
      "enabled": {
        "type": "boolean"
      }
    }
    Show the schema of the message in JSON format.

    AsConfiguration

    Application Server configuration.
    Fields
    Name Type Description
    pubsub object
    webhooks object
    Schema
    {
      "pubsub": {
        "properties": {
          "providers": {
            "properties": {
              "mqtt": {
                "default": "ENABLED",
                "description": " - ENABLED: No restrictions are in place.\n - WARNING: Warnings are being emitted that the provider will be deprecated in the future.\n - DISABLED: New integrations cannot be set up, and old ones do not start.",
                "enum": [
                  "ENABLED",
                  "WARNING",
                  "DISABLED"
                ],
                "type": "string"
              },
              "nats": {
                "default": "ENABLED",
                "description": " - ENABLED: No restrictions are in place.\n - WARNING: Warnings are being emitted that the provider will be deprecated in the future.\n - DISABLED: New integrations cannot be set up, and old ones do not start.",
                "enum": [
                  "ENABLED",
                  "WARNING",
                  "DISABLED"
                ],
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "webhooks": {
        "properties": {
          "queue": {
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "retry": {
                "properties": {
                  "base_delay": {
                    "type": "string"
                  },
                  "delay_factor": {
                    "format": "double",
                    "type": "number"
                  },
                  "jitter_factor": {
                    "format": "double",
                    "type": "number"
                  },
                  "max_attempts": {
                    "format": "int64",
                    "type": "string"
                  },
                  "max_delay": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "unhealthy_attempts_threshold": {
            "format": "int64",
            "type": "string"
          },
          "unhealthy_retry_interval": {
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    AsConfigurationWebhooks

    Fields
    Name Type Description
    queue object
    unhealthy_attempts_threshold string
    unhealthy_retry_interval string
    Schema
    {
      "queue": {
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "retry": {
            "properties": {
              "base_delay": {
                "type": "string"
              },
              "delay_factor": {
                "format": "double",
                "type": "number"
              },
              "jitter_factor": {
                "format": "double",
                "type": "number"
              },
              "max_attempts": {
                "format": "int64",
                "type": "string"
              },
              "max_delay": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "unhealthy_attempts_threshold": {
        "format": "int64",
        "type": "string"
      },
      "unhealthy_retry_interval": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    AsConfigurationWebhooksQueue

    Fields
    Name Type Description
    enabled boolean
    retry object
    Schema
    {
      "enabled": {
        "type": "boolean"
      },
      "retry": {
        "properties": {
          "base_delay": {
            "type": "string"
          },
          "delay_factor": {
            "format": "double",
            "type": "number"
          },
          "jitter_factor": {
            "format": "double",
            "type": "number"
          },
          "max_attempts": {
            "format": "int64",
            "type": "string"
          },
          "max_delay": {
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    AsEndDeviceRegistrySetBody

    Fields
    Name Type Description
    end_device object 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 string 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.
    Schema
    {
      "end_device": {
        "description": "Defines an End Device registration and its state on the network.\nThe persistence of the EndDevice is divided between the Network Server, Application Server and Join Server.\nSDKs are responsible for combining (if desired) the three.",
        "properties": {
          "activated_at": {
            "description": "Timestamp when the device has been activated. Stored in the Entity Registry.\nThis field is set by the Application Server when an end device sends\nits first uplink.\nThe Application Server will use the field in order to avoid repeated\ncalls to the Entity Registry.\nThe field cannot be unset once set.",
            "format": "date-time",
            "type": "string"
          },
          "application_server_address": {
            "description": "The address of the Application Server where this device is supposed to be registered.\nStored in Entity Registry and Join Server.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
            "type": "string"
          },
          "application_server_id": {
            "description": "The AS-ID of the Application Server to use.\nStored in Join Server.",
            "type": "string"
          },
          "application_server_kek_label": {
            "description": "The KEK label of the Application Server to use for wrapping the application session key.\nStored in Join Server.",
            "type": "string"
          },
          "attributes": {
            "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.",
            "type": "object"
          },
          "battery_percentage": {
            "description": "Latest-known battery percentage of the device.\nReceived via the DevStatus MAC command at last_dev_status_received_at or earlier.\nStored in Network Server.",
            "format": "float",
            "type": "number"
          },
          "claim_authentication_code": {
            "description": "Authentication code for end devices.",
            "properties": {
              "valid_from": {
                "format": "date-time",
                "type": "string"
              },
              "valid_to": {
                "format": "date-time",
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "Description of the device. Stored in Entity Registry.",
            "type": "string"
          },
          "downlink_margin": {
            "description": "Demodulation signal-to-noise ratio (dB).\nReceived via the DevStatus MAC command at last_dev_status_received_at.\nStored in Network Server.",
            "format": "int32",
            "type": "integer"
          },
          "formatters": {
            "properties": {
              "down_formatter": {
                "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.",
                "enum": [
                  "FORMATTER_NONE",
                  "FORMATTER_REPOSITORY",
                  "FORMATTER_GRPC_SERVICE",
                  "FORMATTER_JAVASCRIPT",
                  "FORMATTER_CAYENNELPP"
                ],
                "type": "string"
              },
              "down_formatter_parameter": {
                "description": "Parameter for the down_formatter, must be set together. The API enforces a maximum length of 16KB, but the size may be restricted further by deployment configuration.",
                "type": "string"
              },
              "up_formatter": {
                "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.",
                "enum": [
                  "FORMATTER_NONE",
                  "FORMATTER_REPOSITORY",
                  "FORMATTER_GRPC_SERVICE",
                  "FORMATTER_JAVASCRIPT",
                  "FORMATTER_CAYENNELPP"
                ],
                "type": "string"
              },
              "up_formatter_parameter": {
                "description": "Parameter for the up_formatter, must be set together. The API enforces a maximum length of 16KB, but the size may be restricted further by deployment configuration.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "frequency_plan_id": {
            "description": "ID of the frequency plan used by this device.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "type": "string"
          },
          "ids": {
            "properties": {
              "application_ids": {
                "type": "object"
              },
              "dev_addr": {
                "description": "The LoRaWAN DevAddr.",
                "example": "2600ABCD",
                "format": "string",
                "type": "string"
              },
              "dev_eui": {
                "description": "The LoRaWAN DevEUI.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "device_id": {
                "type": "string"
              },
              "join_eui": {
                "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          },
          "join_server_address": {
            "description": "The address of the Join Server where this device is supposed to be registered.\nStored in Entity Registry.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
            "type": "string"
          },
          "label_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "last_dev_nonce": {
            "description": "Last DevNonce used.\nThis field is only used for devices using LoRaWAN version 1.1 and later.\nStored in Join Server.",
            "format": "int64",
            "type": "integer"
          },
          "last_dev_status_received_at": {
            "description": "Time when last DevStatus MAC command was received.\nStored in Network Server.",
            "format": "date-time",
            "type": "string"
          },
          "last_join_nonce": {
            "description": "Last JoinNonce/AppNonce(for devices using LoRaWAN versions preceding 1.1) used.\nStored in Join Server.",
            "format": "int64",
            "type": "integer"
          },
          "last_rj_count_0": {
            "description": "Last Rejoin counter value used (type 0/2).\nStored in Join Server.",
            "format": "int64",
            "type": "integer"
          },
          "last_rj_count_1": {
            "description": "Last Rejoin counter value used (type 1).\nStored in Join Server.",
            "format": "int64",
            "type": "integer"
          },
          "last_seen_at": {
            "description": "Timestamp when a device uplink has been last observed.\nThis field is set by the Application Server and stored in the Identity Server.",
            "format": "date-time",
            "type": "string"
          },
          "locations": {
            "additionalProperties": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "description": "Location of the device. Stored in Entity Registry.",
            "type": "object"
          },
          "lora_alliance_profile_ids": {
            "properties": {
              "vendor_id": {
                "description": "VendorID managed by the LoRa Alliance, as defined in TR005.",
                "format": "int64",
                "type": "integer"
              },
              "vendor_profile_id": {
                "description": "ID of the LoRaWAN end device profile assigned by the vendor.",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "lorawan_phy_version": {
            "default": "PHY_UNKNOWN",
            "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"
            ],
            "type": "string"
          },
          "lorawan_version": {
            "default": "MAC_UNKNOWN",
            "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"
            ],
            "type": "string"
          },
          "mac_settings": {
            "properties": {
              "adr": {
                "description": "Adaptive Data Rate settings.",
                "properties": {
                  "disabled": {
                    "description": "Configuration options for cases in which ADR is to be disabled\ncompletely.",
                    "type": "object"
                  },
                  "dynamic": {
                    "description": "Configuration options for dynamic ADR.",
                    "properties": {
                      "channel_steering": {
                        "description": "EXPERIMENTAL: Channel steering settings.",
                        "properties": {
                          "disabled": {
                            "description": "Configuration options for cases in which ADR is not supposed to steer the end device\nto another set of channels.",
                            "type": "object"
                          },
                          "lora_narrow": {
                            "description": "Configuration options for LoRa narrow channels steering.\nThe narrow mode attempts to steer the end device towards\nusing the LoRa modulated, 125kHz bandwidth channels.",
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "margin": {
                        "description": "The ADR margin (dB) tells the network server how much margin it should add in ADR requests.\nA bigger margin is less efficient, but gives a better chance of successful reception.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "float",
                        "type": "number"
                      },
                      "max_data_rate_index": {
                        "properties": {
                          "value": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "max_nb_trans": {
                        "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_tx_power_index": {
                        "description": "Maximum transmission power index.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "min_data_rate_index": {
                        "properties": {
                          "value": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "min_nb_trans": {
                        "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "min_tx_power_index": {
                        "description": "Minimum transmission power index.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "overrides": {
                        "description": "EXPERIMENTAL: Configuration overrides.",
                        "properties": {
                          "data_rate_0": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_1": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_10": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_11": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_12": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_13": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_14": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_15": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_2": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_3": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_4": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_5": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_6": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_7": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_8": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_9": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "static": {
                    "description": "Configuration options for static ADR.",
                    "properties": {
                      "data_rate_index": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "nb_trans": {
                        "description": "Number of retransmissions.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "tx_power_index": {
                        "description": "Transmission power index to use.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "adr_margin": {
                "description": "The ADR margin (dB) tells the network server how much margin it should add in ADR requests.\nA bigger margin is less efficient, but gives a better chance of successful reception.\nThis field is deprecated, use adr_settings.dynamic.margin instead.",
                "format": "float",
                "type": "number"
              },
              "beacon_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "class_b_c_downlink_interval": {
                "description": "The minimum duration passed before a network-initiated(e.g. Class B or C) downlink following an arbitrary downlink.",
                "type": "string"
              },
              "class_b_timeout": {
                "description": "Maximum delay for the device to answer a MAC request or a confirmed downlink frame.\nIf unset, the default value from Network Server configuration will be used.",
                "type": "string"
              },
              "class_c_timeout": {
                "description": "Maximum delay for the device to answer a MAC request or a confirmed downlink frame.\nIf unset, the default value from Network Server configuration will be used.",
                "type": "string"
              },
              "desired_adr_ack_delay_exponent": {
                "properties": {
                  "value": {
                    "default": "ADR_ACK_DELAY_1",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_adr_ack_limit_exponent": {
                "properties": {
                  "value": {
                    "default": "ADR_ACK_LIMIT_1",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_beacon_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_max_duty_cycle": {
                "properties": {
                  "value": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_max_eirp": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_ping_slot_data_rate_index": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_ping_slot_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_relay": {
                "description": "RelaySettings represent the settings of a relay.\nThis is used internally by the Network Server.",
                "properties": {
                  "served": {
                    "properties": {
                      "always": {
                        "type": "object"
                      },
                      "backoff": {
                        "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "dynamic": {
                        "properties": {
                          "smart_enable_level": {
                            "default": "RELAY_SMART_ENABLE_LEVEL_8",
                            "enum": [
                              "RELAY_SMART_ENABLE_LEVEL_8",
                              "RELAY_SMART_ENABLE_LEVEL_16",
                              "RELAY_SMART_ENABLE_LEVEL_32",
                              "RELAY_SMART_ENABLE_LEVEL_64"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "end_device_controlled": {
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving_device_id": {
                        "description": "End device identifier of the serving end device.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "serving": {
                    "properties": {
                      "cad_periodicity": {
                        "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                        "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"
                        ],
                        "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                        "type": "string"
                      },
                      "default_channel_index": {
                        "description": "Index of the default wake on radio channel.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "limits": {
                        "properties": {
                          "join_requests": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "notifications": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "overall": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "reset_behavior": {
                            "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "enum": [
                              "RELAY_RESET_LIMIT_COUNTER_ZERO",
                              "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                              "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                              "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                            ],
                            "type": "string"
                          },
                          "uplink_messages": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "uplink_forwarding_rules": {
                        "description": "Configured uplink forwarding rules.",
                        "items": {
                          "properties": {
                            "device_id": {
                              "description": "End device identifier of the served end device.",
                              "type": "string"
                            },
                            "last_w_f_cnt": {
                              "description": "Last wake on radio frame counter used by the served end device.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "limits": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "session_key_id": {
                              "description": "Session key ID of the session keys used to derive the root relay session key.",
                              "format": "byte",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "desired_rx1_data_rate_offset": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_rx1_delay": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_rx2_data_rate_index": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_rx2_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "downlink_dwell_time": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "factory_preset_frequencies": {
                "description": "List of factory-preset frequencies.\nIf unset, the default value from Network Server configuration or regional parameters specification will be used.",
                "items": {
                  "format": "uint64",
                  "type": "string"
                },
                "type": "array"
              },
              "max_duty_cycle": {
                "properties": {
                  "value": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "ping_slot_data_rate_index": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "ping_slot_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "ping_slot_periodicity": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "relay": {
                "description": "RelaySettings represent the settings of a relay.\nThis is used internally by the Network Server.",
                "properties": {
                  "served": {
                    "properties": {
                      "always": {
                        "type": "object"
                      },
                      "backoff": {
                        "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "dynamic": {
                        "properties": {
                          "smart_enable_level": {
                            "default": "RELAY_SMART_ENABLE_LEVEL_8",
                            "enum": [
                              "RELAY_SMART_ENABLE_LEVEL_8",
                              "RELAY_SMART_ENABLE_LEVEL_16",
                              "RELAY_SMART_ENABLE_LEVEL_32",
                              "RELAY_SMART_ENABLE_LEVEL_64"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "end_device_controlled": {
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving_device_id": {
                        "description": "End device identifier of the serving end device.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "serving": {
                    "properties": {
                      "cad_periodicity": {
                        "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                        "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"
                        ],
                        "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                        "type": "string"
                      },
                      "default_channel_index": {
                        "description": "Index of the default wake on radio channel.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "limits": {
                        "properties": {
                          "join_requests": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "notifications": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "overall": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "reset_behavior": {
                            "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "enum": [
                              "RELAY_RESET_LIMIT_COUNTER_ZERO",
                              "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                              "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                              "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                            ],
                            "type": "string"
                          },
                          "uplink_messages": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "uplink_forwarding_rules": {
                        "description": "Configured uplink forwarding rules.",
                        "items": {
                          "properties": {
                            "device_id": {
                              "description": "End device identifier of the served end device.",
                              "type": "string"
                            },
                            "last_w_f_cnt": {
                              "description": "Last wake on radio frame counter used by the served end device.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "limits": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "session_key_id": {
                              "description": "Session key ID of the session keys used to derive the root relay session key.",
                              "format": "byte",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "resets_f_cnt": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "rx1_data_rate_offset": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "rx1_delay": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "rx2_data_rate_index": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "rx2_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "schedule_downlinks": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "status_count_periodicity": {
                "description": "Number of uplink messages after which a DevStatusReq MACCommand shall be sent.\nIf unset, the default value from Network Server configuration will be used.",
                "format": "int64",
                "type": "integer"
              },
              "status_time_periodicity": {
                "description": "The interval after which a DevStatusReq MACCommand shall be sent.\nIf unset, the default value from Network Server configuration will be used.",
                "type": "string"
              },
              "supports_32_bit_f_cnt": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "uplink_dwell_time": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "use_adr": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "mac_settings_profile_ids": {
            "properties": {
              "application_ids": {
                "properties": {
                  "application_id": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "profile_id": {
                "description": "Profile ID.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "mac_state": {
            "description": "MACState represents the state of MAC layer of the device.\nMACState is reset on each join for OTAA or ResetInd for ABP devices.\nThis is used internally by the Network Server.",
            "properties": {
              "current_parameters": {
                "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
                "properties": {
                  "adr_ack_delay": {
                    "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_delay_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_DELAY_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_ack_limit": {
                    "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_limit_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_LIMIT_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "adr_nb_trans": {
                    "description": "ADR: number of retransmissions.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_tx_power_index": {
                    "description": "ADR: transmission power index to use.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "beacon_frequency": {
                    "description": "Frequency of the class B beacon (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "channels": {
                    "description": "Configured uplink channels and optionally Rx1 frequency.",
                    "items": {
                      "properties": {
                        "downlink_frequency": {
                          "description": "Downlink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "enable_uplink": {
                          "description": "Channel can be used by device for uplink.",
                          "type": "boolean"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_frequency": {
                          "description": "Uplink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "downlink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "max_duty_cycle": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "max_eirp": {
                    "description": "Maximum EIRP (dBm).",
                    "format": "float",
                    "type": "number"
                  },
                  "ping_slot_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "ping_slot_data_rate_index_value": {
                    "properties": {
                      "value": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "ping_slot_frequency": {
                    "description": "Frequency of the class B ping slot (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "rejoin_count_periodicity": {
                    "default": "REJOIN_COUNT_16",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rejoin_time_periodicity": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "relay": {
                    "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                    "properties": {
                      "served": {
                        "properties": {
                          "always": {
                            "type": "object"
                          },
                          "backoff": {
                            "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "dynamic": {
                            "properties": {
                              "smart_enable_level": {
                                "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                "enum": [
                                  "RELAY_SMART_ENABLE_LEVEL_8",
                                  "RELAY_SMART_ENABLE_LEVEL_16",
                                  "RELAY_SMART_ENABLE_LEVEL_32",
                                  "RELAY_SMART_ENABLE_LEVEL_64"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "end_device_controlled": {
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "serving_device_id": {
                            "description": "End device identifier of the serving end device.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving": {
                        "properties": {
                          "cad_periodicity": {
                            "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                            "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"
                            ],
                            "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                            "type": "string"
                          },
                          "default_channel_index": {
                            "description": "Index of the default wake on radio channel.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "limits": {
                            "properties": {
                              "join_requests": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "notifications": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "overall": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "reset_behavior": {
                                "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                "enum": [
                                  "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                  "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                  "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                  "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                                ],
                                "type": "string"
                              },
                              "uplink_messages": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "uplink_forwarding_rules": {
                            "description": "Configured uplink forwarding rules.",
                            "items": {
                              "properties": {
                                "device_id": {
                                  "description": "End device identifier of the served end device.",
                                  "type": "string"
                                },
                                "last_w_f_cnt": {
                                  "description": "Last wake on radio frame counter used by the served end device.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "limits": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "session_key_id": {
                                  "description": "Session key ID of the session keys used to derive the root relay session key.",
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "rx1_data_rate_offset": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx1_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_frequency": {
                    "description": "Frequency for Rx2 (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "uplink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "desired_parameters": {
                "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
                "properties": {
                  "adr_ack_delay": {
                    "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_delay_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_DELAY_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_ack_limit": {
                    "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_limit_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_LIMIT_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "adr_nb_trans": {
                    "description": "ADR: number of retransmissions.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_tx_power_index": {
                    "description": "ADR: transmission power index to use.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "beacon_frequency": {
                    "description": "Frequency of the class B beacon (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "channels": {
                    "description": "Configured uplink channels and optionally Rx1 frequency.",
                    "items": {
                      "properties": {
                        "downlink_frequency": {
                          "description": "Downlink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "enable_uplink": {
                          "description": "Channel can be used by device for uplink.",
                          "type": "boolean"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_frequency": {
                          "description": "Uplink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "downlink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "max_duty_cycle": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "max_eirp": {
                    "description": "Maximum EIRP (dBm).",
                    "format": "float",
                    "type": "number"
                  },
                  "ping_slot_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "ping_slot_data_rate_index_value": {
                    "properties": {
                      "value": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "ping_slot_frequency": {
                    "description": "Frequency of the class B ping slot (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "rejoin_count_periodicity": {
                    "default": "REJOIN_COUNT_16",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rejoin_time_periodicity": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "relay": {
                    "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                    "properties": {
                      "served": {
                        "properties": {
                          "always": {
                            "type": "object"
                          },
                          "backoff": {
                            "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "dynamic": {
                            "properties": {
                              "smart_enable_level": {
                                "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                "enum": [
                                  "RELAY_SMART_ENABLE_LEVEL_8",
                                  "RELAY_SMART_ENABLE_LEVEL_16",
                                  "RELAY_SMART_ENABLE_LEVEL_32",
                                  "RELAY_SMART_ENABLE_LEVEL_64"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "end_device_controlled": {
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "serving_device_id": {
                            "description": "End device identifier of the serving end device.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving": {
                        "properties": {
                          "cad_periodicity": {
                            "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                            "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"
                            ],
                            "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                            "type": "string"
                          },
                          "default_channel_index": {
                            "description": "Index of the default wake on radio channel.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "limits": {
                            "properties": {
                              "join_requests": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "notifications": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "overall": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "reset_behavior": {
                                "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                "enum": [
                                  "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                  "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                  "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                  "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                                ],
                                "type": "string"
                              },
                              "uplink_messages": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "uplink_forwarding_rules": {
                            "description": "Configured uplink forwarding rules.",
                            "items": {
                              "properties": {
                                "device_id": {
                                  "description": "End device identifier of the served end device.",
                                  "type": "string"
                                },
                                "last_w_f_cnt": {
                                  "description": "Last wake on radio frame counter used by the served end device.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "limits": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "session_key_id": {
                                  "description": "Session key ID of the session keys used to derive the root relay session key.",
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "rx1_data_rate_offset": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx1_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_frequency": {
                    "description": "Frequency for Rx2 (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "uplink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "device_class": {
                "default": "CLASS_A",
                "enum": [
                  "CLASS_A",
                  "CLASS_B",
                  "CLASS_C"
                ],
                "type": "string"
              },
              "last_adr_change_f_cnt_up": {
                "description": "Frame counter of uplink, which confirmed the last ADR parameter change.",
                "format": "int64",
                "type": "integer"
              },
              "last_confirmed_downlink_at": {
                "description": "Time when the last confirmed downlink message or MAC command was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "last_dev_status_f_cnt_up": {
                "description": "Frame counter value of last uplink containing DevStatusAns.",
                "format": "int64",
                "type": "integer"
              },
              "last_downlink_at": {
                "description": "Time when the last downlink message was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "last_network_initiated_downlink_at": {
                "description": "Time when the last network-initiated downlink message was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "lorawan_version": {
                "default": "MAC_UNKNOWN",
                "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"
                ],
                "type": "string"
              },
              "pending_application_downlink": {
                "properties": {
                  "attributes": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "Attributes for devices, set by the Application Server while handling the message.",
                    "type": "object"
                  },
                  "class_b_c": {
                    "properties": {
                      "absolute_time": {
                        "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                        "format": "date-time",
                        "type": "string"
                      },
                      "gateways": {
                        "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                        "items": {
                          "properties": {
                            "antenna_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "gateway_ids": {
                              "properties": {
                                "eui": {
                                  "description": "Secondary identifier, which can only be used in specific requests.",
                                  "example": "70B3D57ED000ABCD",
                                  "format": "string",
                                  "type": "string"
                                },
                                "gateway_id": {
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "group_index": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  },
                  "confirmed": {
                    "type": "boolean"
                  },
                  "confirmed_retry": {
                    "properties": {
                      "attempt": {
                        "description": "The number of attempted confirmed downlink acknowledgements.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_attempts": {
                        "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "correlation_ids": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "decoded_payload": {
                    "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                    "type": "object"
                  },
                  "decoded_payload_warnings": {
                    "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "f_cnt": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "f_port": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "frm_payload": {
                    "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                    "format": "byte",
                    "type": "string"
                  },
                  "locations": {
                    "additionalProperties": {
                      "properties": {
                        "accuracy": {
                          "description": "The accuracy of the location (meters).",
                          "format": "int32",
                          "type": "integer"
                        },
                        "altitude": {
                          "description": "The altitude (meters), where 0 is the mean sea level.",
                          "format": "int32",
                          "type": "integer"
                        },
                        "latitude": {
                          "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                          "format": "double",
                          "type": "number"
                        },
                        "longitude": {
                          "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                          "format": "double",
                          "type": "number"
                        },
                        "source": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "description": "End device location metadata, set by the Application Server while handling the message.",
                    "type": "object"
                  },
                  "network_ids": {
                    "description": "Identifies a Network Server.",
                    "properties": {
                      "cluster_address": {
                        "description": "Cluster address of the Network Server.",
                        "type": "string"
                      },
                      "cluster_id": {
                        "description": "Cluster identifier of the Network Server.",
                        "type": "string"
                      },
                      "net_id": {
                        "description": "LoRa Alliance NetID.",
                        "example": "000013",
                        "format": "string",
                        "type": "string"
                      },
                      "ns_id": {
                        "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                        "example": "70B3D57ED000ABCD",
                        "format": "string",
                        "type": "string"
                      },
                      "tenant_address": {
                        "description": "Optional tenant address for multi-tenant deployments.",
                        "type": "string"
                      },
                      "tenant_id": {
                        "description": "Optional tenant identifier for multi-tenant deployments.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "priority": {
                    "default": "LOWEST",
                    "enum": [
                      "LOWEST",
                      "LOW",
                      "BELOW_NORMAL",
                      "NORMAL",
                      "ABOVE_NORMAL",
                      "HIGH",
                      "HIGHEST"
                    ],
                    "type": "string"
                  },
                  "session_key_id": {
                    "description": "Join Server issued identifier for the session keys used by this downlink.",
                    "format": "byte",
                    "type": "string"
                  },
                  "version_ids": {
                    "description": "Identifies an end device model with version information.",
                    "properties": {
                      "band_id": {
                        "type": "string"
                      },
                      "brand_id": {
                        "type": "string"
                      },
                      "firmware_version": {
                        "type": "string"
                      },
                      "hardware_version": {
                        "type": "string"
                      },
                      "model_id": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "pending_join_request": {
                "properties": {
                  "cf_list": {
                    "properties": {
                      "ch_masks": {
                        "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                        "items": {
                          "type": "boolean"
                        },
                        "type": "array"
                      },
                      "freq": {
                        "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                        "items": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "type": "array"
                      },
                      "type": {
                        "default": "FREQUENCIES",
                        "enum": [
                          "FREQUENCIES",
                          "CHANNEL_MASKS"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "downlink_settings": {
                    "properties": {
                      "opt_neg": {
                        "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                        "type": "boolean"
                      },
                      "rx1_dr_offset": {
                        "default": "DATA_RATE_OFFSET_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "rx2_dr": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "rx_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "pending_relay_downlink": {
                "properties": {
                  "raw_payload": {
                    "format": "byte",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "pending_requests": {
                "description": "Pending MAC requests(i.e. sent requests, for which no response has been received yet).\nRegenerated on each downlink.",
                "items": {
                  "properties": {
                    "adr_param_setup_req": {
                      "properties": {
                        "adr_ack_delay_exponent": {
                          "default": "ADR_ACK_DELAY_1",
                          "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"
                          ],
                          "type": "string"
                        },
                        "adr_ack_limit_exponent": {
                          "default": "ADR_ACK_LIMIT_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_ans": {
                      "properties": {
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_req": {
                      "properties": {
                        "frequency": {
                          "description": "Frequency of the Class B beacons (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_timing_ans": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "delay": {
                          "description": "(uint16) See LoRaWAN specification.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "cid": {
                      "default": "CID_RFU_0",
                      "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"
                      ],
                      "title": "- CID_BEACON_TIMING: Deprecated",
                      "type": "string"
                    },
                    "dev_status_ans": {
                      "properties": {
                        "battery": {
                          "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "SNR of the last downlink (dB; [-32, +31]).",
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_conf": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_ind": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_time_ans": {
                      "properties": {
                        "time": {
                          "format": "date-time",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_ans": {
                      "properties": {
                        "channel_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Downlink channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "duty_cycle_req": {
                      "properties": {
                        "max_duty_cycle": {
                          "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%.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "force_rejoin_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_retries": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "period_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rejoin_type": {
                          "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.",
                          "enum": [
                            "CONTEXT",
                            "SESSION",
                            "KEYS"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_ans": {
                      "properties": {
                        "channel_mask_ack": {
                          "type": "boolean"
                        },
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "tx_power_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_req": {
                      "properties": {
                        "channel_mask": {
                          "items": {
                            "type": "boolean"
                          },
                          "type": "array"
                        },
                        "channel_mask_control": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "nb_trans": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "tx_power_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "link_check_ans": {
                      "properties": {
                        "gateway_count": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_ans": {
                      "properties": {
                        "data_rate_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_ans": {
                      "properties": {
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "frequency": {
                          "description": "Ping slot channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_info_req": {
                      "properties": {
                        "period": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "raw_payload": {
                      "format": "byte",
                      "type": "string"
                    },
                    "rejoin_param_setup_ans": {
                      "properties": {
                        "max_time_exponent_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rejoin_param_setup_req": {
                      "properties": {
                        "max_count_exponent": {
                          "default": "REJOIN_COUNT_16",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_time_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_ans": {
                      "properties": {
                        "cad_periodicity_ack": {
                          "type": "boolean"
                        },
                        "default_channel_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_ack_offset_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "cad_periodicity": {
                              "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                              "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"
                              ],
                              "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                              "type": "string"
                            },
                            "default_channel_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_ans": {
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_req": {
                      "properties": {
                        "global_uplink_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "notify_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "overall_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "reset_limit_counter": {
                          "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                          "enum": [
                            "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                            "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                            "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_ans": {
                      "properties": {
                        "rule_index_ack": {
                          "type": "boolean"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_req": {
                      "properties": {
                        "action": {
                          "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                          "enum": [
                            "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                            "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                          ],
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_ans": {
                      "properties": {
                        "backoff_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "always": {
                              "type": "object"
                            },
                            "backoff": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "dynamic": {
                              "properties": {
                                "smart_enable_level": {
                                  "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                  "enum": [
                                    "RELAY_SMART_ENABLE_LEVEL_8",
                                    "RELAY_SMART_ENABLE_LEVEL_16",
                                    "RELAY_SMART_ENABLE_LEVEL_32",
                                    "RELAY_SMART_ENABLE_LEVEL_64"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "end_device_controlled": {
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "serving_device_id": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_notify_new_end_device_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "rssi": {
                          "format": "int32",
                          "type": "integer"
                        },
                        "snr": {
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_update_uplink_list_ans": {
                      "type": "object"
                    },
                    "relay_update_uplink_list_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "device_id": {
                          "type": "string"
                        },
                        "forward_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "root_wor_s_key": {
                          "example": "0123456789ABCDEF0123456789ABCDEF",
                          "format": "string",
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "session_key_id": {
                          "format": "byte",
                          "type": "string"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "reset_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "reset_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_ans": {
                      "properties": {
                        "rx1_data_rate_offset_ack": {
                          "type": "boolean"
                        },
                        "rx2_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "rx2_frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_req": {
                      "properties": {
                        "rx1_data_rate_offset": {
                          "default": "DATA_RATE_OFFSET_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_frequency": {
                          "description": "Rx2 frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_timing_setup_req": {
                      "properties": {
                        "delay": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "tx_param_setup_req": {
                      "properties": {
                        "downlink_dwell_time": {
                          "type": "boolean"
                        },
                        "max_eirp_index": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_dwell_time": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "ping_slot_periodicity": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "queued_join_accept": {
                "properties": {
                  "correlation_ids": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "dev_addr": {
                    "example": "2600ABCD",
                    "format": "string",
                    "type": "string"
                  },
                  "keys": {
                    "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
                    "properties": {
                      "app_s_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "f_nwk_s_int_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "nwk_s_enc_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "s_nwk_s_int_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "session_key_id": {
                        "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                        "format": "byte",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "net_id": {
                    "example": "000013",
                    "format": "string",
                    "type": "string"
                  },
                  "payload": {
                    "description": "Payload of the join-accept received from Join Server.",
                    "format": "byte",
                    "type": "string"
                  },
                  "request": {
                    "properties": {
                      "cf_list": {
                        "properties": {
                          "ch_masks": {
                            "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                            "items": {
                              "type": "boolean"
                            },
                            "type": "array"
                          },
                          "freq": {
                            "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                            "items": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "type": "array"
                          },
                          "type": {
                            "default": "FREQUENCIES",
                            "enum": [
                              "FREQUENCIES",
                              "CHANNEL_MASKS"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "downlink_settings": {
                        "properties": {
                          "opt_neg": {
                            "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                            "type": "boolean"
                          },
                          "rx1_dr_offset": {
                            "default": "DATA_RATE_OFFSET_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "rx2_dr": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rx_delay": {
                        "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.",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "queued_responses": {
                "description": "Queued MAC responses.\nRegenerated on each uplink.",
                "items": {
                  "properties": {
                    "adr_param_setup_req": {
                      "properties": {
                        "adr_ack_delay_exponent": {
                          "default": "ADR_ACK_DELAY_1",
                          "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"
                          ],
                          "type": "string"
                        },
                        "adr_ack_limit_exponent": {
                          "default": "ADR_ACK_LIMIT_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_ans": {
                      "properties": {
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_req": {
                      "properties": {
                        "frequency": {
                          "description": "Frequency of the Class B beacons (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_timing_ans": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "delay": {
                          "description": "(uint16) See LoRaWAN specification.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "cid": {
                      "default": "CID_RFU_0",
                      "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"
                      ],
                      "title": "- CID_BEACON_TIMING: Deprecated",
                      "type": "string"
                    },
                    "dev_status_ans": {
                      "properties": {
                        "battery": {
                          "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "SNR of the last downlink (dB; [-32, +31]).",
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_conf": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_ind": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_time_ans": {
                      "properties": {
                        "time": {
                          "format": "date-time",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_ans": {
                      "properties": {
                        "channel_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Downlink channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "duty_cycle_req": {
                      "properties": {
                        "max_duty_cycle": {
                          "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%.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "force_rejoin_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_retries": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "period_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rejoin_type": {
                          "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.",
                          "enum": [
                            "CONTEXT",
                            "SESSION",
                            "KEYS"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_ans": {
                      "properties": {
                        "channel_mask_ack": {
                          "type": "boolean"
                        },
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "tx_power_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_req": {
                      "properties": {
                        "channel_mask": {
                          "items": {
                            "type": "boolean"
                          },
                          "type": "array"
                        },
                        "channel_mask_control": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "nb_trans": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "tx_power_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "link_check_ans": {
                      "properties": {
                        "gateway_count": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_ans": {
                      "properties": {
                        "data_rate_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_ans": {
                      "properties": {
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "frequency": {
                          "description": "Ping slot channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_info_req": {
                      "properties": {
                        "period": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "raw_payload": {
                      "format": "byte",
                      "type": "string"
                    },
                    "rejoin_param_setup_ans": {
                      "properties": {
                        "max_time_exponent_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rejoin_param_setup_req": {
                      "properties": {
                        "max_count_exponent": {
                          "default": "REJOIN_COUNT_16",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_time_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_ans": {
                      "properties": {
                        "cad_periodicity_ack": {
                          "type": "boolean"
                        },
                        "default_channel_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_ack_offset_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "cad_periodicity": {
                              "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                              "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"
                              ],
                              "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                              "type": "string"
                            },
                            "default_channel_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_ans": {
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_req": {
                      "properties": {
                        "global_uplink_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "notify_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "overall_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "reset_limit_counter": {
                          "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                          "enum": [
                            "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                            "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                            "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_ans": {
                      "properties": {
                        "rule_index_ack": {
                          "type": "boolean"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_req": {
                      "properties": {
                        "action": {
                          "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                          "enum": [
                            "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                            "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                          ],
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_ans": {
                      "properties": {
                        "backoff_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "always": {
                              "type": "object"
                            },
                            "backoff": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "dynamic": {
                              "properties": {
                                "smart_enable_level": {
                                  "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                  "enum": [
                                    "RELAY_SMART_ENABLE_LEVEL_8",
                                    "RELAY_SMART_ENABLE_LEVEL_16",
                                    "RELAY_SMART_ENABLE_LEVEL_32",
                                    "RELAY_SMART_ENABLE_LEVEL_64"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "end_device_controlled": {
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "serving_device_id": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_notify_new_end_device_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "rssi": {
                          "format": "int32",
                          "type": "integer"
                        },
                        "snr": {
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_update_uplink_list_ans": {
                      "type": "object"
                    },
                    "relay_update_uplink_list_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "device_id": {
                          "type": "string"
                        },
                        "forward_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "root_wor_s_key": {
                          "example": "0123456789ABCDEF0123456789ABCDEF",
                          "format": "string",
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "session_key_id": {
                          "format": "byte",
                          "type": "string"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "reset_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "reset_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_ans": {
                      "properties": {
                        "rx1_data_rate_offset_ack": {
                          "type": "boolean"
                        },
                        "rx2_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "rx2_frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_req": {
                      "properties": {
                        "rx1_data_rate_offset": {
                          "default": "DATA_RATE_OFFSET_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_frequency": {
                          "description": "Rx2 frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_timing_setup_req": {
                      "properties": {
                        "delay": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "tx_param_setup_req": {
                      "properties": {
                        "downlink_dwell_time": {
                          "type": "boolean"
                        },
                        "max_eirp_index": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_dwell_time": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "recent_downlinks": {
                "description": "Recent data downlink messages sorted by time.\nThe number of messages stored may depend on configuration.",
                "items": {
                  "description": "A minimal DownlinkMessage definition which is binary compatible with the top level DownlinkMessage message.\nUsed for type safe recent downlink storage.",
                  "properties": {
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "payload": {
                      "properties": {
                        "m_hdr": {
                          "properties": {
                            "m_type": {
                              "default": "JOIN_REQUEST",
                              "enum": [
                                "JOIN_REQUEST",
                                "JOIN_ACCEPT",
                                "UNCONFIRMED_UP",
                                "UNCONFIRMED_DOWN",
                                "CONFIRMED_UP",
                                "CONFIRMED_DOWN",
                                "REJOIN_REQUEST",
                                "PROPRIETARY"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "mac_payload": {
                          "properties": {
                            "f_port": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "full_f_cnt": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "recent_mac_command_identifiers": {
                "description": "MAC command identifiers sent by the end device in the last received uplink.\nThe Network Server may choose to store only certain types of MAC\ncommand identifiers in the underlying implementation.",
                "items": {
                  "default": "CID_RFU_0",
                  "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"
                  ],
                  "title": "- CID_BEACON_TIMING: Deprecated",
                  "type": "string"
                },
                "type": "array"
              },
              "recent_uplinks": {
                "description": "Recent data uplink messages sorted by time.\nThe number of messages stored may depend on configuration.",
                "items": {
                  "description": "A minimal UplinkMessage definition which is binary compatible with the top level UplinkMessage message.\nUsed for type safe recent uplink storage.",
                  "properties": {
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "device_channel_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "payload": {
                      "properties": {
                        "join_accept_payload": {
                          "properties": {
                            "cf_list": {
                              "properties": {
                                "ch_masks": {
                                  "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                                  "items": {
                                    "type": "boolean"
                                  },
                                  "type": "array"
                                },
                                "freq": {
                                  "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                                  "items": {
                                    "format": "int64",
                                    "type": "integer"
                                  },
                                  "type": "array"
                                },
                                "type": {
                                  "default": "FREQUENCIES",
                                  "enum": [
                                    "FREQUENCIES",
                                    "CHANNEL_MASKS"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "dev_addr": {
                              "example": "2600ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "dl_settings": {
                              "properties": {
                                "opt_neg": {
                                  "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                                  "type": "boolean"
                                },
                                "rx1_dr_offset": {
                                  "default": "DATA_RATE_OFFSET_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "rx2_dr": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "encrypted": {
                              "format": "byte",
                              "type": "string"
                            },
                            "join_nonce": {
                              "example": "ABCDEF",
                              "format": "string",
                              "type": "string"
                            },
                            "net_id": {
                              "example": "000013",
                              "format": "string",
                              "type": "string"
                            },
                            "rx_delay": {
                              "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.",
                              "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"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_payload": {
                          "properties": {
                            "dev_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "dev_nonce": {
                              "example": "ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "join_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "m_hdr": {
                          "properties": {
                            "m_type": {
                              "default": "JOIN_REQUEST",
                              "enum": [
                                "JOIN_REQUEST",
                                "JOIN_ACCEPT",
                                "UNCONFIRMED_UP",
                                "UNCONFIRMED_DOWN",
                                "CONFIRMED_UP",
                                "CONFIRMED_DOWN",
                                "REJOIN_REQUEST",
                                "PROPRIETARY"
                              ],
                              "type": "string"
                            },
                            "major": {
                              "default": "LORAWAN_R1",
                              "enum": [
                                "LORAWAN_R1"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "mac_payload": {
                          "properties": {
                            "decoded_payload": {
                              "type": "object"
                            },
                            "f_hdr": {
                              "properties": {
                                "dev_addr": {
                                  "example": "2600ABCD",
                                  "format": "string",
                                  "type": "string"
                                },
                                "f_cnt": {
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "f_ctrl": {
                                  "properties": {
                                    "ack": {
                                      "type": "boolean"
                                    },
                                    "adr": {
                                      "type": "boolean"
                                    },
                                    "adr_ack_req": {
                                      "description": "Only on uplink.",
                                      "type": "boolean"
                                    },
                                    "class_b": {
                                      "description": "Only on uplink.",
                                      "type": "boolean"
                                    },
                                    "f_pending": {
                                      "description": "Only on downlink.",
                                      "type": "boolean"
                                    }
                                  },
                                  "type": "object"
                                },
                                "f_opts": {
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "f_port": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "frm_payload": {
                              "format": "byte",
                              "type": "string"
                            },
                            "full_f_cnt": {
                              "description": "Full 32-bit FCnt value. Used internally by Network Server.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "mic": {
                          "format": "byte",
                          "type": "string"
                        },
                        "rejoin_request_payload": {
                          "properties": {
                            "dev_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "join_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "net_id": {
                              "example": "000013",
                              "format": "string",
                              "type": "string"
                            },
                            "rejoin_cnt": {
                              "description": "Contains RJCount0 or RJCount1 depending on rejoin_type.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "rejoin_type": {
                              "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.",
                              "enum": [
                                "CONTEXT",
                                "SESSION",
                                "KEYS"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "title": "Message represents a LoRaWAN message",
                      "type": "object"
                    },
                    "received_at": {
                      "format": "date-time",
                      "type": "string"
                    },
                    "rx_metadata": {
                      "items": {
                        "properties": {
                          "channel_rssi": {
                            "format": "float",
                            "type": "number"
                          },
                          "downlink_path_constraint": {
                            "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.",
                            "enum": [
                              "DOWNLINK_PATH_CONSTRAINT_NONE",
                              "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
                              "DOWNLINK_PATH_CONSTRAINT_NEVER"
                            ],
                            "type": "string"
                          },
                          "gateway_ids": {
                            "properties": {
                              "eui": {
                                "description": "Secondary identifier, which can only be used in specific requests.",
                                "example": "70B3D57ED000ABCD",
                                "format": "string",
                                "type": "string"
                              },
                              "gateway_id": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "packet_broker": {
                            "type": "object"
                          },
                          "relay": {
                            "type": "object"
                          },
                          "snr": {
                            "format": "float",
                            "type": "number"
                          },
                          "uplink_token": {
                            "format": "byte",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "settings": {
                      "properties": {
                        "data_rate": {
                          "properties": {
                            "fsk": {
                              "properties": {
                                "bit_rate": {
                                  "description": "Bit rate (bps).",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "lora": {
                              "properties": {
                                "bandwidth": {
                                  "description": "Bandwidth (Hz).",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "coding_rate": {
                                  "type": "string"
                                },
                                "spreading_factor": {
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "lrfhss": {
                              "properties": {
                                "coding_rate": {
                                  "type": "string"
                                },
                                "modulation_type": {
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "operating_channel_width": {
                                  "description": "Operating Channel Width (Hz).",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "rejected_adr_data_rate_indexes": {
                "description": "ADR Data rate index values rejected by the device.\nReset each time `current_parameters.channels` change.\nElements are sorted in ascending order.",
                "items": {
                  "default": "DATA_RATE_0",
                  "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"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              "rejected_adr_tx_power_indexes": {
                "description": "ADR TX output power index values rejected by the device.\nElements are sorted in ascending order.",
                "items": {
                  "format": "int64",
                  "type": "integer"
                },
                "type": "array"
              },
              "rejected_data_rate_ranges": {
                "additionalProperties": {
                  "properties": {
                    "ranges": {
                      "items": {
                        "properties": {
                          "max_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "min_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "description": "Data rate ranges rejected by the device per frequency.",
                "type": "object"
              },
              "rejected_frequencies": {
                "description": "Frequencies rejected by the device.",
                "items": {
                  "format": "uint64",
                  "type": "string"
                },
                "type": "array"
              },
              "rx_windows_available": {
                "description": "Whether or not Rx windows are expected to be open.\nSet to true every time an uplink is received.\nSet to false every time a successful downlink scheduling attempt is made.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "max_frequency": {
            "description": "Maximum frequency the device is capable of using (Hz). Stored in Network Server.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "format": "uint64",
            "type": "string"
          },
          "min_frequency": {
            "description": "Minimum frequency the device is capable of using (Hz). Stored in Network Server.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "format": "uint64",
            "type": "string"
          },
          "multicast": {
            "description": "Indicates whether this device represents a multicast group.",
            "type": "boolean"
          },
          "name": {
            "description": "Friendly name of the device. Stored in Entity Registry.",
            "type": "string"
          },
          "net_id": {
            "description": "Home NetID. Stored in Join Server.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "network_server_address": {
            "description": "The address of the Network Server where this device is supposed to be registered.\nStored in Entity Registry and Join Server.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
            "type": "string"
          },
          "network_server_kek_label": {
            "description": "The KEK label of the Network Server to use for wrapping network session keys.\nStored in Join Server.",
            "type": "string"
          },
          "pending_mac_state": {
            "description": "MACState represents the state of MAC layer of the device.\nMACState is reset on each join for OTAA or ResetInd for ABP devices.\nThis is used internally by the Network Server.",
            "properties": {
              "current_parameters": {
                "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
                "properties": {
                  "adr_ack_delay": {
                    "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_delay_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_DELAY_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_ack_limit": {
                    "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_limit_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_LIMIT_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "adr_nb_trans": {
                    "description": "ADR: number of retransmissions.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_tx_power_index": {
                    "description": "ADR: transmission power index to use.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "beacon_frequency": {
                    "description": "Frequency of the class B beacon (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "channels": {
                    "description": "Configured uplink channels and optionally Rx1 frequency.",
                    "items": {
                      "properties": {
                        "downlink_frequency": {
                          "description": "Downlink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "enable_uplink": {
                          "description": "Channel can be used by device for uplink.",
                          "type": "boolean"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_frequency": {
                          "description": "Uplink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "downlink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "max_duty_cycle": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "max_eirp": {
                    "description": "Maximum EIRP (dBm).",
                    "format": "float",
                    "type": "number"
                  },
                  "ping_slot_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "ping_slot_data_rate_index_value": {
                    "properties": {
                      "value": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "ping_slot_frequency": {
                    "description": "Frequency of the class B ping slot (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "rejoin_count_periodicity": {
                    "default": "REJOIN_COUNT_16",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rejoin_time_periodicity": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "relay": {
                    "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                    "properties": {
                      "served": {
                        "properties": {
                          "always": {
                            "type": "object"
                          },
                          "backoff": {
                            "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "dynamic": {
                            "properties": {
                              "smart_enable_level": {
                                "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                "enum": [
                                  "RELAY_SMART_ENABLE_LEVEL_8",
                                  "RELAY_SMART_ENABLE_LEVEL_16",
                                  "RELAY_SMART_ENABLE_LEVEL_32",
                                  "RELAY_SMART_ENABLE_LEVEL_64"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "end_device_controlled": {
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "serving_device_id": {
                            "description": "End device identifier of the serving end device.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving": {
                        "properties": {
                          "cad_periodicity": {
                            "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                            "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"
                            ],
                            "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                            "type": "string"
                          },
                          "default_channel_index": {
                            "description": "Index of the default wake on radio channel.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "limits": {
                            "properties": {
                              "join_requests": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "notifications": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "overall": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "reset_behavior": {
                                "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                "enum": [
                                  "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                  "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                  "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                  "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                                ],
                                "type": "string"
                              },
                              "uplink_messages": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "uplink_forwarding_rules": {
                            "description": "Configured uplink forwarding rules.",
                            "items": {
                              "properties": {
                                "device_id": {
                                  "description": "End device identifier of the served end device.",
                                  "type": "string"
                                },
                                "last_w_f_cnt": {
                                  "description": "Last wake on radio frame counter used by the served end device.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "limits": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "session_key_id": {
                                  "description": "Session key ID of the session keys used to derive the root relay session key.",
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "rx1_data_rate_offset": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx1_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_frequency": {
                    "description": "Frequency for Rx2 (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "uplink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "desired_parameters": {
                "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
                "properties": {
                  "adr_ack_delay": {
                    "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_delay_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_DELAY_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_ack_limit": {
                    "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_limit_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_LIMIT_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "adr_nb_trans": {
                    "description": "ADR: number of retransmissions.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_tx_power_index": {
                    "description": "ADR: transmission power index to use.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "beacon_frequency": {
                    "description": "Frequency of the class B beacon (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "channels": {
                    "description": "Configured uplink channels and optionally Rx1 frequency.",
                    "items": {
                      "properties": {
                        "downlink_frequency": {
                          "description": "Downlink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "enable_uplink": {
                          "description": "Channel can be used by device for uplink.",
                          "type": "boolean"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_frequency": {
                          "description": "Uplink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "downlink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "max_duty_cycle": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "max_eirp": {
                    "description": "Maximum EIRP (dBm).",
                    "format": "float",
                    "type": "number"
                  },
                  "ping_slot_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "ping_slot_data_rate_index_value": {
                    "properties": {
                      "value": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "ping_slot_frequency": {
                    "description": "Frequency of the class B ping slot (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "rejoin_count_periodicity": {
                    "default": "REJOIN_COUNT_16",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rejoin_time_periodicity": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "relay": {
                    "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                    "properties": {
                      "served": {
                        "properties": {
                          "always": {
                            "type": "object"
                          },
                          "backoff": {
                            "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "dynamic": {
                            "properties": {
                              "smart_enable_level": {
                                "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                "enum": [
                                  "RELAY_SMART_ENABLE_LEVEL_8",
                                  "RELAY_SMART_ENABLE_LEVEL_16",
                                  "RELAY_SMART_ENABLE_LEVEL_32",
                                  "RELAY_SMART_ENABLE_LEVEL_64"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "end_device_controlled": {
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "serving_device_id": {
                            "description": "End device identifier of the serving end device.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving": {
                        "properties": {
                          "cad_periodicity": {
                            "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                            "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"
                            ],
                            "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                            "type": "string"
                          },
                          "default_channel_index": {
                            "description": "Index of the default wake on radio channel.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "limits": {
                            "properties": {
                              "join_requests": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "notifications": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "overall": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "reset_behavior": {
                                "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                "enum": [
                                  "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                  "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                  "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                  "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                                ],
                                "type": "string"
                              },
                              "uplink_messages": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "uplink_forwarding_rules": {
                            "description": "Configured uplink forwarding rules.",
                            "items": {
                              "properties": {
                                "device_id": {
                                  "description": "End device identifier of the served end device.",
                                  "type": "string"
                                },
                                "last_w_f_cnt": {
                                  "description": "Last wake on radio frame counter used by the served end device.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "limits": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "session_key_id": {
                                  "description": "Session key ID of the session keys used to derive the root relay session key.",
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "rx1_data_rate_offset": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx1_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_frequency": {
                    "description": "Frequency for Rx2 (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "uplink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "device_class": {
                "default": "CLASS_A",
                "enum": [
                  "CLASS_A",
                  "CLASS_B",
                  "CLASS_C"
                ],
                "type": "string"
              },
              "last_adr_change_f_cnt_up": {
                "description": "Frame counter of uplink, which confirmed the last ADR parameter change.",
                "format": "int64",
                "type": "integer"
              },
              "last_confirmed_downlink_at": {
                "description": "Time when the last confirmed downlink message or MAC command was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "last_dev_status_f_cnt_up": {
                "description": "Frame counter value of last uplink containing DevStatusAns.",
                "format": "int64",
                "type": "integer"
              },
              "last_downlink_at": {
                "description": "Time when the last downlink message was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "last_network_initiated_downlink_at": {
                "description": "Time when the last network-initiated downlink message was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "lorawan_version": {
                "default": "MAC_UNKNOWN",
                "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"
                ],
                "type": "string"
              },
              "pending_application_downlink": {
                "properties": {
                  "attributes": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "Attributes for devices, set by the Application Server while handling the message.",
                    "type": "object"
                  },
                  "class_b_c": {
                    "properties": {
                      "absolute_time": {
                        "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                        "format": "date-time",
                        "type": "string"
                      },
                      "gateways": {
                        "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                        "items": {
                          "properties": {
                            "antenna_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "gateway_ids": {
                              "properties": {
                                "eui": {
                                  "description": "Secondary identifier, which can only be used in specific requests.",
                                  "example": "70B3D57ED000ABCD",
                                  "format": "string",
                                  "type": "string"
                                },
                                "gateway_id": {
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "group_index": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  },
                  "confirmed": {
                    "type": "boolean"
                  },
                  "confirmed_retry": {
                    "properties": {
                      "attempt": {
                        "description": "The number of attempted confirmed downlink acknowledgements.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_attempts": {
                        "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "correlation_ids": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "decoded_payload": {
                    "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                    "type": "object"
                  },
                  "decoded_payload_warnings": {
                    "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "f_cnt": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "f_port": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "frm_payload": {
                    "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                    "format": "byte",
                    "type": "string"
                  },
                  "locations": {
                    "additionalProperties": {
                      "properties": {
                        "accuracy": {
                          "description": "The accuracy of the location (meters).",
                          "format": "int32",
                          "type": "integer"
                        },
                        "altitude": {
                          "description": "The altitude (meters), where 0 is the mean sea level.",
                          "format": "int32",
                          "type": "integer"
                        },
                        "latitude": {
                          "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                          "format": "double",
                          "type": "number"
                        },
                        "longitude": {
                          "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                          "format": "double",
                          "type": "number"
                        },
                        "source": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "description": "End device location metadata, set by the Application Server while handling the message.",
                    "type": "object"
                  },
                  "network_ids": {
                    "description": "Identifies a Network Server.",
                    "properties": {
                      "cluster_address": {
                        "description": "Cluster address of the Network Server.",
                        "type": "string"
                      },
                      "cluster_id": {
                        "description": "Cluster identifier of the Network Server.",
                        "type": "string"
                      },
                      "net_id": {
                        "description": "LoRa Alliance NetID.",
                        "example": "000013",
                        "format": "string",
                        "type": "string"
                      },
                      "ns_id": {
                        "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                        "example": "70B3D57ED000ABCD",
                        "format": "string",
                        "type": "string"
                      },
                      "tenant_address": {
                        "description": "Optional tenant address for multi-tenant deployments.",
                        "type": "string"
                      },
                      "tenant_id": {
                        "description": "Optional tenant identifier for multi-tenant deployments.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "priority": {
                    "default": "LOWEST",
                    "enum": [
                      "LOWEST",
                      "LOW",
                      "BELOW_NORMAL",
                      "NORMAL",
                      "ABOVE_NORMAL",
                      "HIGH",
                      "HIGHEST"
                    ],
                    "type": "string"
                  },
                  "session_key_id": {
                    "description": "Join Server issued identifier for the session keys used by this downlink.",
                    "format": "byte",
                    "type": "string"
                  },
                  "version_ids": {
                    "description": "Identifies an end device model with version information.",
                    "properties": {
                      "band_id": {
                        "type": "string"
                      },
                      "brand_id": {
                        "type": "string"
                      },
                      "firmware_version": {
                        "type": "string"
                      },
                      "hardware_version": {
                        "type": "string"
                      },
                      "model_id": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "pending_join_request": {
                "properties": {
                  "cf_list": {
                    "properties": {
                      "ch_masks": {
                        "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                        "items": {
                          "type": "boolean"
                        },
                        "type": "array"
                      },
                      "freq": {
                        "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                        "items": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "type": "array"
                      },
                      "type": {
                        "default": "FREQUENCIES",
                        "enum": [
                          "FREQUENCIES",
                          "CHANNEL_MASKS"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "downlink_settings": {
                    "properties": {
                      "opt_neg": {
                        "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                        "type": "boolean"
                      },
                      "rx1_dr_offset": {
                        "default": "DATA_RATE_OFFSET_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "rx2_dr": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "rx_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "pending_relay_downlink": {
                "properties": {
                  "raw_payload": {
                    "format": "byte",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "pending_requests": {
                "description": "Pending MAC requests(i.e. sent requests, for which no response has been received yet).\nRegenerated on each downlink.",
                "items": {
                  "properties": {
                    "adr_param_setup_req": {
                      "properties": {
                        "adr_ack_delay_exponent": {
                          "default": "ADR_ACK_DELAY_1",
                          "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"
                          ],
                          "type": "string"
                        },
                        "adr_ack_limit_exponent": {
                          "default": "ADR_ACK_LIMIT_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_ans": {
                      "properties": {
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_req": {
                      "properties": {
                        "frequency": {
                          "description": "Frequency of the Class B beacons (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_timing_ans": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "delay": {
                          "description": "(uint16) See LoRaWAN specification.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "cid": {
                      "default": "CID_RFU_0",
                      "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"
                      ],
                      "title": "- CID_BEACON_TIMING: Deprecated",
                      "type": "string"
                    },
                    "dev_status_ans": {
                      "properties": {
                        "battery": {
                          "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "SNR of the last downlink (dB; [-32, +31]).",
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_conf": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_ind": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_time_ans": {
                      "properties": {
                        "time": {
                          "format": "date-time",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_ans": {
                      "properties": {
                        "channel_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Downlink channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "duty_cycle_req": {
                      "properties": {
                        "max_duty_cycle": {
                          "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%.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "force_rejoin_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_retries": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "period_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rejoin_type": {
                          "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.",
                          "enum": [
                            "CONTEXT",
                            "SESSION",
                            "KEYS"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_ans": {
                      "properties": {
                        "channel_mask_ack": {
                          "type": "boolean"
                        },
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "tx_power_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_req": {
                      "properties": {
                        "channel_mask": {
                          "items": {
                            "type": "boolean"
                          },
                          "type": "array"
                        },
                        "channel_mask_control": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "nb_trans": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "tx_power_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "link_check_ans": {
                      "properties": {
                        "gateway_count": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_ans": {
                      "properties": {
                        "data_rate_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_ans": {
                      "properties": {
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "frequency": {
                          "description": "Ping slot channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_info_req": {
                      "properties": {
                        "period": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "raw_payload": {
                      "format": "byte",
                      "type": "string"
                    },
                    "rejoin_param_setup_ans": {
                      "properties": {
                        "max_time_exponent_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rejoin_param_setup_req": {
                      "properties": {
                        "max_count_exponent": {
                          "default": "REJOIN_COUNT_16",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_time_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_ans": {
                      "properties": {
                        "cad_periodicity_ack": {
                          "type": "boolean"
                        },
                        "default_channel_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_ack_offset_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "cad_periodicity": {
                              "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                              "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"
                              ],
                              "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                              "type": "string"
                            },
                            "default_channel_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_ans": {
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_req": {
                      "properties": {
                        "global_uplink_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "notify_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "overall_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "reset_limit_counter": {
                          "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                          "enum": [
                            "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                            "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                            "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_ans": {
                      "properties": {
                        "rule_index_ack": {
                          "type": "boolean"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_req": {
                      "properties": {
                        "action": {
                          "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                          "enum": [
                            "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                            "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                          ],
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_ans": {
                      "properties": {
                        "backoff_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "always": {
                              "type": "object"
                            },
                            "backoff": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "dynamic": {
                              "properties": {
                                "smart_enable_level": {
                                  "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                  "enum": [
                                    "RELAY_SMART_ENABLE_LEVEL_8",
                                    "RELAY_SMART_ENABLE_LEVEL_16",
                                    "RELAY_SMART_ENABLE_LEVEL_32",
                                    "RELAY_SMART_ENABLE_LEVEL_64"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "end_device_controlled": {
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "serving_device_id": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_notify_new_end_device_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "rssi": {
                          "format": "int32",
                          "type": "integer"
                        },
                        "snr": {
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_update_uplink_list_ans": {
                      "type": "object"
                    },
                    "relay_update_uplink_list_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "device_id": {
                          "type": "string"
                        },
                        "forward_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "root_wor_s_key": {
                          "example": "0123456789ABCDEF0123456789ABCDEF",
                          "format": "string",
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "session_key_id": {
                          "format": "byte",
                          "type": "string"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "reset_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "reset_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_ans": {
                      "properties": {
                        "rx1_data_rate_offset_ack": {
                          "type": "boolean"
                        },
                        "rx2_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "rx2_frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_req": {
                      "properties": {
                        "rx1_data_rate_offset": {
                          "default": "DATA_RATE_OFFSET_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_frequency": {
                          "description": "Rx2 frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_timing_setup_req": {
                      "properties": {
                        "delay": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "tx_param_setup_req": {
                      "properties": {
                        "downlink_dwell_time": {
                          "type": "boolean"
                        },
                        "max_eirp_index": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_dwell_time": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "ping_slot_periodicity": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "queued_join_accept": {
                "properties": {
                  "correlation_ids": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "dev_addr": {
                    "example": "2600ABCD",
                    "format": "string",
                    "type": "string"
                  },
                  "keys": {
                    "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
                    "properties": {
                      "app_s_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "f_nwk_s_int_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "nwk_s_enc_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "s_nwk_s_int_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "session_key_id": {
                        "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                        "format": "byte",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "net_id": {
                    "example": "000013",
                    "format": "string",
                    "type": "string"
                  },
                  "payload": {
                    "description": "Payload of the join-accept received from Join Server.",
                    "format": "byte",
                    "type": "string"
                  },
                  "request": {
                    "properties": {
                      "cf_list": {
                        "properties": {
                          "ch_masks": {
                            "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                            "items": {
                              "type": "boolean"
                            },
                            "type": "array"
                          },
                          "freq": {
                            "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                            "items": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "type": "array"
                          },
                          "type": {
                            "default": "FREQUENCIES",
                            "enum": [
                              "FREQUENCIES",
                              "CHANNEL_MASKS"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "downlink_settings": {
                        "properties": {
                          "opt_neg": {
                            "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                            "type": "boolean"
                          },
                          "rx1_dr_offset": {
                            "default": "DATA_RATE_OFFSET_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "rx2_dr": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rx_delay": {
                        "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.",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "queued_responses": {
                "description": "Queued MAC responses.\nRegenerated on each uplink.",
                "items": {
                  "properties": {
                    "adr_param_setup_req": {
                      "properties": {
                        "adr_ack_delay_exponent": {
                          "default": "ADR_ACK_DELAY_1",
                          "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"
                          ],
                          "type": "string"
                        },
                        "adr_ack_limit_exponent": {
                          "default": "ADR_ACK_LIMIT_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_ans": {
                      "properties": {
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_req": {
                      "properties": {
                        "frequency": {
                          "description": "Frequency of the Class B beacons (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_timing_ans": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "delay": {
                          "description": "(uint16) See LoRaWAN specification.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "cid": {
                      "default": "CID_RFU_0",
                      "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"
                      ],
                      "title": "- CID_BEACON_TIMING: Deprecated",
                      "type": "string"
                    },
                    "dev_status_ans": {
                      "properties": {
                        "battery": {
                          "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "SNR of the last downlink (dB; [-32, +31]).",
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_conf": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_ind": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_time_ans": {
                      "properties": {
                        "time": {
                          "format": "date-time",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_ans": {
                      "properties": {
                        "channel_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Downlink channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "duty_cycle_req": {
                      "properties": {
                        "max_duty_cycle": {
                          "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%.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "force_rejoin_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_retries": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "period_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rejoin_type": {
                          "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.",
                          "enum": [
                            "CONTEXT",
                            "SESSION",
                            "KEYS"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_ans": {
                      "properties": {
                        "channel_mask_ack": {
                          "type": "boolean"
                        },
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "tx_power_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_req": {
                      "properties": {
                        "channel_mask": {
                          "items": {
                            "type": "boolean"
                          },
                          "type": "array"
                        },
                        "channel_mask_control": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "nb_trans": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "tx_power_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "link_check_ans": {
                      "properties": {
                        "gateway_count": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_ans": {
                      "properties": {
                        "data_rate_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_ans": {
                      "properties": {
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "frequency": {
                          "description": "Ping slot channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_info_req": {
                      "properties": {
                        "period": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "raw_payload": {
                      "format": "byte",
                      "type": "string"
                    },
                    "rejoin_param_setup_ans": {
                      "properties": {
                        "max_time_exponent_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rejoin_param_setup_req": {
                      "properties": {
                        "max_count_exponent": {
                          "default": "REJOIN_COUNT_16",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_time_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_ans": {
                      "properties": {
                        "cad_periodicity_ack": {
                          "type": "boolean"
                        },
                        "default_channel_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_ack_offset_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "cad_periodicity": {
                              "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                              "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"
                              ],
                              "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                              "type": "string"
                            },
                            "default_channel_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_ans": {
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_req": {
                      "properties": {
                        "global_uplink_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "notify_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "overall_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "reset_limit_counter": {
                          "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                          "enum": [
                            "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                            "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                            "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_ans": {
                      "properties": {
                        "rule_index_ack": {
                          "type": "boolean"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_req": {
                      "properties": {
                        "action": {
                          "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                          "enum": [
                            "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                            "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                          ],
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_ans": {
                      "properties": {
                        "backoff_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "always": {
                              "type": "object"
                            },
                            "backoff": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "dynamic": {
                              "properties": {
                                "smart_enable_level": {
                                  "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                  "enum": [
                                    "RELAY_SMART_ENABLE_LEVEL_8",
                                    "RELAY_SMART_ENABLE_LEVEL_16",
                                    "RELAY_SMART_ENABLE_LEVEL_32",
                                    "RELAY_SMART_ENABLE_LEVEL_64"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "end_device_controlled": {
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "serving_device_id": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_notify_new_end_device_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "rssi": {
                          "format": "int32",
                          "type": "integer"
                        },
                        "snr": {
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_update_uplink_list_ans": {
                      "type": "object"
                    },
                    "relay_update_uplink_list_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "device_id": {
                          "type": "string"
                        },
                        "forward_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "root_wor_s_key": {
                          "example": "0123456789ABCDEF0123456789ABCDEF",
                          "format": "string",
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "session_key_id": {
                          "format": "byte",
                          "type": "string"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "reset_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "reset_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_ans": {
                      "properties": {
                        "rx1_data_rate_offset_ack": {
                          "type": "boolean"
                        },
                        "rx2_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "rx2_frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_req": {
                      "properties": {
                        "rx1_data_rate_offset": {
                          "default": "DATA_RATE_OFFSET_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_frequency": {
                          "description": "Rx2 frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_timing_setup_req": {
                      "properties": {
                        "delay": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "tx_param_setup_req": {
                      "properties": {
                        "downlink_dwell_time": {
                          "type": "boolean"
                        },
                        "max_eirp_index": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_dwell_time": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "recent_downlinks": {
                "description": "Recent data downlink messages sorted by time.\nThe number of messages stored may depend on configuration.",
                "items": {
                  "description": "A minimal DownlinkMessage definition which is binary compatible with the top level DownlinkMessage message.\nUsed for type safe recent downlink storage.",
                  "properties": {
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "payload": {
                      "properties": {
                        "m_hdr": {
                          "properties": {
                            "m_type": {
                              "default": "JOIN_REQUEST",
                              "enum": [
                                "JOIN_REQUEST",
                                "JOIN_ACCEPT",
                                "UNCONFIRMED_UP",
                                "UNCONFIRMED_DOWN",
                                "CONFIRMED_UP",
                                "CONFIRMED_DOWN",
                                "REJOIN_REQUEST",
                                "PROPRIETARY"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "mac_payload": {
                          "properties": {
                            "f_port": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "full_f_cnt": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "recent_mac_command_identifiers": {
                "description": "MAC command identifiers sent by the end device in the last received uplink.\nThe Network Server may choose to store only certain types of MAC\ncommand identifiers in the underlying implementation.",
                "items": {
                  "default": "CID_RFU_0",
                  "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"
                  ],
                  "title": "- CID_BEACON_TIMING: Deprecated",
                  "type": "string"
                },
                "type": "array"
              },
              "recent_uplinks": {
                "description": "Recent data uplink messages sorted by time.\nThe number of messages stored may depend on configuration.",
                "items": {
                  "description": "A minimal UplinkMessage definition which is binary compatible with the top level UplinkMessage message.\nUsed for type safe recent uplink storage.",
                  "properties": {
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "device_channel_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "payload": {
                      "properties": {
                        "join_accept_payload": {
                          "properties": {
                            "cf_list": {
                              "properties": {
                                "ch_masks": {
                                  "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                                  "items": {
                                    "type": "boolean"
                                  },
                                  "type": "array"
                                },
                                "freq": {
                                  "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                                  "items": {
                                    "format": "int64",
                                    "type": "integer"
                                  },
                                  "type": "array"
                                },
                                "type": {
                                  "default": "FREQUENCIES",
                                  "enum": [
                                    "FREQUENCIES",
                                    "CHANNEL_MASKS"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "dev_addr": {
                              "example": "2600ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "dl_settings": {
                              "properties": {
                                "opt_neg": {
                                  "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                                  "type": "boolean"
                                },
                                "rx1_dr_offset": {
                                  "default": "DATA_RATE_OFFSET_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "rx2_dr": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "encrypted": {
                              "format": "byte",
                              "type": "string"
                            },
                            "join_nonce": {
                              "example": "ABCDEF",
                              "format": "string",
                              "type": "string"
                            },
                            "net_id": {
                              "example": "000013",
                              "format": "string",
                              "type": "string"
                            },
                            "rx_delay": {
                              "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.",
                              "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"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_payload": {
                          "properties": {
                            "dev_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "dev_nonce": {
                              "example": "ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "join_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "m_hdr": {
                          "properties": {
                            "m_type": {
                              "default": "JOIN_REQUEST",
                              "enum": [
                                "JOIN_REQUEST",
                                "JOIN_ACCEPT",
                                "UNCONFIRMED_UP",
                                "UNCONFIRMED_DOWN",
                                "CONFIRMED_UP",
                                "CONFIRMED_DOWN",
                                "REJOIN_REQUEST",
                                "PROPRIETARY"
                              ],
                              "type": "string"
                            },
                            "major": {
                              "default": "LORAWAN_R1",
                              "enum": [
                                "LORAWAN_R1"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "mac_payload": {
                          "properties": {
                            "decoded_payload": {
                              "type": "object"
                            },
                            "f_hdr": {
                              "properties": {
                                "dev_addr": {
                                  "example": "2600ABCD",
                                  "format": "string",
                                  "type": "string"
                                },
                                "f_cnt": {
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "f_ctrl": {
                                  "properties": {
                                    "ack": {
                                      "type": "boolean"
                                    },
                                    "adr": {
                                      "type": "boolean"
                                    },
                                    "adr_ack_req": {
                                      "description": "Only on uplink.",
                                      "type": "boolean"
                                    },
                                    "class_b": {
                                      "description": "Only on uplink.",
                                      "type": "boolean"
                                    },
                                    "f_pending": {
                                      "description": "Only on downlink.",
                                      "type": "boolean"
                                    }
                                  },
                                  "type": "object"
                                },
                                "f_opts": {
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "f_port": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "frm_payload": {
                              "format": "byte",
                              "type": "string"
                            },
                            "full_f_cnt": {
                              "description": "Full 32-bit FCnt value. Used internally by Network Server.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "mic": {
                          "format": "byte",
                          "type": "string"
                        },
                        "rejoin_request_payload": {
                          "properties": {
                            "dev_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "join_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "net_id": {
                              "example": "000013",
                              "format": "string",
                              "type": "string"
                            },
                            "rejoin_cnt": {
                              "description": "Contains RJCount0 or RJCount1 depending on rejoin_type.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "rejoin_type": {
                              "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.",
                              "enum": [
                                "CONTEXT",
                                "SESSION",
                                "KEYS"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "title": "Message represents a LoRaWAN message",
                      "type": "object"
                    },
                    "received_at": {
                      "format": "date-time",
                      "type": "string"
                    },
                    "rx_metadata": {
                      "items": {
                        "properties": {
                          "channel_rssi": {
                            "format": "float",
                            "type": "number"
                          },
                          "downlink_path_constraint": {
                            "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.",
                            "enum": [
                              "DOWNLINK_PATH_CONSTRAINT_NONE",
                              "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
                              "DOWNLINK_PATH_CONSTRAINT_NEVER"
                            ],
                            "type": "string"
                          },
                          "gateway_ids": {
                            "properties": {
                              "eui": {
                                "description": "Secondary identifier, which can only be used in specific requests.",
                                "example": "70B3D57ED000ABCD",
                                "format": "string",
                                "type": "string"
                              },
                              "gateway_id": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "packet_broker": {
                            "type": "object"
                          },
                          "relay": {
                            "type": "object"
                          },
                          "snr": {
                            "format": "float",
                            "type": "number"
                          },
                          "uplink_token": {
                            "format": "byte",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "settings": {
                      "properties": {
                        "data_rate": {
                          "properties": {
                            "fsk": {
                              "properties": {
                                "bit_rate": {
                                  "description": "Bit rate (bps).",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "lora": {
                              "properties": {
                                "bandwidth": {
                                  "description": "Bandwidth (Hz).",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "coding_rate": {
                                  "type": "string"
                                },
                                "spreading_factor": {
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "lrfhss": {
                              "properties": {
                                "coding_rate": {
                                  "type": "string"
                                },
                                "modulation_type": {
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "operating_channel_width": {
                                  "description": "Operating Channel Width (Hz).",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "rejected_adr_data_rate_indexes": {
                "description": "ADR Data rate index values rejected by the device.\nReset each time `current_parameters.channels` change.\nElements are sorted in ascending order.",
                "items": {
                  "default": "DATA_RATE_0",
                  "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"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              "rejected_adr_tx_power_indexes": {
                "description": "ADR TX output power index values rejected by the device.\nElements are sorted in ascending order.",
                "items": {
                  "format": "int64",
                  "type": "integer"
                },
                "type": "array"
              },
              "rejected_data_rate_ranges": {
                "additionalProperties": {
                  "properties": {
                    "ranges": {
                      "items": {
                        "properties": {
                          "max_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "min_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "description": "Data rate ranges rejected by the device per frequency.",
                "type": "object"
              },
              "rejected_frequencies": {
                "description": "Frequencies rejected by the device.",
                "items": {
                  "format": "uint64",
                  "type": "string"
                },
                "type": "array"
              },
              "rx_windows_available": {
                "description": "Whether or not Rx windows are expected to be open.\nSet to true every time an uplink is received.\nSet to false every time a successful downlink scheduling attempt is made.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "pending_session": {
            "properties": {
              "dev_addr": {
                "description": "Device Address, issued by the Network Server or chosen by device manufacturer in case of testing range (beginning with 00-03).\nKnown by Network Server, Application Server and Join Server. Owned by Network Server.",
                "example": "2600ABCD",
                "format": "string",
                "type": "string"
              },
              "keys": {
                "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
                "properties": {
                  "app_s_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "f_nwk_s_int_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "nwk_s_enc_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "s_nwk_s_int_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "session_key_id": {
                    "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                    "format": "byte",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "last_a_f_cnt_down": {
                "description": "Last application downlink frame counter value used. Application Server only.",
                "format": "int64",
                "type": "integer"
              },
              "last_conf_f_cnt_down": {
                "description": "Frame counter of the last confirmed downlink message sent. Network Server only.",
                "format": "int64",
                "type": "integer"
              },
              "last_f_cnt_up": {
                "description": "Last uplink frame counter value used. Network Server only. Application Server assumes the Network Server checked it.",
                "format": "int64",
                "type": "integer"
              },
              "last_n_f_cnt_down": {
                "description": "Last network downlink frame counter value used. Network Server only.",
                "format": "int64",
                "type": "integer"
              },
              "queued_application_downlinks": {
                "description": "Queued Application downlink messages. Stored in Application Server and Network Server.",
                "items": {
                  "properties": {
                    "attributes": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Attributes for devices, set by the Application Server while handling the message.",
                      "type": "object"
                    },
                    "class_b_c": {
                      "properties": {
                        "absolute_time": {
                          "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                          "format": "date-time",
                          "type": "string"
                        },
                        "gateways": {
                          "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                          "items": {
                            "properties": {
                              "antenna_index": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "gateway_ids": {
                                "properties": {
                                  "eui": {
                                    "description": "Secondary identifier, which can only be used in specific requests.",
                                    "example": "70B3D57ED000ABCD",
                                    "format": "string",
                                    "type": "string"
                                  },
                                  "gateway_id": {
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "group_index": {
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "confirmed": {
                      "type": "boolean"
                    },
                    "confirmed_retry": {
                      "properties": {
                        "attempt": {
                          "description": "The number of attempted confirmed downlink acknowledgements.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "max_attempts": {
                          "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "decoded_payload": {
                      "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                      "type": "object"
                    },
                    "decoded_payload_warnings": {
                      "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "f_cnt": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "f_port": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "frm_payload": {
                      "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                      "format": "byte",
                      "type": "string"
                    },
                    "locations": {
                      "additionalProperties": {
                        "properties": {
                          "accuracy": {
                            "description": "The accuracy of the location (meters).",
                            "format": "int32",
                            "type": "integer"
                          },
                          "altitude": {
                            "description": "The altitude (meters), where 0 is the mean sea level.",
                            "format": "int32",
                            "type": "integer"
                          },
                          "latitude": {
                            "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                            "format": "double",
                            "type": "number"
                          },
                          "longitude": {
                            "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                            "format": "double",
                            "type": "number"
                          },
                          "source": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "description": "End device location metadata, set by the Application Server while handling the message.",
                      "type": "object"
                    },
                    "network_ids": {
                      "description": "Identifies a Network Server.",
                      "properties": {
                        "cluster_address": {
                          "description": "Cluster address of the Network Server.",
                          "type": "string"
                        },
                        "cluster_id": {
                          "description": "Cluster identifier of the Network Server.",
                          "type": "string"
                        },
                        "net_id": {
                          "description": "LoRa Alliance NetID.",
                          "example": "000013",
                          "format": "string",
                          "type": "string"
                        },
                        "ns_id": {
                          "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "tenant_address": {
                          "description": "Optional tenant address for multi-tenant deployments.",
                          "type": "string"
                        },
                        "tenant_id": {
                          "description": "Optional tenant identifier for multi-tenant deployments.",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "priority": {
                      "default": "LOWEST",
                      "enum": [
                        "LOWEST",
                        "LOW",
                        "BELOW_NORMAL",
                        "NORMAL",
                        "ABOVE_NORMAL",
                        "HIGH",
                        "HIGHEST"
                      ],
                      "type": "string"
                    },
                    "session_key_id": {
                      "description": "Join Server issued identifier for the session keys used by this downlink.",
                      "format": "byte",
                      "type": "string"
                    },
                    "version_ids": {
                      "description": "Identifies an end device model with version information.",
                      "properties": {
                        "band_id": {
                          "type": "string"
                        },
                        "brand_id": {
                          "type": "string"
                        },
                        "firmware_version": {
                          "type": "string"
                        },
                        "hardware_version": {
                          "type": "string"
                        },
                        "model_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "started_at": {
                "description": "Time when the session started. Network Server only.",
                "format": "date-time",
                "type": "string"
              }
            },
            "type": "object"
          },
          "picture": {
            "properties": {
              "embedded": {
                "properties": {
                  "data": {
                    "description": "Picture data. A data URI can be constructed as follows:\n`data:\u003cmime_type\u003e;base64,\u003cdata\u003e`.",
                    "format": "byte",
                    "type": "string"
                  },
                  "mime_type": {
                    "description": "MIME type of the picture.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "sizes": {
                "additionalProperties": {
                  "type": "string"
                },
                "description": "URLs of the picture for different sizes, if available on a CDN.",
                "type": "object"
              }
            },
            "type": "object"
          },
          "power_state": {
            "default": "POWER_UNKNOWN",
            "description": "Power state of the device.",
            "enum": [
              "POWER_UNKNOWN",
              "POWER_BATTERY",
              "POWER_EXTERNAL"
            ],
            "type": "string"
          },
          "provisioner_id": {
            "description": "ID of the provisioner. Stored in Join Server.",
            "type": "string"
          },
          "provisioning_data": {
            "description": "Vendor-specific provisioning data. Stored in Join Server.",
            "type": "object"
          },
          "queued_application_downlinks": {
            "description": "Queued Application downlink messages. Stored in Application Server,\nwhich sets them on the Network Server.\nThis field is deprecated and is always set equal to session.queued_application_downlinks.",
            "items": {
              "properties": {
                "attributes": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Attributes for devices, set by the Application Server while handling the message.",
                  "type": "object"
                },
                "class_b_c": {
                  "properties": {
                    "absolute_time": {
                      "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                      "format": "date-time",
                      "type": "string"
                    },
                    "gateways": {
                      "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                      "items": {
                        "properties": {
                          "antenna_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "gateway_ids": {
                            "properties": {
                              "eui": {
                                "description": "Secondary identifier, which can only be used in specific requests.",
                                "example": "70B3D57ED000ABCD",
                                "format": "string",
                                "type": "string"
                              },
                              "gateway_id": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "group_index": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "confirmed": {
                  "type": "boolean"
                },
                "confirmed_retry": {
                  "properties": {
                    "attempt": {
                      "description": "The number of attempted confirmed downlink acknowledgements.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "max_attempts": {
                      "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "correlation_ids": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "decoded_payload": {
                  "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                  "type": "object"
                },
                "decoded_payload_warnings": {
                  "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "f_cnt": {
                  "format": "int64",
                  "type": "integer"
                },
                "f_port": {
                  "format": "int64",
                  "type": "integer"
                },
                "frm_payload": {
                  "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                  "format": "byte",
                  "type": "string"
                },
                "locations": {
                  "additionalProperties": {
                    "properties": {
                      "accuracy": {
                        "description": "The accuracy of the location (meters).",
                        "format": "int32",
                        "type": "integer"
                      },
                      "altitude": {
                        "description": "The altitude (meters), where 0 is the mean sea level.",
                        "format": "int32",
                        "type": "integer"
                      },
                      "latitude": {
                        "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                        "format": "double",
                        "type": "number"
                      },
                      "longitude": {
                        "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                        "format": "double",
                        "type": "number"
                      },
                      "source": {
                        "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.",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "description": "End device location metadata, set by the Application Server while handling the message.",
                  "type": "object"
                },
                "network_ids": {
                  "description": "Identifies a Network Server.",
                  "properties": {
                    "cluster_address": {
                      "description": "Cluster address of the Network Server.",
                      "type": "string"
                    },
                    "cluster_id": {
                      "description": "Cluster identifier of the Network Server.",
                      "type": "string"
                    },
                    "net_id": {
                      "description": "LoRa Alliance NetID.",
                      "example": "000013",
                      "format": "string",
                      "type": "string"
                    },
                    "ns_id": {
                      "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "tenant_address": {
                      "description": "Optional tenant address for multi-tenant deployments.",
                      "type": "string"
                    },
                    "tenant_id": {
                      "description": "Optional tenant identifier for multi-tenant deployments.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "priority": {
                  "default": "LOWEST",
                  "enum": [
                    "LOWEST",
                    "LOW",
                    "BELOW_NORMAL",
                    "NORMAL",
                    "ABOVE_NORMAL",
                    "HIGH",
                    "HIGHEST"
                  ],
                  "type": "string"
                },
                "session_key_id": {
                  "description": "Join Server issued identifier for the session keys used by this downlink.",
                  "format": "byte",
                  "type": "string"
                },
                "version_ids": {
                  "description": "Identifies an end device model with version information.",
                  "properties": {
                    "band_id": {
                      "type": "string"
                    },
                    "brand_id": {
                      "type": "string"
                    },
                    "firmware_version": {
                      "type": "string"
                    },
                    "hardware_version": {
                      "type": "string"
                    },
                    "model_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "resets_join_nonces": {
            "description": "Whether the device resets the join and dev nonces (not LoRaWAN compliant). Stored in Join Server.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "type": "boolean"
          },
          "root_keys": {
            "description": "Root keys for a LoRaWAN device.\nThese are stored on the Join Server.",
            "properties": {
              "app_key": {
                "properties": {
                  "encrypted_key": {
                    "format": "byte",
                    "type": "string"
                  },
                  "kek_label": {
                    "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "The unencrypted AES key.",
                    "example": "0123456789ABCDEF0123456789ABCDEF",
                    "format": "string",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "nwk_key": {
                "properties": {
                  "encrypted_key": {
                    "format": "byte",
                    "type": "string"
                  },
                  "kek_label": {
                    "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "The unencrypted AES key.",
                    "example": "0123456789ABCDEF0123456789ABCDEF",
                    "format": "string",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "root_key_id": {
                "description": "Join Server issued identifier for the root keys.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "serial_number": {
            "type": "string"
          },
          "service_profile_id": {
            "description": "Default service profile. Stored in Entity Registry.",
            "type": "string"
          },
          "session": {
            "properties": {
              "dev_addr": {
                "description": "Device Address, issued by the Network Server or chosen by device manufacturer in case of testing range (beginning with 00-03).\nKnown by Network Server, Application Server and Join Server. Owned by Network Server.",
                "example": "2600ABCD",
                "format": "string",
                "type": "string"
              },
              "keys": {
                "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
                "properties": {
                  "app_s_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "f_nwk_s_int_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "nwk_s_enc_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "s_nwk_s_int_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "session_key_id": {
                    "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                    "format": "byte",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "last_a_f_cnt_down": {
                "description": "Last application downlink frame counter value used. Application Server only.",
                "format": "int64",
                "type": "integer"
              },
              "last_conf_f_cnt_down": {
                "description": "Frame counter of the last confirmed downlink message sent. Network Server only.",
                "format": "int64",
                "type": "integer"
              },
              "last_f_cnt_up": {
                "description": "Last uplink frame counter value used. Network Server only. Application Server assumes the Network Server checked it.",
                "format": "int64",
                "type": "integer"
              },
              "last_n_f_cnt_down": {
                "description": "Last network downlink frame counter value used. Network Server only.",
                "format": "int64",
                "type": "integer"
              },
              "queued_application_downlinks": {
                "description": "Queued Application downlink messages. Stored in Application Server and Network Server.",
                "items": {
                  "properties": {
                    "attributes": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Attributes for devices, set by the Application Server while handling the message.",
                      "type": "object"
                    },
                    "class_b_c": {
                      "properties": {
                        "absolute_time": {
                          "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                          "format": "date-time",
                          "type": "string"
                        },
                        "gateways": {
                          "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                          "items": {
                            "properties": {
                              "antenna_index": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "gateway_ids": {
                                "properties": {
                                  "eui": {
                                    "description": "Secondary identifier, which can only be used in specific requests.",
                                    "example": "70B3D57ED000ABCD",
                                    "format": "string",
                                    "type": "string"
                                  },
                                  "gateway_id": {
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "group_index": {
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "confirmed": {
                      "type": "boolean"
                    },
                    "confirmed_retry": {
                      "properties": {
                        "attempt": {
                          "description": "The number of attempted confirmed downlink acknowledgements.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "max_attempts": {
                          "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "decoded_payload": {
                      "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                      "type": "object"
                    },
                    "decoded_payload_warnings": {
                      "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "f_cnt": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "f_port": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "frm_payload": {
                      "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                      "format": "byte",
                      "type": "string"
                    },
                    "locations": {
                      "additionalProperties": {
                        "properties": {
                          "accuracy": {
                            "description": "The accuracy of the location (meters).",
                            "format": "int32",
                            "type": "integer"
                          },
                          "altitude": {
                            "description": "The altitude (meters), where 0 is the mean sea level.",
                            "format": "int32",
                            "type": "integer"
                          },
                          "latitude": {
                            "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                            "format": "double",
                            "type": "number"
                          },
                          "longitude": {
                            "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                            "format": "double",
                            "type": "number"
                          },
                          "source": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "description": "End device location metadata, set by the Application Server while handling the message.",
                      "type": "object"
                    },
                    "network_ids": {
                      "description": "Identifies a Network Server.",
                      "properties": {
                        "cluster_address": {
                          "description": "Cluster address of the Network Server.",
                          "type": "string"
                        },
                        "cluster_id": {
                          "description": "Cluster identifier of the Network Server.",
                          "type": "string"
                        },
                        "net_id": {
                          "description": "LoRa Alliance NetID.",
                          "example": "000013",
                          "format": "string",
                          "type": "string"
                        },
                        "ns_id": {
                          "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "tenant_address": {
                          "description": "Optional tenant address for multi-tenant deployments.",
                          "type": "string"
                        },
                        "tenant_id": {
                          "description": "Optional tenant identifier for multi-tenant deployments.",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "priority": {
                      "default": "LOWEST",
                      "enum": [
                        "LOWEST",
                        "LOW",
                        "BELOW_NORMAL",
                        "NORMAL",
                        "ABOVE_NORMAL",
                        "HIGH",
                        "HIGHEST"
                      ],
                      "type": "string"
                    },
                    "session_key_id": {
                      "description": "Join Server issued identifier for the session keys used by this downlink.",
                      "format": "byte",
                      "type": "string"
                    },
                    "version_ids": {
                      "description": "Identifies an end device model with version information.",
                      "properties": {
                        "band_id": {
                          "type": "string"
                        },
                        "brand_id": {
                          "type": "string"
                        },
                        "firmware_version": {
                          "type": "string"
                        },
                        "hardware_version": {
                          "type": "string"
                        },
                        "model_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "started_at": {
                "description": "Time when the session started. Network Server only.",
                "format": "date-time",
                "type": "string"
              }
            },
            "type": "object"
          },
          "skip_payload_crypto": {
            "description": "Skip decryption of uplink payloads and encryption of downlink payloads.\nThis field is deprecated, use skip_payload_crypto_override instead.",
            "type": "boolean"
          },
          "skip_payload_crypto_override": {
            "description": "Skip decryption of uplink payloads and encryption of downlink payloads.\nThis field overrides the application-level setting.",
            "type": "boolean"
          },
          "supports_class_b": {
            "description": "Whether the device supports class B.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "type": "boolean"
          },
          "supports_class_c": {
            "description": "Whether the device supports class C.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "type": "boolean"
          },
          "supports_join": {
            "description": "The device supports join (it's OTAA).\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "type": "boolean"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          },
          "used_dev_nonces": {
            "description": "Used DevNonces sorted in ascending order.\nThis field is only used for devices using LoRaWAN versions preceding 1.1.\nStored in Join Server.",
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": "array"
          },
          "version_ids": {
            "description": "Identifies an end device model with version information.",
            "properties": {
              "band_id": {
                "type": "string"
              },
              "brand_id": {
                "type": "string"
              },
              "firmware_version": {
                "type": "string"
              },
              "hardware_version": {
                "type": "string"
              },
              "model_id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "field_mask": {
        "description": "The names of the end device fields that should be updated.\nSee the API reference for which fields can be set on the different services.",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    AuthInfoResponse

    Fields
    Name Type Description
    api_key object
    gateway_token object
    is_admin boolean
    oauth_access_token object
    universal_rights object
    user_session object
    Schema
    {
      "api_key": {
        "properties": {
          "api_key": {
            "properties": {
              "created_at": {
                "format": "date-time",
                "type": "string"
              },
              "expires_at": {
                "format": "date-time",
                "type": "string"
              },
              "id": {
                "description": "Immutable and unique public identifier for the API key.\nGenerated by the Access Server.",
                "type": "string"
              },
              "key": {
                "description": "Immutable and unique secret value of the API key.\nGenerated by the Access Server.",
                "type": "string"
              },
              "name": {
                "description": "User-defined (friendly) name for the API key.",
                "type": "string"
              },
              "rights": {
                "description": "Rights that are granted to this API key.",
                "items": {
                  "default": "right_invalid",
                  "description": "Right is the enum that defines all the different rights to do something in the network.\n\n - RIGHT_USER_INFO: The right to view user information.\n - RIGHT_USER_SETTINGS_BASIC: The right to edit basic user settings.\n - RIGHT_USER_LIST: The right to list users accounts.\n - RIGHT_USER_CREATE: The right to create an user account.\n - RIGHT_USER_SETTINGS_API_KEYS: The right to view and edit user API keys.\n - RIGHT_USER_DELETE: The right to delete user account.\n - RIGHT_USER_PURGE: The right to purge user account.\n - RIGHT_USER_AUTHORIZED_CLIENTS: The right to view and edit authorized OAuth clients of the user.\n - RIGHT_USER_APPLICATIONS_LIST: The right to list applications the user is a collaborator of.\n - RIGHT_USER_APPLICATIONS_CREATE: The right to create an application under the user account.\n - RIGHT_USER_GATEWAYS_LIST: The right to list gateways the user is a collaborator of.\n - RIGHT_USER_GATEWAYS_CREATE: The right to create a gateway under the account of the user.\n - RIGHT_USER_CLIENTS_LIST: The right to list OAuth clients the user is a collaborator of.\n - RIGHT_USER_CLIENTS_CREATE: The right to create an OAuth client under the account of the user.\n - RIGHT_USER_ORGANIZATIONS_LIST: The right to list organizations the user is a member of.\n - RIGHT_USER_ORGANIZATIONS_CREATE: The right to create an organization under the user account.\n - RIGHT_USER_NOTIFICATIONS_READ: The right to read notifications sent to the user.\n - RIGHT_USER_ALL: The pseudo-right for all (current and future) user rights.\n - RIGHT_APPLICATION_INFO: The right to view application information.\n - RIGHT_APPLICATION_SETTINGS_BASIC: The right to edit basic application settings.\n - RIGHT_APPLICATION_SETTINGS_API_KEYS: The right to view and edit application API keys.\n - RIGHT_APPLICATION_SETTINGS_COLLABORATORS: The right to view and edit application collaborators.\n - RIGHT_APPLICATION_SETTINGS_PACKAGES: The right to view and edit application packages and associations.\n - RIGHT_APPLICATION_DELETE: The right to delete application.\n - RIGHT_APPLICATION_PURGE: The right to purge application.\n - RIGHT_APPLICATION_DEVICES_READ: The right to view devices in application.\n - RIGHT_APPLICATION_DEVICES_WRITE: The right to create devices in application.\n - RIGHT_APPLICATION_DEVICES_READ_KEYS: The right to view device keys in application.\nNote that keys may not be stored in a way that supports viewing them.\n - RIGHT_APPLICATION_DEVICES_WRITE_KEYS: The right to edit device keys in application.\n - RIGHT_APPLICATION_TRAFFIC_READ: The right to read application traffic (uplink and downlink).\n - RIGHT_APPLICATION_TRAFFIC_UP_WRITE: The right to write uplink application traffic.\n - RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE: The right to write downlink application traffic.\n - RIGHT_APPLICATION_LINK: The right to link as Application to a Network Server for traffic exchange,\ni.e. read uplink and write downlink (API keys only).\nThis right is typically only given to an Application Server.\nThis right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ,\nand RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.\n - RIGHT_APPLICATION_ALL: The pseudo-right for all (current and future) application rights.\n - RIGHT_CLIENT_ALL: The pseudo-right for all (current and future) OAuth client rights.\n - RIGHT_CLIENT_INFO: The right to read client information.\n - RIGHT_CLIENT_SETTINGS_BASIC: The right to edit basic client settings.\n - RIGHT_CLIENT_SETTINGS_COLLABORATORS: The right to view and edit client collaborators.\n - RIGHT_CLIENT_DELETE: The right to delete a client.\n - RIGHT_CLIENT_PURGE: The right to purge a client.\n - RIGHT_GATEWAY_INFO: The right to view gateway information.\n - RIGHT_GATEWAY_SETTINGS_BASIC: The right to edit basic gateway settings.\n - RIGHT_GATEWAY_SETTINGS_API_KEYS: The right to view and edit gateway API keys.\n - RIGHT_GATEWAY_SETTINGS_COLLABORATORS: The right to view and edit gateway collaborators.\n - RIGHT_GATEWAY_DELETE: The right to delete gateway.\n - RIGHT_GATEWAY_PURGE: The right to purge gateway.\n - RIGHT_GATEWAY_TRAFFIC_READ: The right to read gateway traffic.\n - RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE: The right to write downlink gateway traffic.\n - RIGHT_GATEWAY_LINK: The right to link as Gateway to a Gateway Server for traffic exchange,\ni.e. write uplink and read downlink (API keys only)\nThis right is typically only given to a gateway.\nThis right implies RIGHT_GATEWAY_INFO.\n - RIGHT_GATEWAY_STATUS_READ: The right to view gateway status.\n - RIGHT_GATEWAY_LOCATION_READ: The right to view view gateway location.\n - RIGHT_GATEWAY_WRITE_SECRETS: The right to store secrets associated with this gateway.\n - RIGHT_GATEWAY_READ_SECRETS: The right to retrieve secrets associated with this gateway.\n - RIGHT_GATEWAY_ALL: The pseudo-right for all (current and future) gateway rights.\n - RIGHT_ORGANIZATION_INFO: The right to view organization information.\n - RIGHT_ORGANIZATION_SETTINGS_BASIC: The right to edit basic organization settings.\n - RIGHT_ORGANIZATION_SETTINGS_API_KEYS: The right to view and edit organization API keys.\n - RIGHT_ORGANIZATION_SETTINGS_MEMBERS: The right to view and edit organization members.\n - RIGHT_ORGANIZATION_DELETE: The right to delete organization.\n - RIGHT_ORGANIZATION_PURGE: The right to purge organization.\n - RIGHT_ORGANIZATION_APPLICATIONS_LIST: The right to list the applications the organization is a collaborator of.\n - RIGHT_ORGANIZATION_APPLICATIONS_CREATE: The right to create an application under the organization.\n - RIGHT_ORGANIZATION_GATEWAYS_LIST: The right to list the gateways the organization is a collaborator of.\n - RIGHT_ORGANIZATION_GATEWAYS_CREATE: The right to create a gateway under the organization.\n - RIGHT_ORGANIZATION_CLIENTS_LIST: The right to list the OAuth clients the organization is a collaborator of.\n - RIGHT_ORGANIZATION_CLIENTS_CREATE: The right to create an OAuth client under the organization.\n - RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR: The right to add the organization as a collaborator on an existing entity.\n - RIGHT_ORGANIZATION_ALL: The pseudo-right for all (current and future) organization rights.\n - RIGHT_SEND_INVITES: The right to send invites to new users.\nNote that this is not prefixed with \"USER_\"; it is not a right on the user entity.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE: The right to create an alert notification profile.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_INFO: The right to view an alert notification profile information.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_LIST: The right to list the alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE: The right to update an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE: The right to delete an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE: The right to create an alert notification receiver.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO: The right to view an alert notification receiver information.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST: The right to list the alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE: The right to update an alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE: The right to delete an alert notification receivers.\n - RIGHT_AUTHENTICATION_PROVIDER_CREATE: The right to create an authentication provider.\n - RIGHT_AUTHENTICATION_PROVIDER_INFO: The right to view an authentication provider information.\n - RIGHT_AUTHENTICATION_PROVIDER_LIST: The right to list the authentication providers\n - RIGHT_AUTHENTICATION_PROVIDER_UPDATE: The right to update an authentication providers.\n - RIGHT_AUTHENTICATION_PROVIDER_DELETE: The right to delete an authentication providers.\n - RIGHT_EXTERNAL_USER_CREATE: The right to create an external user.\n - RIGHT_EXTERNAL_USER_INFO: The right to view an external user's information.\n - RIGHT_EXTERNAL_USER_DELETE: The right to delete an external user.\n - RIGHT_PACKET_BROKER_AGENT_READ: The right to read any information related to the PBA.\n - RIGHT_PACKET_BROKER_AGENT_WRITE: The right to perform operations in the PBA.\n - RIGHT_TENANT_CONFIGURATION_UPDATE: The right to update a tenant's configuration.\n - RIGHT_LABEL_CREATE: The right to create a label.\n - RIGHT_LABEL_INFO: The right to view a label's information.\n - RIGHT_LABELS_LIST: The right to list the labels.\n - RIGHT_LABEL_UPDATE: The right to update a label.\n - RIGHT_LABEL_DELETE: The right to delete a label.\n - RIGHT_LABEL_ASSIGN: The right to assign a label to an entity.\n - RIGHT_ALL: The pseudo-right for all (current and future) possible rights.",
                  "enum": [
                    "right_invalid",
                    "RIGHT_USER_INFO",
                    "RIGHT_USER_SETTINGS_BASIC",
                    "RIGHT_USER_LIST",
                    "RIGHT_USER_CREATE",
                    "RIGHT_USER_SETTINGS_API_KEYS",
                    "RIGHT_USER_DELETE",
                    "RIGHT_USER_PURGE",
                    "RIGHT_USER_AUTHORIZED_CLIENTS",
                    "RIGHT_USER_APPLICATIONS_LIST",
                    "RIGHT_USER_APPLICATIONS_CREATE",
                    "RIGHT_USER_GATEWAYS_LIST",
                    "RIGHT_USER_GATEWAYS_CREATE",
                    "RIGHT_USER_CLIENTS_LIST",
                    "RIGHT_USER_CLIENTS_CREATE",
                    "RIGHT_USER_ORGANIZATIONS_LIST",
                    "RIGHT_USER_ORGANIZATIONS_CREATE",
                    "RIGHT_USER_NOTIFICATIONS_READ",
                    "RIGHT_USER_ALL",
                    "RIGHT_APPLICATION_INFO",
                    "RIGHT_APPLICATION_SETTINGS_BASIC",
                    "RIGHT_APPLICATION_SETTINGS_API_KEYS",
                    "RIGHT_APPLICATION_SETTINGS_COLLABORATORS",
                    "RIGHT_APPLICATION_SETTINGS_PACKAGES",
                    "RIGHT_APPLICATION_DELETE",
                    "RIGHT_APPLICATION_PURGE",
                    "RIGHT_APPLICATION_DEVICES_READ",
                    "RIGHT_APPLICATION_DEVICES_WRITE",
                    "RIGHT_APPLICATION_DEVICES_READ_KEYS",
                    "RIGHT_APPLICATION_DEVICES_WRITE_KEYS",
                    "RIGHT_APPLICATION_TRAFFIC_READ",
                    "RIGHT_APPLICATION_TRAFFIC_UP_WRITE",
                    "RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE",
                    "RIGHT_APPLICATION_LINK",
                    "RIGHT_APPLICATION_ALL",
                    "RIGHT_CLIENT_ALL",
                    "RIGHT_CLIENT_INFO",
                    "RIGHT_CLIENT_SETTINGS_BASIC",
                    "RIGHT_CLIENT_SETTINGS_COLLABORATORS",
                    "RIGHT_CLIENT_DELETE",
                    "RIGHT_CLIENT_PURGE",
                    "RIGHT_GATEWAY_INFO",
                    "RIGHT_GATEWAY_SETTINGS_BASIC",
                    "RIGHT_GATEWAY_SETTINGS_API_KEYS",
                    "RIGHT_GATEWAY_SETTINGS_COLLABORATORS",
                    "RIGHT_GATEWAY_DELETE",
                    "RIGHT_GATEWAY_PURGE",
                    "RIGHT_GATEWAY_TRAFFIC_READ",
                    "RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE",
                    "RIGHT_GATEWAY_LINK",
                    "RIGHT_GATEWAY_STATUS_READ",
                    "RIGHT_GATEWAY_LOCATION_READ",
                    "RIGHT_GATEWAY_WRITE_SECRETS",
                    "RIGHT_GATEWAY_READ_SECRETS",
                    "RIGHT_GATEWAY_ALL",
                    "RIGHT_ORGANIZATION_INFO",
                    "RIGHT_ORGANIZATION_SETTINGS_BASIC",
                    "RIGHT_ORGANIZATION_SETTINGS_API_KEYS",
                    "RIGHT_ORGANIZATION_SETTINGS_MEMBERS",
                    "RIGHT_ORGANIZATION_DELETE",
                    "RIGHT_ORGANIZATION_PURGE",
                    "RIGHT_ORGANIZATION_APPLICATIONS_LIST",
                    "RIGHT_ORGANIZATION_APPLICATIONS_CREATE",
                    "RIGHT_ORGANIZATION_GATEWAYS_LIST",
                    "RIGHT_ORGANIZATION_GATEWAYS_CREATE",
                    "RIGHT_ORGANIZATION_CLIENTS_LIST",
                    "RIGHT_ORGANIZATION_CLIENTS_CREATE",
                    "RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR",
                    "RIGHT_ORGANIZATION_ALL",
                    "RIGHT_SEND_INVITES",
                    "RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE",
                    "RIGHT_ALERT_NOTIFICATION_PROFILE_INFO",
                    "RIGHT_ALERT_NOTIFICATION_PROFILE_LIST",
                    "RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE",
                    "RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE",
                    "RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE",
                    "RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO",
                    "RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST",
                    "RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE",
                    "RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE",
                    "RIGHT_AUTHENTICATION_PROVIDER_CREATE",
                    "RIGHT_AUTHENTICATION_PROVIDER_INFO",
                    "RIGHT_AUTHENTICATION_PROVIDER_LIST",
                    "RIGHT_AUTHENTICATION_PROVIDER_UPDATE",
                    "RIGHT_AUTHENTICATION_PROVIDER_DELETE",
                    "RIGHT_EXTERNAL_USER_CREATE",
                    "RIGHT_EXTERNAL_USER_INFO",
                    "RIGHT_EXTERNAL_USER_DELETE",
                    "RIGHT_PACKET_BROKER_AGENT_READ",
                    "RIGHT_PACKET_BROKER_AGENT_WRITE",
                    "RIGHT_TENANT_CONFIGURATION_UPDATE",
                    "RIGHT_LABEL_CREATE",
                    "RIGHT_LABEL_INFO",
                    "RIGHT_LABELS_LIST",
                    "RIGHT_LABEL_UPDATE",
                    "RIGHT_LABEL_DELETE",
                    "RIGHT_LABEL_ASSIGN",
                    "RIGHT_ALL"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              "updated_at": {
                "format": "date-time",
                "type": "string"
              }
            },
            "type": "object"
          },
          "entity_ids": {
            "description": "EntityIdentifiers contains one of the possible entity identifiers.",
            "properties": {
              "application_ids": {
                "properties": {
                  "application_id": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "client_ids": {
                "properties": {
                  "client_id": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "device_ids": {
                "properties": {
                  "application_ids": {
                    "properties": {
                      "application_id": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "dev_addr": {
                    "description": "The LoRaWAN DevAddr.",
                    "example": "2600ABCD",
                    "format": "string",
                    "type": "string"
                  },
                  "dev_eui": {
                    "description": "The LoRaWAN DevEUI.",
                    "example": "70B3D57ED000ABCD",
                    "format": "string",
                    "type": "string"
                  },
                  "device_id": {
                    "type": "string"
                  },
                  "join_eui": {
                    "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
                    "example": "70B3D57ED000ABCD",
                    "format": "string",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "gateway_ids": {
                "properties": {
                  "eui": {
                    "description": "Secondary identifier, which can only be used in specific requests.",
                    "example": "70B3D57ED000ABCD",
                    "format": "string",
                    "type": "string"
                  },
                  "gateway_id": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "organization_ids": {
                "properties": {
                  "organization_id": {
                    "description": "This ID shares namespace with user IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "user_ids": {
                "properties": {
                  "email": {
                    "description": "Secondary identifier, which can only be used in specific requests.",
                    "type": "string"
                  },
                  "user_id": {
                    "description": "This ID shares namespace with organization IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "gateway_token": {
        "properties": {
          "gateway_ids": {
            "properties": {
              "eui": {
                "description": "Secondary identifier, which can only be used in specific requests.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "gateway_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "rights": {
            "items": {
              "default": "right_invalid",
              "description": "Right is the enum that defines all the different rights to do something in the network.\n\n - RIGHT_USER_INFO: The right to view user information.\n - RIGHT_USER_SETTINGS_BASIC: The right to edit basic user settings.\n - RIGHT_USER_LIST: The right to list users accounts.\n - RIGHT_USER_CREATE: The right to create an user account.\n - RIGHT_USER_SETTINGS_API_KEYS: The right to view and edit user API keys.\n - RIGHT_USER_DELETE: The right to delete user account.\n - RIGHT_USER_PURGE: The right to purge user account.\n - RIGHT_USER_AUTHORIZED_CLIENTS: The right to view and edit authorized OAuth clients of the user.\n - RIGHT_USER_APPLICATIONS_LIST: The right to list applications the user is a collaborator of.\n - RIGHT_USER_APPLICATIONS_CREATE: The right to create an application under the user account.\n - RIGHT_USER_GATEWAYS_LIST: The right to list gateways the user is a collaborator of.\n - RIGHT_USER_GATEWAYS_CREATE: The right to create a gateway under the account of the user.\n - RIGHT_USER_CLIENTS_LIST: The right to list OAuth clients the user is a collaborator of.\n - RIGHT_USER_CLIENTS_CREATE: The right to create an OAuth client under the account of the user.\n - RIGHT_USER_ORGANIZATIONS_LIST: The right to list organizations the user is a member of.\n - RIGHT_USER_ORGANIZATIONS_CREATE: The right to create an organization under the user account.\n - RIGHT_USER_NOTIFICATIONS_READ: The right to read notifications sent to the user.\n - RIGHT_USER_ALL: The pseudo-right for all (current and future) user rights.\n - RIGHT_APPLICATION_INFO: The right to view application information.\n - RIGHT_APPLICATION_SETTINGS_BASIC: The right to edit basic application settings.\n - RIGHT_APPLICATION_SETTINGS_API_KEYS: The right to view and edit application API keys.\n - RIGHT_APPLICATION_SETTINGS_COLLABORATORS: The right to view and edit application collaborators.\n - RIGHT_APPLICATION_SETTINGS_PACKAGES: The right to view and edit application packages and associations.\n - RIGHT_APPLICATION_DELETE: The right to delete application.\n - RIGHT_APPLICATION_PURGE: The right to purge application.\n - RIGHT_APPLICATION_DEVICES_READ: The right to view devices in application.\n - RIGHT_APPLICATION_DEVICES_WRITE: The right to create devices in application.\n - RIGHT_APPLICATION_DEVICES_READ_KEYS: The right to view device keys in application.\nNote that keys may not be stored in a way that supports viewing them.\n - RIGHT_APPLICATION_DEVICES_WRITE_KEYS: The right to edit device keys in application.\n - RIGHT_APPLICATION_TRAFFIC_READ: The right to read application traffic (uplink and downlink).\n - RIGHT_APPLICATION_TRAFFIC_UP_WRITE: The right to write uplink application traffic.\n - RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE: The right to write downlink application traffic.\n - RIGHT_APPLICATION_LINK: The right to link as Application to a Network Server for traffic exchange,\ni.e. read uplink and write downlink (API keys only).\nThis right is typically only given to an Application Server.\nThis right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ,\nand RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.\n - RIGHT_APPLICATION_ALL: The pseudo-right for all (current and future) application rights.\n - RIGHT_CLIENT_ALL: The pseudo-right for all (current and future) OAuth client rights.\n - RIGHT_CLIENT_INFO: The right to read client information.\n - RIGHT_CLIENT_SETTINGS_BASIC: The right to edit basic client settings.\n - RIGHT_CLIENT_SETTINGS_COLLABORATORS: The right to view and edit client collaborators.\n - RIGHT_CLIENT_DELETE: The right to delete a client.\n - RIGHT_CLIENT_PURGE: The right to purge a client.\n - RIGHT_GATEWAY_INFO: The right to view gateway information.\n - RIGHT_GATEWAY_SETTINGS_BASIC: The right to edit basic gateway settings.\n - RIGHT_GATEWAY_SETTINGS_API_KEYS: The right to view and edit gateway API keys.\n - RIGHT_GATEWAY_SETTINGS_COLLABORATORS: The right to view and edit gateway collaborators.\n - RIGHT_GATEWAY_DELETE: The right to delete gateway.\n - RIGHT_GATEWAY_PURGE: The right to purge gateway.\n - RIGHT_GATEWAY_TRAFFIC_READ: The right to read gateway traffic.\n - RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE: The right to write downlink gateway traffic.\n - RIGHT_GATEWAY_LINK: The right to link as Gateway to a Gateway Server for traffic exchange,\ni.e. write uplink and read downlink (API keys only)\nThis right is typically only given to a gateway.\nThis right implies RIGHT_GATEWAY_INFO.\n - RIGHT_GATEWAY_STATUS_READ: The right to view gateway status.\n - RIGHT_GATEWAY_LOCATION_READ: The right to view view gateway location.\n - RIGHT_GATEWAY_WRITE_SECRETS: The right to store secrets associated with this gateway.\n - RIGHT_GATEWAY_READ_SECRETS: The right to retrieve secrets associated with this gateway.\n - RIGHT_GATEWAY_ALL: The pseudo-right for all (current and future) gateway rights.\n - RIGHT_ORGANIZATION_INFO: The right to view organization information.\n - RIGHT_ORGANIZATION_SETTINGS_BASIC: The right to edit basic organization settings.\n - RIGHT_ORGANIZATION_SETTINGS_API_KEYS: The right to view and edit organization API keys.\n - RIGHT_ORGANIZATION_SETTINGS_MEMBERS: The right to view and edit organization members.\n - RIGHT_ORGANIZATION_DELETE: The right to delete organization.\n - RIGHT_ORGANIZATION_PURGE: The right to purge organization.\n - RIGHT_ORGANIZATION_APPLICATIONS_LIST: The right to list the applications the organization is a collaborator of.\n - RIGHT_ORGANIZATION_APPLICATIONS_CREATE: The right to create an application under the organization.\n - RIGHT_ORGANIZATION_GATEWAYS_LIST: The right to list the gateways the organization is a collaborator of.\n - RIGHT_ORGANIZATION_GATEWAYS_CREATE: The right to create a gateway under the organization.\n - RIGHT_ORGANIZATION_CLIENTS_LIST: The right to list the OAuth clients the organization is a collaborator of.\n - RIGHT_ORGANIZATION_CLIENTS_CREATE: The right to create an OAuth client under the organization.\n - RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR: The right to add the organization as a collaborator on an existing entity.\n - RIGHT_ORGANIZATION_ALL: The pseudo-right for all (current and future) organization rights.\n - RIGHT_SEND_INVITES: The right to send invites to new users.\nNote that this is not prefixed with \"USER_\"; it is not a right on the user entity.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE: The right to create an alert notification profile.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_INFO: The right to view an alert notification profile information.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_LIST: The right to list the alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE: The right to update an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE: The right to delete an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE: The right to create an alert notification receiver.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO: The right to view an alert notification receiver information.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST: The right to list the alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE: The right to update an alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE: The right to delete an alert notification receivers.\n - RIGHT_AUTHENTICATION_PROVIDER_CREATE: The right to create an authentication provider.\n - RIGHT_AUTHENTICATION_PROVIDER_INFO: The right to view an authentication provider information.\n - RIGHT_AUTHENTICATION_PROVIDER_LIST: The right to list the authentication providers\n - RIGHT_AUTHENTICATION_PROVIDER_UPDATE: The right to update an authentication providers.\n - RIGHT_AUTHENTICATION_PROVIDER_DELETE: The right to delete an authentication providers.\n - RIGHT_EXTERNAL_USER_CREATE: The right to create an external user.\n - RIGHT_EXTERNAL_USER_INFO: The right to view an external user's information.\n - RIGHT_EXTERNAL_USER_DELETE: The right to delete an external user.\n - RIGHT_PACKET_BROKER_AGENT_READ: The right to read any information related to the PBA.\n - RIGHT_PACKET_BROKER_AGENT_WRITE: The right to perform operations in the PBA.\n - RIGHT_TENANT_CONFIGURATION_UPDATE: The right to update a tenant's configuration.\n - RIGHT_LABEL_CREATE: The right to create a label.\n - RIGHT_LABEL_INFO: The right to view a label's information.\n - RIGHT_LABELS_LIST: The right to list the labels.\n - RIGHT_LABEL_UPDATE: The right to update a label.\n - RIGHT_LABEL_DELETE: The right to delete a label.\n - RIGHT_LABEL_ASSIGN: The right to assign a label to an entity.\n - RIGHT_ALL: The pseudo-right for all (current and future) possible rights.",
              "enum": [
                "right_invalid",
                "RIGHT_USER_INFO",
                "RIGHT_USER_SETTINGS_BASIC",
                "RIGHT_USER_LIST",
                "RIGHT_USER_CREATE",
                "RIGHT_USER_SETTINGS_API_KEYS",
                "RIGHT_USER_DELETE",
                "RIGHT_USER_PURGE",
                "RIGHT_USER_AUTHORIZED_CLIENTS",
                "RIGHT_USER_APPLICATIONS_LIST",
                "RIGHT_USER_APPLICATIONS_CREATE",
                "RIGHT_USER_GATEWAYS_LIST",
                "RIGHT_USER_GATEWAYS_CREATE",
                "RIGHT_USER_CLIENTS_LIST",
                "RIGHT_USER_CLIENTS_CREATE",
                "RIGHT_USER_ORGANIZATIONS_LIST",
                "RIGHT_USER_ORGANIZATIONS_CREATE",
                "RIGHT_USER_NOTIFICATIONS_READ",
                "RIGHT_USER_ALL",
                "RIGHT_APPLICATION_INFO",
                "RIGHT_APPLICATION_SETTINGS_BASIC",
                "RIGHT_APPLICATION_SETTINGS_API_KEYS",
                "RIGHT_APPLICATION_SETTINGS_COLLABORATORS",
                "RIGHT_APPLICATION_SETTINGS_PACKAGES",
                "RIGHT_APPLICATION_DELETE",
                "RIGHT_APPLICATION_PURGE",
                "RIGHT_APPLICATION_DEVICES_READ",
                "RIGHT_APPLICATION_DEVICES_WRITE",
                "RIGHT_APPLICATION_DEVICES_READ_KEYS",
                "RIGHT_APPLICATION_DEVICES_WRITE_KEYS",
                "RIGHT_APPLICATION_TRAFFIC_READ",
                "RIGHT_APPLICATION_TRAFFIC_UP_WRITE",
                "RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE",
                "RIGHT_APPLICATION_LINK",
                "RIGHT_APPLICATION_ALL",
                "RIGHT_CLIENT_ALL",
                "RIGHT_CLIENT_INFO",
                "RIGHT_CLIENT_SETTINGS_BASIC",
                "RIGHT_CLIENT_SETTINGS_COLLABORATORS",
                "RIGHT_CLIENT_DELETE",
                "RIGHT_CLIENT_PURGE",
                "RIGHT_GATEWAY_INFO",
                "RIGHT_GATEWAY_SETTINGS_BASIC",
                "RIGHT_GATEWAY_SETTINGS_API_KEYS",
                "RIGHT_GATEWAY_SETTINGS_COLLABORATORS",
                "RIGHT_GATEWAY_DELETE",
                "RIGHT_GATEWAY_PURGE",
                "RIGHT_GATEWAY_TRAFFIC_READ",
                "RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE",
                "RIGHT_GATEWAY_LINK",
                "RIGHT_GATEWAY_STATUS_READ",
                "RIGHT_GATEWAY_LOCATION_READ",
                "RIGHT_GATEWAY_WRITE_SECRETS",
                "RIGHT_GATEWAY_READ_SECRETS",
                "RIGHT_GATEWAY_ALL",
                "RIGHT_ORGANIZATION_INFO",
                "RIGHT_ORGANIZATION_SETTINGS_BASIC",
                "RIGHT_ORGANIZATION_SETTINGS_API_KEYS",
                "RIGHT_ORGANIZATION_SETTINGS_MEMBERS",
                "RIGHT_ORGANIZATION_DELETE",
                "RIGHT_ORGANIZATION_PURGE",
                "RIGHT_ORGANIZATION_APPLICATIONS_LIST",
                "RIGHT_ORGANIZATION_APPLICATIONS_CREATE",
                "RIGHT_ORGANIZATION_GATEWAYS_LIST",
                "RIGHT_ORGANIZATION_GATEWAYS_CREATE",
                "RIGHT_ORGANIZATION_CLIENTS_LIST",
                "RIGHT_ORGANIZATION_CLIENTS_CREATE",
                "RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR",
                "RIGHT_ORGANIZATION_ALL",
                "RIGHT_SEND_INVITES",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_INFO",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_LIST",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE",
                "RIGHT_AUTHENTICATION_PROVIDER_CREATE",
                "RIGHT_AUTHENTICATION_PROVIDER_INFO",
                "RIGHT_AUTHENTICATION_PROVIDER_LIST",
                "RIGHT_AUTHENTICATION_PROVIDER_UPDATE",
                "RIGHT_AUTHENTICATION_PROVIDER_DELETE",
                "RIGHT_EXTERNAL_USER_CREATE",
                "RIGHT_EXTERNAL_USER_INFO",
                "RIGHT_EXTERNAL_USER_DELETE",
                "RIGHT_PACKET_BROKER_AGENT_READ",
                "RIGHT_PACKET_BROKER_AGENT_WRITE",
                "RIGHT_TENANT_CONFIGURATION_UPDATE",
                "RIGHT_LABEL_CREATE",
                "RIGHT_LABEL_INFO",
                "RIGHT_LABELS_LIST",
                "RIGHT_LABEL_UPDATE",
                "RIGHT_LABEL_DELETE",
                "RIGHT_LABEL_ASSIGN",
                "RIGHT_ALL"
              ],
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "is_admin": {
        "type": "boolean"
      },
      "oauth_access_token": {
        "properties": {
          "access_token": {
            "type": "string"
          },
          "client_ids": {
            "properties": {
              "client_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "refresh_token": {
            "type": "string"
          },
          "rights": {
            "items": {
              "default": "right_invalid",
              "description": "Right is the enum that defines all the different rights to do something in the network.\n\n - RIGHT_USER_INFO: The right to view user information.\n - RIGHT_USER_SETTINGS_BASIC: The right to edit basic user settings.\n - RIGHT_USER_LIST: The right to list users accounts.\n - RIGHT_USER_CREATE: The right to create an user account.\n - RIGHT_USER_SETTINGS_API_KEYS: The right to view and edit user API keys.\n - RIGHT_USER_DELETE: The right to delete user account.\n - RIGHT_USER_PURGE: The right to purge user account.\n - RIGHT_USER_AUTHORIZED_CLIENTS: The right to view and edit authorized OAuth clients of the user.\n - RIGHT_USER_APPLICATIONS_LIST: The right to list applications the user is a collaborator of.\n - RIGHT_USER_APPLICATIONS_CREATE: The right to create an application under the user account.\n - RIGHT_USER_GATEWAYS_LIST: The right to list gateways the user is a collaborator of.\n - RIGHT_USER_GATEWAYS_CREATE: The right to create a gateway under the account of the user.\n - RIGHT_USER_CLIENTS_LIST: The right to list OAuth clients the user is a collaborator of.\n - RIGHT_USER_CLIENTS_CREATE: The right to create an OAuth client under the account of the user.\n - RIGHT_USER_ORGANIZATIONS_LIST: The right to list organizations the user is a member of.\n - RIGHT_USER_ORGANIZATIONS_CREATE: The right to create an organization under the user account.\n - RIGHT_USER_NOTIFICATIONS_READ: The right to read notifications sent to the user.\n - RIGHT_USER_ALL: The pseudo-right for all (current and future) user rights.\n - RIGHT_APPLICATION_INFO: The right to view application information.\n - RIGHT_APPLICATION_SETTINGS_BASIC: The right to edit basic application settings.\n - RIGHT_APPLICATION_SETTINGS_API_KEYS: The right to view and edit application API keys.\n - RIGHT_APPLICATION_SETTINGS_COLLABORATORS: The right to view and edit application collaborators.\n - RIGHT_APPLICATION_SETTINGS_PACKAGES: The right to view and edit application packages and associations.\n - RIGHT_APPLICATION_DELETE: The right to delete application.\n - RIGHT_APPLICATION_PURGE: The right to purge application.\n - RIGHT_APPLICATION_DEVICES_READ: The right to view devices in application.\n - RIGHT_APPLICATION_DEVICES_WRITE: The right to create devices in application.\n - RIGHT_APPLICATION_DEVICES_READ_KEYS: The right to view device keys in application.\nNote that keys may not be stored in a way that supports viewing them.\n - RIGHT_APPLICATION_DEVICES_WRITE_KEYS: The right to edit device keys in application.\n - RIGHT_APPLICATION_TRAFFIC_READ: The right to read application traffic (uplink and downlink).\n - RIGHT_APPLICATION_TRAFFIC_UP_WRITE: The right to write uplink application traffic.\n - RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE: The right to write downlink application traffic.\n - RIGHT_APPLICATION_LINK: The right to link as Application to a Network Server for traffic exchange,\ni.e. read uplink and write downlink (API keys only).\nThis right is typically only given to an Application Server.\nThis right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ,\nand RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.\n - RIGHT_APPLICATION_ALL: The pseudo-right for all (current and future) application rights.\n - RIGHT_CLIENT_ALL: The pseudo-right for all (current and future) OAuth client rights.\n - RIGHT_CLIENT_INFO: The right to read client information.\n - RIGHT_CLIENT_SETTINGS_BASIC: The right to edit basic client settings.\n - RIGHT_CLIENT_SETTINGS_COLLABORATORS: The right to view and edit client collaborators.\n - RIGHT_CLIENT_DELETE: The right to delete a client.\n - RIGHT_CLIENT_PURGE: The right to purge a client.\n - RIGHT_GATEWAY_INFO: The right to view gateway information.\n - RIGHT_GATEWAY_SETTINGS_BASIC: The right to edit basic gateway settings.\n - RIGHT_GATEWAY_SETTINGS_API_KEYS: The right to view and edit gateway API keys.\n - RIGHT_GATEWAY_SETTINGS_COLLABORATORS: The right to view and edit gateway collaborators.\n - RIGHT_GATEWAY_DELETE: The right to delete gateway.\n - RIGHT_GATEWAY_PURGE: The right to purge gateway.\n - RIGHT_GATEWAY_TRAFFIC_READ: The right to read gateway traffic.\n - RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE: The right to write downlink gateway traffic.\n - RIGHT_GATEWAY_LINK: The right to link as Gateway to a Gateway Server for traffic exchange,\ni.e. write uplink and read downlink (API keys only)\nThis right is typically only given to a gateway.\nThis right implies RIGHT_GATEWAY_INFO.\n - RIGHT_GATEWAY_STATUS_READ: The right to view gateway status.\n - RIGHT_GATEWAY_LOCATION_READ: The right to view view gateway location.\n - RIGHT_GATEWAY_WRITE_SECRETS: The right to store secrets associated with this gateway.\n - RIGHT_GATEWAY_READ_SECRETS: The right to retrieve secrets associated with this gateway.\n - RIGHT_GATEWAY_ALL: The pseudo-right for all (current and future) gateway rights.\n - RIGHT_ORGANIZATION_INFO: The right to view organization information.\n - RIGHT_ORGANIZATION_SETTINGS_BASIC: The right to edit basic organization settings.\n - RIGHT_ORGANIZATION_SETTINGS_API_KEYS: The right to view and edit organization API keys.\n - RIGHT_ORGANIZATION_SETTINGS_MEMBERS: The right to view and edit organization members.\n - RIGHT_ORGANIZATION_DELETE: The right to delete organization.\n - RIGHT_ORGANIZATION_PURGE: The right to purge organization.\n - RIGHT_ORGANIZATION_APPLICATIONS_LIST: The right to list the applications the organization is a collaborator of.\n - RIGHT_ORGANIZATION_APPLICATIONS_CREATE: The right to create an application under the organization.\n - RIGHT_ORGANIZATION_GATEWAYS_LIST: The right to list the gateways the organization is a collaborator of.\n - RIGHT_ORGANIZATION_GATEWAYS_CREATE: The right to create a gateway under the organization.\n - RIGHT_ORGANIZATION_CLIENTS_LIST: The right to list the OAuth clients the organization is a collaborator of.\n - RIGHT_ORGANIZATION_CLIENTS_CREATE: The right to create an OAuth client under the organization.\n - RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR: The right to add the organization as a collaborator on an existing entity.\n - RIGHT_ORGANIZATION_ALL: The pseudo-right for all (current and future) organization rights.\n - RIGHT_SEND_INVITES: The right to send invites to new users.\nNote that this is not prefixed with \"USER_\"; it is not a right on the user entity.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE: The right to create an alert notification profile.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_INFO: The right to view an alert notification profile information.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_LIST: The right to list the alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE: The right to update an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE: The right to delete an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE: The right to create an alert notification receiver.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO: The right to view an alert notification receiver information.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST: The right to list the alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE: The right to update an alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE: The right to delete an alert notification receivers.\n - RIGHT_AUTHENTICATION_PROVIDER_CREATE: The right to create an authentication provider.\n - RIGHT_AUTHENTICATION_PROVIDER_INFO: The right to view an authentication provider information.\n - RIGHT_AUTHENTICATION_PROVIDER_LIST: The right to list the authentication providers\n - RIGHT_AUTHENTICATION_PROVIDER_UPDATE: The right to update an authentication providers.\n - RIGHT_AUTHENTICATION_PROVIDER_DELETE: The right to delete an authentication providers.\n - RIGHT_EXTERNAL_USER_CREATE: The right to create an external user.\n - RIGHT_EXTERNAL_USER_INFO: The right to view an external user's information.\n - RIGHT_EXTERNAL_USER_DELETE: The right to delete an external user.\n - RIGHT_PACKET_BROKER_AGENT_READ: The right to read any information related to the PBA.\n - RIGHT_PACKET_BROKER_AGENT_WRITE: The right to perform operations in the PBA.\n - RIGHT_TENANT_CONFIGURATION_UPDATE: The right to update a tenant's configuration.\n - RIGHT_LABEL_CREATE: The right to create a label.\n - RIGHT_LABEL_INFO: The right to view a label's information.\n - RIGHT_LABELS_LIST: The right to list the labels.\n - RIGHT_LABEL_UPDATE: The right to update a label.\n - RIGHT_LABEL_DELETE: The right to delete a label.\n - RIGHT_LABEL_ASSIGN: The right to assign a label to an entity.\n - RIGHT_ALL: The pseudo-right for all (current and future) possible rights.",
              "enum": [
                "right_invalid",
                "RIGHT_USER_INFO",
                "RIGHT_USER_SETTINGS_BASIC",
                "RIGHT_USER_LIST",
                "RIGHT_USER_CREATE",
                "RIGHT_USER_SETTINGS_API_KEYS",
                "RIGHT_USER_DELETE",
                "RIGHT_USER_PURGE",
                "RIGHT_USER_AUTHORIZED_CLIENTS",
                "RIGHT_USER_APPLICATIONS_LIST",
                "RIGHT_USER_APPLICATIONS_CREATE",
                "RIGHT_USER_GATEWAYS_LIST",
                "RIGHT_USER_GATEWAYS_CREATE",
                "RIGHT_USER_CLIENTS_LIST",
                "RIGHT_USER_CLIENTS_CREATE",
                "RIGHT_USER_ORGANIZATIONS_LIST",
                "RIGHT_USER_ORGANIZATIONS_CREATE",
                "RIGHT_USER_NOTIFICATIONS_READ",
                "RIGHT_USER_ALL",
                "RIGHT_APPLICATION_INFO",
                "RIGHT_APPLICATION_SETTINGS_BASIC",
                "RIGHT_APPLICATION_SETTINGS_API_KEYS",
                "RIGHT_APPLICATION_SETTINGS_COLLABORATORS",
                "RIGHT_APPLICATION_SETTINGS_PACKAGES",
                "RIGHT_APPLICATION_DELETE",
                "RIGHT_APPLICATION_PURGE",
                "RIGHT_APPLICATION_DEVICES_READ",
                "RIGHT_APPLICATION_DEVICES_WRITE",
                "RIGHT_APPLICATION_DEVICES_READ_KEYS",
                "RIGHT_APPLICATION_DEVICES_WRITE_KEYS",
                "RIGHT_APPLICATION_TRAFFIC_READ",
                "RIGHT_APPLICATION_TRAFFIC_UP_WRITE",
                "RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE",
                "RIGHT_APPLICATION_LINK",
                "RIGHT_APPLICATION_ALL",
                "RIGHT_CLIENT_ALL",
                "RIGHT_CLIENT_INFO",
                "RIGHT_CLIENT_SETTINGS_BASIC",
                "RIGHT_CLIENT_SETTINGS_COLLABORATORS",
                "RIGHT_CLIENT_DELETE",
                "RIGHT_CLIENT_PURGE",
                "RIGHT_GATEWAY_INFO",
                "RIGHT_GATEWAY_SETTINGS_BASIC",
                "RIGHT_GATEWAY_SETTINGS_API_KEYS",
                "RIGHT_GATEWAY_SETTINGS_COLLABORATORS",
                "RIGHT_GATEWAY_DELETE",
                "RIGHT_GATEWAY_PURGE",
                "RIGHT_GATEWAY_TRAFFIC_READ",
                "RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE",
                "RIGHT_GATEWAY_LINK",
                "RIGHT_GATEWAY_STATUS_READ",
                "RIGHT_GATEWAY_LOCATION_READ",
                "RIGHT_GATEWAY_WRITE_SECRETS",
                "RIGHT_GATEWAY_READ_SECRETS",
                "RIGHT_GATEWAY_ALL",
                "RIGHT_ORGANIZATION_INFO",
                "RIGHT_ORGANIZATION_SETTINGS_BASIC",
                "RIGHT_ORGANIZATION_SETTINGS_API_KEYS",
                "RIGHT_ORGANIZATION_SETTINGS_MEMBERS",
                "RIGHT_ORGANIZATION_DELETE",
                "RIGHT_ORGANIZATION_PURGE",
                "RIGHT_ORGANIZATION_APPLICATIONS_LIST",
                "RIGHT_ORGANIZATION_APPLICATIONS_CREATE",
                "RIGHT_ORGANIZATION_GATEWAYS_LIST",
                "RIGHT_ORGANIZATION_GATEWAYS_CREATE",
                "RIGHT_ORGANIZATION_CLIENTS_LIST",
                "RIGHT_ORGANIZATION_CLIENTS_CREATE",
                "RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR",
                "RIGHT_ORGANIZATION_ALL",
                "RIGHT_SEND_INVITES",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_INFO",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_LIST",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE",
                "RIGHT_AUTHENTICATION_PROVIDER_CREATE",
                "RIGHT_AUTHENTICATION_PROVIDER_INFO",
                "RIGHT_AUTHENTICATION_PROVIDER_LIST",
                "RIGHT_AUTHENTICATION_PROVIDER_UPDATE",
                "RIGHT_AUTHENTICATION_PROVIDER_DELETE",
                "RIGHT_EXTERNAL_USER_CREATE",
                "RIGHT_EXTERNAL_USER_INFO",
                "RIGHT_EXTERNAL_USER_DELETE",
                "RIGHT_PACKET_BROKER_AGENT_READ",
                "RIGHT_PACKET_BROKER_AGENT_WRITE",
                "RIGHT_TENANT_CONFIGURATION_UPDATE",
                "RIGHT_LABEL_CREATE",
                "RIGHT_LABEL_INFO",
                "RIGHT_LABELS_LIST",
                "RIGHT_LABEL_UPDATE",
                "RIGHT_LABEL_DELETE",
                "RIGHT_LABEL_ASSIGN",
                "RIGHT_ALL"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "user_ids": {
            "properties": {
              "email": {
                "description": "Secondary identifier, which can only be used in specific requests.",
                "type": "string"
              },
              "user_id": {
                "description": "This ID shares namespace with organization IDs.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "user_session_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "universal_rights": {
        "properties": {
          "rights": {
            "items": {
              "default": "right_invalid",
              "description": "Right is the enum that defines all the different rights to do something in the network.\n\n - RIGHT_USER_INFO: The right to view user information.\n - RIGHT_USER_SETTINGS_BASIC: The right to edit basic user settings.\n - RIGHT_USER_LIST: The right to list users accounts.\n - RIGHT_USER_CREATE: The right to create an user account.\n - RIGHT_USER_SETTINGS_API_KEYS: The right to view and edit user API keys.\n - RIGHT_USER_DELETE: The right to delete user account.\n - RIGHT_USER_PURGE: The right to purge user account.\n - RIGHT_USER_AUTHORIZED_CLIENTS: The right to view and edit authorized OAuth clients of the user.\n - RIGHT_USER_APPLICATIONS_LIST: The right to list applications the user is a collaborator of.\n - RIGHT_USER_APPLICATIONS_CREATE: The right to create an application under the user account.\n - RIGHT_USER_GATEWAYS_LIST: The right to list gateways the user is a collaborator of.\n - RIGHT_USER_GATEWAYS_CREATE: The right to create a gateway under the account of the user.\n - RIGHT_USER_CLIENTS_LIST: The right to list OAuth clients the user is a collaborator of.\n - RIGHT_USER_CLIENTS_CREATE: The right to create an OAuth client under the account of the user.\n - RIGHT_USER_ORGANIZATIONS_LIST: The right to list organizations the user is a member of.\n - RIGHT_USER_ORGANIZATIONS_CREATE: The right to create an organization under the user account.\n - RIGHT_USER_NOTIFICATIONS_READ: The right to read notifications sent to the user.\n - RIGHT_USER_ALL: The pseudo-right for all (current and future) user rights.\n - RIGHT_APPLICATION_INFO: The right to view application information.\n - RIGHT_APPLICATION_SETTINGS_BASIC: The right to edit basic application settings.\n - RIGHT_APPLICATION_SETTINGS_API_KEYS: The right to view and edit application API keys.\n - RIGHT_APPLICATION_SETTINGS_COLLABORATORS: The right to view and edit application collaborators.\n - RIGHT_APPLICATION_SETTINGS_PACKAGES: The right to view and edit application packages and associations.\n - RIGHT_APPLICATION_DELETE: The right to delete application.\n - RIGHT_APPLICATION_PURGE: The right to purge application.\n - RIGHT_APPLICATION_DEVICES_READ: The right to view devices in application.\n - RIGHT_APPLICATION_DEVICES_WRITE: The right to create devices in application.\n - RIGHT_APPLICATION_DEVICES_READ_KEYS: The right to view device keys in application.\nNote that keys may not be stored in a way that supports viewing them.\n - RIGHT_APPLICATION_DEVICES_WRITE_KEYS: The right to edit device keys in application.\n - RIGHT_APPLICATION_TRAFFIC_READ: The right to read application traffic (uplink and downlink).\n - RIGHT_APPLICATION_TRAFFIC_UP_WRITE: The right to write uplink application traffic.\n - RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE: The right to write downlink application traffic.\n - RIGHT_APPLICATION_LINK: The right to link as Application to a Network Server for traffic exchange,\ni.e. read uplink and write downlink (API keys only).\nThis right is typically only given to an Application Server.\nThis right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ,\nand RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.\n - RIGHT_APPLICATION_ALL: The pseudo-right for all (current and future) application rights.\n - RIGHT_CLIENT_ALL: The pseudo-right for all (current and future) OAuth client rights.\n - RIGHT_CLIENT_INFO: The right to read client information.\n - RIGHT_CLIENT_SETTINGS_BASIC: The right to edit basic client settings.\n - RIGHT_CLIENT_SETTINGS_COLLABORATORS: The right to view and edit client collaborators.\n - RIGHT_CLIENT_DELETE: The right to delete a client.\n - RIGHT_CLIENT_PURGE: The right to purge a client.\n - RIGHT_GATEWAY_INFO: The right to view gateway information.\n - RIGHT_GATEWAY_SETTINGS_BASIC: The right to edit basic gateway settings.\n - RIGHT_GATEWAY_SETTINGS_API_KEYS: The right to view and edit gateway API keys.\n - RIGHT_GATEWAY_SETTINGS_COLLABORATORS: The right to view and edit gateway collaborators.\n - RIGHT_GATEWAY_DELETE: The right to delete gateway.\n - RIGHT_GATEWAY_PURGE: The right to purge gateway.\n - RIGHT_GATEWAY_TRAFFIC_READ: The right to read gateway traffic.\n - RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE: The right to write downlink gateway traffic.\n - RIGHT_GATEWAY_LINK: The right to link as Gateway to a Gateway Server for traffic exchange,\ni.e. write uplink and read downlink (API keys only)\nThis right is typically only given to a gateway.\nThis right implies RIGHT_GATEWAY_INFO.\n - RIGHT_GATEWAY_STATUS_READ: The right to view gateway status.\n - RIGHT_GATEWAY_LOCATION_READ: The right to view view gateway location.\n - RIGHT_GATEWAY_WRITE_SECRETS: The right to store secrets associated with this gateway.\n - RIGHT_GATEWAY_READ_SECRETS: The right to retrieve secrets associated with this gateway.\n - RIGHT_GATEWAY_ALL: The pseudo-right for all (current and future) gateway rights.\n - RIGHT_ORGANIZATION_INFO: The right to view organization information.\n - RIGHT_ORGANIZATION_SETTINGS_BASIC: The right to edit basic organization settings.\n - RIGHT_ORGANIZATION_SETTINGS_API_KEYS: The right to view and edit organization API keys.\n - RIGHT_ORGANIZATION_SETTINGS_MEMBERS: The right to view and edit organization members.\n - RIGHT_ORGANIZATION_DELETE: The right to delete organization.\n - RIGHT_ORGANIZATION_PURGE: The right to purge organization.\n - RIGHT_ORGANIZATION_APPLICATIONS_LIST: The right to list the applications the organization is a collaborator of.\n - RIGHT_ORGANIZATION_APPLICATIONS_CREATE: The right to create an application under the organization.\n - RIGHT_ORGANIZATION_GATEWAYS_LIST: The right to list the gateways the organization is a collaborator of.\n - RIGHT_ORGANIZATION_GATEWAYS_CREATE: The right to create a gateway under the organization.\n - RIGHT_ORGANIZATION_CLIENTS_LIST: The right to list the OAuth clients the organization is a collaborator of.\n - RIGHT_ORGANIZATION_CLIENTS_CREATE: The right to create an OAuth client under the organization.\n - RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR: The right to add the organization as a collaborator on an existing entity.\n - RIGHT_ORGANIZATION_ALL: The pseudo-right for all (current and future) organization rights.\n - RIGHT_SEND_INVITES: The right to send invites to new users.\nNote that this is not prefixed with \"USER_\"; it is not a right on the user entity.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE: The right to create an alert notification profile.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_INFO: The right to view an alert notification profile information.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_LIST: The right to list the alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE: The right to update an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE: The right to delete an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE: The right to create an alert notification receiver.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO: The right to view an alert notification receiver information.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST: The right to list the alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE: The right to update an alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE: The right to delete an alert notification receivers.\n - RIGHT_AUTHENTICATION_PROVIDER_CREATE: The right to create an authentication provider.\n - RIGHT_AUTHENTICATION_PROVIDER_INFO: The right to view an authentication provider information.\n - RIGHT_AUTHENTICATION_PROVIDER_LIST: The right to list the authentication providers\n - RIGHT_AUTHENTICATION_PROVIDER_UPDATE: The right to update an authentication providers.\n - RIGHT_AUTHENTICATION_PROVIDER_DELETE: The right to delete an authentication providers.\n - RIGHT_EXTERNAL_USER_CREATE: The right to create an external user.\n - RIGHT_EXTERNAL_USER_INFO: The right to view an external user's information.\n - RIGHT_EXTERNAL_USER_DELETE: The right to delete an external user.\n - RIGHT_PACKET_BROKER_AGENT_READ: The right to read any information related to the PBA.\n - RIGHT_PACKET_BROKER_AGENT_WRITE: The right to perform operations in the PBA.\n - RIGHT_TENANT_CONFIGURATION_UPDATE: The right to update a tenant's configuration.\n - RIGHT_LABEL_CREATE: The right to create a label.\n - RIGHT_LABEL_INFO: The right to view a label's information.\n - RIGHT_LABELS_LIST: The right to list the labels.\n - RIGHT_LABEL_UPDATE: The right to update a label.\n - RIGHT_LABEL_DELETE: The right to delete a label.\n - RIGHT_LABEL_ASSIGN: The right to assign a label to an entity.\n - RIGHT_ALL: The pseudo-right for all (current and future) possible rights.",
              "enum": [
                "right_invalid",
                "RIGHT_USER_INFO",
                "RIGHT_USER_SETTINGS_BASIC",
                "RIGHT_USER_LIST",
                "RIGHT_USER_CREATE",
                "RIGHT_USER_SETTINGS_API_KEYS",
                "RIGHT_USER_DELETE",
                "RIGHT_USER_PURGE",
                "RIGHT_USER_AUTHORIZED_CLIENTS",
                "RIGHT_USER_APPLICATIONS_LIST",
                "RIGHT_USER_APPLICATIONS_CREATE",
                "RIGHT_USER_GATEWAYS_LIST",
                "RIGHT_USER_GATEWAYS_CREATE",
                "RIGHT_USER_CLIENTS_LIST",
                "RIGHT_USER_CLIENTS_CREATE",
                "RIGHT_USER_ORGANIZATIONS_LIST",
                "RIGHT_USER_ORGANIZATIONS_CREATE",
                "RIGHT_USER_NOTIFICATIONS_READ",
                "RIGHT_USER_ALL",
                "RIGHT_APPLICATION_INFO",
                "RIGHT_APPLICATION_SETTINGS_BASIC",
                "RIGHT_APPLICATION_SETTINGS_API_KEYS",
                "RIGHT_APPLICATION_SETTINGS_COLLABORATORS",
                "RIGHT_APPLICATION_SETTINGS_PACKAGES",
                "RIGHT_APPLICATION_DELETE",
                "RIGHT_APPLICATION_PURGE",
                "RIGHT_APPLICATION_DEVICES_READ",
                "RIGHT_APPLICATION_DEVICES_WRITE",
                "RIGHT_APPLICATION_DEVICES_READ_KEYS",
                "RIGHT_APPLICATION_DEVICES_WRITE_KEYS",
                "RIGHT_APPLICATION_TRAFFIC_READ",
                "RIGHT_APPLICATION_TRAFFIC_UP_WRITE",
                "RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE",
                "RIGHT_APPLICATION_LINK",
                "RIGHT_APPLICATION_ALL",
                "RIGHT_CLIENT_ALL",
                "RIGHT_CLIENT_INFO",
                "RIGHT_CLIENT_SETTINGS_BASIC",
                "RIGHT_CLIENT_SETTINGS_COLLABORATORS",
                "RIGHT_CLIENT_DELETE",
                "RIGHT_CLIENT_PURGE",
                "RIGHT_GATEWAY_INFO",
                "RIGHT_GATEWAY_SETTINGS_BASIC",
                "RIGHT_GATEWAY_SETTINGS_API_KEYS",
                "RIGHT_GATEWAY_SETTINGS_COLLABORATORS",
                "RIGHT_GATEWAY_DELETE",
                "RIGHT_GATEWAY_PURGE",
                "RIGHT_GATEWAY_TRAFFIC_READ",
                "RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE",
                "RIGHT_GATEWAY_LINK",
                "RIGHT_GATEWAY_STATUS_READ",
                "RIGHT_GATEWAY_LOCATION_READ",
                "RIGHT_GATEWAY_WRITE_SECRETS",
                "RIGHT_GATEWAY_READ_SECRETS",
                "RIGHT_GATEWAY_ALL",
                "RIGHT_ORGANIZATION_INFO",
                "RIGHT_ORGANIZATION_SETTINGS_BASIC",
                "RIGHT_ORGANIZATION_SETTINGS_API_KEYS",
                "RIGHT_ORGANIZATION_SETTINGS_MEMBERS",
                "RIGHT_ORGANIZATION_DELETE",
                "RIGHT_ORGANIZATION_PURGE",
                "RIGHT_ORGANIZATION_APPLICATIONS_LIST",
                "RIGHT_ORGANIZATION_APPLICATIONS_CREATE",
                "RIGHT_ORGANIZATION_GATEWAYS_LIST",
                "RIGHT_ORGANIZATION_GATEWAYS_CREATE",
                "RIGHT_ORGANIZATION_CLIENTS_LIST",
                "RIGHT_ORGANIZATION_CLIENTS_CREATE",
                "RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR",
                "RIGHT_ORGANIZATION_ALL",
                "RIGHT_SEND_INVITES",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_INFO",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_LIST",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE",
                "RIGHT_AUTHENTICATION_PROVIDER_CREATE",
                "RIGHT_AUTHENTICATION_PROVIDER_INFO",
                "RIGHT_AUTHENTICATION_PROVIDER_LIST",
                "RIGHT_AUTHENTICATION_PROVIDER_UPDATE",
                "RIGHT_AUTHENTICATION_PROVIDER_DELETE",
                "RIGHT_EXTERNAL_USER_CREATE",
                "RIGHT_EXTERNAL_USER_INFO",
                "RIGHT_EXTERNAL_USER_DELETE",
                "RIGHT_PACKET_BROKER_AGENT_READ",
                "RIGHT_PACKET_BROKER_AGENT_WRITE",
                "RIGHT_TENANT_CONFIGURATION_UPDATE",
                "RIGHT_LABEL_CREATE",
                "RIGHT_LABEL_INFO",
                "RIGHT_LABELS_LIST",
                "RIGHT_LABEL_UPDATE",
                "RIGHT_LABEL_DELETE",
                "RIGHT_LABEL_ASSIGN",
                "RIGHT_ALL"
              ],
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "user_session": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "type": "string"
          },
          "session_id": {
            "type": "string"
          },
          "session_secret": {
            "description": "The session secret is used to compose an authorization key and is never returned.",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          },
          "user_ids": {
            "properties": {
              "email": {
                "description": "Secondary identifier, which can only be used in specific requests.",
                "type": "string"
              },
              "user_id": {
                "description": "This ID shares namespace with organization IDs.",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    AuthInfoResponseGatewayToken

    Fields
    Name Type Description
    gateway_ids object
    rights string
    Schema
    {
      "gateway_ids": {
        "properties": {
          "eui": {
            "description": "Secondary identifier, which can only be used in specific requests.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "gateway_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "rights": {
        "items": {
          "default": "right_invalid",
          "description": "Right is the enum that defines all the different rights to do something in the network.\n\n - RIGHT_USER_INFO: The right to view user information.\n - RIGHT_USER_SETTINGS_BASIC: The right to edit basic user settings.\n - RIGHT_USER_LIST: The right to list users accounts.\n - RIGHT_USER_CREATE: The right to create an user account.\n - RIGHT_USER_SETTINGS_API_KEYS: The right to view and edit user API keys.\n - RIGHT_USER_DELETE: The right to delete user account.\n - RIGHT_USER_PURGE: The right to purge user account.\n - RIGHT_USER_AUTHORIZED_CLIENTS: The right to view and edit authorized OAuth clients of the user.\n - RIGHT_USER_APPLICATIONS_LIST: The right to list applications the user is a collaborator of.\n - RIGHT_USER_APPLICATIONS_CREATE: The right to create an application under the user account.\n - RIGHT_USER_GATEWAYS_LIST: The right to list gateways the user is a collaborator of.\n - RIGHT_USER_GATEWAYS_CREATE: The right to create a gateway under the account of the user.\n - RIGHT_USER_CLIENTS_LIST: The right to list OAuth clients the user is a collaborator of.\n - RIGHT_USER_CLIENTS_CREATE: The right to create an OAuth client under the account of the user.\n - RIGHT_USER_ORGANIZATIONS_LIST: The right to list organizations the user is a member of.\n - RIGHT_USER_ORGANIZATIONS_CREATE: The right to create an organization under the user account.\n - RIGHT_USER_NOTIFICATIONS_READ: The right to read notifications sent to the user.\n - RIGHT_USER_ALL: The pseudo-right for all (current and future) user rights.\n - RIGHT_APPLICATION_INFO: The right to view application information.\n - RIGHT_APPLICATION_SETTINGS_BASIC: The right to edit basic application settings.\n - RIGHT_APPLICATION_SETTINGS_API_KEYS: The right to view and edit application API keys.\n - RIGHT_APPLICATION_SETTINGS_COLLABORATORS: The right to view and edit application collaborators.\n - RIGHT_APPLICATION_SETTINGS_PACKAGES: The right to view and edit application packages and associations.\n - RIGHT_APPLICATION_DELETE: The right to delete application.\n - RIGHT_APPLICATION_PURGE: The right to purge application.\n - RIGHT_APPLICATION_DEVICES_READ: The right to view devices in application.\n - RIGHT_APPLICATION_DEVICES_WRITE: The right to create devices in application.\n - RIGHT_APPLICATION_DEVICES_READ_KEYS: The right to view device keys in application.\nNote that keys may not be stored in a way that supports viewing them.\n - RIGHT_APPLICATION_DEVICES_WRITE_KEYS: The right to edit device keys in application.\n - RIGHT_APPLICATION_TRAFFIC_READ: The right to read application traffic (uplink and downlink).\n - RIGHT_APPLICATION_TRAFFIC_UP_WRITE: The right to write uplink application traffic.\n - RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE: The right to write downlink application traffic.\n - RIGHT_APPLICATION_LINK: The right to link as Application to a Network Server for traffic exchange,\ni.e. read uplink and write downlink (API keys only).\nThis right is typically only given to an Application Server.\nThis right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ,\nand RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.\n - RIGHT_APPLICATION_ALL: The pseudo-right for all (current and future) application rights.\n - RIGHT_CLIENT_ALL: The pseudo-right for all (current and future) OAuth client rights.\n - RIGHT_CLIENT_INFO: The right to read client information.\n - RIGHT_CLIENT_SETTINGS_BASIC: The right to edit basic client settings.\n - RIGHT_CLIENT_SETTINGS_COLLABORATORS: The right to view and edit client collaborators.\n - RIGHT_CLIENT_DELETE: The right to delete a client.\n - RIGHT_CLIENT_PURGE: The right to purge a client.\n - RIGHT_GATEWAY_INFO: The right to view gateway information.\n - RIGHT_GATEWAY_SETTINGS_BASIC: The right to edit basic gateway settings.\n - RIGHT_GATEWAY_SETTINGS_API_KEYS: The right to view and edit gateway API keys.\n - RIGHT_GATEWAY_SETTINGS_COLLABORATORS: The right to view and edit gateway collaborators.\n - RIGHT_GATEWAY_DELETE: The right to delete gateway.\n - RIGHT_GATEWAY_PURGE: The right to purge gateway.\n - RIGHT_GATEWAY_TRAFFIC_READ: The right to read gateway traffic.\n - RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE: The right to write downlink gateway traffic.\n - RIGHT_GATEWAY_LINK: The right to link as Gateway to a Gateway Server for traffic exchange,\ni.e. write uplink and read downlink (API keys only)\nThis right is typically only given to a gateway.\nThis right implies RIGHT_GATEWAY_INFO.\n - RIGHT_GATEWAY_STATUS_READ: The right to view gateway status.\n - RIGHT_GATEWAY_LOCATION_READ: The right to view view gateway location.\n - RIGHT_GATEWAY_WRITE_SECRETS: The right to store secrets associated with this gateway.\n - RIGHT_GATEWAY_READ_SECRETS: The right to retrieve secrets associated with this gateway.\n - RIGHT_GATEWAY_ALL: The pseudo-right for all (current and future) gateway rights.\n - RIGHT_ORGANIZATION_INFO: The right to view organization information.\n - RIGHT_ORGANIZATION_SETTINGS_BASIC: The right to edit basic organization settings.\n - RIGHT_ORGANIZATION_SETTINGS_API_KEYS: The right to view and edit organization API keys.\n - RIGHT_ORGANIZATION_SETTINGS_MEMBERS: The right to view and edit organization members.\n - RIGHT_ORGANIZATION_DELETE: The right to delete organization.\n - RIGHT_ORGANIZATION_PURGE: The right to purge organization.\n - RIGHT_ORGANIZATION_APPLICATIONS_LIST: The right to list the applications the organization is a collaborator of.\n - RIGHT_ORGANIZATION_APPLICATIONS_CREATE: The right to create an application under the organization.\n - RIGHT_ORGANIZATION_GATEWAYS_LIST: The right to list the gateways the organization is a collaborator of.\n - RIGHT_ORGANIZATION_GATEWAYS_CREATE: The right to create a gateway under the organization.\n - RIGHT_ORGANIZATION_CLIENTS_LIST: The right to list the OAuth clients the organization is a collaborator of.\n - RIGHT_ORGANIZATION_CLIENTS_CREATE: The right to create an OAuth client under the organization.\n - RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR: The right to add the organization as a collaborator on an existing entity.\n - RIGHT_ORGANIZATION_ALL: The pseudo-right for all (current and future) organization rights.\n - RIGHT_SEND_INVITES: The right to send invites to new users.\nNote that this is not prefixed with \"USER_\"; it is not a right on the user entity.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE: The right to create an alert notification profile.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_INFO: The right to view an alert notification profile information.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_LIST: The right to list the alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE: The right to update an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE: The right to delete an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE: The right to create an alert notification receiver.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO: The right to view an alert notification receiver information.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST: The right to list the alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE: The right to update an alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE: The right to delete an alert notification receivers.\n - RIGHT_AUTHENTICATION_PROVIDER_CREATE: The right to create an authentication provider.\n - RIGHT_AUTHENTICATION_PROVIDER_INFO: The right to view an authentication provider information.\n - RIGHT_AUTHENTICATION_PROVIDER_LIST: The right to list the authentication providers\n - RIGHT_AUTHENTICATION_PROVIDER_UPDATE: The right to update an authentication providers.\n - RIGHT_AUTHENTICATION_PROVIDER_DELETE: The right to delete an authentication providers.\n - RIGHT_EXTERNAL_USER_CREATE: The right to create an external user.\n - RIGHT_EXTERNAL_USER_INFO: The right to view an external user's information.\n - RIGHT_EXTERNAL_USER_DELETE: The right to delete an external user.\n - RIGHT_PACKET_BROKER_AGENT_READ: The right to read any information related to the PBA.\n - RIGHT_PACKET_BROKER_AGENT_WRITE: The right to perform operations in the PBA.\n - RIGHT_TENANT_CONFIGURATION_UPDATE: The right to update a tenant's configuration.\n - RIGHT_LABEL_CREATE: The right to create a label.\n - RIGHT_LABEL_INFO: The right to view a label's information.\n - RIGHT_LABELS_LIST: The right to list the labels.\n - RIGHT_LABEL_UPDATE: The right to update a label.\n - RIGHT_LABEL_DELETE: The right to delete a label.\n - RIGHT_LABEL_ASSIGN: The right to assign a label to an entity.\n - RIGHT_ALL: The pseudo-right for all (current and future) possible rights.",
          "enum": [
            "right_invalid",
            "RIGHT_USER_INFO",
            "RIGHT_USER_SETTINGS_BASIC",
            "RIGHT_USER_LIST",
            "RIGHT_USER_CREATE",
            "RIGHT_USER_SETTINGS_API_KEYS",
            "RIGHT_USER_DELETE",
            "RIGHT_USER_PURGE",
            "RIGHT_USER_AUTHORIZED_CLIENTS",
            "RIGHT_USER_APPLICATIONS_LIST",
            "RIGHT_USER_APPLICATIONS_CREATE",
            "RIGHT_USER_GATEWAYS_LIST",
            "RIGHT_USER_GATEWAYS_CREATE",
            "RIGHT_USER_CLIENTS_LIST",
            "RIGHT_USER_CLIENTS_CREATE",
            "RIGHT_USER_ORGANIZATIONS_LIST",
            "RIGHT_USER_ORGANIZATIONS_CREATE",
            "RIGHT_USER_NOTIFICATIONS_READ",
            "RIGHT_USER_ALL",
            "RIGHT_APPLICATION_INFO",
            "RIGHT_APPLICATION_SETTINGS_BASIC",
            "RIGHT_APPLICATION_SETTINGS_API_KEYS",
            "RIGHT_APPLICATION_SETTINGS_COLLABORATORS",
            "RIGHT_APPLICATION_SETTINGS_PACKAGES",
            "RIGHT_APPLICATION_DELETE",
            "RIGHT_APPLICATION_PURGE",
            "RIGHT_APPLICATION_DEVICES_READ",
            "RIGHT_APPLICATION_DEVICES_WRITE",
            "RIGHT_APPLICATION_DEVICES_READ_KEYS",
            "RIGHT_APPLICATION_DEVICES_WRITE_KEYS",
            "RIGHT_APPLICATION_TRAFFIC_READ",
            "RIGHT_APPLICATION_TRAFFIC_UP_WRITE",
            "RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE",
            "RIGHT_APPLICATION_LINK",
            "RIGHT_APPLICATION_ALL",
            "RIGHT_CLIENT_ALL",
            "RIGHT_CLIENT_INFO",
            "RIGHT_CLIENT_SETTINGS_BASIC",
            "RIGHT_CLIENT_SETTINGS_COLLABORATORS",
            "RIGHT_CLIENT_DELETE",
            "RIGHT_CLIENT_PURGE",
            "RIGHT_GATEWAY_INFO",
            "RIGHT_GATEWAY_SETTINGS_BASIC",
            "RIGHT_GATEWAY_SETTINGS_API_KEYS",
            "RIGHT_GATEWAY_SETTINGS_COLLABORATORS",
            "RIGHT_GATEWAY_DELETE",
            "RIGHT_GATEWAY_PURGE",
            "RIGHT_GATEWAY_TRAFFIC_READ",
            "RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE",
            "RIGHT_GATEWAY_LINK",
            "RIGHT_GATEWAY_STATUS_READ",
            "RIGHT_GATEWAY_LOCATION_READ",
            "RIGHT_GATEWAY_WRITE_SECRETS",
            "RIGHT_GATEWAY_READ_SECRETS",
            "RIGHT_GATEWAY_ALL",
            "RIGHT_ORGANIZATION_INFO",
            "RIGHT_ORGANIZATION_SETTINGS_BASIC",
            "RIGHT_ORGANIZATION_SETTINGS_API_KEYS",
            "RIGHT_ORGANIZATION_SETTINGS_MEMBERS",
            "RIGHT_ORGANIZATION_DELETE",
            "RIGHT_ORGANIZATION_PURGE",
            "RIGHT_ORGANIZATION_APPLICATIONS_LIST",
            "RIGHT_ORGANIZATION_APPLICATIONS_CREATE",
            "RIGHT_ORGANIZATION_GATEWAYS_LIST",
            "RIGHT_ORGANIZATION_GATEWAYS_CREATE",
            "RIGHT_ORGANIZATION_CLIENTS_LIST",
            "RIGHT_ORGANIZATION_CLIENTS_CREATE",
            "RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR",
            "RIGHT_ORGANIZATION_ALL",
            "RIGHT_SEND_INVITES",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_INFO",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_LIST",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE",
            "RIGHT_AUTHENTICATION_PROVIDER_CREATE",
            "RIGHT_AUTHENTICATION_PROVIDER_INFO",
            "RIGHT_AUTHENTICATION_PROVIDER_LIST",
            "RIGHT_AUTHENTICATION_PROVIDER_UPDATE",
            "RIGHT_AUTHENTICATION_PROVIDER_DELETE",
            "RIGHT_EXTERNAL_USER_CREATE",
            "RIGHT_EXTERNAL_USER_INFO",
            "RIGHT_EXTERNAL_USER_DELETE",
            "RIGHT_PACKET_BROKER_AGENT_READ",
            "RIGHT_PACKET_BROKER_AGENT_WRITE",
            "RIGHT_TENANT_CONFIGURATION_UPDATE",
            "RIGHT_LABEL_CREATE",
            "RIGHT_LABEL_INFO",
            "RIGHT_LABELS_LIST",
            "RIGHT_LABEL_UPDATE",
            "RIGHT_LABEL_DELETE",
            "RIGHT_LABEL_ASSIGN",
            "RIGHT_ALL"
          ],
          "type": "string"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    AuthenticationProvider

    Fields
    Name Type Description
    allow_registrations boolean
    allowed_email_domains string Allowed email domains for this provider. If this field is set, only emails with the specified domains will be allowed to login. The server also skips checking the `email_verified` field of the claims token. We highly recommend admins of such providers to not allow users to change their email addresses with the provider due to lack of verification.
    configuration object
    created_at string
    ids object
    name string
    updated_at string
    Schema
    {
      "allow_registrations": {
        "type": "boolean"
      },
      "allowed_email_domains": {
        "description": "Allowed email domains for this provider.\nIf this field is set, only emails with the specified domains will be allowed to login.\nThe server also skips checking the `email_verified` field of the claims token.\nWe highly recommend admins of such providers to not allow\nusers to change their email addresses with the provider due to lack of verification.",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "configuration": {
        "properties": {
          "oidc": {
            "properties": {
              "client_id": {
                "type": "string"
              },
              "client_secret": {
                "type": "string"
              },
              "provider_url": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "created_at": {
        "format": "date-time",
        "type": "string"
      },
      "ids": {
        "properties": {
          "provider_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": {
        "type": "string"
      },
      "updated_at": {
        "format": "date-time",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    AuthenticationProviderConfiguration

    Fields
    Name Type Description
    oidc object
    Schema
    {
      "oidc": {
        "properties": {
          "client_id": {
            "type": "string"
          },
          "client_secret": {
            "type": "string"
          },
          "provider_url": {
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    AuthenticationProviderIdentifiers

    Fields
    Name Type Description
    provider_id string
    Schema
    {
      "provider_id": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    AuthenticationProviderRegistryUpdateBody

    Fields
    Name Type Description
    field_mask string
    provider object
    Schema
    {
      "field_mask": {
        "type": "string"
      },
      "provider": {
        "properties": {
          "allow_registrations": {
            "type": "boolean"
          },
          "allowed_email_domains": {
            "description": "Allowed email domains for this provider.\nIf this field is set, only emails with the specified domains will be allowed to login.\nThe server also skips checking the `email_verified` field of the claims token.\nWe highly recommend admins of such providers to not allow\nusers to change their email addresses with the provider due to lack of verification.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "configuration": {
            "properties": {
              "oidc": {
                "properties": {
                  "client_id": {
                    "type": "string"
                  },
                  "client_secret": {
                    "type": "string"
                  },
                  "provider_url": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "ids": {
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    AuthenticationProviders

    Fields
    Name Type Description
    providers object
    Schema
    {
      "providers": {
        "items": {
          "properties": {
            "allow_registrations": {
              "type": "boolean"
            },
            "allowed_email_domains": {
              "description": "Allowed email domains for this provider.\nIf this field is set, only emails with the specified domains will be allowed to login.\nThe server also skips checking the `email_verified` field of the claims token.\nWe highly recommend admins of such providers to not allow\nusers to change their email addresses with the provider due to lack of verification.",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "configuration": {
              "properties": {
                "oidc": {
                  "properties": {
                    "client_id": {
                      "type": "string"
                    },
                    "client_secret": {
                      "type": "string"
                    },
                    "provider_url": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "created_at": {
              "format": "date-time",
              "type": "string"
            },
            "ids": {
              "properties": {
                "provider_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "name": {
              "type": "string"
            },
            "updated_at": {
              "format": "date-time",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    AzureIoTHubEvent

    Fields
    Name Type Description
    body object
    end_device_ids object
    properties object
    Schema
    {
      "body": {
        "type": "object"
      },
      "end_device_ids": {
        "properties": {
          "application_ids": {
            "properties": {
              "application_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "device_id": {
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "properties": {
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    BandDescription

    Fields
    Name Type Description
    adr_ack_limit string
    beacon object
    boot_dwell_time object
    cf_list_type string
    data_rates object
    default_max_eirp number
    default_rx2_parameters object
    downlink_channels object
    freq_multiplier string
    id string
    implements_cf_list boolean
    join_accept_delay_1 string
    join_accept_delay_2 string
    max_adr_data_rate_index string
    max_downlink_channels integer
    max_fcnt_gap string
    max_retransmit_timeout string
    max_uplink_channels integer
    min_retransmit_timeout string
    ping_slot_frequencies string
    receive_delay_1 string
    receive_delay_2 string
    relay object
    relay_forward_delay string
    relay_receive_delay string
    sub_bands object
    supports_dynamic_adr boolean
    tx_offset number
    tx_param_setup_req_support boolean
    uplink_channels object
    Schema
    {
      "adr_ack_limit": {
        "default": "ADR_ACK_LIMIT_1",
        "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"
        ],
        "type": "string"
      },
      "beacon": {
        "properties": {
          "coding_rate": {
            "type": "string"
          },
          "data_rate_index": {
            "default": "DATA_RATE_0",
            "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"
            ],
            "type": "string"
          },
          "frequencies": {
            "items": {
              "format": "uint64",
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "boot_dwell_time": {
        "properties": {
          "downlinks": {
            "type": "boolean"
          },
          "uplinks": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "cf_list_type": {
        "default": "FREQUENCIES",
        "enum": [
          "FREQUENCIES",
          "CHANNEL_MASKS"
        ],
        "type": "string"
      },
      "data_rates": {
        "additionalProperties": {
          "properties": {
            "rate": {
              "properties": {
                "fsk": {
                  "properties": {
                    "bit_rate": {
                      "description": "Bit rate (bps).",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "lora": {
                  "properties": {
                    "bandwidth": {
                      "description": "Bandwidth (Hz).",
                      "format": "int64",
                      "type": "integer"
                    },
                    "coding_rate": {
                      "type": "string"
                    },
                    "spreading_factor": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "lrfhss": {
                  "properties": {
                    "coding_rate": {
                      "type": "string"
                    },
                    "modulation_type": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "operating_channel_width": {
                      "description": "Operating Channel Width (Hz).",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "type": "object"
      },
      "default_max_eirp": {
        "format": "float",
        "type": "number"
      },
      "default_rx2_parameters": {
        "properties": {
          "data_rate_index": {
            "default": "DATA_RATE_0",
            "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"
            ],
            "type": "string"
          },
          "frequency": {
            "format": "uint64",
            "type": "string"
          }
        },
        "type": "object"
      },
      "downlink_channels": {
        "items": {
          "properties": {
            "frequency": {
              "format": "uint64",
              "type": "string"
            },
            "max_data_rate": {
              "default": "DATA_RATE_0",
              "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"
              ],
              "type": "string"
            },
            "min_data_rate": {
              "default": "DATA_RATE_0",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "freq_multiplier": {
        "format": "uint64",
        "type": "string"
      },
      "id": {
        "type": "string"
      },
      "implements_cf_list": {
        "type": "boolean"
      },
      "join_accept_delay_1": {
        "type": "string"
      },
      "join_accept_delay_2": {
        "type": "string"
      },
      "max_adr_data_rate_index": {
        "default": "DATA_RATE_0",
        "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"
        ],
        "type": "string"
      },
      "max_downlink_channels": {
        "format": "int64",
        "type": "integer"
      },
      "max_fcnt_gap": {
        "format": "uint64",
        "type": "string"
      },
      "max_retransmit_timeout": {
        "type": "string"
      },
      "max_uplink_channels": {
        "format": "int64",
        "type": "integer"
      },
      "min_retransmit_timeout": {
        "type": "string"
      },
      "ping_slot_frequencies": {
        "items": {
          "format": "uint64",
          "type": "string"
        },
        "type": "array"
      },
      "receive_delay_1": {
        "type": "string"
      },
      "receive_delay_2": {
        "type": "string"
      },
      "relay": {
        "properties": {
          "wor_channels": {
            "items": {
              "properties": {
                "ack_frequency": {
                  "format": "uint64",
                  "type": "string"
                },
                "data_rate_index": {
                  "default": "DATA_RATE_0",
                  "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"
                  ],
                  "type": "string"
                },
                "frequency": {
                  "format": "uint64",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "relay_forward_delay": {
        "type": "string"
      },
      "relay_receive_delay": {
        "type": "string"
      },
      "sub_bands": {
        "items": {
          "properties": {
            "duty_cycle": {
              "format": "float",
              "type": "number"
            },
            "max_eirp": {
              "format": "float",
              "type": "number"
            },
            "max_frequency": {
              "format": "uint64",
              "type": "string"
            },
            "min_frequency": {
              "format": "uint64",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "supports_dynamic_adr": {
        "type": "boolean"
      },
      "tx_offset": {
        "items": {
          "format": "float",
          "type": "number"
        },
        "type": "array"
      },
      "tx_param_setup_req_support": {
        "type": "boolean"
      },
      "uplink_channels": {
        "items": {
          "properties": {
            "frequency": {
              "format": "uint64",
              "type": "string"
            },
            "max_data_rate": {
              "default": "DATA_RATE_0",
              "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"
              ],
              "type": "string"
            },
            "min_data_rate": {
              "default": "DATA_RATE_0",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    BandDescriptionChannel

    Fields
    Name Type Description
    frequency string
    max_data_rate string
    min_data_rate string
    Schema
    {
      "frequency": {
        "format": "uint64",
        "type": "string"
      },
      "max_data_rate": {
        "default": "DATA_RATE_0",
        "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"
        ],
        "type": "string"
      },
      "min_data_rate": {
        "default": "DATA_RATE_0",
        "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"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    BandDescriptionRelayParameters

    Fields
    Name Type Description
    wor_channels object
    Schema
    {
      "wor_channels": {
        "items": {
          "properties": {
            "ack_frequency": {
              "format": "uint64",
              "type": "string"
            },
            "data_rate_index": {
              "default": "DATA_RATE_0",
              "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"
              ],
              "type": "string"
            },
            "frequency": {
              "format": "uint64",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    BatchGetGatewayConnectionStatsRequest

    Fields
    Name Type Description
    field_mask string The names of the gateway stats fields that should be returned. This mask will be applied on each entry returned.
    gateway_ids object
    Schema
    {
      "field_mask": {
        "description": "The names of the gateway stats fields that should be returned.\nThis mask will be applied on each entry returned.",
        "type": "string"
      },
      "gateway_ids": {
        "items": {
          "properties": {
            "eui": {
              "description": "Secondary identifier, which can only be used in specific requests.",
              "example": "70B3D57ED000ABCD",
              "format": "string",
              "type": "string"
            },
            "gateway_id": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    BatchGetGatewayConnectionStatsResponse

    Fields
    Name Type Description
    entries object The map key is the gateway identifier.
    Schema
    {
      "entries": {
        "additionalProperties": {
          "description": "Connection stats as monitored by the Gateway Server.",
          "properties": {
            "connected_at": {
              "format": "date-time",
              "type": "string"
            },
            "disconnected_at": {
              "format": "date-time",
              "type": "string"
            },
            "downlink_count": {
              "format": "uint64",
              "type": "string"
            },
            "gateway_remote_address": {
              "description": "Remote Address of the Gateway, as seen by the Gateway Server.",
              "properties": {
                "ip": {
                  "description": "IPv4 or IPv6 address.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "last_downlink_received_at": {
              "format": "date-time",
              "type": "string"
            },
            "last_status": {
              "properties": {
                "advanced": {
                  "title": "Advanced metadata fields\n- can be used for advanced information or experimental features that are not yet formally defined in the API\n- field names are written in snake_case",
                  "type": "object"
                },
                "antenna_locations": {
                  "items": {
                    "properties": {
                      "accuracy": {
                        "description": "The accuracy of the location (meters).",
                        "format": "int32",
                        "type": "integer"
                      },
                      "altitude": {
                        "description": "The altitude (meters), where 0 is the mean sea level.",
                        "format": "int32",
                        "type": "integer"
                      },
                      "latitude": {
                        "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                        "format": "double",
                        "type": "number"
                      },
                      "longitude": {
                        "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                        "format": "double",
                        "type": "number"
                      },
                      "source": {
                        "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.",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "title": "Location of each gateway's antenna\n- if left out, server uses registry-set location as fallback",
                  "type": "array"
                },
                "boot_time": {
                  "format": "date-time",
                  "title": "Boot time of the gateway\n- can be left out to save bandwidth; old value will be kept",
                  "type": "string"
                },
                "ip": {
                  "description": "IP addresses of this gateway.\nRepeated addresses can be used to communicate addresses of multiple interfaces (LAN, Public IP, ...).",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "metrics": {
                  "additionalProperties": {
                    "format": "float",
                    "type": "number"
                  },
                  "title": "Metrics\n- can be used for forwarding gateway metrics such as temperatures or performance metrics\n- map keys are written in snake_case",
                  "type": "object"
                },
                "time": {
                  "format": "date-time",
                  "title": "Current time of the gateway",
                  "type": "string"
                },
                "versions": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "title": "Versions of gateway subsystems\n- each field can be left out to save bandwidth; old value will be kept\n- map keys are written in snake_case\n- for example:\n    firmware: \"2.0.4\"\n    forwarder: \"v2-3.3.1\"\n    fpga: \"48\"\n    dsp: \"27\"\n    hal: \"v2-3.5.0\"",
                  "type": "object"
                }
              },
              "type": "object"
            },
            "last_status_received_at": {
              "format": "date-time",
              "type": "string"
            },
            "last_tx_acknowledgment_received_at": {
              "format": "date-time",
              "type": "string"
            },
            "last_uplink_received_at": {
              "format": "date-time",
              "type": "string"
            },
            "protocol": {
              "title": "Protocol used to connect (for example, udp, mqtt, grpc)",
              "type": "string"
            },
            "round_trip_times": {
              "properties": {
                "count": {
                  "format": "int64",
                  "type": "integer"
                },
                "max": {
                  "type": "string"
                },
                "median": {
                  "type": "string"
                },
                "min": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "sub_bands": {
              "description": "Statistics for each sub band.",
              "items": {
                "properties": {
                  "downlink_utilization": {
                    "description": "Utilization rate of the available duty-cycle. This value should not exceed downlink_utilization_limit.",
                    "format": "float",
                    "type": "number"
                  },
                  "downlink_utilization_limit": {
                    "description": "Duty-cycle limit of the sub-band as a fraction of time.",
                    "format": "float",
                    "type": "number"
                  },
                  "max_frequency": {
                    "format": "uint64",
                    "type": "string"
                  },
                  "min_frequency": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "tx_acknowledgment_count": {
              "format": "uint64",
              "type": "string"
            },
            "uplink_count": {
              "format": "uint64",
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "The map key is the gateway identifier.",
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    BatchGetTenantRegistryTotalsRequest

    Fields
    Name Type Description
    field_mask string
    tenant_ids object
    Schema
    {
      "field_mask": {
        "type": "string"
      },
      "tenant_ids": {
        "items": {
          "properties": {
            "tenant_id": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    BatchGetTenantRegistryTotalsResponse

    Fields
    Name Type Description
    totals object
    Schema
    {
      "totals": {
        "items": {
          "properties": {
            "tenant_ids": {
              "properties": {
                "tenant_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "totals": {
              "properties": {
                "activated_end_devices": {
                  "format": "uint64",
                  "type": "string"
                },
                "applications": {
                  "format": "uint64",
                  "type": "string"
                },
                "clients": {
                  "format": "uint64",
                  "type": "string"
                },
                "end_devices": {
                  "format": "uint64",
                  "type": "string"
                },
                "gateways": {
                  "format": "uint64",
                  "type": "string"
                },
                "organizations": {
                  "format": "uint64",
                  "type": "string"
                },
                "users": {
                  "format": "uint64",
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    BatchTenantRegistryTotals

    Fields
    Name Type Description
    tenant_ids object
    totals object
    Schema
    {
      "tenant_ids": {
        "properties": {
          "tenant_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "totals": {
        "properties": {
          "activated_end_devices": {
            "format": "uint64",
            "type": "string"
          },
          "applications": {
            "format": "uint64",
            "type": "string"
          },
          "clients": {
            "format": "uint64",
            "type": "string"
          },
          "end_devices": {
            "format": "uint64",
            "type": "string"
          },
          "gateways": {
            "format": "uint64",
            "type": "string"
          },
          "organizations": {
            "format": "uint64",
            "type": "string"
          },
          "users": {
            "format": "uint64",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    BatchUnclaimEndDevicesResponse

    Fields
    Name Type Description
    application_ids object
    failed object End devices that could not be unclaimed. The key is the device ID.
    Schema
    {
      "application_ids": {
        "properties": {
          "application_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "failed": {
        "additionalProperties": {
          "$ref": "#/definitions/v3ErrorDetails"
        },
        "description": "End devices that could not be unclaimed.\nThe key is the device ID.",
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    Billing

    Fields
    Name Type Description
    aws_saas_marketplace object
    counting object
    stripe object
    Schema
    {
      "aws_saas_marketplace": {
        "properties": {
          "customer_identifier": {
            "type": "string"
          },
          "product_code": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "counting": {
        "properties": {
          "end_devices": {
            "default": "ALL",
            "enum": [
              "ALL",
              "ONLY_ACTIVATED"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "stripe": {
        "properties": {
          "customer_id": {
            "type": "string"
          },
          "plan_id": {
            "type": "string"
          },
          "subscription_id": {
            "type": "string"
          },
          "subscription_item_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    BillingIdentifiers

    Fields
    Name Type Description
    billing_id string
    Schema
    {
      "billing_id": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    CFList

    Fields
    Name Type Description
    ch_masks boolean 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.
    freq integer Frequencies to be broadcasted, in hecto-Hz. These values are broadcasted as 24 bits unsigned integers. This field should not contain default values.
    type string
    Schema
    {
      "ch_masks": {
        "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
        "items": {
          "type": "boolean"
        },
        "type": "array"
      },
      "freq": {
        "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
        "items": {
          "format": "int64",
          "type": "integer"
        },
        "type": "array"
      },
      "type": {
        "default": "FREQUENCIES",
        "enum": [
          "FREQUENCIES",
          "CHANNEL_MASKS"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    CFListType

    Supported values
  • FREQUENCIES
  • CHANNEL_MASKS
  • Default: FREQUENCIES

    CUPSRedirection

    DEPRECATED: This message is deprecated and will be removed in a future version of The Things Stack.
    Fields
    Name Type Description
    auth_token string The Device Claiming Server will fill this field with a The Things Stack API Key.
    client_tls object
    current_gateway_key string The key set in the gateway to authenticate itself.
    target_cups_trust string Optional PEM encoded CA Root certificate. If this field is empty, DCS will attempt to dial the Target CUPS server and fetch the CA.
    target_cups_uri string CUPS URI for LoRa Basics Station CUPS redirection.
    Schema
    {
      "auth_token": {
        "description": "The Device Claiming Server will fill this field with a The Things Stack API Key.",
        "type": "string"
      },
      "client_tls": {
        "properties": {
          "cert": {
            "description": "PEM encoded Client Certificate.",
            "format": "byte",
            "type": "string"
          },
          "key": {
            "description": "PEM encoded Client Private Key.",
            "format": "byte",
            "type": "string"
          }
        },
        "type": "object"
      },
      "current_gateway_key": {
        "description": "The key set in the gateway to authenticate itself.",
        "type": "string"
      },
      "target_cups_trust": {
        "description": "Optional PEM encoded CA Root certificate. If this field is empty, DCS will attempt to dial the Target CUPS server and fetch the CA.",
        "format": "byte",
        "type": "string"
      },
      "target_cups_uri": {
        "description": "CUPS URI for LoRa Basics Station CUPS redirection.",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ChannelLoRaPerformance

    LoRa performance per channel.
    Fields
    Name Type Description
    agg_lora_rssi object Aggregated observed LoRa RSSI (channel RSSI adjusted for SNR) per frequency (Hz).
    time string
    Schema
    {
      "agg_lora_rssi": {
        "additionalProperties": {
          "format": "float",
          "type": "number"
        },
        "description": "Aggregated observed LoRa RSSI (channel RSSI adjusted for SNR) per frequency (Hz).",
        "type": "object"
      },
      "time": {
        "format": "date-time",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ChannelPacketCount

    Packet count per channel.
    Fields
    Name Type Description
    count object Packet counts per frequency (Hz).
    time string
    Schema
    {
      "count": {
        "additionalProperties": {
          "format": "uint64",
          "type": "string"
        },
        "description": "Packet counts per frequency (Hz).",
        "type": "object"
      },
      "time": {
        "format": "date-time",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ChannelUtilization

    Utilization per channel.
    Fields
    Name Type Description
    time string
    utilization object Utilization (fraction of time) per frequency (Hz) that the channel is in use.
    Schema
    {
      "time": {
        "format": "date-time",
        "type": "string"
      },
      "utilization": {
        "additionalProperties": {
          "format": "float",
          "type": "number"
        },
        "description": "Utilization (fraction of time) per frequency (Hz) that the channel is in use.",
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ChannelsLoRaPerformance

    LoRa performance of channels.
    Fields
    Name Type Description
    channels object
    Schema
    {
      "channels": {
        "items": {
          "description": "LoRa performance per channel.",
          "properties": {
            "agg_lora_rssi": {
              "additionalProperties": {
                "format": "float",
                "type": "number"
              },
              "description": "Aggregated observed LoRa RSSI (channel RSSI adjusted for SNR) per frequency (Hz).",
              "type": "object"
            },
            "time": {
              "format": "date-time",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    ChannelsPacketCount

    Packet counts of channels.
    Fields
    Name Type Description
    channels object
    Schema
    {
      "channels": {
        "items": {
          "description": "Packet count per channel.",
          "properties": {
            "count": {
              "additionalProperties": {
                "format": "uint64",
                "type": "string"
              },
              "description": "Packet counts per frequency (Hz).",
              "type": "object"
            },
            "time": {
              "format": "date-time",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    ChannelsUtilization

    Utilizations of channels.
    Fields
    Name Type Description
    channels object
    Schema
    {
      "channels": {
        "items": {
          "description": "Utilization per channel.",
          "properties": {
            "time": {
              "format": "date-time",
              "type": "string"
            },
            "utilization": {
              "additionalProperties": {
                "format": "float",
                "type": "number"
              },
              "description": "Utilization (fraction of time) per frequency (Hz) that the channel is in use.",
              "type": "object"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    ClaimEndDeviceRequest

    Fields
    Name Type Description
    authenticated_identifiers object
    qr_code string Raw QR code contents.
    target_application_ids object
    target_device_id string End device ID of the target end device. If empty, use the source device ID.
    Schema
    {
      "authenticated_identifiers": {
        "properties": {
          "authentication_code": {
            "description": "Authentication code to prove ownership.\nIn the LoRa Alliance TR005 specification, this equals the OwnerToken.",
            "type": "string"
          },
          "dev_eui": {
            "description": "DevEUI of the device to claim.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "join_eui": {
            "description": "JoinEUI (or AppEUI) of the device to claim.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qr_code": {
        "description": "Raw QR code contents.",
        "format": "byte",
        "type": "string"
      },
      "target_application_ids": {
        "properties": {
          "application_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "target_device_id": {
        "description": "End device ID of the target end device. If empty, use the source device ID.",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ClaimEndDeviceRequestAuthenticatedIdentifiers

    Fields
    Name Type Description
    authentication_code string Authentication code to prove ownership. In the LoRa Alliance TR005 specification, this equals the OwnerToken.
    dev_eui string DevEUI of the device to claim.
    join_eui string JoinEUI (or AppEUI) of the device to claim.
    Schema
    {
      "authentication_code": {
        "description": "Authentication code to prove ownership.\nIn the LoRa Alliance TR005 specification, this equals the OwnerToken.",
        "type": "string"
      },
      "dev_eui": {
        "description": "DevEUI of the device to claim.",
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      },
      "join_eui": {
        "description": "JoinEUI (or AppEUI) of the device to claim.",
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ClaimGatewayRequest

    Fields
    Name Type Description
    authenticated_identifiers object
    collaborator object OrganizationOrUserIdentifiers contains either organization or user identifiers.
    cups_redirection object DEPRECATED: This message is deprecated and will be removed in a future version of The Things Stack.
    qr_code string
    target_frequency_plan_id string Frequency plan ID of the target gateway. TODO: Remove this field (https://github.com/TheThingsIndustries/lorawan-stack/issues/4024) DEPRECATED: Use target_frequency_plan_ids instead.
    target_frequency_plan_ids string Frequency plan IDs of the target gateway.
    target_gateway_id string Gateway ID for the target gateway. This must be a unique value. If this is not set, the target ID for the target gateway will be set to `<gateway-eui>`.
    target_gateway_server_address string Target Gateway Server Address for the target gateway.
    Schema
    {
      "authenticated_identifiers": {
        "properties": {
          "authentication_code": {
            "format": "byte",
            "type": "string"
          },
          "gateway_eui": {
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "collaborator": {
        "description": "OrganizationOrUserIdentifiers contains either organization or user identifiers.",
        "properties": {
          "organization_ids": {
            "properties": {
              "organization_id": {
                "description": "This ID shares namespace with user IDs.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "user_ids": {
            "properties": {
              "email": {
                "description": "Secondary identifier, which can only be used in specific requests.",
                "type": "string"
              },
              "user_id": {
                "description": "This ID shares namespace with organization IDs.",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "cups_redirection": {
        "description": "DEPRECATED: This message is deprecated and will be removed in a future version of The Things Stack.",
        "properties": {
          "auth_token": {
            "description": "The Device Claiming Server will fill this field with a The Things Stack API Key.",
            "type": "string"
          },
          "client_tls": {
            "properties": {
              "cert": {
                "description": "PEM encoded Client Certificate.",
                "format": "byte",
                "type": "string"
              },
              "key": {
                "description": "PEM encoded Client Private Key.",
                "format": "byte",
                "type": "string"
              }
            },
            "type": "object"
          },
          "current_gateway_key": {
            "description": "The key set in the gateway to authenticate itself.",
            "type": "string"
          },
          "target_cups_trust": {
            "description": "Optional PEM encoded CA Root certificate. If this field is empty, DCS will attempt to dial the Target CUPS server and fetch the CA.",
            "format": "byte",
            "type": "string"
          },
          "target_cups_uri": {
            "description": "CUPS URI for LoRa Basics Station CUPS redirection.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qr_code": {
        "format": "byte",
        "type": "string"
      },
      "target_frequency_plan_id": {
        "description": "Frequency plan ID of the target gateway.\nTODO: Remove this field (https://github.com/TheThingsIndustries/lorawan-stack/issues/4024)\nDEPRECATED: Use target_frequency_plan_ids instead.",
        "type": "string"
      },
      "target_frequency_plan_ids": {
        "description": "Frequency plan IDs of the target gateway.",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "target_gateway_id": {
        "description": "Gateway ID for the target gateway. This must be a unique value.\nIf this is not set, the target ID for the target gateway will be set to `\u003cgateway-eui\u003e`.",
        "type": "string"
      },
      "target_gateway_server_address": {
        "description": "Target Gateway Server Address for the target gateway.",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ClaimGatewayRequestAuthenticatedIdentifiers

    Fields
    Name Type Description
    authentication_code string
    gateway_eui string
    Schema
    {
      "authentication_code": {
        "format": "byte",
        "type": "string"
      },
      "gateway_eui": {
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    Class

    Supported values
  • CLASS_A
  • CLASS_B
  • CLASS_C
  • Default: CLASS_A

    ClassBCGatewayIdentifiers

    Fields
    Name Type Description
    antenna_index integer
    gateway_ids object
    group_index integer
    Schema
    {
      "antenna_index": {
        "format": "int64",
        "type": "integer"
      },
      "gateway_ids": {
        "properties": {
          "eui": {
            "description": "Secondary identifier, which can only be used in specific requests.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "gateway_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "group_index": {
        "format": "int64",
        "type": "integer"
      }
    }
    Show the schema of the message in JSON format.

    Client

    An OAuth client on the network.
    Fields
    Name Type Description
    administrative_contact object OrganizationOrUserIdentifiers contains either organization or user identifiers.
    attributes object Key-value attributes for this client. Typically used for organizing clients or for storing integration-specific data.
    contact_info object Contact information for this client. Typically used to indicate who to contact with technical/security questions about the application. This information is public and can be seen by any authenticated user in the network. This field is deprecated. Use administrative_contact and technical_contact instead.
    created_at string When the OAuth client was created. This information is public and can be seen by any authenticated user in the network.
    deleted_at string When the OAuth client was deleted. This information is public and can be seen by any authenticated user in the network.
    description string A description for the OAuth client. This information is public and can be seen by any authenticated user in the network.
    endorsed boolean If set, the authorization page will show endorsement. This information is public and can be seen by any authenticated user in the network. This field can only be modified by admins.
    grants string OAuth flows that can be used for the client to get a token. This information is public and can be seen by any authenticated user in the network. After a client is created, this field can only be modified by admins.
    ids object
    label_ids string
    logout_redirect_uris string The allowed logout redirect URIs against which client initiated logout requests are checked. If the authorization request does not pass a redirect URI, the first one from this list is taken. This information is public and can be seen by any authenticated user in the network.
    name string The name of the OAuth client. This information is public and can be seen by any authenticated user in the network.
    redirect_uris string The allowed redirect URIs against which authorization requests are checked. If the authorization request does not pass a redirect URI, the first one from this list is taken. This information is public and can be seen by any authenticated user in the network.
    rights string Rights denotes what rights the client will have access to. This information is public and can be seen by any authenticated user in the network. Users that previously authorized this client will have to re-authorize the client after rights are added to this list.
    secret string The client secret is only visible to collaborators of the client.
    skip_authorization boolean If set, the authorization page will be skipped. This information is public and can be seen by any authenticated user in the network. This field can only be modified by admins.
    state string State enum defines states that an entity can be in. - STATE_REQUESTED: Denotes that the entity has been requested and is pending review by an admin. - STATE_APPROVED: Denotes that the entity has been reviewed and approved by an admin. - STATE_REJECTED: Denotes that the entity has been reviewed and rejected by an admin. - STATE_FLAGGED: Denotes that the entity has been flagged and is pending review by an admin. - STATE_SUSPENDED: Denotes that the entity has been reviewed and suspended by an admin.
    state_description string A description for the state field. This field can only be modified by admins, and should typically only be updated when also updating `state`.
    technical_contact object OrganizationOrUserIdentifiers contains either organization or user identifiers.
    updated_at string When the OAuth client was last updated. This information is public and can be seen by any authenticated user in the network.
    Schema
    {
      "administrative_contact": {
        "description": "OrganizationOrUserIdentifiers contains either organization or user identifiers.",
        "properties": {
          "organization_ids": {
            "properties": {
              "organization_id": {
                "description": "This ID shares namespace with user IDs.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "user_ids": {
            "properties": {
              "email": {
                "description": "Secondary identifier, which can only be used in specific requests.",
                "type": "string"
              },
              "user_id": {
                "description": "This ID shares namespace with organization IDs.",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "attributes": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "Key-value attributes for this client. Typically used for organizing clients or for storing integration-specific data.",
        "type": "object"
      },
      "contact_info": {
        "description": "Contact information for this client. Typically used to indicate who to contact with technical/security questions about the application.\nThis information is public and can be seen by any authenticated user in the network.\nThis field is deprecated. Use administrative_contact and technical_contact instead.",
        "items": {
          "properties": {
            "contact_method": {
              "default": "CONTACT_METHOD_OTHER",
              "enum": [
                "CONTACT_METHOD_OTHER",
                "CONTACT_METHOD_EMAIL",
                "CONTACT_METHOD_PHONE"
              ],
              "type": "string"
            },
            "contact_type": {
              "default": "CONTACT_TYPE_OTHER",
              "enum": [
                "CONTACT_TYPE_OTHER",
                "CONTACT_TYPE_ABUSE",
                "CONTACT_TYPE_BILLING",
                "CONTACT_TYPE_TECHNICAL"
              ],
              "type": "string"
            },
            "public": {
              "type": "boolean"
            },
            "validated_at": {
              "format": "date-time",
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "created_at": {
        "description": "When the OAuth client was created. This information is public and can be seen by any authenticated user in the network.",
        "format": "date-time",
        "type": "string"
      },
      "deleted_at": {
        "description": "When the OAuth client was deleted. This information is public and can be seen by any authenticated user in the network.",
        "format": "date-time",
        "type": "string"
      },
      "description": {
        "description": "A description for the OAuth client. This information is public and can be seen by any authenticated user in the network.",
        "type": "string"
      },
      "endorsed": {
        "description": "If set, the authorization page will show endorsement.\nThis information is public and can be seen by any authenticated user in the network.\nThis field can only be modified by admins.",
        "type": "boolean"
      },
      "grants": {
        "description": "OAuth flows that can be used for the client to get a token.\nThis information is public and can be seen by any authenticated user in the network.\nAfter a client is created, this field can only be modified by admins.",
        "items": {
          "default": "GRANT_AUTHORIZATION_CODE",
          "description": "The OAuth2 flows an OAuth client can use to get an access token.\n\n - GRANT_AUTHORIZATION_CODE: Grant type used to exchange an authorization code for an access token.\n - GRANT_PASSWORD: Grant type used to exchange a user ID and password for an access token.\n - GRANT_REFRESH_TOKEN: Grant type used to exchange a refresh token for an access token.",
          "enum": [
            "GRANT_AUTHORIZATION_CODE",
            "GRANT_PASSWORD",
            "GRANT_REFRESH_TOKEN"
          ],
          "type": "string"
        },
        "type": "array"
      },
      "ids": {
        "properties": {
          "client_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "label_ids": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "logout_redirect_uris": {
        "description": "The allowed logout redirect URIs against which client initiated logout\nrequests are checked. If the authorization request does not pass a redirect\nURI, the first one from this list is taken.\nThis information is public and can be seen by any authenticated user in the network.",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "name": {
        "description": "The name of the OAuth client. This information is public and can be seen by any authenticated user in the network.",
        "type": "string"
      },
      "redirect_uris": {
        "description": "The allowed redirect URIs against which authorization requests are checked.\nIf the authorization request does not pass a redirect URI, the first one\nfrom this list is taken.\nThis information is public and can be seen by any authenticated user in the network.",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "rights": {
        "description": "Rights denotes what rights the client will have access to.\nThis information is public and can be seen by any authenticated user in the network.\nUsers that previously authorized this client will have to re-authorize the\nclient after rights are added to this list.",
        "items": {
          "default": "right_invalid",
          "description": "Right is the enum that defines all the different rights to do something in the network.\n\n - RIGHT_USER_INFO: The right to view user information.\n - RIGHT_USER_SETTINGS_BASIC: The right to edit basic user settings.\n - RIGHT_USER_LIST: The right to list users accounts.\n - RIGHT_USER_CREATE: The right to create an user account.\n - RIGHT_USER_SETTINGS_API_KEYS: The right to view and edit user API keys.\n - RIGHT_USER_DELETE: The right to delete user account.\n - RIGHT_USER_PURGE: The right to purge user account.\n - RIGHT_USER_AUTHORIZED_CLIENTS: The right to view and edit authorized OAuth clients of the user.\n - RIGHT_USER_APPLICATIONS_LIST: The right to list applications the user is a collaborator of.\n - RIGHT_USER_APPLICATIONS_CREATE: The right to create an application under the user account.\n - RIGHT_USER_GATEWAYS_LIST: The right to list gateways the user is a collaborator of.\n - RIGHT_USER_GATEWAYS_CREATE: The right to create a gateway under the account of the user.\n - RIGHT_USER_CLIENTS_LIST: The right to list OAuth clients the user is a collaborator of.\n - RIGHT_USER_CLIENTS_CREATE: The right to create an OAuth client under the account of the user.\n - RIGHT_USER_ORGANIZATIONS_LIST: The right to list organizations the user is a member of.\n - RIGHT_USER_ORGANIZATIONS_CREATE: The right to create an organization under the user account.\n - RIGHT_USER_NOTIFICATIONS_READ: The right to read notifications sent to the user.\n - RIGHT_USER_ALL: The pseudo-right for all (current and future) user rights.\n - RIGHT_APPLICATION_INFO: The right to view application information.\n - RIGHT_APPLICATION_SETTINGS_BASIC: The right to edit basic application settings.\n - RIGHT_APPLICATION_SETTINGS_API_KEYS: The right to view and edit application API keys.\n - RIGHT_APPLICATION_SETTINGS_COLLABORATORS: The right to view and edit application collaborators.\n - RIGHT_APPLICATION_SETTINGS_PACKAGES: The right to view and edit application packages and associations.\n - RIGHT_APPLICATION_DELETE: The right to delete application.\n - RIGHT_APPLICATION_PURGE: The right to purge application.\n - RIGHT_APPLICATION_DEVICES_READ: The right to view devices in application.\n - RIGHT_APPLICATION_DEVICES_WRITE: The right to create devices in application.\n - RIGHT_APPLICATION_DEVICES_READ_KEYS: The right to view device keys in application.\nNote that keys may not be stored in a way that supports viewing them.\n - RIGHT_APPLICATION_DEVICES_WRITE_KEYS: The right to edit device keys in application.\n - RIGHT_APPLICATION_TRAFFIC_READ: The right to read application traffic (uplink and downlink).\n - RIGHT_APPLICATION_TRAFFIC_UP_WRITE: The right to write uplink application traffic.\n - RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE: The right to write downlink application traffic.\n - RIGHT_APPLICATION_LINK: The right to link as Application to a Network Server for traffic exchange,\ni.e. read uplink and write downlink (API keys only).\nThis right is typically only given to an Application Server.\nThis right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ,\nand RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.\n - RIGHT_APPLICATION_ALL: The pseudo-right for all (current and future) application rights.\n - RIGHT_CLIENT_ALL: The pseudo-right for all (current and future) OAuth client rights.\n - RIGHT_CLIENT_INFO: The right to read client information.\n - RIGHT_CLIENT_SETTINGS_BASIC: The right to edit basic client settings.\n - RIGHT_CLIENT_SETTINGS_COLLABORATORS: The right to view and edit client collaborators.\n - RIGHT_CLIENT_DELETE: The right to delete a client.\n - RIGHT_CLIENT_PURGE: The right to purge a client.\n - RIGHT_GATEWAY_INFO: The right to view gateway information.\n - RIGHT_GATEWAY_SETTINGS_BASIC: The right to edit basic gateway settings.\n - RIGHT_GATEWAY_SETTINGS_API_KEYS: The right to view and edit gateway API keys.\n - RIGHT_GATEWAY_SETTINGS_COLLABORATORS: The right to view and edit gateway collaborators.\n - RIGHT_GATEWAY_DELETE: The right to delete gateway.\n - RIGHT_GATEWAY_PURGE: The right to purge gateway.\n - RIGHT_GATEWAY_TRAFFIC_READ: The right to read gateway traffic.\n - RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE: The right to write downlink gateway traffic.\n - RIGHT_GATEWAY_LINK: The right to link as Gateway to a Gateway Server for traffic exchange,\ni.e. write uplink and read downlink (API keys only)\nThis right is typically only given to a gateway.\nThis right implies RIGHT_GATEWAY_INFO.\n - RIGHT_GATEWAY_STATUS_READ: The right to view gateway status.\n - RIGHT_GATEWAY_LOCATION_READ: The right to view view gateway location.\n - RIGHT_GATEWAY_WRITE_SECRETS: The right to store secrets associated with this gateway.\n - RIGHT_GATEWAY_READ_SECRETS: The right to retrieve secrets associated with this gateway.\n - RIGHT_GATEWAY_ALL: The pseudo-right for all (current and future) gateway rights.\n - RIGHT_ORGANIZATION_INFO: The right to view organization information.\n - RIGHT_ORGANIZATION_SETTINGS_BASIC: The right to edit basic organization settings.\n - RIGHT_ORGANIZATION_SETTINGS_API_KEYS: The right to view and edit organization API keys.\n - RIGHT_ORGANIZATION_SETTINGS_MEMBERS: The right to view and edit organization members.\n - RIGHT_ORGANIZATION_DELETE: The right to delete organization.\n - RIGHT_ORGANIZATION_PURGE: The right to purge organization.\n - RIGHT_ORGANIZATION_APPLICATIONS_LIST: The right to list the applications the organization is a collaborator of.\n - RIGHT_ORGANIZATION_APPLICATIONS_CREATE: The right to create an application under the organization.\n - RIGHT_ORGANIZATION_GATEWAYS_LIST: The right to list the gateways the organization is a collaborator of.\n - RIGHT_ORGANIZATION_GATEWAYS_CREATE: The right to create a gateway under the organization.\n - RIGHT_ORGANIZATION_CLIENTS_LIST: The right to list the OAuth clients the organization is a collaborator of.\n - RIGHT_ORGANIZATION_CLIENTS_CREATE: The right to create an OAuth client under the organization.\n - RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR: The right to add the organization as a collaborator on an existing entity.\n - RIGHT_ORGANIZATION_ALL: The pseudo-right for all (current and future) organization rights.\n - RIGHT_SEND_INVITES: The right to send invites to new users.\nNote that this is not prefixed with \"USER_\"; it is not a right on the user entity.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE: The right to create an alert notification profile.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_INFO: The right to view an alert notification profile information.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_LIST: The right to list the alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE: The right to update an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE: The right to delete an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE: The right to create an alert notification receiver.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO: The right to view an alert notification receiver information.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST: The right to list the alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE: The right to update an alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE: The right to delete an alert notification receivers.\n - RIGHT_AUTHENTICATION_PROVIDER_CREATE: The right to create an authentication provider.\n - RIGHT_AUTHENTICATION_PROVIDER_INFO: The right to view an authentication provider information.\n - RIGHT_AUTHENTICATION_PROVIDER_LIST: The right to list the authentication providers\n - RIGHT_AUTHENTICATION_PROVIDER_UPDATE: The right to update an authentication providers.\n - RIGHT_AUTHENTICATION_PROVIDER_DELETE: The right to delete an authentication providers.\n - RIGHT_EXTERNAL_USER_CREATE: The right to create an external user.\n - RIGHT_EXTERNAL_USER_INFO: The right to view an external user's information.\n - RIGHT_EXTERNAL_USER_DELETE: The right to delete an external user.\n - RIGHT_PACKET_BROKER_AGENT_READ: The right to read any information related to the PBA.\n - RIGHT_PACKET_BROKER_AGENT_WRITE: The right to perform operations in the PBA.\n - RIGHT_TENANT_CONFIGURATION_UPDATE: The right to update a tenant's configuration.\n - RIGHT_LABEL_CREATE: The right to create a label.\n - RIGHT_LABEL_INFO: The right to view a label's information.\n - RIGHT_LABELS_LIST: The right to list the labels.\n - RIGHT_LABEL_UPDATE: The right to update a label.\n - RIGHT_LABEL_DELETE: The right to delete a label.\n - RIGHT_LABEL_ASSIGN: The right to assign a label to an entity.\n - RIGHT_ALL: The pseudo-right for all (current and future) possible rights.",
          "enum": [
            "right_invalid",
            "RIGHT_USER_INFO",
            "RIGHT_USER_SETTINGS_BASIC",
            "RIGHT_USER_LIST",
            "RIGHT_USER_CREATE",
            "RIGHT_USER_SETTINGS_API_KEYS",
            "RIGHT_USER_DELETE",
            "RIGHT_USER_PURGE",
            "RIGHT_USER_AUTHORIZED_CLIENTS",
            "RIGHT_USER_APPLICATIONS_LIST",
            "RIGHT_USER_APPLICATIONS_CREATE",
            "RIGHT_USER_GATEWAYS_LIST",
            "RIGHT_USER_GATEWAYS_CREATE",
            "RIGHT_USER_CLIENTS_LIST",
            "RIGHT_USER_CLIENTS_CREATE",
            "RIGHT_USER_ORGANIZATIONS_LIST",
            "RIGHT_USER_ORGANIZATIONS_CREATE",
            "RIGHT_USER_NOTIFICATIONS_READ",
            "RIGHT_USER_ALL",
            "RIGHT_APPLICATION_INFO",
            "RIGHT_APPLICATION_SETTINGS_BASIC",
            "RIGHT_APPLICATION_SETTINGS_API_KEYS",
            "RIGHT_APPLICATION_SETTINGS_COLLABORATORS",
            "RIGHT_APPLICATION_SETTINGS_PACKAGES",
            "RIGHT_APPLICATION_DELETE",
            "RIGHT_APPLICATION_PURGE",
            "RIGHT_APPLICATION_DEVICES_READ",
            "RIGHT_APPLICATION_DEVICES_WRITE",
            "RIGHT_APPLICATION_DEVICES_READ_KEYS",
            "RIGHT_APPLICATION_DEVICES_WRITE_KEYS",
            "RIGHT_APPLICATION_TRAFFIC_READ",
            "RIGHT_APPLICATION_TRAFFIC_UP_WRITE",
            "RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE",
            "RIGHT_APPLICATION_LINK",
            "RIGHT_APPLICATION_ALL",
            "RIGHT_CLIENT_ALL",
            "RIGHT_CLIENT_INFO",
            "RIGHT_CLIENT_SETTINGS_BASIC",
            "RIGHT_CLIENT_SETTINGS_COLLABORATORS",
            "RIGHT_CLIENT_DELETE",
            "RIGHT_CLIENT_PURGE",
            "RIGHT_GATEWAY_INFO",
            "RIGHT_GATEWAY_SETTINGS_BASIC",
            "RIGHT_GATEWAY_SETTINGS_API_KEYS",
            "RIGHT_GATEWAY_SETTINGS_COLLABORATORS",
            "RIGHT_GATEWAY_DELETE",
            "RIGHT_GATEWAY_PURGE",
            "RIGHT_GATEWAY_TRAFFIC_READ",
            "RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE",
            "RIGHT_GATEWAY_LINK",
            "RIGHT_GATEWAY_STATUS_READ",
            "RIGHT_GATEWAY_LOCATION_READ",
            "RIGHT_GATEWAY_WRITE_SECRETS",
            "RIGHT_GATEWAY_READ_SECRETS",
            "RIGHT_GATEWAY_ALL",
            "RIGHT_ORGANIZATION_INFO",
            "RIGHT_ORGANIZATION_SETTINGS_BASIC",
            "RIGHT_ORGANIZATION_SETTINGS_API_KEYS",
            "RIGHT_ORGANIZATION_SETTINGS_MEMBERS",
            "RIGHT_ORGANIZATION_DELETE",
            "RIGHT_ORGANIZATION_PURGE",
            "RIGHT_ORGANIZATION_APPLICATIONS_LIST",
            "RIGHT_ORGANIZATION_APPLICATIONS_CREATE",
            "RIGHT_ORGANIZATION_GATEWAYS_LIST",
            "RIGHT_ORGANIZATION_GATEWAYS_CREATE",
            "RIGHT_ORGANIZATION_CLIENTS_LIST",
            "RIGHT_ORGANIZATION_CLIENTS_CREATE",
            "RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR",
            "RIGHT_ORGANIZATION_ALL",
            "RIGHT_SEND_INVITES",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_INFO",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_LIST",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE",
            "RIGHT_AUTHENTICATION_PROVIDER_CREATE",
            "RIGHT_AUTHENTICATION_PROVIDER_INFO",
            "RIGHT_AUTHENTICATION_PROVIDER_LIST",
            "RIGHT_AUTHENTICATION_PROVIDER_UPDATE",
            "RIGHT_AUTHENTICATION_PROVIDER_DELETE",
            "RIGHT_EXTERNAL_USER_CREATE",
            "RIGHT_EXTERNAL_USER_INFO",
            "RIGHT_EXTERNAL_USER_DELETE",
            "RIGHT_PACKET_BROKER_AGENT_READ",
            "RIGHT_PACKET_BROKER_AGENT_WRITE",
            "RIGHT_TENANT_CONFIGURATION_UPDATE",
            "RIGHT_LABEL_CREATE",
            "RIGHT_LABEL_INFO",
            "RIGHT_LABELS_LIST",
            "RIGHT_LABEL_UPDATE",
            "RIGHT_LABEL_DELETE",
            "RIGHT_LABEL_ASSIGN",
            "RIGHT_ALL"
          ],
          "type": "string"
        },
        "type": "array"
      },
      "secret": {
        "description": "The client secret is only visible to collaborators of the client.",
        "type": "string"
      },
      "skip_authorization": {
        "description": "If set, the authorization page will be skipped.\nThis information is public and can be seen by any authenticated user in the network.\nThis field can only be modified by admins.",
        "type": "boolean"
      },
      "state": {
        "default": "STATE_REQUESTED",
        "description": "State enum defines states that an entity can be in.\n\n - STATE_REQUESTED: Denotes that the entity has been requested and is pending review by an admin.\n - STATE_APPROVED: Denotes that the entity has been reviewed and approved by an admin.\n - STATE_REJECTED: Denotes that the entity has been reviewed and rejected by an admin.\n - STATE_FLAGGED: Denotes that the entity has been flagged and is pending review by an admin.\n - STATE_SUSPENDED: Denotes that the entity has been reviewed and suspended by an admin.",
        "enum": [
          "STATE_REQUESTED",
          "STATE_APPROVED",
          "STATE_REJECTED",
          "STATE_FLAGGED",
          "STATE_SUSPENDED"
        ],
        "type": "string"
      },
      "state_description": {
        "description": "A description for the state field.\nThis field can only be modified by admins, and should typically only be updated\nwhen also updating `state`.",
        "type": "string"
      },
      "technical_contact": {
        "description": "OrganizationOrUserIdentifiers contains either organization or user identifiers.",
        "properties": {
          "organization_ids": {
            "properties": {
              "organization_id": {
                "description": "This ID shares namespace with user IDs.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "user_ids": {
            "properties": {
              "email": {
                "description": "Secondary identifier, which can only be used in specific requests.",
                "type": "string"
              },
              "user_id": {
                "description": "This ID shares namespace with organization IDs.",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "updated_at": {
        "description": "When the OAuth client was last updated. This information is public and can be seen by any authenticated user in the network.",
        "format": "date-time",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ClientAccessSetCollaboratorBody

    Fields
    Name Type Description
    client_ids object
    collaborator object
    Schema
    {
      "client_ids": {
        "type": "object"
      },
      "collaborator": {
        "properties": {
          "ids": {
            "description": "OrganizationOrUserIdentifiers contains either organization or user identifiers.",
            "properties": {
              "organization_ids": {
                "properties": {
                  "organization_id": {
                    "description": "This ID shares namespace with user IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "user_ids": {
                "properties": {
                  "email": {
                    "description": "Secondary identifier, which can only be used in specific requests.",
                    "type": "string"
                  },
                  "user_id": {
                    "description": "This ID shares namespace with organization IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "rights": {
            "items": {
              "default": "right_invalid",
              "description": "Right is the enum that defines all the different rights to do something in the network.\n\n - RIGHT_USER_INFO: The right to view user information.\n - RIGHT_USER_SETTINGS_BASIC: The right to edit basic user settings.\n - RIGHT_USER_LIST: The right to list users accounts.\n - RIGHT_USER_CREATE: The right to create an user account.\n - RIGHT_USER_SETTINGS_API_KEYS: The right to view and edit user API keys.\n - RIGHT_USER_DELETE: The right to delete user account.\n - RIGHT_USER_PURGE: The right to purge user account.\n - RIGHT_USER_AUTHORIZED_CLIENTS: The right to view and edit authorized OAuth clients of the user.\n - RIGHT_USER_APPLICATIONS_LIST: The right to list applications the user is a collaborator of.\n - RIGHT_USER_APPLICATIONS_CREATE: The right to create an application under the user account.\n - RIGHT_USER_GATEWAYS_LIST: The right to list gateways the user is a collaborator of.\n - RIGHT_USER_GATEWAYS_CREATE: The right to create a gateway under the account of the user.\n - RIGHT_USER_CLIENTS_LIST: The right to list OAuth clients the user is a collaborator of.\n - RIGHT_USER_CLIENTS_CREATE: The right to create an OAuth client under the account of the user.\n - RIGHT_USER_ORGANIZATIONS_LIST: The right to list organizations the user is a member of.\n - RIGHT_USER_ORGANIZATIONS_CREATE: The right to create an organization under the user account.\n - RIGHT_USER_NOTIFICATIONS_READ: The right to read notifications sent to the user.\n - RIGHT_USER_ALL: The pseudo-right for all (current and future) user rights.\n - RIGHT_APPLICATION_INFO: The right to view application information.\n - RIGHT_APPLICATION_SETTINGS_BASIC: The right to edit basic application settings.\n - RIGHT_APPLICATION_SETTINGS_API_KEYS: The right to view and edit application API keys.\n - RIGHT_APPLICATION_SETTINGS_COLLABORATORS: The right to view and edit application collaborators.\n - RIGHT_APPLICATION_SETTINGS_PACKAGES: The right to view and edit application packages and associations.\n - RIGHT_APPLICATION_DELETE: The right to delete application.\n - RIGHT_APPLICATION_PURGE: The right to purge application.\n - RIGHT_APPLICATION_DEVICES_READ: The right to view devices in application.\n - RIGHT_APPLICATION_DEVICES_WRITE: The right to create devices in application.\n - RIGHT_APPLICATION_DEVICES_READ_KEYS: The right to view device keys in application.\nNote that keys may not be stored in a way that supports viewing them.\n - RIGHT_APPLICATION_DEVICES_WRITE_KEYS: The right to edit device keys in application.\n - RIGHT_APPLICATION_TRAFFIC_READ: The right to read application traffic (uplink and downlink).\n - RIGHT_APPLICATION_TRAFFIC_UP_WRITE: The right to write uplink application traffic.\n - RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE: The right to write downlink application traffic.\n - RIGHT_APPLICATION_LINK: The right to link as Application to a Network Server for traffic exchange,\ni.e. read uplink and write downlink (API keys only).\nThis right is typically only given to an Application Server.\nThis right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ,\nand RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.\n - RIGHT_APPLICATION_ALL: The pseudo-right for all (current and future) application rights.\n - RIGHT_CLIENT_ALL: The pseudo-right for all (current and future) OAuth client rights.\n - RIGHT_CLIENT_INFO: The right to read client information.\n - RIGHT_CLIENT_SETTINGS_BASIC: The right to edit basic client settings.\n - RIGHT_CLIENT_SETTINGS_COLLABORATORS: The right to view and edit client collaborators.\n - RIGHT_CLIENT_DELETE: The right to delete a client.\n - RIGHT_CLIENT_PURGE: The right to purge a client.\n - RIGHT_GATEWAY_INFO: The right to view gateway information.\n - RIGHT_GATEWAY_SETTINGS_BASIC: The right to edit basic gateway settings.\n - RIGHT_GATEWAY_SETTINGS_API_KEYS: The right to view and edit gateway API keys.\n - RIGHT_GATEWAY_SETTINGS_COLLABORATORS: The right to view and edit gateway collaborators.\n - RIGHT_GATEWAY_DELETE: The right to delete gateway.\n - RIGHT_GATEWAY_PURGE: The right to purge gateway.\n - RIGHT_GATEWAY_TRAFFIC_READ: The right to read gateway traffic.\n - RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE: The right to write downlink gateway traffic.\n - RIGHT_GATEWAY_LINK: The right to link as Gateway to a Gateway Server for traffic exchange,\ni.e. write uplink and read downlink (API keys only)\nThis right is typically only given to a gateway.\nThis right implies RIGHT_GATEWAY_INFO.\n - RIGHT_GATEWAY_STATUS_READ: The right to view gateway status.\n - RIGHT_GATEWAY_LOCATION_READ: The right to view view gateway location.\n - RIGHT_GATEWAY_WRITE_SECRETS: The right to store secrets associated with this gateway.\n - RIGHT_GATEWAY_READ_SECRETS: The right to retrieve secrets associated with this gateway.\n - RIGHT_GATEWAY_ALL: The pseudo-right for all (current and future) gateway rights.\n - RIGHT_ORGANIZATION_INFO: The right to view organization information.\n - RIGHT_ORGANIZATION_SETTINGS_BASIC: The right to edit basic organization settings.\n - RIGHT_ORGANIZATION_SETTINGS_API_KEYS: The right to view and edit organization API keys.\n - RIGHT_ORGANIZATION_SETTINGS_MEMBERS: The right to view and edit organization members.\n - RIGHT_ORGANIZATION_DELETE: The right to delete organization.\n - RIGHT_ORGANIZATION_PURGE: The right to purge organization.\n - RIGHT_ORGANIZATION_APPLICATIONS_LIST: The right to list the applications the organization is a collaborator of.\n - RIGHT_ORGANIZATION_APPLICATIONS_CREATE: The right to create an application under the organization.\n - RIGHT_ORGANIZATION_GATEWAYS_LIST: The right to list the gateways the organization is a collaborator of.\n - RIGHT_ORGANIZATION_GATEWAYS_CREATE: The right to create a gateway under the organization.\n - RIGHT_ORGANIZATION_CLIENTS_LIST: The right to list the OAuth clients the organization is a collaborator of.\n - RIGHT_ORGANIZATION_CLIENTS_CREATE: The right to create an OAuth client under the organization.\n - RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR: The right to add the organization as a collaborator on an existing entity.\n - RIGHT_ORGANIZATION_ALL: The pseudo-right for all (current and future) organization rights.\n - RIGHT_SEND_INVITES: The right to send invites to new users.\nNote that this is not prefixed with \"USER_\"; it is not a right on the user entity.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE: The right to create an alert notification profile.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_INFO: The right to view an alert notification profile information.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_LIST: The right to list the alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE: The right to update an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE: The right to delete an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE: The right to create an alert notification receiver.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO: The right to view an alert notification receiver information.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST: The right to list the alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE: The right to update an alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE: The right to delete an alert notification receivers.\n - RIGHT_AUTHENTICATION_PROVIDER_CREATE: The right to create an authentication provider.\n - RIGHT_AUTHENTICATION_PROVIDER_INFO: The right to view an authentication provider information.\n - RIGHT_AUTHENTICATION_PROVIDER_LIST: The right to list the authentication providers\n - RIGHT_AUTHENTICATION_PROVIDER_UPDATE: The right to update an authentication providers.\n - RIGHT_AUTHENTICATION_PROVIDER_DELETE: The right to delete an authentication providers.\n - RIGHT_EXTERNAL_USER_CREATE: The right to create an external user.\n - RIGHT_EXTERNAL_USER_INFO: The right to view an external user's information.\n - RIGHT_EXTERNAL_USER_DELETE: The right to delete an external user.\n - RIGHT_PACKET_BROKER_AGENT_READ: The right to read any information related to the PBA.\n - RIGHT_PACKET_BROKER_AGENT_WRITE: The right to perform operations in the PBA.\n - RIGHT_TENANT_CONFIGURATION_UPDATE: The right to update a tenant's configuration.\n - RIGHT_LABEL_CREATE: The right to create a label.\n - RIGHT_LABEL_INFO: The right to view a label's information.\n - RIGHT_LABELS_LIST: The right to list the labels.\n - RIGHT_LABEL_UPDATE: The right to update a label.\n - RIGHT_LABEL_DELETE: The right to delete a label.\n - RIGHT_LABEL_ASSIGN: The right to assign a label to an entity.\n - RIGHT_ALL: The pseudo-right for all (current and future) possible rights.",
              "enum": [
                "right_invalid",
                "RIGHT_USER_INFO",
                "RIGHT_USER_SETTINGS_BASIC",
                "RIGHT_USER_LIST",
                "RIGHT_USER_CREATE",
                "RIGHT_USER_SETTINGS_API_KEYS",
                "RIGHT_USER_DELETE",
                "RIGHT_USER_PURGE",
                "RIGHT_USER_AUTHORIZED_CLIENTS",
                "RIGHT_USER_APPLICATIONS_LIST",
                "RIGHT_USER_APPLICATIONS_CREATE",
                "RIGHT_USER_GATEWAYS_LIST",
                "RIGHT_USER_GATEWAYS_CREATE",
                "RIGHT_USER_CLIENTS_LIST",
                "RIGHT_USER_CLIENTS_CREATE",
                "RIGHT_USER_ORGANIZATIONS_LIST",
                "RIGHT_USER_ORGANIZATIONS_CREATE",
                "RIGHT_USER_NOTIFICATIONS_READ",
                "RIGHT_USER_ALL",
                "RIGHT_APPLICATION_INFO",
                "RIGHT_APPLICATION_SETTINGS_BASIC",
                "RIGHT_APPLICATION_SETTINGS_API_KEYS",
                "RIGHT_APPLICATION_SETTINGS_COLLABORATORS",
                "RIGHT_APPLICATION_SETTINGS_PACKAGES",
                "RIGHT_APPLICATION_DELETE",
                "RIGHT_APPLICATION_PURGE",
                "RIGHT_APPLICATION_DEVICES_READ",
                "RIGHT_APPLICATION_DEVICES_WRITE",
                "RIGHT_APPLICATION_DEVICES_READ_KEYS",
                "RIGHT_APPLICATION_DEVICES_WRITE_KEYS",
                "RIGHT_APPLICATION_TRAFFIC_READ",
                "RIGHT_APPLICATION_TRAFFIC_UP_WRITE",
                "RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE",
                "RIGHT_APPLICATION_LINK",
                "RIGHT_APPLICATION_ALL",
                "RIGHT_CLIENT_ALL",
                "RIGHT_CLIENT_INFO",
                "RIGHT_CLIENT_SETTINGS_BASIC",
                "RIGHT_CLIENT_SETTINGS_COLLABORATORS",
                "RIGHT_CLIENT_DELETE",
                "RIGHT_CLIENT_PURGE",
                "RIGHT_GATEWAY_INFO",
                "RIGHT_GATEWAY_SETTINGS_BASIC",
                "RIGHT_GATEWAY_SETTINGS_API_KEYS",
                "RIGHT_GATEWAY_SETTINGS_COLLABORATORS",
                "RIGHT_GATEWAY_DELETE",
                "RIGHT_GATEWAY_PURGE",
                "RIGHT_GATEWAY_TRAFFIC_READ",
                "RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE",
                "RIGHT_GATEWAY_LINK",
                "RIGHT_GATEWAY_STATUS_READ",
                "RIGHT_GATEWAY_LOCATION_READ",
                "RIGHT_GATEWAY_WRITE_SECRETS",
                "RIGHT_GATEWAY_READ_SECRETS",
                "RIGHT_GATEWAY_ALL",
                "RIGHT_ORGANIZATION_INFO",
                "RIGHT_ORGANIZATION_SETTINGS_BASIC",
                "RIGHT_ORGANIZATION_SETTINGS_API_KEYS",
                "RIGHT_ORGANIZATION_SETTINGS_MEMBERS",
                "RIGHT_ORGANIZATION_DELETE",
                "RIGHT_ORGANIZATION_PURGE",
                "RIGHT_ORGANIZATION_APPLICATIONS_LIST",
                "RIGHT_ORGANIZATION_APPLICATIONS_CREATE",
                "RIGHT_ORGANIZATION_GATEWAYS_LIST",
                "RIGHT_ORGANIZATION_GATEWAYS_CREATE",
                "RIGHT_ORGANIZATION_CLIENTS_LIST",
                "RIGHT_ORGANIZATION_CLIENTS_CREATE",
                "RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR",
                "RIGHT_ORGANIZATION_ALL",
                "RIGHT_SEND_INVITES",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_INFO",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_LIST",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE",
                "RIGHT_AUTHENTICATION_PROVIDER_CREATE",
                "RIGHT_AUTHENTICATION_PROVIDER_INFO",
                "RIGHT_AUTHENTICATION_PROVIDER_LIST",
                "RIGHT_AUTHENTICATION_PROVIDER_UPDATE",
                "RIGHT_AUTHENTICATION_PROVIDER_DELETE",
                "RIGHT_EXTERNAL_USER_CREATE",
                "RIGHT_EXTERNAL_USER_INFO",
                "RIGHT_EXTERNAL_USER_DELETE",
                "RIGHT_PACKET_BROKER_AGENT_READ",
                "RIGHT_PACKET_BROKER_AGENT_WRITE",
                "RIGHT_TENANT_CONFIGURATION_UPDATE",
                "RIGHT_LABEL_CREATE",
                "RIGHT_LABEL_INFO",
                "RIGHT_LABELS_LIST",
                "RIGHT_LABEL_UPDATE",
                "RIGHT_LABEL_DELETE",
                "RIGHT_LABEL_ASSIGN",
                "RIGHT_ALL"
              ],
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ClientIdentifiers

    Fields
    Name Type Description
    client_id string
    Schema
    {
      "client_id": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ClientRegistryCreateBody

    Fields
    Name Type Description
    client object An OAuth client on the network.
    collaborator object Collaborator to grant all rights on the newly created client.
    Schema
    {
      "client": {
        "description": "An OAuth client on the network.",
        "properties": {
          "administrative_contact": {
            "description": "OrganizationOrUserIdentifiers contains either organization or user identifiers.",
            "properties": {
              "organization_ids": {
                "properties": {
                  "organization_id": {
                    "description": "This ID shares namespace with user IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "user_ids": {
                "properties": {
                  "email": {
                    "description": "Secondary identifier, which can only be used in specific requests.",
                    "type": "string"
                  },
                  "user_id": {
                    "description": "This ID shares namespace with organization IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Key-value attributes for this client. Typically used for organizing clients or for storing integration-specific data.",
            "type": "object"
          },
          "contact_info": {
            "description": "Contact information for this client. Typically used to indicate who to contact with technical/security questions about the application.\nThis information is public and can be seen by any authenticated user in the network.\nThis field is deprecated. Use administrative_contact and technical_contact instead.",
            "items": {
              "properties": {
                "contact_method": {
                  "default": "CONTACT_METHOD_OTHER",
                  "enum": [
                    "CONTACT_METHOD_OTHER",
                    "CONTACT_METHOD_EMAIL",
                    "CONTACT_METHOD_PHONE"
                  ],
                  "type": "string"
                },
                "contact_type": {
                  "default": "CONTACT_TYPE_OTHER",
                  "enum": [
                    "CONTACT_TYPE_OTHER",
                    "CONTACT_TYPE_ABUSE",
                    "CONTACT_TYPE_BILLING",
                    "CONTACT_TYPE_TECHNICAL"
                  ],
                  "type": "string"
                },
                "public": {
                  "type": "boolean"
                },
                "validated_at": {
                  "format": "date-time",
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "created_at": {
            "description": "When the OAuth client was created. This information is public and can be seen by any authenticated user in the network.",
            "format": "date-time",
            "type": "string"
          },
          "deleted_at": {
            "description": "When the OAuth client was deleted. This information is public and can be seen by any authenticated user in the network.",
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "A description for the OAuth client. This information is public and can be seen by any authenticated user in the network.",
            "type": "string"
          },
          "endorsed": {
            "description": "If set, the authorization page will show endorsement.\nThis information is public and can be seen by any authenticated user in the network.\nThis field can only be modified by admins.",
            "type": "boolean"
          },
          "grants": {
            "description": "OAuth flows that can be used for the client to get a token.\nThis information is public and can be seen by any authenticated user in the network.\nAfter a client is created, this field can only be modified by admins.",
            "items": {
              "default": "GRANT_AUTHORIZATION_CODE",
              "description": "The OAuth2 flows an OAuth client can use to get an access token.\n\n - GRANT_AUTHORIZATION_CODE: Grant type used to exchange an authorization code for an access token.\n - GRANT_PASSWORD: Grant type used to exchange a user ID and password for an access token.\n - GRANT_REFRESH_TOKEN: Grant type used to exchange a refresh token for an access token.",
              "enum": [
                "GRANT_AUTHORIZATION_CODE",
                "GRANT_PASSWORD",
                "GRANT_REFRESH_TOKEN"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "ids": {
            "properties": {
              "client_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "label_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "logout_redirect_uris": {
            "description": "The allowed logout redirect URIs against which client initiated logout\nrequests are checked. If the authorization request does not pass a redirect\nURI, the first one from this list is taken.\nThis information is public and can be seen by any authenticated user in the network.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the OAuth client. This information is public and can be seen by any authenticated user in the network.",
            "type": "string"
          },
          "redirect_uris": {
            "description": "The allowed redirect URIs against which authorization requests are checked.\nIf the authorization request does not pass a redirect URI, the first one\nfrom this list is taken.\nThis information is public and can be seen by any authenticated user in the network.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "rights": {
            "description": "Rights denotes what rights the client will have access to.\nThis information is public and can be seen by any authenticated user in the network.\nUsers that previously authorized this client will have to re-authorize the\nclient after rights are added to this list.",
            "items": {
              "default": "right_invalid",
              "description": "Right is the enum that defines all the different rights to do something in the network.\n\n - RIGHT_USER_INFO: The right to view user information.\n - RIGHT_USER_SETTINGS_BASIC: The right to edit basic user settings.\n - RIGHT_USER_LIST: The right to list users accounts.\n - RIGHT_USER_CREATE: The right to create an user account.\n - RIGHT_USER_SETTINGS_API_KEYS: The right to view and edit user API keys.\n - RIGHT_USER_DELETE: The right to delete user account.\n - RIGHT_USER_PURGE: The right to purge user account.\n - RIGHT_USER_AUTHORIZED_CLIENTS: The right to view and edit authorized OAuth clients of the user.\n - RIGHT_USER_APPLICATIONS_LIST: The right to list applications the user is a collaborator of.\n - RIGHT_USER_APPLICATIONS_CREATE: The right to create an application under the user account.\n - RIGHT_USER_GATEWAYS_LIST: The right to list gateways the user is a collaborator of.\n - RIGHT_USER_GATEWAYS_CREATE: The right to create a gateway under the account of the user.\n - RIGHT_USER_CLIENTS_LIST: The right to list OAuth clients the user is a collaborator of.\n - RIGHT_USER_CLIENTS_CREATE: The right to create an OAuth client under the account of the user.\n - RIGHT_USER_ORGANIZATIONS_LIST: The right to list organizations the user is a member of.\n - RIGHT_USER_ORGANIZATIONS_CREATE: The right to create an organization under the user account.\n - RIGHT_USER_NOTIFICATIONS_READ: The right to read notifications sent to the user.\n - RIGHT_USER_ALL: The pseudo-right for all (current and future) user rights.\n - RIGHT_APPLICATION_INFO: The right to view application information.\n - RIGHT_APPLICATION_SETTINGS_BASIC: The right to edit basic application settings.\n - RIGHT_APPLICATION_SETTINGS_API_KEYS: The right to view and edit application API keys.\n - RIGHT_APPLICATION_SETTINGS_COLLABORATORS: The right to view and edit application collaborators.\n - RIGHT_APPLICATION_SETTINGS_PACKAGES: The right to view and edit application packages and associations.\n - RIGHT_APPLICATION_DELETE: The right to delete application.\n - RIGHT_APPLICATION_PURGE: The right to purge application.\n - RIGHT_APPLICATION_DEVICES_READ: The right to view devices in application.\n - RIGHT_APPLICATION_DEVICES_WRITE: The right to create devices in application.\n - RIGHT_APPLICATION_DEVICES_READ_KEYS: The right to view device keys in application.\nNote that keys may not be stored in a way that supports viewing them.\n - RIGHT_APPLICATION_DEVICES_WRITE_KEYS: The right to edit device keys in application.\n - RIGHT_APPLICATION_TRAFFIC_READ: The right to read application traffic (uplink and downlink).\n - RIGHT_APPLICATION_TRAFFIC_UP_WRITE: The right to write uplink application traffic.\n - RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE: The right to write downlink application traffic.\n - RIGHT_APPLICATION_LINK: The right to link as Application to a Network Server for traffic exchange,\ni.e. read uplink and write downlink (API keys only).\nThis right is typically only given to an Application Server.\nThis right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ,\nand RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.\n - RIGHT_APPLICATION_ALL: The pseudo-right for all (current and future) application rights.\n - RIGHT_CLIENT_ALL: The pseudo-right for all (current and future) OAuth client rights.\n - RIGHT_CLIENT_INFO: The right to read client information.\n - RIGHT_CLIENT_SETTINGS_BASIC: The right to edit basic client settings.\n - RIGHT_CLIENT_SETTINGS_COLLABORATORS: The right to view and edit client collaborators.\n - RIGHT_CLIENT_DELETE: The right to delete a client.\n - RIGHT_CLIENT_PURGE: The right to purge a client.\n - RIGHT_GATEWAY_INFO: The right to view gateway information.\n - RIGHT_GATEWAY_SETTINGS_BASIC: The right to edit basic gateway settings.\n - RIGHT_GATEWAY_SETTINGS_API_KEYS: The right to view and edit gateway API keys.\n - RIGHT_GATEWAY_SETTINGS_COLLABORATORS: The right to view and edit gateway collaborators.\n - RIGHT_GATEWAY_DELETE: The right to delete gateway.\n - RIGHT_GATEWAY_PURGE: The right to purge gateway.\n - RIGHT_GATEWAY_TRAFFIC_READ: The right to read gateway traffic.\n - RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE: The right to write downlink gateway traffic.\n - RIGHT_GATEWAY_LINK: The right to link as Gateway to a Gateway Server for traffic exchange,\ni.e. write uplink and read downlink (API keys only)\nThis right is typically only given to a gateway.\nThis right implies RIGHT_GATEWAY_INFO.\n - RIGHT_GATEWAY_STATUS_READ: The right to view gateway status.\n - RIGHT_GATEWAY_LOCATION_READ: The right to view view gateway location.\n - RIGHT_GATEWAY_WRITE_SECRETS: The right to store secrets associated with this gateway.\n - RIGHT_GATEWAY_READ_SECRETS: The right to retrieve secrets associated with this gateway.\n - RIGHT_GATEWAY_ALL: The pseudo-right for all (current and future) gateway rights.\n - RIGHT_ORGANIZATION_INFO: The right to view organization information.\n - RIGHT_ORGANIZATION_SETTINGS_BASIC: The right to edit basic organization settings.\n - RIGHT_ORGANIZATION_SETTINGS_API_KEYS: The right to view and edit organization API keys.\n - RIGHT_ORGANIZATION_SETTINGS_MEMBERS: The right to view and edit organization members.\n - RIGHT_ORGANIZATION_DELETE: The right to delete organization.\n - RIGHT_ORGANIZATION_PURGE: The right to purge organization.\n - RIGHT_ORGANIZATION_APPLICATIONS_LIST: The right to list the applications the organization is a collaborator of.\n - RIGHT_ORGANIZATION_APPLICATIONS_CREATE: The right to create an application under the organization.\n - RIGHT_ORGANIZATION_GATEWAYS_LIST: The right to list the gateways the organization is a collaborator of.\n - RIGHT_ORGANIZATION_GATEWAYS_CREATE: The right to create a gateway under the organization.\n - RIGHT_ORGANIZATION_CLIENTS_LIST: The right to list the OAuth clients the organization is a collaborator of.\n - RIGHT_ORGANIZATION_CLIENTS_CREATE: The right to create an OAuth client under the organization.\n - RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR: The right to add the organization as a collaborator on an existing entity.\n - RIGHT_ORGANIZATION_ALL: The pseudo-right for all (current and future) organization rights.\n - RIGHT_SEND_INVITES: The right to send invites to new users.\nNote that this is not prefixed with \"USER_\"; it is not a right on the user entity.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE: The right to create an alert notification profile.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_INFO: The right to view an alert notification profile information.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_LIST: The right to list the alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE: The right to update an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE: The right to delete an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE: The right to create an alert notification receiver.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO: The right to view an alert notification receiver information.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST: The right to list the alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE: The right to update an alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE: The right to delete an alert notification receivers.\n - RIGHT_AUTHENTICATION_PROVIDER_CREATE: The right to create an authentication provider.\n - RIGHT_AUTHENTICATION_PROVIDER_INFO: The right to view an authentication provider information.\n - RIGHT_AUTHENTICATION_PROVIDER_LIST: The right to list the authentication providers\n - RIGHT_AUTHENTICATION_PROVIDER_UPDATE: The right to update an authentication providers.\n - RIGHT_AUTHENTICATION_PROVIDER_DELETE: The right to delete an authentication providers.\n - RIGHT_EXTERNAL_USER_CREATE: The right to create an external user.\n - RIGHT_EXTERNAL_USER_INFO: The right to view an external user's information.\n - RIGHT_EXTERNAL_USER_DELETE: The right to delete an external user.\n - RIGHT_PACKET_BROKER_AGENT_READ: The right to read any information related to the PBA.\n - RIGHT_PACKET_BROKER_AGENT_WRITE: The right to perform operations in the PBA.\n - RIGHT_TENANT_CONFIGURATION_UPDATE: The right to update a tenant's configuration.\n - RIGHT_LABEL_CREATE: The right to create a label.\n - RIGHT_LABEL_INFO: The right to view a label's information.\n - RIGHT_LABELS_LIST: The right to list the labels.\n - RIGHT_LABEL_UPDATE: The right to update a label.\n - RIGHT_LABEL_DELETE: The right to delete a label.\n - RIGHT_LABEL_ASSIGN: The right to assign a label to an entity.\n - RIGHT_ALL: The pseudo-right for all (current and future) possible rights.",
              "enum": [
                "right_invalid",
                "RIGHT_USER_INFO",
                "RIGHT_USER_SETTINGS_BASIC",
                "RIGHT_USER_LIST",
                "RIGHT_USER_CREATE",
                "RIGHT_USER_SETTINGS_API_KEYS",
                "RIGHT_USER_DELETE",
                "RIGHT_USER_PURGE",
                "RIGHT_USER_AUTHORIZED_CLIENTS",
                "RIGHT_USER_APPLICATIONS_LIST",
                "RIGHT_USER_APPLICATIONS_CREATE",
                "RIGHT_USER_GATEWAYS_LIST",
                "RIGHT_USER_GATEWAYS_CREATE",
                "RIGHT_USER_CLIENTS_LIST",
                "RIGHT_USER_CLIENTS_CREATE",
                "RIGHT_USER_ORGANIZATIONS_LIST",
                "RIGHT_USER_ORGANIZATIONS_CREATE",
                "RIGHT_USER_NOTIFICATIONS_READ",
                "RIGHT_USER_ALL",
                "RIGHT_APPLICATION_INFO",
                "RIGHT_APPLICATION_SETTINGS_BASIC",
                "RIGHT_APPLICATION_SETTINGS_API_KEYS",
                "RIGHT_APPLICATION_SETTINGS_COLLABORATORS",
                "RIGHT_APPLICATION_SETTINGS_PACKAGES",
                "RIGHT_APPLICATION_DELETE",
                "RIGHT_APPLICATION_PURGE",
                "RIGHT_APPLICATION_DEVICES_READ",
                "RIGHT_APPLICATION_DEVICES_WRITE",
                "RIGHT_APPLICATION_DEVICES_READ_KEYS",
                "RIGHT_APPLICATION_DEVICES_WRITE_KEYS",
                "RIGHT_APPLICATION_TRAFFIC_READ",
                "RIGHT_APPLICATION_TRAFFIC_UP_WRITE",
                "RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE",
                "RIGHT_APPLICATION_LINK",
                "RIGHT_APPLICATION_ALL",
                "RIGHT_CLIENT_ALL",
                "RIGHT_CLIENT_INFO",
                "RIGHT_CLIENT_SETTINGS_BASIC",
                "RIGHT_CLIENT_SETTINGS_COLLABORATORS",
                "RIGHT_CLIENT_DELETE",
                "RIGHT_CLIENT_PURGE",
                "RIGHT_GATEWAY_INFO",
                "RIGHT_GATEWAY_SETTINGS_BASIC",
                "RIGHT_GATEWAY_SETTINGS_API_KEYS",
                "RIGHT_GATEWAY_SETTINGS_COLLABORATORS",
                "RIGHT_GATEWAY_DELETE",
                "RIGHT_GATEWAY_PURGE",
                "RIGHT_GATEWAY_TRAFFIC_READ",
                "RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE",
                "RIGHT_GATEWAY_LINK",
                "RIGHT_GATEWAY_STATUS_READ",
                "RIGHT_GATEWAY_LOCATION_READ",
                "RIGHT_GATEWAY_WRITE_SECRETS",
                "RIGHT_GATEWAY_READ_SECRETS",
                "RIGHT_GATEWAY_ALL",
                "RIGHT_ORGANIZATION_INFO",
                "RIGHT_ORGANIZATION_SETTINGS_BASIC",
                "RIGHT_ORGANIZATION_SETTINGS_API_KEYS",
                "RIGHT_ORGANIZATION_SETTINGS_MEMBERS",
                "RIGHT_ORGANIZATION_DELETE",
                "RIGHT_ORGANIZATION_PURGE",
                "RIGHT_ORGANIZATION_APPLICATIONS_LIST",
                "RIGHT_ORGANIZATION_APPLICATIONS_CREATE",
                "RIGHT_ORGANIZATION_GATEWAYS_LIST",
                "RIGHT_ORGANIZATION_GATEWAYS_CREATE",
                "RIGHT_ORGANIZATION_CLIENTS_LIST",
                "RIGHT_ORGANIZATION_CLIENTS_CREATE",
                "RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR",
                "RIGHT_ORGANIZATION_ALL",
                "RIGHT_SEND_INVITES",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_INFO",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_LIST",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE",
                "RIGHT_AUTHENTICATION_PROVIDER_CREATE",
                "RIGHT_AUTHENTICATION_PROVIDER_INFO",
                "RIGHT_AUTHENTICATION_PROVIDER_LIST",
                "RIGHT_AUTHENTICATION_PROVIDER_UPDATE",
                "RIGHT_AUTHENTICATION_PROVIDER_DELETE",
                "RIGHT_EXTERNAL_USER_CREATE",
                "RIGHT_EXTERNAL_USER_INFO",
                "RIGHT_EXTERNAL_USER_DELETE",
                "RIGHT_PACKET_BROKER_AGENT_READ",
                "RIGHT_PACKET_BROKER_AGENT_WRITE",
                "RIGHT_TENANT_CONFIGURATION_UPDATE",
                "RIGHT_LABEL_CREATE",
                "RIGHT_LABEL_INFO",
                "RIGHT_LABELS_LIST",
                "RIGHT_LABEL_UPDATE",
                "RIGHT_LABEL_DELETE",
                "RIGHT_LABEL_ASSIGN",
                "RIGHT_ALL"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "secret": {
            "description": "The client secret is only visible to collaborators of the client.",
            "type": "string"
          },
          "skip_authorization": {
            "description": "If set, the authorization page will be skipped.\nThis information is public and can be seen by any authenticated user in the network.\nThis field can only be modified by admins.",
            "type": "boolean"
          },
          "state": {
            "default": "STATE_REQUESTED",
            "description": "State enum defines states that an entity can be in.\n\n - STATE_REQUESTED: Denotes that the entity has been requested and is pending review by an admin.\n - STATE_APPROVED: Denotes that the entity has been reviewed and approved by an admin.\n - STATE_REJECTED: Denotes that the entity has been reviewed and rejected by an admin.\n - STATE_FLAGGED: Denotes that the entity has been flagged and is pending review by an admin.\n - STATE_SUSPENDED: Denotes that the entity has been reviewed and suspended by an admin.",
            "enum": [
              "STATE_REQUESTED",
              "STATE_APPROVED",
              "STATE_REJECTED",
              "STATE_FLAGGED",
              "STATE_SUSPENDED"
            ],
            "type": "string"
          },
          "state_description": {
            "description": "A description for the state field.\nThis field can only be modified by admins, and should typically only be updated\nwhen also updating `state`.",
            "type": "string"
          },
          "technical_contact": {
            "description": "OrganizationOrUserIdentifiers contains either organization or user identifiers.",
            "properties": {
              "organization_ids": {
                "properties": {
                  "organization_id": {
                    "description": "This ID shares namespace with user IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "user_ids": {
                "properties": {
                  "email": {
                    "description": "Secondary identifier, which can only be used in specific requests.",
                    "type": "string"
                  },
                  "user_id": {
                    "description": "This ID shares namespace with organization IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "updated_at": {
            "description": "When the OAuth client was last updated. This information is public and can be seen by any authenticated user in the network.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "collaborator": {
        "description": "Collaborator to grant all rights on the newly created client.",
        "properties": {
          "organization_ids": {
            "type": "object"
          },
          "user_ids": {
            "properties": {
              "email": {
                "description": "Secondary identifier, which can only be used in specific requests.",
                "type": "string"
              },
              "user_id": {
                "description": "This ID shares namespace with organization IDs.",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "title": "Collaborator to grant all rights on the newly created client.",
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    ClientRegistryUpdateBody

    Fields
    Name Type Description
    client object An OAuth client on the network.
    field_mask string The names of the client fields that should be updated.
    Schema
    {
      "client": {
        "description": "An OAuth client on the network.",
        "properties": {
          "administrative_contact": {
            "description": "OrganizationOrUserIdentifiers contains either organization or user identifiers.",
            "properties": {
              "organization_ids": {
                "properties": {
                  "organization_id": {
                    "description": "This ID shares namespace with user IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "user_ids": {
                "properties": {
                  "email": {
                    "description": "Secondary identifier, which can only be used in specific requests.",
                    "type": "string"
                  },
                  "user_id": {
                    "description": "This ID shares namespace with organization IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Key-value attributes for this client. Typically used for organizing clients or for storing integration-specific data.",
            "type": "object"
          },
          "contact_info": {
            "description": "Contact information for this client. Typically used to indicate who to contact with technical/security questions about the application.\nThis information is public and can be seen by any authenticated user in the network.\nThis field is deprecated. Use administrative_contact and technical_contact instead.",
            "items": {
              "properties": {
                "contact_method": {
                  "default": "CONTACT_METHOD_OTHER",
                  "enum": [
                    "CONTACT_METHOD_OTHER",
                    "CONTACT_METHOD_EMAIL",
                    "CONTACT_METHOD_PHONE"
                  ],
                  "type": "string"
                },
                "contact_type": {
                  "default": "CONTACT_TYPE_OTHER",
                  "enum": [
                    "CONTACT_TYPE_OTHER",
                    "CONTACT_TYPE_ABUSE",
                    "CONTACT_TYPE_BILLING",
                    "CONTACT_TYPE_TECHNICAL"
                  ],
                  "type": "string"
                },
                "public": {
                  "type": "boolean"
                },
                "validated_at": {
                  "format": "date-time",
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "created_at": {
            "description": "When the OAuth client was created. This information is public and can be seen by any authenticated user in the network.",
            "format": "date-time",
            "type": "string"
          },
          "deleted_at": {
            "description": "When the OAuth client was deleted. This information is public and can be seen by any authenticated user in the network.",
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "A description for the OAuth client. This information is public and can be seen by any authenticated user in the network.",
            "type": "string"
          },
          "endorsed": {
            "description": "If set, the authorization page will show endorsement.\nThis information is public and can be seen by any authenticated user in the network.\nThis field can only be modified by admins.",
            "type": "boolean"
          },
          "grants": {
            "description": "OAuth flows that can be used for the client to get a token.\nThis information is public and can be seen by any authenticated user in the network.\nAfter a client is created, this field can only be modified by admins.",
            "items": {
              "default": "GRANT_AUTHORIZATION_CODE",
              "description": "The OAuth2 flows an OAuth client can use to get an access token.\n\n - GRANT_AUTHORIZATION_CODE: Grant type used to exchange an authorization code for an access token.\n - GRANT_PASSWORD: Grant type used to exchange a user ID and password for an access token.\n - GRANT_REFRESH_TOKEN: Grant type used to exchange a refresh token for an access token.",
              "enum": [
                "GRANT_AUTHORIZATION_CODE",
                "GRANT_PASSWORD",
                "GRANT_REFRESH_TOKEN"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "ids": {
            "description": "The identifiers of the OAuth client. These are public and can be seen by any authenticated user in the network.",
            "title": "The identifiers of the OAuth client. These are public and can be seen by any authenticated user in the network.",
            "type": "object"
          },
          "label_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "logout_redirect_uris": {
            "description": "The allowed logout redirect URIs against which client initiated logout\nrequests are checked. If the authorization request does not pass a redirect\nURI, the first one from this list is taken.\nThis information is public and can be seen by any authenticated user in the network.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the OAuth client. This information is public and can be seen by any authenticated user in the network.",
            "type": "string"
          },
          "redirect_uris": {
            "description": "The allowed redirect URIs against which authorization requests are checked.\nIf the authorization request does not pass a redirect URI, the first one\nfrom this list is taken.\nThis information is public and can be seen by any authenticated user in the network.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "rights": {
            "description": "Rights denotes what rights the client will have access to.\nThis information is public and can be seen by any authenticated user in the network.\nUsers that previously authorized this client will have to re-authorize the\nclient after rights are added to this list.",
            "items": {
              "default": "right_invalid",
              "description": "Right is the enum that defines all the different rights to do something in the network.\n\n - RIGHT_USER_INFO: The right to view user information.\n - RIGHT_USER_SETTINGS_BASIC: The right to edit basic user settings.\n - RIGHT_USER_LIST: The right to list users accounts.\n - RIGHT_USER_CREATE: The right to create an user account.\n - RIGHT_USER_SETTINGS_API_KEYS: The right to view and edit user API keys.\n - RIGHT_USER_DELETE: The right to delete user account.\n - RIGHT_USER_PURGE: The right to purge user account.\n - RIGHT_USER_AUTHORIZED_CLIENTS: The right to view and edit authorized OAuth clients of the user.\n - RIGHT_USER_APPLICATIONS_LIST: The right to list applications the user is a collaborator of.\n - RIGHT_USER_APPLICATIONS_CREATE: The right to create an application under the user account.\n - RIGHT_USER_GATEWAYS_LIST: The right to list gateways the user is a collaborator of.\n - RIGHT_USER_GATEWAYS_CREATE: The right to create a gateway under the account of the user.\n - RIGHT_USER_CLIENTS_LIST: The right to list OAuth clients the user is a collaborator of.\n - RIGHT_USER_CLIENTS_CREATE: The right to create an OAuth client under the account of the user.\n - RIGHT_USER_ORGANIZATIONS_LIST: The right to list organizations the user is a member of.\n - RIGHT_USER_ORGANIZATIONS_CREATE: The right to create an organization under the user account.\n - RIGHT_USER_NOTIFICATIONS_READ: The right to read notifications sent to the user.\n - RIGHT_USER_ALL: The pseudo-right for all (current and future) user rights.\n - RIGHT_APPLICATION_INFO: The right to view application information.\n - RIGHT_APPLICATION_SETTINGS_BASIC: The right to edit basic application settings.\n - RIGHT_APPLICATION_SETTINGS_API_KEYS: The right to view and edit application API keys.\n - RIGHT_APPLICATION_SETTINGS_COLLABORATORS: The right to view and edit application collaborators.\n - RIGHT_APPLICATION_SETTINGS_PACKAGES: The right to view and edit application packages and associations.\n - RIGHT_APPLICATION_DELETE: The right to delete application.\n - RIGHT_APPLICATION_PURGE: The right to purge application.\n - RIGHT_APPLICATION_DEVICES_READ: The right to view devices in application.\n - RIGHT_APPLICATION_DEVICES_WRITE: The right to create devices in application.\n - RIGHT_APPLICATION_DEVICES_READ_KEYS: The right to view device keys in application.\nNote that keys may not be stored in a way that supports viewing them.\n - RIGHT_APPLICATION_DEVICES_WRITE_KEYS: The right to edit device keys in application.\n - RIGHT_APPLICATION_TRAFFIC_READ: The right to read application traffic (uplink and downlink).\n - RIGHT_APPLICATION_TRAFFIC_UP_WRITE: The right to write uplink application traffic.\n - RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE: The right to write downlink application traffic.\n - RIGHT_APPLICATION_LINK: The right to link as Application to a Network Server for traffic exchange,\ni.e. read uplink and write downlink (API keys only).\nThis right is typically only given to an Application Server.\nThis right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ,\nand RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.\n - RIGHT_APPLICATION_ALL: The pseudo-right for all (current and future) application rights.\n - RIGHT_CLIENT_ALL: The pseudo-right for all (current and future) OAuth client rights.\n - RIGHT_CLIENT_INFO: The right to read client information.\n - RIGHT_CLIENT_SETTINGS_BASIC: The right to edit basic client settings.\n - RIGHT_CLIENT_SETTINGS_COLLABORATORS: The right to view and edit client collaborators.\n - RIGHT_CLIENT_DELETE: The right to delete a client.\n - RIGHT_CLIENT_PURGE: The right to purge a client.\n - RIGHT_GATEWAY_INFO: The right to view gateway information.\n - RIGHT_GATEWAY_SETTINGS_BASIC: The right to edit basic gateway settings.\n - RIGHT_GATEWAY_SETTINGS_API_KEYS: The right to view and edit gateway API keys.\n - RIGHT_GATEWAY_SETTINGS_COLLABORATORS: The right to view and edit gateway collaborators.\n - RIGHT_GATEWAY_DELETE: The right to delete gateway.\n - RIGHT_GATEWAY_PURGE: The right to purge gateway.\n - RIGHT_GATEWAY_TRAFFIC_READ: The right to read gateway traffic.\n - RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE: The right to write downlink gateway traffic.\n - RIGHT_GATEWAY_LINK: The right to link as Gateway to a Gateway Server for traffic exchange,\ni.e. write uplink and read downlink (API keys only)\nThis right is typically only given to a gateway.\nThis right implies RIGHT_GATEWAY_INFO.\n - RIGHT_GATEWAY_STATUS_READ: The right to view gateway status.\n - RIGHT_GATEWAY_LOCATION_READ: The right to view view gateway location.\n - RIGHT_GATEWAY_WRITE_SECRETS: The right to store secrets associated with this gateway.\n - RIGHT_GATEWAY_READ_SECRETS: The right to retrieve secrets associated with this gateway.\n - RIGHT_GATEWAY_ALL: The pseudo-right for all (current and future) gateway rights.\n - RIGHT_ORGANIZATION_INFO: The right to view organization information.\n - RIGHT_ORGANIZATION_SETTINGS_BASIC: The right to edit basic organization settings.\n - RIGHT_ORGANIZATION_SETTINGS_API_KEYS: The right to view and edit organization API keys.\n - RIGHT_ORGANIZATION_SETTINGS_MEMBERS: The right to view and edit organization members.\n - RIGHT_ORGANIZATION_DELETE: The right to delete organization.\n - RIGHT_ORGANIZATION_PURGE: The right to purge organization.\n - RIGHT_ORGANIZATION_APPLICATIONS_LIST: The right to list the applications the organization is a collaborator of.\n - RIGHT_ORGANIZATION_APPLICATIONS_CREATE: The right to create an application under the organization.\n - RIGHT_ORGANIZATION_GATEWAYS_LIST: The right to list the gateways the organization is a collaborator of.\n - RIGHT_ORGANIZATION_GATEWAYS_CREATE: The right to create a gateway under the organization.\n - RIGHT_ORGANIZATION_CLIENTS_LIST: The right to list the OAuth clients the organization is a collaborator of.\n - RIGHT_ORGANIZATION_CLIENTS_CREATE: The right to create an OAuth client under the organization.\n - RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR: The right to add the organization as a collaborator on an existing entity.\n - RIGHT_ORGANIZATION_ALL: The pseudo-right for all (current and future) organization rights.\n - RIGHT_SEND_INVITES: The right to send invites to new users.\nNote that this is not prefixed with \"USER_\"; it is not a right on the user entity.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE: The right to create an alert notification profile.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_INFO: The right to view an alert notification profile information.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_LIST: The right to list the alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE: The right to update an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE: The right to delete an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE: The right to create an alert notification receiver.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO: The right to view an alert notification receiver information.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST: The right to list the alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE: The right to update an alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE: The right to delete an alert notification receivers.\n - RIGHT_AUTHENTICATION_PROVIDER_CREATE: The right to create an authentication provider.\n - RIGHT_AUTHENTICATION_PROVIDER_INFO: The right to view an authentication provider information.\n - RIGHT_AUTHENTICATION_PROVIDER_LIST: The right to list the authentication providers\n - RIGHT_AUTHENTICATION_PROVIDER_UPDATE: The right to update an authentication providers.\n - RIGHT_AUTHENTICATION_PROVIDER_DELETE: The right to delete an authentication providers.\n - RIGHT_EXTERNAL_USER_CREATE: The right to create an external user.\n - RIGHT_EXTERNAL_USER_INFO: The right to view an external user's information.\n - RIGHT_EXTERNAL_USER_DELETE: The right to delete an external user.\n - RIGHT_PACKET_BROKER_AGENT_READ: The right to read any information related to the PBA.\n - RIGHT_PACKET_BROKER_AGENT_WRITE: The right to perform operations in the PBA.\n - RIGHT_TENANT_CONFIGURATION_UPDATE: The right to update a tenant's configuration.\n - RIGHT_LABEL_CREATE: The right to create a label.\n - RIGHT_LABEL_INFO: The right to view a label's information.\n - RIGHT_LABELS_LIST: The right to list the labels.\n - RIGHT_LABEL_UPDATE: The right to update a label.\n - RIGHT_LABEL_DELETE: The right to delete a label.\n - RIGHT_LABEL_ASSIGN: The right to assign a label to an entity.\n - RIGHT_ALL: The pseudo-right for all (current and future) possible rights.",
              "enum": [
                "right_invalid",
                "RIGHT_USER_INFO",
                "RIGHT_USER_SETTINGS_BASIC",
                "RIGHT_USER_LIST",
                "RIGHT_USER_CREATE",
                "RIGHT_USER_SETTINGS_API_KEYS",
                "RIGHT_USER_DELETE",
                "RIGHT_USER_PURGE",
                "RIGHT_USER_AUTHORIZED_CLIENTS",
                "RIGHT_USER_APPLICATIONS_LIST",
                "RIGHT_USER_APPLICATIONS_CREATE",
                "RIGHT_USER_GATEWAYS_LIST",
                "RIGHT_USER_GATEWAYS_CREATE",
                "RIGHT_USER_CLIENTS_LIST",
                "RIGHT_USER_CLIENTS_CREATE",
                "RIGHT_USER_ORGANIZATIONS_LIST",
                "RIGHT_USER_ORGANIZATIONS_CREATE",
                "RIGHT_USER_NOTIFICATIONS_READ",
                "RIGHT_USER_ALL",
                "RIGHT_APPLICATION_INFO",
                "RIGHT_APPLICATION_SETTINGS_BASIC",
                "RIGHT_APPLICATION_SETTINGS_API_KEYS",
                "RIGHT_APPLICATION_SETTINGS_COLLABORATORS",
                "RIGHT_APPLICATION_SETTINGS_PACKAGES",
                "RIGHT_APPLICATION_DELETE",
                "RIGHT_APPLICATION_PURGE",
                "RIGHT_APPLICATION_DEVICES_READ",
                "RIGHT_APPLICATION_DEVICES_WRITE",
                "RIGHT_APPLICATION_DEVICES_READ_KEYS",
                "RIGHT_APPLICATION_DEVICES_WRITE_KEYS",
                "RIGHT_APPLICATION_TRAFFIC_READ",
                "RIGHT_APPLICATION_TRAFFIC_UP_WRITE",
                "RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE",
                "RIGHT_APPLICATION_LINK",
                "RIGHT_APPLICATION_ALL",
                "RIGHT_CLIENT_ALL",
                "RIGHT_CLIENT_INFO",
                "RIGHT_CLIENT_SETTINGS_BASIC",
                "RIGHT_CLIENT_SETTINGS_COLLABORATORS",
                "RIGHT_CLIENT_DELETE",
                "RIGHT_CLIENT_PURGE",
                "RIGHT_GATEWAY_INFO",
                "RIGHT_GATEWAY_SETTINGS_BASIC",
                "RIGHT_GATEWAY_SETTINGS_API_KEYS",
                "RIGHT_GATEWAY_SETTINGS_COLLABORATORS",
                "RIGHT_GATEWAY_DELETE",
                "RIGHT_GATEWAY_PURGE",
                "RIGHT_GATEWAY_TRAFFIC_READ",
                "RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE",
                "RIGHT_GATEWAY_LINK",
                "RIGHT_GATEWAY_STATUS_READ",
                "RIGHT_GATEWAY_LOCATION_READ",
                "RIGHT_GATEWAY_WRITE_SECRETS",
                "RIGHT_GATEWAY_READ_SECRETS",
                "RIGHT_GATEWAY_ALL",
                "RIGHT_ORGANIZATION_INFO",
                "RIGHT_ORGANIZATION_SETTINGS_BASIC",
                "RIGHT_ORGANIZATION_SETTINGS_API_KEYS",
                "RIGHT_ORGANIZATION_SETTINGS_MEMBERS",
                "RIGHT_ORGANIZATION_DELETE",
                "RIGHT_ORGANIZATION_PURGE",
                "RIGHT_ORGANIZATION_APPLICATIONS_LIST",
                "RIGHT_ORGANIZATION_APPLICATIONS_CREATE",
                "RIGHT_ORGANIZATION_GATEWAYS_LIST",
                "RIGHT_ORGANIZATION_GATEWAYS_CREATE",
                "RIGHT_ORGANIZATION_CLIENTS_LIST",
                "RIGHT_ORGANIZATION_CLIENTS_CREATE",
                "RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR",
                "RIGHT_ORGANIZATION_ALL",
                "RIGHT_SEND_INVITES",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_INFO",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_LIST",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE",
                "RIGHT_AUTHENTICATION_PROVIDER_CREATE",
                "RIGHT_AUTHENTICATION_PROVIDER_INFO",
                "RIGHT_AUTHENTICATION_PROVIDER_LIST",
                "RIGHT_AUTHENTICATION_PROVIDER_UPDATE",
                "RIGHT_AUTHENTICATION_PROVIDER_DELETE",
                "RIGHT_EXTERNAL_USER_CREATE",
                "RIGHT_EXTERNAL_USER_INFO",
                "RIGHT_EXTERNAL_USER_DELETE",
                "RIGHT_PACKET_BROKER_AGENT_READ",
                "RIGHT_PACKET_BROKER_AGENT_WRITE",
                "RIGHT_TENANT_CONFIGURATION_UPDATE",
                "RIGHT_LABEL_CREATE",
                "RIGHT_LABEL_INFO",
                "RIGHT_LABELS_LIST",
                "RIGHT_LABEL_UPDATE",
                "RIGHT_LABEL_DELETE",
                "RIGHT_LABEL_ASSIGN",
                "RIGHT_ALL"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "secret": {
            "description": "The client secret is only visible to collaborators of the client.",
            "type": "string"
          },
          "skip_authorization": {
            "description": "If set, the authorization page will be skipped.\nThis information is public and can be seen by any authenticated user in the network.\nThis field can only be modified by admins.",
            "type": "boolean"
          },
          "state": {
            "default": "STATE_REQUESTED",
            "description": "State enum defines states that an entity can be in.\n\n - STATE_REQUESTED: Denotes that the entity has been requested and is pending review by an admin.\n - STATE_APPROVED: Denotes that the entity has been reviewed and approved by an admin.\n - STATE_REJECTED: Denotes that the entity has been reviewed and rejected by an admin.\n - STATE_FLAGGED: Denotes that the entity has been flagged and is pending review by an admin.\n - STATE_SUSPENDED: Denotes that the entity has been reviewed and suspended by an admin.",
            "enum": [
              "STATE_REQUESTED",
              "STATE_APPROVED",
              "STATE_REJECTED",
              "STATE_FLAGGED",
              "STATE_SUSPENDED"
            ],
            "type": "string"
          },
          "state_description": {
            "description": "A description for the state field.\nThis field can only be modified by admins, and should typically only be updated\nwhen also updating `state`.",
            "type": "string"
          },
          "technical_contact": {
            "description": "OrganizationOrUserIdentifiers contains either organization or user identifiers.",
            "properties": {
              "organization_ids": {
                "properties": {
                  "organization_id": {
                    "description": "This ID shares namespace with user IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "user_ids": {
                "properties": {
                  "email": {
                    "description": "Secondary identifier, which can only be used in specific requests.",
                    "type": "string"
                  },
                  "user_id": {
                    "description": "This ID shares namespace with organization IDs.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "updated_at": {
            "description": "When the OAuth client was last updated. This information is public and can be seen by any authenticated user in the network.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "field_mask": {
        "description": "The names of the client fields that should be updated.",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    Clients

    Fields
    Name Type Description
    clients object
    Schema
    {
      "clients": {
        "items": {
          "description": "An OAuth client on the network.",
          "properties": {
            "administrative_contact": {
              "description": "OrganizationOrUserIdentifiers contains either organization or user identifiers.",
              "properties": {
                "organization_ids": {
                  "properties": {
                    "organization_id": {
                      "description": "This ID shares namespace with user IDs.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "user_ids": {
                  "properties": {
                    "email": {
                      "description": "Secondary identifier, which can only be used in specific requests.",
                      "type": "string"
                    },
                    "user_id": {
                      "description": "This ID shares namespace with organization IDs.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "attributes": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Key-value attributes for this client. Typically used for organizing clients or for storing integration-specific data.",
              "type": "object"
            },
            "contact_info": {
              "description": "Contact information for this client. Typically used to indicate who to contact with technical/security questions about the application.\nThis information is public and can be seen by any authenticated user in the network.\nThis field is deprecated. Use administrative_contact and technical_contact instead.",
              "items": {
                "properties": {
                  "contact_method": {
                    "default": "CONTACT_METHOD_OTHER",
                    "enum": [
                      "CONTACT_METHOD_OTHER",
                      "CONTACT_METHOD_EMAIL",
                      "CONTACT_METHOD_PHONE"
                    ],
                    "type": "string"
                  },
                  "contact_type": {
                    "default": "CONTACT_TYPE_OTHER",
                    "enum": [
                      "CONTACT_TYPE_OTHER",
                      "CONTACT_TYPE_ABUSE",
                      "CONTACT_TYPE_BILLING",
                      "CONTACT_TYPE_TECHNICAL"
                    ],
                    "type": "string"
                  },
                  "public": {
                    "type": "boolean"
                  },
                  "validated_at": {
                    "format": "date-time",
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "created_at": {
              "description": "When the OAuth client was created. This information is public and can be seen by any authenticated user in the network.",
              "format": "date-time",
              "type": "string"
            },
            "deleted_at": {
              "description": "When the OAuth client was deleted. This information is public and can be seen by any authenticated user in the network.",
              "format": "date-time",
              "type": "string"
            },
            "description": {
              "description": "A description for the OAuth client. This information is public and can be seen by any authenticated user in the network.",
              "type": "string"
            },
            "endorsed": {
              "description": "If set, the authorization page will show endorsement.\nThis information is public and can be seen by any authenticated user in the network.\nThis field can only be modified by admins.",
              "type": "boolean"
            },
            "grants": {
              "description": "OAuth flows that can be used for the client to get a token.\nThis information is public and can be seen by any authenticated user in the network.\nAfter a client is created, this field can only be modified by admins.",
              "items": {
                "default": "GRANT_AUTHORIZATION_CODE",
                "description": "The OAuth2 flows an OAuth client can use to get an access token.\n\n - GRANT_AUTHORIZATION_CODE: Grant type used to exchange an authorization code for an access token.\n - GRANT_PASSWORD: Grant type used to exchange a user ID and password for an access token.\n - GRANT_REFRESH_TOKEN: Grant type used to exchange a refresh token for an access token.",
                "enum": [
                  "GRANT_AUTHORIZATION_CODE",
                  "GRANT_PASSWORD",
                  "GRANT_REFRESH_TOKEN"
                ],
                "type": "string"
              },
              "type": "array"
            },
            "ids": {
              "properties": {
                "client_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "label_ids": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "logout_redirect_uris": {
              "description": "The allowed logout redirect URIs against which client initiated logout\nrequests are checked. If the authorization request does not pass a redirect\nURI, the first one from this list is taken.\nThis information is public and can be seen by any authenticated user in the network.",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "name": {
              "description": "The name of the OAuth client. This information is public and can be seen by any authenticated user in the network.",
              "type": "string"
            },
            "redirect_uris": {
              "description": "The allowed redirect URIs against which authorization requests are checked.\nIf the authorization request does not pass a redirect URI, the first one\nfrom this list is taken.\nThis information is public and can be seen by any authenticated user in the network.",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "rights": {
              "description": "Rights denotes what rights the client will have access to.\nThis information is public and can be seen by any authenticated user in the network.\nUsers that previously authorized this client will have to re-authorize the\nclient after rights are added to this list.",
              "items": {
                "default": "right_invalid",
                "description": "Right is the enum that defines all the different rights to do something in the network.\n\n - RIGHT_USER_INFO: The right to view user information.\n - RIGHT_USER_SETTINGS_BASIC: The right to edit basic user settings.\n - RIGHT_USER_LIST: The right to list users accounts.\n - RIGHT_USER_CREATE: The right to create an user account.\n - RIGHT_USER_SETTINGS_API_KEYS: The right to view and edit user API keys.\n - RIGHT_USER_DELETE: The right to delete user account.\n - RIGHT_USER_PURGE: The right to purge user account.\n - RIGHT_USER_AUTHORIZED_CLIENTS: The right to view and edit authorized OAuth clients of the user.\n - RIGHT_USER_APPLICATIONS_LIST: The right to list applications the user is a collaborator of.\n - RIGHT_USER_APPLICATIONS_CREATE: The right to create an application under the user account.\n - RIGHT_USER_GATEWAYS_LIST: The right to list gateways the user is a collaborator of.\n - RIGHT_USER_GATEWAYS_CREATE: The right to create a gateway under the account of the user.\n - RIGHT_USER_CLIENTS_LIST: The right to list OAuth clients the user is a collaborator of.\n - RIGHT_USER_CLIENTS_CREATE: The right to create an OAuth client under the account of the user.\n - RIGHT_USER_ORGANIZATIONS_LIST: The right to list organizations the user is a member of.\n - RIGHT_USER_ORGANIZATIONS_CREATE: The right to create an organization under the user account.\n - RIGHT_USER_NOTIFICATIONS_READ: The right to read notifications sent to the user.\n - RIGHT_USER_ALL: The pseudo-right for all (current and future) user rights.\n - RIGHT_APPLICATION_INFO: The right to view application information.\n - RIGHT_APPLICATION_SETTINGS_BASIC: The right to edit basic application settings.\n - RIGHT_APPLICATION_SETTINGS_API_KEYS: The right to view and edit application API keys.\n - RIGHT_APPLICATION_SETTINGS_COLLABORATORS: The right to view and edit application collaborators.\n - RIGHT_APPLICATION_SETTINGS_PACKAGES: The right to view and edit application packages and associations.\n - RIGHT_APPLICATION_DELETE: The right to delete application.\n - RIGHT_APPLICATION_PURGE: The right to purge application.\n - RIGHT_APPLICATION_DEVICES_READ: The right to view devices in application.\n - RIGHT_APPLICATION_DEVICES_WRITE: The right to create devices in application.\n - RIGHT_APPLICATION_DEVICES_READ_KEYS: The right to view device keys in application.\nNote that keys may not be stored in a way that supports viewing them.\n - RIGHT_APPLICATION_DEVICES_WRITE_KEYS: The right to edit device keys in application.\n - RIGHT_APPLICATION_TRAFFIC_READ: The right to read application traffic (uplink and downlink).\n - RIGHT_APPLICATION_TRAFFIC_UP_WRITE: The right to write uplink application traffic.\n - RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE: The right to write downlink application traffic.\n - RIGHT_APPLICATION_LINK: The right to link as Application to a Network Server for traffic exchange,\ni.e. read uplink and write downlink (API keys only).\nThis right is typically only given to an Application Server.\nThis right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ,\nand RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.\n - RIGHT_APPLICATION_ALL: The pseudo-right for all (current and future) application rights.\n - RIGHT_CLIENT_ALL: The pseudo-right for all (current and future) OAuth client rights.\n - RIGHT_CLIENT_INFO: The right to read client information.\n - RIGHT_CLIENT_SETTINGS_BASIC: The right to edit basic client settings.\n - RIGHT_CLIENT_SETTINGS_COLLABORATORS: The right to view and edit client collaborators.\n - RIGHT_CLIENT_DELETE: The right to delete a client.\n - RIGHT_CLIENT_PURGE: The right to purge a client.\n - RIGHT_GATEWAY_INFO: The right to view gateway information.\n - RIGHT_GATEWAY_SETTINGS_BASIC: The right to edit basic gateway settings.\n - RIGHT_GATEWAY_SETTINGS_API_KEYS: The right to view and edit gateway API keys.\n - RIGHT_GATEWAY_SETTINGS_COLLABORATORS: The right to view and edit gateway collaborators.\n - RIGHT_GATEWAY_DELETE: The right to delete gateway.\n - RIGHT_GATEWAY_PURGE: The right to purge gateway.\n - RIGHT_GATEWAY_TRAFFIC_READ: The right to read gateway traffic.\n - RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE: The right to write downlink gateway traffic.\n - RIGHT_GATEWAY_LINK: The right to link as Gateway to a Gateway Server for traffic exchange,\ni.e. write uplink and read downlink (API keys only)\nThis right is typically only given to a gateway.\nThis right implies RIGHT_GATEWAY_INFO.\n - RIGHT_GATEWAY_STATUS_READ: The right to view gateway status.\n - RIGHT_GATEWAY_LOCATION_READ: The right to view view gateway location.\n - RIGHT_GATEWAY_WRITE_SECRETS: The right to store secrets associated with this gateway.\n - RIGHT_GATEWAY_READ_SECRETS: The right to retrieve secrets associated with this gateway.\n - RIGHT_GATEWAY_ALL: The pseudo-right for all (current and future) gateway rights.\n - RIGHT_ORGANIZATION_INFO: The right to view organization information.\n - RIGHT_ORGANIZATION_SETTINGS_BASIC: The right to edit basic organization settings.\n - RIGHT_ORGANIZATION_SETTINGS_API_KEYS: The right to view and edit organization API keys.\n - RIGHT_ORGANIZATION_SETTINGS_MEMBERS: The right to view and edit organization members.\n - RIGHT_ORGANIZATION_DELETE: The right to delete organization.\n - RIGHT_ORGANIZATION_PURGE: The right to purge organization.\n - RIGHT_ORGANIZATION_APPLICATIONS_LIST: The right to list the applications the organization is a collaborator of.\n - RIGHT_ORGANIZATION_APPLICATIONS_CREATE: The right to create an application under the organization.\n - RIGHT_ORGANIZATION_GATEWAYS_LIST: The right to list the gateways the organization is a collaborator of.\n - RIGHT_ORGANIZATION_GATEWAYS_CREATE: The right to create a gateway under the organization.\n - RIGHT_ORGANIZATION_CLIENTS_LIST: The right to list the OAuth clients the organization is a collaborator of.\n - RIGHT_ORGANIZATION_CLIENTS_CREATE: The right to create an OAuth client under the organization.\n - RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR: The right to add the organization as a collaborator on an existing entity.\n - RIGHT_ORGANIZATION_ALL: The pseudo-right for all (current and future) organization rights.\n - RIGHT_SEND_INVITES: The right to send invites to new users.\nNote that this is not prefixed with \"USER_\"; it is not a right on the user entity.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE: The right to create an alert notification profile.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_INFO: The right to view an alert notification profile information.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_LIST: The right to list the alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE: The right to update an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE: The right to delete an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE: The right to create an alert notification receiver.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO: The right to view an alert notification receiver information.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST: The right to list the alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE: The right to update an alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE: The right to delete an alert notification receivers.\n - RIGHT_AUTHENTICATION_PROVIDER_CREATE: The right to create an authentication provider.\n - RIGHT_AUTHENTICATION_PROVIDER_INFO: The right to view an authentication provider information.\n - RIGHT_AUTHENTICATION_PROVIDER_LIST: The right to list the authentication providers\n - RIGHT_AUTHENTICATION_PROVIDER_UPDATE: The right to update an authentication providers.\n - RIGHT_AUTHENTICATION_PROVIDER_DELETE: The right to delete an authentication providers.\n - RIGHT_EXTERNAL_USER_CREATE: The right to create an external user.\n - RIGHT_EXTERNAL_USER_INFO: The right to view an external user's information.\n - RIGHT_EXTERNAL_USER_DELETE: The right to delete an external user.\n - RIGHT_PACKET_BROKER_AGENT_READ: The right to read any information related to the PBA.\n - RIGHT_PACKET_BROKER_AGENT_WRITE: The right to perform operations in the PBA.\n - RIGHT_TENANT_CONFIGURATION_UPDATE: The right to update a tenant's configuration.\n - RIGHT_LABEL_CREATE: The right to create a label.\n - RIGHT_LABEL_INFO: The right to view a label's information.\n - RIGHT_LABELS_LIST: The right to list the labels.\n - RIGHT_LABEL_UPDATE: The right to update a label.\n - RIGHT_LABEL_DELETE: The right to delete a label.\n - RIGHT_LABEL_ASSIGN: The right to assign a label to an entity.\n - RIGHT_ALL: The pseudo-right for all (current and future) possible rights.",
                "enum": [
                  "right_invalid",
                  "RIGHT_USER_INFO",
                  "RIGHT_USER_SETTINGS_BASIC",
                  "RIGHT_USER_LIST",
                  "RIGHT_USER_CREATE",
                  "RIGHT_USER_SETTINGS_API_KEYS",
                  "RIGHT_USER_DELETE",
                  "RIGHT_USER_PURGE",
                  "RIGHT_USER_AUTHORIZED_CLIENTS",
                  "RIGHT_USER_APPLICATIONS_LIST",
                  "RIGHT_USER_APPLICATIONS_CREATE",
                  "RIGHT_USER_GATEWAYS_LIST",
                  "RIGHT_USER_GATEWAYS_CREATE",
                  "RIGHT_USER_CLIENTS_LIST",
                  "RIGHT_USER_CLIENTS_CREATE",
                  "RIGHT_USER_ORGANIZATIONS_LIST",
                  "RIGHT_USER_ORGANIZATIONS_CREATE",
                  "RIGHT_USER_NOTIFICATIONS_READ",
                  "RIGHT_USER_ALL",
                  "RIGHT_APPLICATION_INFO",
                  "RIGHT_APPLICATION_SETTINGS_BASIC",
                  "RIGHT_APPLICATION_SETTINGS_API_KEYS",
                  "RIGHT_APPLICATION_SETTINGS_COLLABORATORS",
                  "RIGHT_APPLICATION_SETTINGS_PACKAGES",
                  "RIGHT_APPLICATION_DELETE",
                  "RIGHT_APPLICATION_PURGE",
                  "RIGHT_APPLICATION_DEVICES_READ",
                  "RIGHT_APPLICATION_DEVICES_WRITE",
                  "RIGHT_APPLICATION_DEVICES_READ_KEYS",
                  "RIGHT_APPLICATION_DEVICES_WRITE_KEYS",
                  "RIGHT_APPLICATION_TRAFFIC_READ",
                  "RIGHT_APPLICATION_TRAFFIC_UP_WRITE",
                  "RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE",
                  "RIGHT_APPLICATION_LINK",
                  "RIGHT_APPLICATION_ALL",
                  "RIGHT_CLIENT_ALL",
                  "RIGHT_CLIENT_INFO",
                  "RIGHT_CLIENT_SETTINGS_BASIC",
                  "RIGHT_CLIENT_SETTINGS_COLLABORATORS",
                  "RIGHT_CLIENT_DELETE",
                  "RIGHT_CLIENT_PURGE",
                  "RIGHT_GATEWAY_INFO",
                  "RIGHT_GATEWAY_SETTINGS_BASIC",
                  "RIGHT_GATEWAY_SETTINGS_API_KEYS",
                  "RIGHT_GATEWAY_SETTINGS_COLLABORATORS",
                  "RIGHT_GATEWAY_DELETE",
                  "RIGHT_GATEWAY_PURGE",
                  "RIGHT_GATEWAY_TRAFFIC_READ",
                  "RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE",
                  "RIGHT_GATEWAY_LINK",
                  "RIGHT_GATEWAY_STATUS_READ",
                  "RIGHT_GATEWAY_LOCATION_READ",
                  "RIGHT_GATEWAY_WRITE_SECRETS",
                  "RIGHT_GATEWAY_READ_SECRETS",
                  "RIGHT_GATEWAY_ALL",
                  "RIGHT_ORGANIZATION_INFO",
                  "RIGHT_ORGANIZATION_SETTINGS_BASIC",
                  "RIGHT_ORGANIZATION_SETTINGS_API_KEYS",
                  "RIGHT_ORGANIZATION_SETTINGS_MEMBERS",
                  "RIGHT_ORGANIZATION_DELETE",
                  "RIGHT_ORGANIZATION_PURGE",
                  "RIGHT_ORGANIZATION_APPLICATIONS_LIST",
                  "RIGHT_ORGANIZATION_APPLICATIONS_CREATE",
                  "RIGHT_ORGANIZATION_GATEWAYS_LIST",
                  "RIGHT_ORGANIZATION_GATEWAYS_CREATE",
                  "RIGHT_ORGANIZATION_CLIENTS_LIST",
                  "RIGHT_ORGANIZATION_CLIENTS_CREATE",
                  "RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR",
                  "RIGHT_ORGANIZATION_ALL",
                  "RIGHT_SEND_INVITES",
                  "RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE",
                  "RIGHT_ALERT_NOTIFICATION_PROFILE_INFO",
                  "RIGHT_ALERT_NOTIFICATION_PROFILE_LIST",
                  "RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE",
                  "RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE",
                  "RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE",
                  "RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO",
                  "RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST",
                  "RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE",
                  "RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE",
                  "RIGHT_AUTHENTICATION_PROVIDER_CREATE",
                  "RIGHT_AUTHENTICATION_PROVIDER_INFO",
                  "RIGHT_AUTHENTICATION_PROVIDER_LIST",
                  "RIGHT_AUTHENTICATION_PROVIDER_UPDATE",
                  "RIGHT_AUTHENTICATION_PROVIDER_DELETE",
                  "RIGHT_EXTERNAL_USER_CREATE",
                  "RIGHT_EXTERNAL_USER_INFO",
                  "RIGHT_EXTERNAL_USER_DELETE",
                  "RIGHT_PACKET_BROKER_AGENT_READ",
                  "RIGHT_PACKET_BROKER_AGENT_WRITE",
                  "RIGHT_TENANT_CONFIGURATION_UPDATE",
                  "RIGHT_LABEL_CREATE",
                  "RIGHT_LABEL_INFO",
                  "RIGHT_LABELS_LIST",
                  "RIGHT_LABEL_UPDATE",
                  "RIGHT_LABEL_DELETE",
                  "RIGHT_LABEL_ASSIGN",
                  "RIGHT_ALL"
                ],
                "type": "string"
              },
              "type": "array"
            },
            "secret": {
              "description": "The client secret is only visible to collaborators of the client.",
              "type": "string"
            },
            "skip_authorization": {
              "description": "If set, the authorization page will be skipped.\nThis information is public and can be seen by any authenticated user in the network.\nThis field can only be modified by admins.",
              "type": "boolean"
            },
            "state": {
              "default": "STATE_REQUESTED",
              "description": "State enum defines states that an entity can be in.\n\n - STATE_REQUESTED: Denotes that the entity has been requested and is pending review by an admin.\n - STATE_APPROVED: Denotes that the entity has been reviewed and approved by an admin.\n - STATE_REJECTED: Denotes that the entity has been reviewed and rejected by an admin.\n - STATE_FLAGGED: Denotes that the entity has been flagged and is pending review by an admin.\n - STATE_SUSPENDED: Denotes that the entity has been reviewed and suspended by an admin.",
              "enum": [
                "STATE_REQUESTED",
                "STATE_APPROVED",
                "STATE_REJECTED",
                "STATE_FLAGGED",
                "STATE_SUSPENDED"
              ],
              "type": "string"
            },
            "state_description": {
              "description": "A description for the state field.\nThis field can only be modified by admins, and should typically only be updated\nwhen also updating `state`.",
              "type": "string"
            },
            "technical_contact": {
              "description": "OrganizationOrUserIdentifiers contains either organization or user identifiers.",
              "properties": {
                "organization_ids": {
                  "properties": {
                    "organization_id": {
                      "description": "This ID shares namespace with user IDs.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "user_ids": {
                  "properties": {
                    "email": {
                      "description": "Secondary identifier, which can only be used in specific requests.",
                      "type": "string"
                    },
                    "user_id": {
                      "description": "This ID shares namespace with organization IDs.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "updated_at": {
              "description": "When the OAuth client was last updated. This information is public and can be seen by any authenticated user in the network.",
              "format": "date-time",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    Collaborator

    Fields
    Name Type Description
    ids object OrganizationOrUserIdentifiers contains either organization or user identifiers.
    rights string
    Schema
    {
      "ids": {
        "description": "OrganizationOrUserIdentifiers contains either organization or user identifiers.",
        "properties": {
          "organization_ids": {
            "properties": {
              "organization_id": {
                "description": "This ID shares namespace with user IDs.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "user_ids": {
            "properties": {
              "email": {
                "description": "Secondary identifier, which can only be used in specific requests.",
                "type": "string"
              },
              "user_id": {
                "description": "This ID shares namespace with organization IDs.",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "rights": {
        "items": {
          "default": "right_invalid",
          "description": "Right is the enum that defines all the different rights to do something in the network.\n\n - RIGHT_USER_INFO: The right to view user information.\n - RIGHT_USER_SETTINGS_BASIC: The right to edit basic user settings.\n - RIGHT_USER_LIST: The right to list users accounts.\n - RIGHT_USER_CREATE: The right to create an user account.\n - RIGHT_USER_SETTINGS_API_KEYS: The right to view and edit user API keys.\n - RIGHT_USER_DELETE: The right to delete user account.\n - RIGHT_USER_PURGE: The right to purge user account.\n - RIGHT_USER_AUTHORIZED_CLIENTS: The right to view and edit authorized OAuth clients of the user.\n - RIGHT_USER_APPLICATIONS_LIST: The right to list applications the user is a collaborator of.\n - RIGHT_USER_APPLICATIONS_CREATE: The right to create an application under the user account.\n - RIGHT_USER_GATEWAYS_LIST: The right to list gateways the user is a collaborator of.\n - RIGHT_USER_GATEWAYS_CREATE: The right to create a gateway under the account of the user.\n - RIGHT_USER_CLIENTS_LIST: The right to list OAuth clients the user is a collaborator of.\n - RIGHT_USER_CLIENTS_CREATE: The right to create an OAuth client under the account of the user.\n - RIGHT_USER_ORGANIZATIONS_LIST: The right to list organizations the user is a member of.\n - RIGHT_USER_ORGANIZATIONS_CREATE: The right to create an organization under the user account.\n - RIGHT_USER_NOTIFICATIONS_READ: The right to read notifications sent to the user.\n - RIGHT_USER_ALL: The pseudo-right for all (current and future) user rights.\n - RIGHT_APPLICATION_INFO: The right to view application information.\n - RIGHT_APPLICATION_SETTINGS_BASIC: The right to edit basic application settings.\n - RIGHT_APPLICATION_SETTINGS_API_KEYS: The right to view and edit application API keys.\n - RIGHT_APPLICATION_SETTINGS_COLLABORATORS: The right to view and edit application collaborators.\n - RIGHT_APPLICATION_SETTINGS_PACKAGES: The right to view and edit application packages and associations.\n - RIGHT_APPLICATION_DELETE: The right to delete application.\n - RIGHT_APPLICATION_PURGE: The right to purge application.\n - RIGHT_APPLICATION_DEVICES_READ: The right to view devices in application.\n - RIGHT_APPLICATION_DEVICES_WRITE: The right to create devices in application.\n - RIGHT_APPLICATION_DEVICES_READ_KEYS: The right to view device keys in application.\nNote that keys may not be stored in a way that supports viewing them.\n - RIGHT_APPLICATION_DEVICES_WRITE_KEYS: The right to edit device keys in application.\n - RIGHT_APPLICATION_TRAFFIC_READ: The right to read application traffic (uplink and downlink).\n - RIGHT_APPLICATION_TRAFFIC_UP_WRITE: The right to write uplink application traffic.\n - RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE: The right to write downlink application traffic.\n - RIGHT_APPLICATION_LINK: The right to link as Application to a Network Server for traffic exchange,\ni.e. read uplink and write downlink (API keys only).\nThis right is typically only given to an Application Server.\nThis right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ,\nand RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.\n - RIGHT_APPLICATION_ALL: The pseudo-right for all (current and future) application rights.\n - RIGHT_CLIENT_ALL: The pseudo-right for all (current and future) OAuth client rights.\n - RIGHT_CLIENT_INFO: The right to read client information.\n - RIGHT_CLIENT_SETTINGS_BASIC: The right to edit basic client settings.\n - RIGHT_CLIENT_SETTINGS_COLLABORATORS: The right to view and edit client collaborators.\n - RIGHT_CLIENT_DELETE: The right to delete a client.\n - RIGHT_CLIENT_PURGE: The right to purge a client.\n - RIGHT_GATEWAY_INFO: The right to view gateway information.\n - RIGHT_GATEWAY_SETTINGS_BASIC: The right to edit basic gateway settings.\n - RIGHT_GATEWAY_SETTINGS_API_KEYS: The right to view and edit gateway API keys.\n - RIGHT_GATEWAY_SETTINGS_COLLABORATORS: The right to view and edit gateway collaborators.\n - RIGHT_GATEWAY_DELETE: The right to delete gateway.\n - RIGHT_GATEWAY_PURGE: The right to purge gateway.\n - RIGHT_GATEWAY_TRAFFIC_READ: The right to read gateway traffic.\n - RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE: The right to write downlink gateway traffic.\n - RIGHT_GATEWAY_LINK: The right to link as Gateway to a Gateway Server for traffic exchange,\ni.e. write uplink and read downlink (API keys only)\nThis right is typically only given to a gateway.\nThis right implies RIGHT_GATEWAY_INFO.\n - RIGHT_GATEWAY_STATUS_READ: The right to view gateway status.\n - RIGHT_GATEWAY_LOCATION_READ: The right to view view gateway location.\n - RIGHT_GATEWAY_WRITE_SECRETS: The right to store secrets associated with this gateway.\n - RIGHT_GATEWAY_READ_SECRETS: The right to retrieve secrets associated with this gateway.\n - RIGHT_GATEWAY_ALL: The pseudo-right for all (current and future) gateway rights.\n - RIGHT_ORGANIZATION_INFO: The right to view organization information.\n - RIGHT_ORGANIZATION_SETTINGS_BASIC: The right to edit basic organization settings.\n - RIGHT_ORGANIZATION_SETTINGS_API_KEYS: The right to view and edit organization API keys.\n - RIGHT_ORGANIZATION_SETTINGS_MEMBERS: The right to view and edit organization members.\n - RIGHT_ORGANIZATION_DELETE: The right to delete organization.\n - RIGHT_ORGANIZATION_PURGE: The right to purge organization.\n - RIGHT_ORGANIZATION_APPLICATIONS_LIST: The right to list the applications the organization is a collaborator of.\n - RIGHT_ORGANIZATION_APPLICATIONS_CREATE: The right to create an application under the organization.\n - RIGHT_ORGANIZATION_GATEWAYS_LIST: The right to list the gateways the organization is a collaborator of.\n - RIGHT_ORGANIZATION_GATEWAYS_CREATE: The right to create a gateway under the organization.\n - RIGHT_ORGANIZATION_CLIENTS_LIST: The right to list the OAuth clients the organization is a collaborator of.\n - RIGHT_ORGANIZATION_CLIENTS_CREATE: The right to create an OAuth client under the organization.\n - RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR: The right to add the organization as a collaborator on an existing entity.\n - RIGHT_ORGANIZATION_ALL: The pseudo-right for all (current and future) organization rights.\n - RIGHT_SEND_INVITES: The right to send invites to new users.\nNote that this is not prefixed with \"USER_\"; it is not a right on the user entity.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE: The right to create an alert notification profile.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_INFO: The right to view an alert notification profile information.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_LIST: The right to list the alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE: The right to update an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE: The right to delete an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE: The right to create an alert notification receiver.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO: The right to view an alert notification receiver information.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST: The right to list the alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE: The right to update an alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE: The right to delete an alert notification receivers.\n - RIGHT_AUTHENTICATION_PROVIDER_CREATE: The right to create an authentication provider.\n - RIGHT_AUTHENTICATION_PROVIDER_INFO: The right to view an authentication provider information.\n - RIGHT_AUTHENTICATION_PROVIDER_LIST: The right to list the authentication providers\n - RIGHT_AUTHENTICATION_PROVIDER_UPDATE: The right to update an authentication providers.\n - RIGHT_AUTHENTICATION_PROVIDER_DELETE: The right to delete an authentication providers.\n - RIGHT_EXTERNAL_USER_CREATE: The right to create an external user.\n - RIGHT_EXTERNAL_USER_INFO: The right to view an external user's information.\n - RIGHT_EXTERNAL_USER_DELETE: The right to delete an external user.\n - RIGHT_PACKET_BROKER_AGENT_READ: The right to read any information related to the PBA.\n - RIGHT_PACKET_BROKER_AGENT_WRITE: The right to perform operations in the PBA.\n - RIGHT_TENANT_CONFIGURATION_UPDATE: The right to update a tenant's configuration.\n - RIGHT_LABEL_CREATE: The right to create a label.\n - RIGHT_LABEL_INFO: The right to view a label's information.\n - RIGHT_LABELS_LIST: The right to list the labels.\n - RIGHT_LABEL_UPDATE: The right to update a label.\n - RIGHT_LABEL_DELETE: The right to delete a label.\n - RIGHT_LABEL_ASSIGN: The right to assign a label to an entity.\n - RIGHT_ALL: The pseudo-right for all (current and future) possible rights.",
          "enum": [
            "right_invalid",
            "RIGHT_USER_INFO",
            "RIGHT_USER_SETTINGS_BASIC",
            "RIGHT_USER_LIST",
            "RIGHT_USER_CREATE",
            "RIGHT_USER_SETTINGS_API_KEYS",
            "RIGHT_USER_DELETE",
            "RIGHT_USER_PURGE",
            "RIGHT_USER_AUTHORIZED_CLIENTS",
            "RIGHT_USER_APPLICATIONS_LIST",
            "RIGHT_USER_APPLICATIONS_CREATE",
            "RIGHT_USER_GATEWAYS_LIST",
            "RIGHT_USER_GATEWAYS_CREATE",
            "RIGHT_USER_CLIENTS_LIST",
            "RIGHT_USER_CLIENTS_CREATE",
            "RIGHT_USER_ORGANIZATIONS_LIST",
            "RIGHT_USER_ORGANIZATIONS_CREATE",
            "RIGHT_USER_NOTIFICATIONS_READ",
            "RIGHT_USER_ALL",
            "RIGHT_APPLICATION_INFO",
            "RIGHT_APPLICATION_SETTINGS_BASIC",
            "RIGHT_APPLICATION_SETTINGS_API_KEYS",
            "RIGHT_APPLICATION_SETTINGS_COLLABORATORS",
            "RIGHT_APPLICATION_SETTINGS_PACKAGES",
            "RIGHT_APPLICATION_DELETE",
            "RIGHT_APPLICATION_PURGE",
            "RIGHT_APPLICATION_DEVICES_READ",
            "RIGHT_APPLICATION_DEVICES_WRITE",
            "RIGHT_APPLICATION_DEVICES_READ_KEYS",
            "RIGHT_APPLICATION_DEVICES_WRITE_KEYS",
            "RIGHT_APPLICATION_TRAFFIC_READ",
            "RIGHT_APPLICATION_TRAFFIC_UP_WRITE",
            "RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE",
            "RIGHT_APPLICATION_LINK",
            "RIGHT_APPLICATION_ALL",
            "RIGHT_CLIENT_ALL",
            "RIGHT_CLIENT_INFO",
            "RIGHT_CLIENT_SETTINGS_BASIC",
            "RIGHT_CLIENT_SETTINGS_COLLABORATORS",
            "RIGHT_CLIENT_DELETE",
            "RIGHT_CLIENT_PURGE",
            "RIGHT_GATEWAY_INFO",
            "RIGHT_GATEWAY_SETTINGS_BASIC",
            "RIGHT_GATEWAY_SETTINGS_API_KEYS",
            "RIGHT_GATEWAY_SETTINGS_COLLABORATORS",
            "RIGHT_GATEWAY_DELETE",
            "RIGHT_GATEWAY_PURGE",
            "RIGHT_GATEWAY_TRAFFIC_READ",
            "RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE",
            "RIGHT_GATEWAY_LINK",
            "RIGHT_GATEWAY_STATUS_READ",
            "RIGHT_GATEWAY_LOCATION_READ",
            "RIGHT_GATEWAY_WRITE_SECRETS",
            "RIGHT_GATEWAY_READ_SECRETS",
            "RIGHT_GATEWAY_ALL",
            "RIGHT_ORGANIZATION_INFO",
            "RIGHT_ORGANIZATION_SETTINGS_BASIC",
            "RIGHT_ORGANIZATION_SETTINGS_API_KEYS",
            "RIGHT_ORGANIZATION_SETTINGS_MEMBERS",
            "RIGHT_ORGANIZATION_DELETE",
            "RIGHT_ORGANIZATION_PURGE",
            "RIGHT_ORGANIZATION_APPLICATIONS_LIST",
            "RIGHT_ORGANIZATION_APPLICATIONS_CREATE",
            "RIGHT_ORGANIZATION_GATEWAYS_LIST",
            "RIGHT_ORGANIZATION_GATEWAYS_CREATE",
            "RIGHT_ORGANIZATION_CLIENTS_LIST",
            "RIGHT_ORGANIZATION_CLIENTS_CREATE",
            "RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR",
            "RIGHT_ORGANIZATION_ALL",
            "RIGHT_SEND_INVITES",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_INFO",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_LIST",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE",
            "RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE",
            "RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE",
            "RIGHT_AUTHENTICATION_PROVIDER_CREATE",
            "RIGHT_AUTHENTICATION_PROVIDER_INFO",
            "RIGHT_AUTHENTICATION_PROVIDER_LIST",
            "RIGHT_AUTHENTICATION_PROVIDER_UPDATE",
            "RIGHT_AUTHENTICATION_PROVIDER_DELETE",
            "RIGHT_EXTERNAL_USER_CREATE",
            "RIGHT_EXTERNAL_USER_INFO",
            "RIGHT_EXTERNAL_USER_DELETE",
            "RIGHT_PACKET_BROKER_AGENT_READ",
            "RIGHT_PACKET_BROKER_AGENT_WRITE",
            "RIGHT_TENANT_CONFIGURATION_UPDATE",
            "RIGHT_LABEL_CREATE",
            "RIGHT_LABEL_INFO",
            "RIGHT_LABELS_LIST",
            "RIGHT_LABEL_UPDATE",
            "RIGHT_LABEL_DELETE",
            "RIGHT_LABEL_ASSIGN",
            "RIGHT_ALL"
          ],
          "type": "string"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    Collaborators

    Fields
    Name Type Description
    collaborators object
    Schema
    {
      "collaborators": {
        "items": {
          "properties": {
            "ids": {
              "description": "OrganizationOrUserIdentifiers contains either organization or user identifiers.",
              "properties": {
                "organization_ids": {
                  "properties": {
                    "organization_id": {
                      "description": "This ID shares namespace with user IDs.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "user_ids": {
                  "properties": {
                    "email": {
                      "description": "Secondary identifier, which can only be used in specific requests.",
                      "type": "string"
                    },
                    "user_id": {
                      "description": "This ID shares namespace with organization IDs.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "rights": {
              "items": {
                "default": "right_invalid",
                "description": "Right is the enum that defines all the different rights to do something in the network.\n\n - RIGHT_USER_INFO: The right to view user information.\n - RIGHT_USER_SETTINGS_BASIC: The right to edit basic user settings.\n - RIGHT_USER_LIST: The right to list users accounts.\n - RIGHT_USER_CREATE: The right to create an user account.\n - RIGHT_USER_SETTINGS_API_KEYS: The right to view and edit user API keys.\n - RIGHT_USER_DELETE: The right to delete user account.\n - RIGHT_USER_PURGE: The right to purge user account.\n - RIGHT_USER_AUTHORIZED_CLIENTS: The right to view and edit authorized OAuth clients of the user.\n - RIGHT_USER_APPLICATIONS_LIST: The right to list applications the user is a collaborator of.\n - RIGHT_USER_APPLICATIONS_CREATE: The right to create an application under the user account.\n - RIGHT_USER_GATEWAYS_LIST: The right to list gateways the user is a collaborator of.\n - RIGHT_USER_GATEWAYS_CREATE: The right to create a gateway under the account of the user.\n - RIGHT_USER_CLIENTS_LIST: The right to list OAuth clients the user is a collaborator of.\n - RIGHT_USER_CLIENTS_CREATE: The right to create an OAuth client under the account of the user.\n - RIGHT_USER_ORGANIZATIONS_LIST: The right to list organizations the user is a member of.\n - RIGHT_USER_ORGANIZATIONS_CREATE: The right to create an organization under the user account.\n - RIGHT_USER_NOTIFICATIONS_READ: The right to read notifications sent to the user.\n - RIGHT_USER_ALL: The pseudo-right for all (current and future) user rights.\n - RIGHT_APPLICATION_INFO: The right to view application information.\n - RIGHT_APPLICATION_SETTINGS_BASIC: The right to edit basic application settings.\n - RIGHT_APPLICATION_SETTINGS_API_KEYS: The right to view and edit application API keys.\n - RIGHT_APPLICATION_SETTINGS_COLLABORATORS: The right to view and edit application collaborators.\n - RIGHT_APPLICATION_SETTINGS_PACKAGES: The right to view and edit application packages and associations.\n - RIGHT_APPLICATION_DELETE: The right to delete application.\n - RIGHT_APPLICATION_PURGE: The right to purge application.\n - RIGHT_APPLICATION_DEVICES_READ: The right to view devices in application.\n - RIGHT_APPLICATION_DEVICES_WRITE: The right to create devices in application.\n - RIGHT_APPLICATION_DEVICES_READ_KEYS: The right to view device keys in application.\nNote that keys may not be stored in a way that supports viewing them.\n - RIGHT_APPLICATION_DEVICES_WRITE_KEYS: The right to edit device keys in application.\n - RIGHT_APPLICATION_TRAFFIC_READ: The right to read application traffic (uplink and downlink).\n - RIGHT_APPLICATION_TRAFFIC_UP_WRITE: The right to write uplink application traffic.\n - RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE: The right to write downlink application traffic.\n - RIGHT_APPLICATION_LINK: The right to link as Application to a Network Server for traffic exchange,\ni.e. read uplink and write downlink (API keys only).\nThis right is typically only given to an Application Server.\nThis right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ,\nand RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.\n - RIGHT_APPLICATION_ALL: The pseudo-right for all (current and future) application rights.\n - RIGHT_CLIENT_ALL: The pseudo-right for all (current and future) OAuth client rights.\n - RIGHT_CLIENT_INFO: The right to read client information.\n - RIGHT_CLIENT_SETTINGS_BASIC: The right to edit basic client settings.\n - RIGHT_CLIENT_SETTINGS_COLLABORATORS: The right to view and edit client collaborators.\n - RIGHT_CLIENT_DELETE: The right to delete a client.\n - RIGHT_CLIENT_PURGE: The right to purge a client.\n - RIGHT_GATEWAY_INFO: The right to view gateway information.\n - RIGHT_GATEWAY_SETTINGS_BASIC: The right to edit basic gateway settings.\n - RIGHT_GATEWAY_SETTINGS_API_KEYS: The right to view and edit gateway API keys.\n - RIGHT_GATEWAY_SETTINGS_COLLABORATORS: The right to view and edit gateway collaborators.\n - RIGHT_GATEWAY_DELETE: The right to delete gateway.\n - RIGHT_GATEWAY_PURGE: The right to purge gateway.\n - RIGHT_GATEWAY_TRAFFIC_READ: The right to read gateway traffic.\n - RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE: The right to write downlink gateway traffic.\n - RIGHT_GATEWAY_LINK: The right to link as Gateway to a Gateway Server for traffic exchange,\ni.e. write uplink and read downlink (API keys only)\nThis right is typically only given to a gateway.\nThis right implies RIGHT_GATEWAY_INFO.\n - RIGHT_GATEWAY_STATUS_READ: The right to view gateway status.\n - RIGHT_GATEWAY_LOCATION_READ: The right to view view gateway location.\n - RIGHT_GATEWAY_WRITE_SECRETS: The right to store secrets associated with this gateway.\n - RIGHT_GATEWAY_READ_SECRETS: The right to retrieve secrets associated with this gateway.\n - RIGHT_GATEWAY_ALL: The pseudo-right for all (current and future) gateway rights.\n - RIGHT_ORGANIZATION_INFO: The right to view organization information.\n - RIGHT_ORGANIZATION_SETTINGS_BASIC: The right to edit basic organization settings.\n - RIGHT_ORGANIZATION_SETTINGS_API_KEYS: The right to view and edit organization API keys.\n - RIGHT_ORGANIZATION_SETTINGS_MEMBERS: The right to view and edit organization members.\n - RIGHT_ORGANIZATION_DELETE: The right to delete organization.\n - RIGHT_ORGANIZATION_PURGE: The right to purge organization.\n - RIGHT_ORGANIZATION_APPLICATIONS_LIST: The right to list the applications the organization is a collaborator of.\n - RIGHT_ORGANIZATION_APPLICATIONS_CREATE: The right to create an application under the organization.\n - RIGHT_ORGANIZATION_GATEWAYS_LIST: The right to list the gateways the organization is a collaborator of.\n - RIGHT_ORGANIZATION_GATEWAYS_CREATE: The right to create a gateway under the organization.\n - RIGHT_ORGANIZATION_CLIENTS_LIST: The right to list the OAuth clients the organization is a collaborator of.\n - RIGHT_ORGANIZATION_CLIENTS_CREATE: The right to create an OAuth client under the organization.\n - RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR: The right to add the organization as a collaborator on an existing entity.\n - RIGHT_ORGANIZATION_ALL: The pseudo-right for all (current and future) organization rights.\n - RIGHT_SEND_INVITES: The right to send invites to new users.\nNote that this is not prefixed with \"USER_\"; it is not a right on the user entity.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE: The right to create an alert notification profile.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_INFO: The right to view an alert notification profile information.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_LIST: The right to list the alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE: The right to update an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE: The right to delete an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE: The right to create an alert notification receiver.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO: The right to view an alert notification receiver information.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST: The right to list the alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE: The right to update an alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE: The right to delete an alert notification receivers.\n - RIGHT_AUTHENTICATION_PROVIDER_CREATE: The right to create an authentication provider.\n - RIGHT_AUTHENTICATION_PROVIDER_INFO: The right to view an authentication provider information.\n - RIGHT_AUTHENTICATION_PROVIDER_LIST: The right to list the authentication providers\n - RIGHT_AUTHENTICATION_PROVIDER_UPDATE: The right to update an authentication providers.\n - RIGHT_AUTHENTICATION_PROVIDER_DELETE: The right to delete an authentication providers.\n - RIGHT_EXTERNAL_USER_CREATE: The right to create an external user.\n - RIGHT_EXTERNAL_USER_INFO: The right to view an external user's information.\n - RIGHT_EXTERNAL_USER_DELETE: The right to delete an external user.\n - RIGHT_PACKET_BROKER_AGENT_READ: The right to read any information related to the PBA.\n - RIGHT_PACKET_BROKER_AGENT_WRITE: The right to perform operations in the PBA.\n - RIGHT_TENANT_CONFIGURATION_UPDATE: The right to update a tenant's configuration.\n - RIGHT_LABEL_CREATE: The right to create a label.\n - RIGHT_LABEL_INFO: The right to view a label's information.\n - RIGHT_LABELS_LIST: The right to list the labels.\n - RIGHT_LABEL_UPDATE: The right to update a label.\n - RIGHT_LABEL_DELETE: The right to delete a label.\n - RIGHT_LABEL_ASSIGN: The right to assign a label to an entity.\n - RIGHT_ALL: The pseudo-right for all (current and future) possible rights.",
                "enum": [
                  "right_invalid",
                  "RIGHT_USER_INFO",
                  "RIGHT_USER_SETTINGS_BASIC",
                  "RIGHT_USER_LIST",
                  "RIGHT_USER_CREATE",
                  "RIGHT_USER_SETTINGS_API_KEYS",
                  "RIGHT_USER_DELETE",
                  "RIGHT_USER_PURGE",
                  "RIGHT_USER_AUTHORIZED_CLIENTS",
                  "RIGHT_USER_APPLICATIONS_LIST",
                  "RIGHT_USER_APPLICATIONS_CREATE",
                  "RIGHT_USER_GATEWAYS_LIST",
                  "RIGHT_USER_GATEWAYS_CREATE",
                  "RIGHT_USER_CLIENTS_LIST",
                  "RIGHT_USER_CLIENTS_CREATE",
                  "RIGHT_USER_ORGANIZATIONS_LIST",
                  "RIGHT_USER_ORGANIZATIONS_CREATE",
                  "RIGHT_USER_NOTIFICATIONS_READ",
                  "RIGHT_USER_ALL",
                  "RIGHT_APPLICATION_INFO",
                  "RIGHT_APPLICATION_SETTINGS_BASIC",
                  "RIGHT_APPLICATION_SETTINGS_API_KEYS",
                  "RIGHT_APPLICATION_SETTINGS_COLLABORATORS",
                  "RIGHT_APPLICATION_SETTINGS_PACKAGES",
                  "RIGHT_APPLICATION_DELETE",
                  "RIGHT_APPLICATION_PURGE",
                  "RIGHT_APPLICATION_DEVICES_READ",
                  "RIGHT_APPLICATION_DEVICES_WRITE",
                  "RIGHT_APPLICATION_DEVICES_READ_KEYS",
                  "RIGHT_APPLICATION_DEVICES_WRITE_KEYS",
                  "RIGHT_APPLICATION_TRAFFIC_READ",
                  "RIGHT_APPLICATION_TRAFFIC_UP_WRITE",
                  "RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE",
                  "RIGHT_APPLICATION_LINK",
                  "RIGHT_APPLICATION_ALL",
                  "RIGHT_CLIENT_ALL",
                  "RIGHT_CLIENT_INFO",
                  "RIGHT_CLIENT_SETTINGS_BASIC",
                  "RIGHT_CLIENT_SETTINGS_COLLABORATORS",
                  "RIGHT_CLIENT_DELETE",
                  "RIGHT_CLIENT_PURGE",
                  "RIGHT_GATEWAY_INFO",
                  "RIGHT_GATEWAY_SETTINGS_BASIC",
                  "RIGHT_GATEWAY_SETTINGS_API_KEYS",
                  "RIGHT_GATEWAY_SETTINGS_COLLABORATORS",
                  "RIGHT_GATEWAY_DELETE",
                  "RIGHT_GATEWAY_PURGE",
                  "RIGHT_GATEWAY_TRAFFIC_READ",
                  "RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE",
                  "RIGHT_GATEWAY_LINK",
                  "RIGHT_GATEWAY_STATUS_READ",
                  "RIGHT_GATEWAY_LOCATION_READ",
                  "RIGHT_GATEWAY_WRITE_SECRETS",
                  "RIGHT_GATEWAY_READ_SECRETS",
                  "RIGHT_GATEWAY_ALL",
                  "RIGHT_ORGANIZATION_INFO",
                  "RIGHT_ORGANIZATION_SETTINGS_BASIC",
                  "RIGHT_ORGANIZATION_SETTINGS_API_KEYS",
                  "RIGHT_ORGANIZATION_SETTINGS_MEMBERS",
                  "RIGHT_ORGANIZATION_DELETE",
                  "RIGHT_ORGANIZATION_PURGE",
                  "RIGHT_ORGANIZATION_APPLICATIONS_LIST",
                  "RIGHT_ORGANIZATION_APPLICATIONS_CREATE",
                  "RIGHT_ORGANIZATION_GATEWAYS_LIST",
                  "RIGHT_ORGANIZATION_GATEWAYS_CREATE",
                  "RIGHT_ORGANIZATION_CLIENTS_LIST",
                  "RIGHT_ORGANIZATION_CLIENTS_CREATE",
                  "RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR",
                  "RIGHT_ORGANIZATION_ALL",
                  "RIGHT_SEND_INVITES",
                  "RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE",
                  "RIGHT_ALERT_NOTIFICATION_PROFILE_INFO",
                  "RIGHT_ALERT_NOTIFICATION_PROFILE_LIST",
                  "RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE",
                  "RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE",
                  "RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE",
                  "RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO",
                  "RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST",
                  "RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE",
                  "RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE",
                  "RIGHT_AUTHENTICATION_PROVIDER_CREATE",
                  "RIGHT_AUTHENTICATION_PROVIDER_INFO",
                  "RIGHT_AUTHENTICATION_PROVIDER_LIST",
                  "RIGHT_AUTHENTICATION_PROVIDER_UPDATE",
                  "RIGHT_AUTHENTICATION_PROVIDER_DELETE",
                  "RIGHT_EXTERNAL_USER_CREATE",
                  "RIGHT_EXTERNAL_USER_INFO",
                  "RIGHT_EXTERNAL_USER_DELETE",
                  "RIGHT_PACKET_BROKER_AGENT_READ",
                  "RIGHT_PACKET_BROKER_AGENT_WRITE",
                  "RIGHT_TENANT_CONFIGURATION_UPDATE",
                  "RIGHT_LABEL_CREATE",
                  "RIGHT_LABEL_INFO",
                  "RIGHT_LABELS_LIST",
                  "RIGHT_LABEL_UPDATE",
                  "RIGHT_LABEL_DELETE",
                  "RIGHT_LABEL_ASSIGN",
                  "RIGHT_ALL"
                ],
                "type": "string"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    ConcentratorConfig

    Fields
    Name Type Description
    channels object
    clock_source integer
    fsk_channel object
    lbt object
    lora_standard_channel object
    ping_slot object
    radios object
    Schema
    {
      "channels": {
        "items": {
          "properties": {
            "frequency": {
              "description": "Frequency (Hz).",
              "format": "uint64",
              "type": "string"
            },
            "radio": {
              "format": "int64",
              "type": "integer"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "clock_source": {
        "format": "int64",
        "type": "integer"
      },
      "fsk_channel": {
        "properties": {
          "frequency": {
            "description": "Frequency (Hz).",
            "format": "uint64",
            "type": "string"
          },
          "radio": {
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "lbt": {
        "properties": {
          "rssi_offset": {
            "description": "Received signal strength offset (dBm).",
            "format": "float",
            "type": "number"
          },
          "rssi_target": {
            "description": "Received signal strength (dBm).",
            "format": "float",
            "type": "number"
          },
          "scan_time": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "lora_standard_channel": {
        "properties": {
          "bandwidth": {
            "description": "Bandwidth (Hz).",
            "format": "int64",
            "type": "integer"
          },
          "frequency": {
            "description": "Frequency (Hz).",
            "format": "uint64",
            "type": "string"
          },
          "radio": {
            "format": "int64",
            "type": "integer"
          },
          "spreading_factor": {
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ping_slot": {
        "properties": {
          "frequency": {
            "description": "Frequency (Hz).",
            "format": "uint64",
            "type": "string"
          },
          "radio": {
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "radios": {
        "items": {
          "properties": {
            "chip_type": {
              "type": "string"
            },
            "enable": {
              "type": "boolean"
            },
            "frequency": {
              "format": "uint64",
              "type": "string"
            },
            "rssi_offset": {
              "format": "float",
              "type": "number"
            },
            "tx_configuration": {
              "properties": {
                "max_frequency": {
                  "format": "uint64",
                  "type": "string"
                },
                "min_frequency": {
                  "format": "uint64",
                  "type": "string"
                },
                "notch_frequency": {
                  "format": "uint64",
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    ConcentratorConfigChannel

    Fields
    Name Type Description
    frequency string Frequency (Hz).
    radio integer
    Schema
    {
      "frequency": {
        "description": "Frequency (Hz).",
        "format": "uint64",
        "type": "string"
      },
      "radio": {
        "format": "int64",
        "type": "integer"
      }
    }
    Show the schema of the message in JSON format.

    ConnectedTimeBucket

    Number of entities connected in a time bucket.
    Fields
    Name Type Description
    count integer
    time string
    Schema
    {
      "count": {
        "format": "int64",
        "type": "integer"
      },
      "time": {
        "format": "date-time",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ConnectedTimeBuckets

    Number of entities connected.
    Fields
    Name Type Description
    daily_buckets object
    hourly_buckets object
    weekly_buckets object
    Schema
    {
      "daily_buckets": {
        "items": {
          "description": "Number of entities connected in a time bucket.",
          "properties": {
            "count": {
              "format": "int64",
              "type": "integer"
            },
            "time": {
              "format": "date-time",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "hourly_buckets": {
        "items": {
          "description": "Number of entities connected in a time bucket.",
          "properties": {
            "count": {
              "format": "int64",
              "type": "integer"
            },
            "time": {
              "format": "date-time",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "weekly_buckets": {
        "items": {
          "description": "Number of entities connected in a time bucket.",
          "properties": {
            "count": {
              "format": "int64",
              "type": "integer"
            },
            "time": {
              "format": "date-time",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    ConsoleTheme

    Supported values
    Name Description
    CONSOLE_THEME_SYSTEM The user prefers the system mode.
    CONSOLE_THEME_LIGHT The user prefers the light mode.
    CONSOLE_THEME_DARK The user prefers the dark mode.

    ContactInfo

    Fields
    Name Type Description
    contact_method string
    contact_type string
    public boolean
    validated_at string
    value string
    Schema
    {
      "contact_method": {
        "default": "CONTACT_METHOD_OTHER",
        "enum": [
          "CONTACT_METHOD_OTHER",
          "CONTACT_METHOD_EMAIL",
          "CONTACT_METHOD_PHONE"
        ],
        "type": "string"
      },
      "contact_type": {
        "default": "CONTACT_TYPE_OTHER",
        "enum": [
          "CONTACT_TYPE_OTHER",
          "CONTACT_TYPE_ABUSE",
          "CONTACT_TYPE_BILLING",
          "CONTACT_TYPE_TECHNICAL"
        ],
        "type": "string"
      },
      "public": {
        "type": "boolean"
      },
      "validated_at": {
        "format": "date-time",
        "type": "string"
      },
      "value": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    ContactMethod

    Supported values
  • CONTACT_METHOD_OTHER
  • CONTACT_METHOD_EMAIL
  • CONTACT_METHOD_PHONE
  • Default: CONTACT_METHOD_OTHER

    ContactType

    Supported values
  • CONTACT_TYPE_OTHER
  • CONTACT_TYPE_ABUSE
  • CONTACT_TYPE_BILLING
  • CONTACT_TYPE_TECHNICAL
  • Default: CONTACT_TYPE_OTHER

    ConvertEndDeviceTemplateRequest

    Fields
    Name Type Description
    data string Data to convert.
    end_device_version_ids object Identifies an end device model with version information.
    format_id string ID of the format.
    Schema
    {
      "data": {
        "description": "Data to convert.",
        "format": "byte",
        "type": "string"
      },
      "end_device_version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "format_id": {
        "description": "ID of the format.",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    CreateAlertNotificationProfileRequest

    Fields
    Name Type Description
    profile object
    Schema
    {
      "profile": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "ids": {
            "properties": {
              "profile_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "is_default": {
            "description": "Whether this profile is the default alert notification profile for the network.",
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "receivers_ids": {
            "description": "List of receivers that will be notified when an alert is triggered for this profile.",
            "items": {
              "properties": {
                "receiver_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    CreateAlertNotificationReceiverRequest

    Fields
    Name Type Description
    receiver object
    Schema
    {
      "receiver": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "email": {
            "properties": {
              "recipient": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "ids": {
            "properties": {
              "receiver_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "sms": {
            "properties": {
              "phone_number": {
                "description": "According to the international phone numbering plan (ITU-T E. 164)\nphone numbers cannot contain less than 7 digits and more than 15 digits.\nThe validation is done via an regex and accounts for the '+' formating character.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          },
          "webhook": {
            "properties": {
              "headers": {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              "url": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    CreateAuthenticationProviderRequest

    Fields
    Name Type Description
    provider object
    Schema
    {
      "provider": {
        "properties": {
          "allow_registrations": {
            "type": "boolean"
          },
          "allowed_email_domains": {
            "description": "Allowed email domains for this provider.\nIf this field is set, only emails with the specified domains will be allowed to login.\nThe server also skips checking the `email_verified` field of the claims token.\nWe highly recommend admins of such providers to not allow\nusers to change their email addresses with the provider due to lack of verification.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "configuration": {
            "properties": {
              "oidc": {
                "properties": {
                  "client_id": {
                    "type": "string"
                  },
                  "client_secret": {
                    "type": "string"
                  },
                  "provider_url": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "ids": {
            "properties": {
              "provider_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    CreateLabelRequest

    Fields
    Name Type Description
    label object
    Schema
    {
      "label": {
        "properties": {
          "color": {
            "type": "string"
          },
          "created_at": {
            "description": "When the label was created. This information is public and can be seen by any authenticated user in the network.",
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "entities": {
            "description": "EXPERIMENTAL: These definitions are subject to change.",
            "properties": {
              "applications": {
                "items": {
                  "properties": {
                    "application_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "clients": {
                "items": {
                  "properties": {
                    "client_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "end_devices": {
                "items": {
                  "properties": {
                    "application_ids": {
                      "properties": {
                        "application_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "dev_addr": {
                      "description": "The LoRaWAN DevAddr.",
                      "example": "2600ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "dev_eui": {
                      "description": "The LoRaWAN DevEUI.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "device_id": {
                      "type": "string"
                    },
                    "join_eui": {
                      "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "gateways": {
                "items": {
                  "properties": {
                    "eui": {
                      "description": "Secondary identifier, which can only be used in specific requests.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "gateway_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "ids": {
            "properties": {
              "label_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "updated_at": {
            "description": "When the label was last updated. This information is public and can be seen by any authenticated user in the network.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    CreateLoginTokenResponse

    Fields
    Name Type Description
    token string The token that can be used for logging in as the user. This field is only present if a token was created by an admin user for a non-admin user.
    Schema
    {
      "token": {
        "description": "The token that can be used for logging in as the user.\nThis field is only present if a token was created by an admin user for a non-admin user.",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    CreateMACSettingsProfileResponse

    Fields
    Name Type Description
    mac_settings_profile object
    Schema
    {
      "mac_settings_profile": {
        "properties": {
          "end_devices_count": {
            "description": "Associated end devices counter.",
            "format": "int64",
            "type": "integer"
          },
          "ids": {
            "properties": {
              "application_ids": {
                "properties": {
                  "application_id": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "profile_id": {
                "description": "Profile ID.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "mac_settings": {
            "properties": {
              "adr": {
                "description": "Adaptive Data Rate settings.",
                "properties": {
                  "disabled": {
                    "description": "Configuration options for cases in which ADR is to be disabled\ncompletely.",
                    "type": "object"
                  },
                  "dynamic": {
                    "description": "Configuration options for dynamic ADR.",
                    "properties": {
                      "channel_steering": {
                        "description": "EXPERIMENTAL: Channel steering settings.",
                        "properties": {
                          "disabled": {
                            "description": "Configuration options for cases in which ADR is not supposed to steer the end device\nto another set of channels.",
                            "type": "object"
                          },
                          "lora_narrow": {
                            "description": "Configuration options for LoRa narrow channels steering.\nThe narrow mode attempts to steer the end device towards\nusing the LoRa modulated, 125kHz bandwidth channels.",
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "margin": {
                        "description": "The ADR margin (dB) tells the network server how much margin it should add in ADR requests.\nA bigger margin is less efficient, but gives a better chance of successful reception.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "float",
                        "type": "number"
                      },
                      "max_data_rate_index": {
                        "properties": {
                          "value": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "max_nb_trans": {
                        "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_tx_power_index": {
                        "description": "Maximum transmission power index.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "min_data_rate_index": {
                        "properties": {
                          "value": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "min_nb_trans": {
                        "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "min_tx_power_index": {
                        "description": "Minimum transmission power index.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "overrides": {
                        "description": "EXPERIMENTAL: Configuration overrides.",
                        "properties": {
                          "data_rate_0": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_1": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_10": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_11": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_12": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_13": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_14": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_15": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_2": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_3": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_4": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_5": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_6": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_7": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_8": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_9": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "static": {
                    "description": "Configuration options for static ADR.",
                    "properties": {
                      "data_rate_index": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "nb_trans": {
                        "description": "Number of retransmissions.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "tx_power_index": {
                        "description": "Transmission power index to use.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "adr_margin": {
                "description": "The ADR margin (dB) tells the network server how much margin it should add in ADR requests.\nA bigger margin is less efficient, but gives a better chance of successful reception.\nThis field is deprecated, use adr_settings.dynamic.margin instead.",
                "format": "float",
                "type": "number"
              },
              "beacon_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "class_b_c_downlink_interval": {
                "description": "The minimum duration passed before a network-initiated(e.g. Class B or C) downlink following an arbitrary downlink.",
                "type": "string"
              },
              "class_b_timeout": {
                "description": "Maximum delay for the device to answer a MAC request or a confirmed downlink frame.\nIf unset, the default value from Network Server configuration will be used.",
                "type": "string"
              },
              "class_c_timeout": {
                "description": "Maximum delay for the device to answer a MAC request or a confirmed downlink frame.\nIf unset, the default value from Network Server configuration will be used.",
                "type": "string"
              },
              "desired_adr_ack_delay_exponent": {
                "properties": {
                  "value": {
                    "default": "ADR_ACK_DELAY_1",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_adr_ack_limit_exponent": {
                "properties": {
                  "value": {
                    "default": "ADR_ACK_LIMIT_1",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_beacon_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_max_duty_cycle": {
                "properties": {
                  "value": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_max_eirp": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_ping_slot_data_rate_index": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_ping_slot_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_relay": {
                "description": "RelaySettings represent the settings of a relay.\nThis is used internally by the Network Server.",
                "properties": {
                  "served": {
                    "properties": {
                      "always": {
                        "type": "object"
                      },
                      "backoff": {
                        "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "dynamic": {
                        "properties": {
                          "smart_enable_level": {
                            "default": "RELAY_SMART_ENABLE_LEVEL_8",
                            "enum": [
                              "RELAY_SMART_ENABLE_LEVEL_8",
                              "RELAY_SMART_ENABLE_LEVEL_16",
                              "RELAY_SMART_ENABLE_LEVEL_32",
                              "RELAY_SMART_ENABLE_LEVEL_64"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "end_device_controlled": {
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving_device_id": {
                        "description": "End device identifier of the serving end device.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "serving": {
                    "properties": {
                      "cad_periodicity": {
                        "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                        "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"
                        ],
                        "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                        "type": "string"
                      },
                      "default_channel_index": {
                        "description": "Index of the default wake on radio channel.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "limits": {
                        "properties": {
                          "join_requests": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "notifications": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "overall": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "reset_behavior": {
                            "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "enum": [
                              "RELAY_RESET_LIMIT_COUNTER_ZERO",
                              "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                              "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                              "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                            ],
                            "type": "string"
                          },
                          "uplink_messages": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "uplink_forwarding_rules": {
                        "description": "Configured uplink forwarding rules.",
                        "items": {
                          "properties": {
                            "device_id": {
                              "description": "End device identifier of the served end device.",
                              "type": "string"
                            },
                            "last_w_f_cnt": {
                              "description": "Last wake on radio frame counter used by the served end device.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "limits": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "session_key_id": {
                              "description": "Session key ID of the session keys used to derive the root relay session key.",
                              "format": "byte",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "desired_rx1_data_rate_offset": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_rx1_delay": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_rx2_data_rate_index": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_rx2_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "downlink_dwell_time": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "factory_preset_frequencies": {
                "description": "List of factory-preset frequencies.\nIf unset, the default value from Network Server configuration or regional parameters specification will be used.",
                "items": {
                  "format": "uint64",
                  "type": "string"
                },
                "type": "array"
              },
              "max_duty_cycle": {
                "properties": {
                  "value": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "ping_slot_data_rate_index": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "ping_slot_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "ping_slot_periodicity": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "relay": {
                "description": "RelaySettings represent the settings of a relay.\nThis is used internally by the Network Server.",
                "properties": {
                  "served": {
                    "properties": {
                      "always": {
                        "type": "object"
                      },
                      "backoff": {
                        "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "dynamic": {
                        "properties": {
                          "smart_enable_level": {
                            "default": "RELAY_SMART_ENABLE_LEVEL_8",
                            "enum": [
                              "RELAY_SMART_ENABLE_LEVEL_8",
                              "RELAY_SMART_ENABLE_LEVEL_16",
                              "RELAY_SMART_ENABLE_LEVEL_32",
                              "RELAY_SMART_ENABLE_LEVEL_64"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "end_device_controlled": {
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving_device_id": {
                        "description": "End device identifier of the serving end device.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "serving": {
                    "properties": {
                      "cad_periodicity": {
                        "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                        "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"
                        ],
                        "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                        "type": "string"
                      },
                      "default_channel_index": {
                        "description": "Index of the default wake on radio channel.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "limits": {
                        "properties": {
                          "join_requests": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "notifications": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "overall": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "reset_behavior": {
                            "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "enum": [
                              "RELAY_RESET_LIMIT_COUNTER_ZERO",
                              "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                              "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                              "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                            ],
                            "type": "string"
                          },
                          "uplink_messages": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "uplink_forwarding_rules": {
                        "description": "Configured uplink forwarding rules.",
                        "items": {
                          "properties": {
                            "device_id": {
                              "description": "End device identifier of the served end device.",
                              "type": "string"
                            },
                            "last_w_f_cnt": {
                              "description": "Last wake on radio frame counter used by the served end device.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "limits": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "session_key_id": {
                              "description": "Session key ID of the session keys used to derive the root relay session key.",
                              "format": "byte",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "resets_f_cnt": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "rx1_data_rate_offset": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "rx1_delay": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "rx2_data_rate_index": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "rx2_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "schedule_downlinks": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "status_count_periodicity": {
                "description": "Number of uplink messages after which a DevStatusReq MACCommand shall be sent.\nIf unset, the default value from Network Server configuration will be used.",
                "format": "int64",
                "type": "integer"
              },
              "status_time_periodicity": {
                "description": "The interval after which a DevStatusReq MACCommand shall be sent.\nIf unset, the default value from Network Server configuration will be used.",
                "type": "string"
              },
              "supports_32_bit_f_cnt": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "uplink_dwell_time": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "use_adr": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    CreateNotificationResponse

    Fields
    Name Type Description
    id string
    Schema
    {
      "id": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    CreateRelayResponse

    Fields
    Name Type Description
    settings object RelaySettings represent the settings of a relay. This is used internally by the Network Server.
    Schema
    {
      "settings": {
        "description": "RelaySettings represent the settings of a relay.\nThis is used internally by the Network Server.",
        "properties": {
          "served": {
            "properties": {
              "always": {
                "type": "object"
              },
              "backoff": {
                "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.\nIf unset, the default value from Network Server configuration will be used.",
                "format": "int64",
                "type": "integer"
              },
              "dynamic": {
                "properties": {
                  "smart_enable_level": {
                    "default": "RELAY_SMART_ENABLE_LEVEL_8",
                    "enum": [
                      "RELAY_SMART_ENABLE_LEVEL_8",
                      "RELAY_SMART_ENABLE_LEVEL_16",
                      "RELAY_SMART_ENABLE_LEVEL_32",
                      "RELAY_SMART_ENABLE_LEVEL_64"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "end_device_controlled": {
                "type": "object"
              },
              "second_channel": {
                "properties": {
                  "ack_offset": {
                    "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                    "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"
                    ],
                    "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",
                    "type": "string"
                  },
                  "data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "frequency": {
                    "description": "The frequency (Hz) used by the wake on radio message.",
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "serving_device_id": {
                "description": "End device identifier of the serving end device.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "serving": {
            "properties": {
              "cad_periodicity": {
                "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                "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"
                ],
                "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                "type": "string"
              },
              "default_channel_index": {
                "description": "Index of the default wake on radio channel.\nIf unset, the default value from Network Server configuration will be used.",
                "format": "int64",
                "type": "integer"
              },
              "limits": {
                "properties": {
                  "join_requests": {
                    "properties": {
                      "bucket_size": {
                        "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                        "enum": [
                          "RELAY_LIMIT_BUCKET_SIZE_1",
                          "RELAY_LIMIT_BUCKET_SIZE_2",
                          "RELAY_LIMIT_BUCKET_SIZE_4",
                          "RELAY_LIMIT_BUCKET_SIZE_12"
                        ],
                        "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                        "type": "string"
                      },
                      "reload_rate": {
                        "description": "The number of tokens which are replenished in the bucket every hour.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "notifications": {
                    "properties": {
                      "bucket_size": {
                        "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                        "enum": [
                          "RELAY_LIMIT_BUCKET_SIZE_1",
                          "RELAY_LIMIT_BUCKET_SIZE_2",
                          "RELAY_LIMIT_BUCKET_SIZE_4",
                          "RELAY_LIMIT_BUCKET_SIZE_12"
                        ],
                        "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                        "type": "string"
                      },
                      "reload_rate": {
                        "description": "The number of tokens which are replenished in the bucket every hour.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "overall": {
                    "properties": {
                      "bucket_size": {
                        "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                        "enum": [
                          "RELAY_LIMIT_BUCKET_SIZE_1",
                          "RELAY_LIMIT_BUCKET_SIZE_2",
                          "RELAY_LIMIT_BUCKET_SIZE_4",
                          "RELAY_LIMIT_BUCKET_SIZE_12"
                        ],
                        "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                        "type": "string"
                      },
                      "reload_rate": {
                        "description": "The number of tokens which are replenished in the bucket every hour.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "reset_behavior": {
                    "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                    "enum": [
                      "RELAY_RESET_LIMIT_COUNTER_ZERO",
                      "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                      "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                      "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                    ],
                    "type": "string"
                  },
                  "uplink_messages": {
                    "properties": {
                      "bucket_size": {
                        "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                        "enum": [
                          "RELAY_LIMIT_BUCKET_SIZE_1",
                          "RELAY_LIMIT_BUCKET_SIZE_2",
                          "RELAY_LIMIT_BUCKET_SIZE_4",
                          "RELAY_LIMIT_BUCKET_SIZE_12"
                        ],
                        "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                        "type": "string"
                      },
                      "reload_rate": {
                        "description": "The number of tokens which are replenished in the bucket every hour.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "second_channel": {
                "properties": {
                  "ack_offset": {
                    "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                    "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"
                    ],
                    "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",
                    "type": "string"
                  },
                  "data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "frequency": {
                    "description": "The frequency (Hz) used by the wake on radio message.",
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "uplink_forwarding_rules": {
                "description": "Configured uplink forwarding rules.",
                "items": {
                  "properties": {
                    "device_id": {
                      "description": "End device identifier of the served end device.",
                      "type": "string"
                    },
                    "last_w_f_cnt": {
                      "description": "Last wake on radio frame counter used by the served end device.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "session_key_id": {
                      "description": "Session key ID of the session keys used to derive the root relay session key.",
                      "format": "byte",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    CreateRelayUplinkForwardingRuleResponse

    Fields
    Name Type Description
    rule object
    Schema
    {
      "rule": {
        "properties": {
          "device_id": {
            "description": "End device identifier of the served end device.",
            "type": "string"
          },
          "last_w_f_cnt": {
            "description": "Last wake on radio frame counter used by the served end device.",
            "format": "int64",
            "type": "integer"
          },
          "limits": {
            "properties": {
              "bucket_size": {
                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                "enum": [
                  "RELAY_LIMIT_BUCKET_SIZE_1",
                  "RELAY_LIMIT_BUCKET_SIZE_2",
                  "RELAY_LIMIT_BUCKET_SIZE_4",
                  "RELAY_LIMIT_BUCKET_SIZE_12"
                ],
                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                "type": "string"
              },
              "reload_rate": {
                "description": "The number of tokens which are replenished in the bucket every hour.",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "session_key_id": {
            "description": "Session key ID of the session keys used to derive the root relay session key.",
            "format": "byte",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    CreateSupportTokenResponse

    Fields
    Name Type Description
    login_token string
    login_url string
    Schema
    {
      "login_token": {
        "type": "string"
      },
      "login_url": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    CreateTenantRequest

    Fields
    Name Type Description
    initial_user object User is the message that defines a user on the network.
    tenant object Tenant is the message that defines a Tenant in the network.
    Schema
    {
      "initial_user": {
        "description": "User is the message that defines a user on the network.",
        "properties": {
          "admin": {
            "description": "This user is an admin.\nThis information is public and can be seen by any authenticated user in the network.\nThis field can only be modified by other admins.",
            "type": "boolean"
          },
          "application_limit": {
            "description": "The maximum number of applications of the user.\nThis field can only be modified by admins.",
            "format": "uint64",
            "type": "string"
          },
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Key-value attributes for this users. Typically used for storing integration-specific data.",
            "type": "object"
          },
          "client_limit": {
            "description": "The maximum number of clients of the user.\nThis field can only be modified by admins.",
            "format": "uint64",
            "type": "string"
          },
          "console_preferences": {
            "description": "UserConsolePreferences is the message that defines the user preferences for the Console.",
            "properties": {
              "console_theme": {
                "default": "CONSOLE_THEME_SYSTEM",
                "description": "ConsoleTheme is the theme of the Console.\n\n - CONSOLE_THEME_SYSTEM: The user prefers the system mode.\n - CONSOLE_THEME_LIGHT: The user prefers the light mode.\n - CONSOLE_THEME_DARK: The user prefers the dark mode.",
                "enum": [
                  "CONSOLE_THEME_SYSTEM",
                  "CONSOLE_THEME_LIGHT",
                  "CONSOLE_THEME_DARK"
                ],
                "type": "string"
              },
              "dashboard_layouts": {
                "properties": {
                  "api_key": {
                    "default": "DASHBOARD_LAYOUT_TABLE",
                    "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
                    "enum": [
                      "DASHBOARD_LAYOUT_TABLE",
                      "DASHBOARD_LAYOUT_LIST",
                      "DASHBOARD_LAYOUT_GRID"
                    ],
                    "type": "string"
                  },
                  "application": {
                    "default": "DASHBOARD_LAYOUT_TABLE",
                    "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
                    "enum": [
                      "DASHBOARD_LAYOUT_TABLE",
                      "DASHBOARD_LAYOUT_LIST",
                      "DASHBOARD_LAYOUT_GRID"
                    ],
                    "type": "string"
                  },
                  "collaborator": {
                    "default": "DASHBOARD_LAYOUT_TABLE",
                    "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
                    "enum": [
                      "DASHBOARD_LAYOUT_TABLE",
                      "DASHBOARD_LAYOUT_LIST",
                      "DASHBOARD_LAYOUT_GRID"
                    ],
                    "type": "string"
                  },
                  "end_device": {
                    "default": "DASHBOARD_LAYOUT_TABLE",
                    "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
                    "enum": [
                      "DASHBOARD_LAYOUT_TABLE",
                      "DASHBOARD_LAYOUT_LIST",
                      "DASHBOARD_LAYOUT_GRID"
                    ],
                    "type": "string"
                  },
                  "gateway": {
                    "default": "DASHBOARD_LAYOUT_TABLE",
                    "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
                    "enum": [
                      "DASHBOARD_LAYOUT_TABLE",
                      "DASHBOARD_LAYOUT_LIST",
                      "DASHBOARD_LAYOUT_GRID"
                    ],
                    "type": "string"
                  },
                  "organization": {
                    "default": "DASHBOARD_LAYOUT_TABLE",
                    "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
                    "enum": [
                      "DASHBOARD_LAYOUT_TABLE",
                      "DASHBOARD_LAYOUT_LIST",
                      "DASHBOARD_LAYOUT_GRID"
                    ],
                    "type": "string"
                  },
                  "overview": {
                    "default": "DASHBOARD_LAYOUT_TABLE",
                    "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
                    "enum": [
                      "DASHBOARD_LAYOUT_TABLE",
                      "DASHBOARD_LAYOUT_LIST",
                      "DASHBOARD_LAYOUT_GRID"
                    ],
                    "type": "string"
                  },
                  "user": {
                    "default": "DASHBOARD_LAYOUT_TABLE",
                    "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
                    "enum": [
                      "DASHBOARD_LAYOUT_TABLE",
                      "DASHBOARD_LAYOUT_LIST",
                      "DASHBOARD_LAYOUT_GRID"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "sort_by": {
                "description": "SortBy defines the field to which the Console will sort the display of entities.",
                "properties": {
                  "api_key": {
                    "type": "string"
                  },
                  "application": {
                    "type": "string"
                  },
                  "collaborator": {
                    "type": "string"
                  },
                  "end_device": {
                    "type": "string"
                  },
                  "gateway": {
                    "type": "string"
                  },
                  "organization": {
                    "type": "string"
                  },
                  "user": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "tutorials": {
                "properties": {
                  "seen": {
                    "items": {
                      "default": "TUTORIAL_UNKNOWN",
                      "description": "Tutorial is a set of possible tutorials in the Console.",
                      "enum": [
                        "TUTORIAL_UNKNOWN",
                        "TUTORIAL_LIVE_DATA_SPLIT_VIEW",
                        "TUTORIAL_LORAWAN_STARTER_USER"
                      ],
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "contact_info": {
            "description": "Contact information for this user. Typically used to indicate who to contact with security/billing questions about the user.\nThis field is deprecated.",
            "items": {
              "properties": {
                "contact_method": {
                  "default": "CONTACT_METHOD_OTHER",
                  "enum": [
                    "CONTACT_METHOD_OTHER",
                    "CONTACT_METHOD_EMAIL",
                    "CONTACT_METHOD_PHONE"
                  ],
                  "type": "string"
                },
                "contact_type": {
                  "default": "CONTACT_TYPE_OTHER",
                  "enum": [
                    "CONTACT_TYPE_OTHER",
                    "CONTACT_TYPE_ABUSE",
                    "CONTACT_TYPE_BILLING",
                    "CONTACT_TYPE_TECHNICAL"
                  ],
                  "type": "string"
                },
                "public": {
                  "type": "boolean"
                },
                "validated_at": {
                  "format": "date-time",
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "created_at": {
            "description": "When the user was created. This information is public and can be seen by any authenticated user in the network.",
            "format": "date-time",
            "type": "string"
          },
          "deleted_at": {
            "description": "When the user was deleted. This information is public and can be seen by any authenticated user in the network.",
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "A description for the user. This information is public and can be seen by any authenticated user in the network.",
            "type": "string"
          },
          "email_notification_preferences": {
            "description": "EmailNotificationPreferences is the message that defines the types of notifications for which the user wants to receive an email.",
            "properties": {
              "types": {
                "items": {
                  "default": "UNKNOWN",
                  "enum": [
                    "UNKNOWN",
                    "API_KEY_CREATED",
                    "API_KEY_CHANGED",
                    "CLIENT_REQUESTED",
                    "COLLABORATOR_CHANGED",
                    "ENTITY_STATE_CHANGED",
                    "INVITATION",
                    "LOGIN_TOKEN",
                    "PASSWORD_CHANGED",
                    "TEMPORARY_PASSWORD",
                    "USER_REQUESTED",
                    "VALIDATE",
                    "SUPPORT_ACCESS_REQUESTED"
                  ],
                  "type": "string"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "gateway_limit": {
            "description": "The maximum number of gateways of the user.\nThis field can only be modified by admins.",
            "format": "uint64",
            "type": "string"
          },
          "ids": {
            "properties": {
              "email": {
                "description": "Secondary identifier, which can only be used in specific requests.",
                "type": "string"
              },
              "user_id": {
                "description": "This ID shares namespace with organization IDs.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "name": {
            "description": "The name of the user. This information is public and can be seen by any authenticated user in the network.",
            "type": "string"
          },
          "organization_limit": {
            "description": "The maximum number of organizations of the user.\nThis field can only be modified by admins.",
            "format": "uint64",
            "type": "string"
          },
          "password": {
            "description": "The password field is only considered when creating a user.\nIt is not returned on API calls, and can not be updated by updating the User.\nSee the UpdatePassword method of the UserRegistry service for more information.",
            "type": "string"
          },
          "password_updated_at": {
            "format": "date-time",
            "type": "string"
          },
          "primary_email_address": {
            "description": "Primary email address that can be used for logging in.\nThis address is not public, use contact_info for that.",
            "type": "string"
          },
          "primary_email_address_validated_at": {
            "description": "When the primary email address was validated. Note that email address validation is not required on all networks.",
            "format": "date-time",
            "type": "string"
          },
          "profile_picture": {
            "properties": {
              "embedded": {
                "properties": {
                  "data": {
                    "description": "Picture data. A data URI can be constructed as follows:\n`data:\u003cmime_type\u003e;base64,\u003cdata\u003e`.",
                    "format": "byte",
                    "type": "string"
                  },
                  "mime_type": {
                    "description": "MIME type of the picture.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "sizes": {
                "additionalProperties": {
                  "type": "string"
                },
                "description": "URLs of the picture for different sizes, if available on a CDN.",
                "type": "object"
              }
            },
            "type": "object"
          },
          "require_password_update": {
            "type": "boolean"
          },
          "state": {
            "default": "STATE_REQUESTED",
            "description": "State enum defines states that an entity can be in.\n\n - STATE_REQUESTED: Denotes that the entity has been requested and is pending review by an admin.\n - STATE_APPROVED: Denotes that the entity has been reviewed and approved by an admin.\n - STATE_REJECTED: Denotes that the entity has been reviewed and rejected by an admin.\n - STATE_FLAGGED: Denotes that the entity has been flagged and is pending review by an admin.\n - STATE_SUSPENDED: Denotes that the entity has been reviewed and suspended by an admin.",
            "enum": [
              "STATE_REQUESTED",
              "STATE_APPROVED",
              "STATE_REJECTED",
              "STATE_FLAGGED",
              "STATE_SUSPENDED"
            ],
            "type": "string"
          },
          "state_description": {
            "description": "A description for the state field.\nThis field can only be modified by admins, and should typically only be updated\nwhen also updating `state`.",
            "type": "string"
          },
          "temporary_password": {
            "description": "The temporary password can only be used to update a user's password; never returned on API calls.\nIt is not returned on API calls, and can not be updated by updating the User.\nSee the CreateTemporaryPassword method of the UserRegistry service for more information.",
            "type": "string"
          },
          "temporary_password_created_at": {
            "format": "date-time",
            "type": "string"
          },
          "temporary_password_expires_at": {
            "format": "date-time",
            "type": "string"
          },
          "universal_rights": {
            "description": "Universal rights are capable of restricting the user's interactions with the API, be it an admin or not.",
            "items": {
              "default": "right_invalid",
              "description": "Right is the enum that defines all the different rights to do something in the network.\n\n - RIGHT_USER_INFO: The right to view user information.\n - RIGHT_USER_SETTINGS_BASIC: The right to edit basic user settings.\n - RIGHT_USER_LIST: The right to list users accounts.\n - RIGHT_USER_CREATE: The right to create an user account.\n - RIGHT_USER_SETTINGS_API_KEYS: The right to view and edit user API keys.\n - RIGHT_USER_DELETE: The right to delete user account.\n - RIGHT_USER_PURGE: The right to purge user account.\n - RIGHT_USER_AUTHORIZED_CLIENTS: The right to view and edit authorized OAuth clients of the user.\n - RIGHT_USER_APPLICATIONS_LIST: The right to list applications the user is a collaborator of.\n - RIGHT_USER_APPLICATIONS_CREATE: The right to create an application under the user account.\n - RIGHT_USER_GATEWAYS_LIST: The right to list gateways the user is a collaborator of.\n - RIGHT_USER_GATEWAYS_CREATE: The right to create a gateway under the account of the user.\n - RIGHT_USER_CLIENTS_LIST: The right to list OAuth clients the user is a collaborator of.\n - RIGHT_USER_CLIENTS_CREATE: The right to create an OAuth client under the account of the user.\n - RIGHT_USER_ORGANIZATIONS_LIST: The right to list organizations the user is a member of.\n - RIGHT_USER_ORGANIZATIONS_CREATE: The right to create an organization under the user account.\n - RIGHT_USER_NOTIFICATIONS_READ: The right to read notifications sent to the user.\n - RIGHT_USER_ALL: The pseudo-right for all (current and future) user rights.\n - RIGHT_APPLICATION_INFO: The right to view application information.\n - RIGHT_APPLICATION_SETTINGS_BASIC: The right to edit basic application settings.\n - RIGHT_APPLICATION_SETTINGS_API_KEYS: The right to view and edit application API keys.\n - RIGHT_APPLICATION_SETTINGS_COLLABORATORS: The right to view and edit application collaborators.\n - RIGHT_APPLICATION_SETTINGS_PACKAGES: The right to view and edit application packages and associations.\n - RIGHT_APPLICATION_DELETE: The right to delete application.\n - RIGHT_APPLICATION_PURGE: The right to purge application.\n - RIGHT_APPLICATION_DEVICES_READ: The right to view devices in application.\n - RIGHT_APPLICATION_DEVICES_WRITE: The right to create devices in application.\n - RIGHT_APPLICATION_DEVICES_READ_KEYS: The right to view device keys in application.\nNote that keys may not be stored in a way that supports viewing them.\n - RIGHT_APPLICATION_DEVICES_WRITE_KEYS: The right to edit device keys in application.\n - RIGHT_APPLICATION_TRAFFIC_READ: The right to read application traffic (uplink and downlink).\n - RIGHT_APPLICATION_TRAFFIC_UP_WRITE: The right to write uplink application traffic.\n - RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE: The right to write downlink application traffic.\n - RIGHT_APPLICATION_LINK: The right to link as Application to a Network Server for traffic exchange,\ni.e. read uplink and write downlink (API keys only).\nThis right is typically only given to an Application Server.\nThis right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ,\nand RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.\n - RIGHT_APPLICATION_ALL: The pseudo-right for all (current and future) application rights.\n - RIGHT_CLIENT_ALL: The pseudo-right for all (current and future) OAuth client rights.\n - RIGHT_CLIENT_INFO: The right to read client information.\n - RIGHT_CLIENT_SETTINGS_BASIC: The right to edit basic client settings.\n - RIGHT_CLIENT_SETTINGS_COLLABORATORS: The right to view and edit client collaborators.\n - RIGHT_CLIENT_DELETE: The right to delete a client.\n - RIGHT_CLIENT_PURGE: The right to purge a client.\n - RIGHT_GATEWAY_INFO: The right to view gateway information.\n - RIGHT_GATEWAY_SETTINGS_BASIC: The right to edit basic gateway settings.\n - RIGHT_GATEWAY_SETTINGS_API_KEYS: The right to view and edit gateway API keys.\n - RIGHT_GATEWAY_SETTINGS_COLLABORATORS: The right to view and edit gateway collaborators.\n - RIGHT_GATEWAY_DELETE: The right to delete gateway.\n - RIGHT_GATEWAY_PURGE: The right to purge gateway.\n - RIGHT_GATEWAY_TRAFFIC_READ: The right to read gateway traffic.\n - RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE: The right to write downlink gateway traffic.\n - RIGHT_GATEWAY_LINK: The right to link as Gateway to a Gateway Server for traffic exchange,\ni.e. write uplink and read downlink (API keys only)\nThis right is typically only given to a gateway.\nThis right implies RIGHT_GATEWAY_INFO.\n - RIGHT_GATEWAY_STATUS_READ: The right to view gateway status.\n - RIGHT_GATEWAY_LOCATION_READ: The right to view view gateway location.\n - RIGHT_GATEWAY_WRITE_SECRETS: The right to store secrets associated with this gateway.\n - RIGHT_GATEWAY_READ_SECRETS: The right to retrieve secrets associated with this gateway.\n - RIGHT_GATEWAY_ALL: The pseudo-right for all (current and future) gateway rights.\n - RIGHT_ORGANIZATION_INFO: The right to view organization information.\n - RIGHT_ORGANIZATION_SETTINGS_BASIC: The right to edit basic organization settings.\n - RIGHT_ORGANIZATION_SETTINGS_API_KEYS: The right to view and edit organization API keys.\n - RIGHT_ORGANIZATION_SETTINGS_MEMBERS: The right to view and edit organization members.\n - RIGHT_ORGANIZATION_DELETE: The right to delete organization.\n - RIGHT_ORGANIZATION_PURGE: The right to purge organization.\n - RIGHT_ORGANIZATION_APPLICATIONS_LIST: The right to list the applications the organization is a collaborator of.\n - RIGHT_ORGANIZATION_APPLICATIONS_CREATE: The right to create an application under the organization.\n - RIGHT_ORGANIZATION_GATEWAYS_LIST: The right to list the gateways the organization is a collaborator of.\n - RIGHT_ORGANIZATION_GATEWAYS_CREATE: The right to create a gateway under the organization.\n - RIGHT_ORGANIZATION_CLIENTS_LIST: The right to list the OAuth clients the organization is a collaborator of.\n - RIGHT_ORGANIZATION_CLIENTS_CREATE: The right to create an OAuth client under the organization.\n - RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR: The right to add the organization as a collaborator on an existing entity.\n - RIGHT_ORGANIZATION_ALL: The pseudo-right for all (current and future) organization rights.\n - RIGHT_SEND_INVITES: The right to send invites to new users.\nNote that this is not prefixed with \"USER_\"; it is not a right on the user entity.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE: The right to create an alert notification profile.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_INFO: The right to view an alert notification profile information.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_LIST: The right to list the alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE: The right to update an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE: The right to delete an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE: The right to create an alert notification receiver.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO: The right to view an alert notification receiver information.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST: The right to list the alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE: The right to update an alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE: The right to delete an alert notification receivers.\n - RIGHT_AUTHENTICATION_PROVIDER_CREATE: The right to create an authentication provider.\n - RIGHT_AUTHENTICATION_PROVIDER_INFO: The right to view an authentication provider information.\n - RIGHT_AUTHENTICATION_PROVIDER_LIST: The right to list the authentication providers\n - RIGHT_AUTHENTICATION_PROVIDER_UPDATE: The right to update an authentication providers.\n - RIGHT_AUTHENTICATION_PROVIDER_DELETE: The right to delete an authentication providers.\n - RIGHT_EXTERNAL_USER_CREATE: The right to create an external user.\n - RIGHT_EXTERNAL_USER_INFO: The right to view an external user's information.\n - RIGHT_EXTERNAL_USER_DELETE: The right to delete an external user.\n - RIGHT_PACKET_BROKER_AGENT_READ: The right to read any information related to the PBA.\n - RIGHT_PACKET_BROKER_AGENT_WRITE: The right to perform operations in the PBA.\n - RIGHT_TENANT_CONFIGURATION_UPDATE: The right to update a tenant's configuration.\n - RIGHT_LABEL_CREATE: The right to create a label.\n - RIGHT_LABEL_INFO: The right to view a label's information.\n - RIGHT_LABELS_LIST: The right to list the labels.\n - RIGHT_LABEL_UPDATE: The right to update a label.\n - RIGHT_LABEL_DELETE: The right to delete a label.\n - RIGHT_LABEL_ASSIGN: The right to assign a label to an entity.\n - RIGHT_ALL: The pseudo-right for all (current and future) possible rights.",
              "enum": [
                "right_invalid",
                "RIGHT_USER_INFO",
                "RIGHT_USER_SETTINGS_BASIC",
                "RIGHT_USER_LIST",
                "RIGHT_USER_CREATE",
                "RIGHT_USER_SETTINGS_API_KEYS",
                "RIGHT_USER_DELETE",
                "RIGHT_USER_PURGE",
                "RIGHT_USER_AUTHORIZED_CLIENTS",
                "RIGHT_USER_APPLICATIONS_LIST",
                "RIGHT_USER_APPLICATIONS_CREATE",
                "RIGHT_USER_GATEWAYS_LIST",
                "RIGHT_USER_GATEWAYS_CREATE",
                "RIGHT_USER_CLIENTS_LIST",
                "RIGHT_USER_CLIENTS_CREATE",
                "RIGHT_USER_ORGANIZATIONS_LIST",
                "RIGHT_USER_ORGANIZATIONS_CREATE",
                "RIGHT_USER_NOTIFICATIONS_READ",
                "RIGHT_USER_ALL",
                "RIGHT_APPLICATION_INFO",
                "RIGHT_APPLICATION_SETTINGS_BASIC",
                "RIGHT_APPLICATION_SETTINGS_API_KEYS",
                "RIGHT_APPLICATION_SETTINGS_COLLABORATORS",
                "RIGHT_APPLICATION_SETTINGS_PACKAGES",
                "RIGHT_APPLICATION_DELETE",
                "RIGHT_APPLICATION_PURGE",
                "RIGHT_APPLICATION_DEVICES_READ",
                "RIGHT_APPLICATION_DEVICES_WRITE",
                "RIGHT_APPLICATION_DEVICES_READ_KEYS",
                "RIGHT_APPLICATION_DEVICES_WRITE_KEYS",
                "RIGHT_APPLICATION_TRAFFIC_READ",
                "RIGHT_APPLICATION_TRAFFIC_UP_WRITE",
                "RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE",
                "RIGHT_APPLICATION_LINK",
                "RIGHT_APPLICATION_ALL",
                "RIGHT_CLIENT_ALL",
                "RIGHT_CLIENT_INFO",
                "RIGHT_CLIENT_SETTINGS_BASIC",
                "RIGHT_CLIENT_SETTINGS_COLLABORATORS",
                "RIGHT_CLIENT_DELETE",
                "RIGHT_CLIENT_PURGE",
                "RIGHT_GATEWAY_INFO",
                "RIGHT_GATEWAY_SETTINGS_BASIC",
                "RIGHT_GATEWAY_SETTINGS_API_KEYS",
                "RIGHT_GATEWAY_SETTINGS_COLLABORATORS",
                "RIGHT_GATEWAY_DELETE",
                "RIGHT_GATEWAY_PURGE",
                "RIGHT_GATEWAY_TRAFFIC_READ",
                "RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE",
                "RIGHT_GATEWAY_LINK",
                "RIGHT_GATEWAY_STATUS_READ",
                "RIGHT_GATEWAY_LOCATION_READ",
                "RIGHT_GATEWAY_WRITE_SECRETS",
                "RIGHT_GATEWAY_READ_SECRETS",
                "RIGHT_GATEWAY_ALL",
                "RIGHT_ORGANIZATION_INFO",
                "RIGHT_ORGANIZATION_SETTINGS_BASIC",
                "RIGHT_ORGANIZATION_SETTINGS_API_KEYS",
                "RIGHT_ORGANIZATION_SETTINGS_MEMBERS",
                "RIGHT_ORGANIZATION_DELETE",
                "RIGHT_ORGANIZATION_PURGE",
                "RIGHT_ORGANIZATION_APPLICATIONS_LIST",
                "RIGHT_ORGANIZATION_APPLICATIONS_CREATE",
                "RIGHT_ORGANIZATION_GATEWAYS_LIST",
                "RIGHT_ORGANIZATION_GATEWAYS_CREATE",
                "RIGHT_ORGANIZATION_CLIENTS_LIST",
                "RIGHT_ORGANIZATION_CLIENTS_CREATE",
                "RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR",
                "RIGHT_ORGANIZATION_ALL",
                "RIGHT_SEND_INVITES",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_INFO",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_LIST",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE",
                "RIGHT_AUTHENTICATION_PROVIDER_CREATE",
                "RIGHT_AUTHENTICATION_PROVIDER_INFO",
                "RIGHT_AUTHENTICATION_PROVIDER_LIST",
                "RIGHT_AUTHENTICATION_PROVIDER_UPDATE",
                "RIGHT_AUTHENTICATION_PROVIDER_DELETE",
                "RIGHT_EXTERNAL_USER_CREATE",
                "RIGHT_EXTERNAL_USER_INFO",
                "RIGHT_EXTERNAL_USER_DELETE",
                "RIGHT_PACKET_BROKER_AGENT_READ",
                "RIGHT_PACKET_BROKER_AGENT_WRITE",
                "RIGHT_TENANT_CONFIGURATION_UPDATE",
                "RIGHT_LABEL_CREATE",
                "RIGHT_LABEL_INFO",
                "RIGHT_LABELS_LIST",
                "RIGHT_LABEL_UPDATE",
                "RIGHT_LABEL_DELETE",
                "RIGHT_LABEL_ASSIGN",
                "RIGHT_ALL"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "updated_at": {
            "description": "When the user was last updated. This information is public and can be seen by any authenticated user in the network.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "tenant": {
        "description": "Tenant is the message that defines a Tenant in the network.",
        "properties": {
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "billing": {
            "properties": {
              "aws_saas_marketplace": {
                "properties": {
                  "customer_identifier": {
                    "type": "string"
                  },
                  "product_code": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "counting": {
                "properties": {
                  "end_devices": {
                    "default": "ALL",
                    "enum": [
                      "ALL",
                      "ONLY_ACTIVATED"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "stripe": {
                "properties": {
                  "customer_id": {
                    "type": "string"
                  },
                  "plan_id": {
                    "type": "string"
                  },
                  "subscription_id": {
                    "type": "string"
                  },
                  "subscription_item_id": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "billing_identifiers": {
            "properties": {
              "billing_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "capabilities": {
            "type": "object"
          },
          "configuration": {
            "properties": {
              "clusters": {
                "additionalProperties": {
                  "properties": {
                    "ars": {
                      "properties": {
                        "routing": {
                          "properties": {
                            "enabled": {
                              "type": "boolean"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "as": {
                      "properties": {
                        "webhooks": {
                          "properties": {
                            "queue": {
                              "properties": {
                                "enabled": {
                                  "type": "boolean"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "gs": {
                      "properties": {
                        "mtls_authentication": {
                          "properties": {
                            "client_ca_pool": {
                              "description": "PEM encoded pool of X.509 root certificates to trust for verifying the presented TLS client certificate.",
                              "format": "byte",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "is": {
                      "properties": {
                        "admin_rights": {
                          "properties": {
                            "all": {
                              "type": "boolean"
                            }
                          },
                          "type": "object"
                        },
                        "application_limits": {
                          "properties": {
                            "end_devices": {
                              "format": "uint64",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "email": {
                          "properties": {
                            "network": {
                              "properties": {
                                "branding_base_url": {
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        },
                        "end_device_picture": {
                          "properties": {
                            "disable_upload": {
                              "type": "boolean"
                            }
                          },
                          "type": "object"
                        },
                        "organization_limits": {
                          "properties": {
                            "applications": {
                              "format": "uint64",
                              "type": "string"
                            },
                            "clients": {
                              "format": "uint64",
                              "type": "string"
                            },
                            "gateways": {
                              "format": "uint64",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "profile_picture": {
                          "properties": {
                            "disable_upload": {
                              "type": "boolean"
                            },
                            "use_gravatar": {
                              "type": "boolean"
                            }
                          },
                          "type": "object"
                        },
                        "user_limits": {
                          "properties": {
                            "applications": {
                              "format": "uint64",
                              "type": "string"
                            },
                            "clients": {
                              "format": "uint64",
                              "type": "string"
                            },
                            "gateways": {
                              "format": "uint64",
                              "type": "string"
                            },
                            "organizations": {
                              "format": "uint64",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "user_login": {
                          "properties": {
                            "disable_credentials_login": {
                              "type": "boolean"
                            }
                          },
                          "type": "object"
                        },
                        "user_registration": {
                          "properties": {
                            "admin_approval": {
                              "properties": {
                                "required": {
                                  "type": "boolean"
                                }
                              },
                              "type": "object"
                            },
                            "contact_info_validation": {
                              "properties": {
                                "required": {
                                  "type": "boolean"
                                }
                              },
                              "type": "object"
                            },
                            "enabled": {
                              "type": "boolean"
                            },
                            "invitation": {
                              "properties": {
                                "required": {
                                  "type": "boolean"
                                },
                                "token_ttl": {
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "password_requirements": {
                              "properties": {
                                "max_length": {
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "min_digits": {
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "min_length": {
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "min_special": {
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "min_uppercase": {
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        },
                        "user_rights": {
                          "properties": {
                            "create_applications": {
                              "type": "boolean"
                            },
                            "create_clients": {
                              "type": "boolean"
                            },
                            "create_gateways": {
                              "type": "boolean"
                            },
                            "create_organizations": {
                              "type": "boolean"
                            },
                            "update_name": {
                              "type": "boolean"
                            },
                            "update_primary_email_address": {
                              "type": "boolean"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "js": {
                      "properties": {
                        "join_eui_prefixes": {
                          "example": [
                            "70B3D57ED0000000/56"
                          ],
                          "items": {
                            "format": "byte",
                            "type": "string"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "noc": {
                      "properties": {
                        "access": {
                          "properties": {
                            "extended": {
                              "type": "boolean"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "ns": {
                      "properties": {
                        "cooldown_window": {
                          "type": "string"
                        },
                        "deduplication_window": {
                          "type": "string"
                        },
                        "dev_addr_prefixes": {
                          "example": [
                            "2600AB00/24"
                          ],
                          "items": {
                            "format": "byte",
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "net_id": {
                          "example": "000013",
                          "format": "string",
                          "type": "string"
                        },
                        "ns_id": {
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ui": {
                      "properties": {
                        "branding_base_url": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "description": "Configuration per cluster (by ID).",
                "type": "object"
              },
              "default_cluster": {
                "properties": {
                  "ars": {
                    "properties": {
                      "routing": {
                        "properties": {
                          "enabled": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "as": {
                    "properties": {
                      "webhooks": {
                        "properties": {
                          "queue": {
                            "properties": {
                              "enabled": {
                                "type": "boolean"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "gs": {
                    "properties": {
                      "mtls_authentication": {
                        "properties": {
                          "client_ca_pool": {
                            "description": "PEM encoded pool of X.509 root certificates to trust for verifying the presented TLS client certificate.",
                            "format": "byte",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "is": {
                    "properties": {
                      "admin_rights": {
                        "properties": {
                          "all": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "application_limits": {
                        "properties": {
                          "end_devices": {
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "email": {
                        "properties": {
                          "network": {
                            "properties": {
                              "branding_base_url": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "end_device_picture": {
                        "properties": {
                          "disable_upload": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "organization_limits": {
                        "properties": {
                          "applications": {
                            "format": "uint64",
                            "type": "string"
                          },
                          "clients": {
                            "format": "uint64",
                            "type": "string"
                          },
                          "gateways": {
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "profile_picture": {
                        "properties": {
                          "disable_upload": {
                            "type": "boolean"
                          },
                          "use_gravatar": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "user_limits": {
                        "properties": {
                          "applications": {
                            "format": "uint64",
                            "type": "string"
                          },
                          "clients": {
                            "format": "uint64",
                            "type": "string"
                          },
                          "gateways": {
                            "format": "uint64",
                            "type": "string"
                          },
                          "organizations": {
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "user_login": {
                        "properties": {
                          "disable_credentials_login": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "user_registration": {
                        "properties": {
                          "admin_approval": {
                            "properties": {
                              "required": {
                                "type": "boolean"
                              }
                            },
                            "type": "object"
                          },
                          "contact_info_validation": {
                            "properties": {
                              "required": {
                                "type": "boolean"
                              }
                            },
                            "type": "object"
                          },
                          "enabled": {
                            "type": "boolean"
                          },
                          "invitation": {
                            "properties": {
                              "required": {
                                "type": "boolean"
                              },
                              "token_ttl": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "password_requirements": {
                            "properties": {
                              "max_length": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_digits": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_length": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_special": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_uppercase": {
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "user_rights": {
                        "properties": {
                          "create_applications": {
                            "type": "boolean"
                          },
                          "create_clients": {
                            "type": "boolean"
                          },
                          "create_gateways": {
                            "type": "boolean"
                          },
                          "create_organizations": {
                            "type": "boolean"
                          },
                          "update_name": {
                            "type": "boolean"
                          },
                          "update_primary_email_address": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "js": {
                    "properties": {
                      "join_eui_prefixes": {
                        "example": [
                          "70B3D57ED0000000/56"
                        ],
                        "items": {
                          "format": "byte",
                          "type": "string"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  },
                  "noc": {
                    "properties": {
                      "access": {
                        "properties": {
                          "extended": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "ns": {
                    "properties": {
                      "cooldown_window": {
                        "type": "string"
                      },
                      "deduplication_window": {
                        "type": "string"
                      },
                      "dev_addr_prefixes": {
                        "example": [
                          "2600AB00/24"
                        ],
                        "items": {
                          "format": "byte",
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "net_id": {
                        "example": "000013",
                        "format": "string",
                        "type": "string"
                      },
                      "ns_id": {
                        "example": "70B3D57ED000ABCD",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "ui": {
                    "properties": {
                      "branding_base_url": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "pb": {
                "properties": {
                  "listed": {
                    "description": "Indicates whether the Home Network is publicly listed.",
                    "type": "boolean"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "contact_info": {
            "items": {
              "properties": {
                "contact_method": {
                  "default": "CONTACT_METHOD_OTHER",
                  "enum": [
                    "CONTACT_METHOD_OTHER",
                    "CONTACT_METHOD_EMAIL",
                    "CONTACT_METHOD_PHONE"
                  ],
                  "type": "string"
                },
                "contact_type": {
                  "default": "CONTACT_TYPE_OTHER",
                  "enum": [
                    "CONTACT_TYPE_OTHER",
                    "CONTACT_TYPE_ABUSE",
                    "CONTACT_TYPE_BILLING",
                    "CONTACT_TYPE_TECHNICAL"
                  ],
                  "type": "string"
                },
                "public": {
                  "type": "boolean"
                },
                "validated_at": {
                  "format": "date-time",
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "ids": {
            "properties": {
              "tenant_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "max_applications": {
            "description": "If set, restricts the maximum number of applications that can be created.",
            "format": "uint64",
            "type": "string"
          },
          "max_clients": {
            "description": "If set, restricts the maximum number of clients that can be created.",
            "format": "uint64",
            "type": "string"
          },
          "max_end_devices": {
            "description": "If set, restricts the maximum number of end_devices that can be created.",
            "format": "uint64",
            "type": "string"
          },
          "max_gateways": {
            "description": "If set, restricts the maximum number of gateways that can be created.",
            "format": "uint64",
            "type": "string"
          },
          "max_organizations": {
            "description": "If set, restricts the maximum number of organizations that can be created.",
            "format": "uint64",
            "type": "string"
          },
          "max_users": {
            "description": "If set, restricts the maximum number of users that can be created.",
            "format": "uint64",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "state": {
            "default": "STATE_REQUESTED",
            "description": "State enum defines states that an entity can be in.\n\n - STATE_REQUESTED: Denotes that the entity has been requested and is pending review by an admin.\n - STATE_APPROVED: Denotes that the entity has been reviewed and approved by an admin.\n - STATE_REJECTED: Denotes that the entity has been reviewed and rejected by an admin.\n - STATE_FLAGGED: Denotes that the entity has been flagged and is pending review by an admin.\n - STATE_SUSPENDED: Denotes that the entity has been reviewed and suspended by an admin.",
            "enum": [
              "STATE_REQUESTED",
              "STATE_APPROVED",
              "STATE_REJECTED",
              "STATE_FLAGGED",
              "STATE_SUSPENDED"
            ],
            "type": "string"
          },
          "state_description": {
            "description": "A description for the state field.\nThis field can only be modified by admins, and should typically only be updated\nwhen also updating `state`.",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    CreateUserRequest

    Fields
    Name Type Description
    invitation_token string The invitation token that was sent to the user (some networks require an invitation in order to register new users).
    user object User is the message that defines a user on the network.
    Schema
    {
      "invitation_token": {
        "description": "The invitation token that was sent to the user (some networks require an invitation in order to register new users).",
        "type": "string"
      },
      "user": {
        "description": "User is the message that defines a user on the network.",
        "properties": {
          "admin": {
            "description": "This user is an admin.\nThis information is public and can be seen by any authenticated user in the network.\nThis field can only be modified by other admins.",
            "type": "boolean"
          },
          "application_limit": {
            "description": "The maximum number of applications of the user.\nThis field can only be modified by admins.",
            "format": "uint64",
            "type": "string"
          },
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Key-value attributes for this users. Typically used for storing integration-specific data.",
            "type": "object"
          },
          "client_limit": {
            "description": "The maximum number of clients of the user.\nThis field can only be modified by admins.",
            "format": "uint64",
            "type": "string"
          },
          "console_preferences": {
            "description": "UserConsolePreferences is the message that defines the user preferences for the Console.",
            "properties": {
              "console_theme": {
                "default": "CONSOLE_THEME_SYSTEM",
                "description": "ConsoleTheme is the theme of the Console.\n\n - CONSOLE_THEME_SYSTEM: The user prefers the system mode.\n - CONSOLE_THEME_LIGHT: The user prefers the light mode.\n - CONSOLE_THEME_DARK: The user prefers the dark mode.",
                "enum": [
                  "CONSOLE_THEME_SYSTEM",
                  "CONSOLE_THEME_LIGHT",
                  "CONSOLE_THEME_DARK"
                ],
                "type": "string"
              },
              "dashboard_layouts": {
                "properties": {
                  "api_key": {
                    "default": "DASHBOARD_LAYOUT_TABLE",
                    "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
                    "enum": [
                      "DASHBOARD_LAYOUT_TABLE",
                      "DASHBOARD_LAYOUT_LIST",
                      "DASHBOARD_LAYOUT_GRID"
                    ],
                    "type": "string"
                  },
                  "application": {
                    "default": "DASHBOARD_LAYOUT_TABLE",
                    "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
                    "enum": [
                      "DASHBOARD_LAYOUT_TABLE",
                      "DASHBOARD_LAYOUT_LIST",
                      "DASHBOARD_LAYOUT_GRID"
                    ],
                    "type": "string"
                  },
                  "collaborator": {
                    "default": "DASHBOARD_LAYOUT_TABLE",
                    "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
                    "enum": [
                      "DASHBOARD_LAYOUT_TABLE",
                      "DASHBOARD_LAYOUT_LIST",
                      "DASHBOARD_LAYOUT_GRID"
                    ],
                    "type": "string"
                  },
                  "end_device": {
                    "default": "DASHBOARD_LAYOUT_TABLE",
                    "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
                    "enum": [
                      "DASHBOARD_LAYOUT_TABLE",
                      "DASHBOARD_LAYOUT_LIST",
                      "DASHBOARD_LAYOUT_GRID"
                    ],
                    "type": "string"
                  },
                  "gateway": {
                    "default": "DASHBOARD_LAYOUT_TABLE",
                    "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
                    "enum": [
                      "DASHBOARD_LAYOUT_TABLE",
                      "DASHBOARD_LAYOUT_LIST",
                      "DASHBOARD_LAYOUT_GRID"
                    ],
                    "type": "string"
                  },
                  "organization": {
                    "default": "DASHBOARD_LAYOUT_TABLE",
                    "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
                    "enum": [
                      "DASHBOARD_LAYOUT_TABLE",
                      "DASHBOARD_LAYOUT_LIST",
                      "DASHBOARD_LAYOUT_GRID"
                    ],
                    "type": "string"
                  },
                  "overview": {
                    "default": "DASHBOARD_LAYOUT_TABLE",
                    "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
                    "enum": [
                      "DASHBOARD_LAYOUT_TABLE",
                      "DASHBOARD_LAYOUT_LIST",
                      "DASHBOARD_LAYOUT_GRID"
                    ],
                    "type": "string"
                  },
                  "user": {
                    "default": "DASHBOARD_LAYOUT_TABLE",
                    "description": "DashboardLayout is a set of possible layout values to be used in the Console.",
                    "enum": [
                      "DASHBOARD_LAYOUT_TABLE",
                      "DASHBOARD_LAYOUT_LIST",
                      "DASHBOARD_LAYOUT_GRID"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "sort_by": {
                "description": "SortBy defines the field to which the Console will sort the display of entities.",
                "properties": {
                  "api_key": {
                    "type": "string"
                  },
                  "application": {
                    "type": "string"
                  },
                  "collaborator": {
                    "type": "string"
                  },
                  "end_device": {
                    "type": "string"
                  },
                  "gateway": {
                    "type": "string"
                  },
                  "organization": {
                    "type": "string"
                  },
                  "user": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "tutorials": {
                "properties": {
                  "seen": {
                    "items": {
                      "default": "TUTORIAL_UNKNOWN",
                      "description": "Tutorial is a set of possible tutorials in the Console.",
                      "enum": [
                        "TUTORIAL_UNKNOWN",
                        "TUTORIAL_LIVE_DATA_SPLIT_VIEW",
                        "TUTORIAL_LORAWAN_STARTER_USER"
                      ],
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "contact_info": {
            "description": "Contact information for this user. Typically used to indicate who to contact with security/billing questions about the user.\nThis field is deprecated.",
            "items": {
              "properties": {
                "contact_method": {
                  "default": "CONTACT_METHOD_OTHER",
                  "enum": [
                    "CONTACT_METHOD_OTHER",
                    "CONTACT_METHOD_EMAIL",
                    "CONTACT_METHOD_PHONE"
                  ],
                  "type": "string"
                },
                "contact_type": {
                  "default": "CONTACT_TYPE_OTHER",
                  "enum": [
                    "CONTACT_TYPE_OTHER",
                    "CONTACT_TYPE_ABUSE",
                    "CONTACT_TYPE_BILLING",
                    "CONTACT_TYPE_TECHNICAL"
                  ],
                  "type": "string"
                },
                "public": {
                  "type": "boolean"
                },
                "validated_at": {
                  "format": "date-time",
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "created_at": {
            "description": "When the user was created. This information is public and can be seen by any authenticated user in the network.",
            "format": "date-time",
            "type": "string"
          },
          "deleted_at": {
            "description": "When the user was deleted. This information is public and can be seen by any authenticated user in the network.",
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "A description for the user. This information is public and can be seen by any authenticated user in the network.",
            "type": "string"
          },
          "email_notification_preferences": {
            "description": "EmailNotificationPreferences is the message that defines the types of notifications for which the user wants to receive an email.",
            "properties": {
              "types": {
                "items": {
                  "default": "UNKNOWN",
                  "enum": [
                    "UNKNOWN",
                    "API_KEY_CREATED",
                    "API_KEY_CHANGED",
                    "CLIENT_REQUESTED",
                    "COLLABORATOR_CHANGED",
                    "ENTITY_STATE_CHANGED",
                    "INVITATION",
                    "LOGIN_TOKEN",
                    "PASSWORD_CHANGED",
                    "TEMPORARY_PASSWORD",
                    "USER_REQUESTED",
                    "VALIDATE",
                    "SUPPORT_ACCESS_REQUESTED"
                  ],
                  "type": "string"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "gateway_limit": {
            "description": "The maximum number of gateways of the user.\nThis field can only be modified by admins.",
            "format": "uint64",
            "type": "string"
          },
          "ids": {
            "properties": {
              "email": {
                "description": "Secondary identifier, which can only be used in specific requests.",
                "type": "string"
              },
              "user_id": {
                "description": "This ID shares namespace with organization IDs.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "name": {
            "description": "The name of the user. This information is public and can be seen by any authenticated user in the network.",
            "type": "string"
          },
          "organization_limit": {
            "description": "The maximum number of organizations of the user.\nThis field can only be modified by admins.",
            "format": "uint64",
            "type": "string"
          },
          "password": {
            "description": "The password field is only considered when creating a user.\nIt is not returned on API calls, and can not be updated by updating the User.\nSee the UpdatePassword method of the UserRegistry service for more information.",
            "type": "string"
          },
          "password_updated_at": {
            "format": "date-time",
            "type": "string"
          },
          "primary_email_address": {
            "description": "Primary email address that can be used for logging in.\nThis address is not public, use contact_info for that.",
            "type": "string"
          },
          "primary_email_address_validated_at": {
            "description": "When the primary email address was validated. Note that email address validation is not required on all networks.",
            "format": "date-time",
            "type": "string"
          },
          "profile_picture": {
            "properties": {
              "embedded": {
                "properties": {
                  "data": {
                    "description": "Picture data. A data URI can be constructed as follows:\n`data:\u003cmime_type\u003e;base64,\u003cdata\u003e`.",
                    "format": "byte",
                    "type": "string"
                  },
                  "mime_type": {
                    "description": "MIME type of the picture.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "sizes": {
                "additionalProperties": {
                  "type": "string"
                },
                "description": "URLs of the picture for different sizes, if available on a CDN.",
                "type": "object"
              }
            },
            "type": "object"
          },
          "require_password_update": {
            "type": "boolean"
          },
          "state": {
            "default": "STATE_REQUESTED",
            "description": "State enum defines states that an entity can be in.\n\n - STATE_REQUESTED: Denotes that the entity has been requested and is pending review by an admin.\n - STATE_APPROVED: Denotes that the entity has been reviewed and approved by an admin.\n - STATE_REJECTED: Denotes that the entity has been reviewed and rejected by an admin.\n - STATE_FLAGGED: Denotes that the entity has been flagged and is pending review by an admin.\n - STATE_SUSPENDED: Denotes that the entity has been reviewed and suspended by an admin.",
            "enum": [
              "STATE_REQUESTED",
              "STATE_APPROVED",
              "STATE_REJECTED",
              "STATE_FLAGGED",
              "STATE_SUSPENDED"
            ],
            "type": "string"
          },
          "state_description": {
            "description": "A description for the state field.\nThis field can only be modified by admins, and should typically only be updated\nwhen also updating `state`.",
            "type": "string"
          },
          "temporary_password": {
            "description": "The temporary password can only be used to update a user's password; never returned on API calls.\nIt is not returned on API calls, and can not be updated by updating the User.\nSee the CreateTemporaryPassword method of the UserRegistry service for more information.",
            "type": "string"
          },
          "temporary_password_created_at": {
            "format": "date-time",
            "type": "string"
          },
          "temporary_password_expires_at": {
            "format": "date-time",
            "type": "string"
          },
          "universal_rights": {
            "description": "Universal rights are capable of restricting the user's interactions with the API, be it an admin or not.",
            "items": {
              "default": "right_invalid",
              "description": "Right is the enum that defines all the different rights to do something in the network.\n\n - RIGHT_USER_INFO: The right to view user information.\n - RIGHT_USER_SETTINGS_BASIC: The right to edit basic user settings.\n - RIGHT_USER_LIST: The right to list users accounts.\n - RIGHT_USER_CREATE: The right to create an user account.\n - RIGHT_USER_SETTINGS_API_KEYS: The right to view and edit user API keys.\n - RIGHT_USER_DELETE: The right to delete user account.\n - RIGHT_USER_PURGE: The right to purge user account.\n - RIGHT_USER_AUTHORIZED_CLIENTS: The right to view and edit authorized OAuth clients of the user.\n - RIGHT_USER_APPLICATIONS_LIST: The right to list applications the user is a collaborator of.\n - RIGHT_USER_APPLICATIONS_CREATE: The right to create an application under the user account.\n - RIGHT_USER_GATEWAYS_LIST: The right to list gateways the user is a collaborator of.\n - RIGHT_USER_GATEWAYS_CREATE: The right to create a gateway under the account of the user.\n - RIGHT_USER_CLIENTS_LIST: The right to list OAuth clients the user is a collaborator of.\n - RIGHT_USER_CLIENTS_CREATE: The right to create an OAuth client under the account of the user.\n - RIGHT_USER_ORGANIZATIONS_LIST: The right to list organizations the user is a member of.\n - RIGHT_USER_ORGANIZATIONS_CREATE: The right to create an organization under the user account.\n - RIGHT_USER_NOTIFICATIONS_READ: The right to read notifications sent to the user.\n - RIGHT_USER_ALL: The pseudo-right for all (current and future) user rights.\n - RIGHT_APPLICATION_INFO: The right to view application information.\n - RIGHT_APPLICATION_SETTINGS_BASIC: The right to edit basic application settings.\n - RIGHT_APPLICATION_SETTINGS_API_KEYS: The right to view and edit application API keys.\n - RIGHT_APPLICATION_SETTINGS_COLLABORATORS: The right to view and edit application collaborators.\n - RIGHT_APPLICATION_SETTINGS_PACKAGES: The right to view and edit application packages and associations.\n - RIGHT_APPLICATION_DELETE: The right to delete application.\n - RIGHT_APPLICATION_PURGE: The right to purge application.\n - RIGHT_APPLICATION_DEVICES_READ: The right to view devices in application.\n - RIGHT_APPLICATION_DEVICES_WRITE: The right to create devices in application.\n - RIGHT_APPLICATION_DEVICES_READ_KEYS: The right to view device keys in application.\nNote that keys may not be stored in a way that supports viewing them.\n - RIGHT_APPLICATION_DEVICES_WRITE_KEYS: The right to edit device keys in application.\n - RIGHT_APPLICATION_TRAFFIC_READ: The right to read application traffic (uplink and downlink).\n - RIGHT_APPLICATION_TRAFFIC_UP_WRITE: The right to write uplink application traffic.\n - RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE: The right to write downlink application traffic.\n - RIGHT_APPLICATION_LINK: The right to link as Application to a Network Server for traffic exchange,\ni.e. read uplink and write downlink (API keys only).\nThis right is typically only given to an Application Server.\nThis right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ,\nand RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.\n - RIGHT_APPLICATION_ALL: The pseudo-right for all (current and future) application rights.\n - RIGHT_CLIENT_ALL: The pseudo-right for all (current and future) OAuth client rights.\n - RIGHT_CLIENT_INFO: The right to read client information.\n - RIGHT_CLIENT_SETTINGS_BASIC: The right to edit basic client settings.\n - RIGHT_CLIENT_SETTINGS_COLLABORATORS: The right to view and edit client collaborators.\n - RIGHT_CLIENT_DELETE: The right to delete a client.\n - RIGHT_CLIENT_PURGE: The right to purge a client.\n - RIGHT_GATEWAY_INFO: The right to view gateway information.\n - RIGHT_GATEWAY_SETTINGS_BASIC: The right to edit basic gateway settings.\n - RIGHT_GATEWAY_SETTINGS_API_KEYS: The right to view and edit gateway API keys.\n - RIGHT_GATEWAY_SETTINGS_COLLABORATORS: The right to view and edit gateway collaborators.\n - RIGHT_GATEWAY_DELETE: The right to delete gateway.\n - RIGHT_GATEWAY_PURGE: The right to purge gateway.\n - RIGHT_GATEWAY_TRAFFIC_READ: The right to read gateway traffic.\n - RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE: The right to write downlink gateway traffic.\n - RIGHT_GATEWAY_LINK: The right to link as Gateway to a Gateway Server for traffic exchange,\ni.e. write uplink and read downlink (API keys only)\nThis right is typically only given to a gateway.\nThis right implies RIGHT_GATEWAY_INFO.\n - RIGHT_GATEWAY_STATUS_READ: The right to view gateway status.\n - RIGHT_GATEWAY_LOCATION_READ: The right to view view gateway location.\n - RIGHT_GATEWAY_WRITE_SECRETS: The right to store secrets associated with this gateway.\n - RIGHT_GATEWAY_READ_SECRETS: The right to retrieve secrets associated with this gateway.\n - RIGHT_GATEWAY_ALL: The pseudo-right for all (current and future) gateway rights.\n - RIGHT_ORGANIZATION_INFO: The right to view organization information.\n - RIGHT_ORGANIZATION_SETTINGS_BASIC: The right to edit basic organization settings.\n - RIGHT_ORGANIZATION_SETTINGS_API_KEYS: The right to view and edit organization API keys.\n - RIGHT_ORGANIZATION_SETTINGS_MEMBERS: The right to view and edit organization members.\n - RIGHT_ORGANIZATION_DELETE: The right to delete organization.\n - RIGHT_ORGANIZATION_PURGE: The right to purge organization.\n - RIGHT_ORGANIZATION_APPLICATIONS_LIST: The right to list the applications the organization is a collaborator of.\n - RIGHT_ORGANIZATION_APPLICATIONS_CREATE: The right to create an application under the organization.\n - RIGHT_ORGANIZATION_GATEWAYS_LIST: The right to list the gateways the organization is a collaborator of.\n - RIGHT_ORGANIZATION_GATEWAYS_CREATE: The right to create a gateway under the organization.\n - RIGHT_ORGANIZATION_CLIENTS_LIST: The right to list the OAuth clients the organization is a collaborator of.\n - RIGHT_ORGANIZATION_CLIENTS_CREATE: The right to create an OAuth client under the organization.\n - RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR: The right to add the organization as a collaborator on an existing entity.\n - RIGHT_ORGANIZATION_ALL: The pseudo-right for all (current and future) organization rights.\n - RIGHT_SEND_INVITES: The right to send invites to new users.\nNote that this is not prefixed with \"USER_\"; it is not a right on the user entity.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE: The right to create an alert notification profile.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_INFO: The right to view an alert notification profile information.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_LIST: The right to list the alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE: The right to update an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE: The right to delete an alert notification profiles.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE: The right to create an alert notification receiver.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO: The right to view an alert notification receiver information.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST: The right to list the alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE: The right to update an alert notification receivers.\n - RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE: The right to delete an alert notification receivers.\n - RIGHT_AUTHENTICATION_PROVIDER_CREATE: The right to create an authentication provider.\n - RIGHT_AUTHENTICATION_PROVIDER_INFO: The right to view an authentication provider information.\n - RIGHT_AUTHENTICATION_PROVIDER_LIST: The right to list the authentication providers\n - RIGHT_AUTHENTICATION_PROVIDER_UPDATE: The right to update an authentication providers.\n - RIGHT_AUTHENTICATION_PROVIDER_DELETE: The right to delete an authentication providers.\n - RIGHT_EXTERNAL_USER_CREATE: The right to create an external user.\n - RIGHT_EXTERNAL_USER_INFO: The right to view an external user's information.\n - RIGHT_EXTERNAL_USER_DELETE: The right to delete an external user.\n - RIGHT_PACKET_BROKER_AGENT_READ: The right to read any information related to the PBA.\n - RIGHT_PACKET_BROKER_AGENT_WRITE: The right to perform operations in the PBA.\n - RIGHT_TENANT_CONFIGURATION_UPDATE: The right to update a tenant's configuration.\n - RIGHT_LABEL_CREATE: The right to create a label.\n - RIGHT_LABEL_INFO: The right to view a label's information.\n - RIGHT_LABELS_LIST: The right to list the labels.\n - RIGHT_LABEL_UPDATE: The right to update a label.\n - RIGHT_LABEL_DELETE: The right to delete a label.\n - RIGHT_LABEL_ASSIGN: The right to assign a label to an entity.\n - RIGHT_ALL: The pseudo-right for all (current and future) possible rights.",
              "enum": [
                "right_invalid",
                "RIGHT_USER_INFO",
                "RIGHT_USER_SETTINGS_BASIC",
                "RIGHT_USER_LIST",
                "RIGHT_USER_CREATE",
                "RIGHT_USER_SETTINGS_API_KEYS",
                "RIGHT_USER_DELETE",
                "RIGHT_USER_PURGE",
                "RIGHT_USER_AUTHORIZED_CLIENTS",
                "RIGHT_USER_APPLICATIONS_LIST",
                "RIGHT_USER_APPLICATIONS_CREATE",
                "RIGHT_USER_GATEWAYS_LIST",
                "RIGHT_USER_GATEWAYS_CREATE",
                "RIGHT_USER_CLIENTS_LIST",
                "RIGHT_USER_CLIENTS_CREATE",
                "RIGHT_USER_ORGANIZATIONS_LIST",
                "RIGHT_USER_ORGANIZATIONS_CREATE",
                "RIGHT_USER_NOTIFICATIONS_READ",
                "RIGHT_USER_ALL",
                "RIGHT_APPLICATION_INFO",
                "RIGHT_APPLICATION_SETTINGS_BASIC",
                "RIGHT_APPLICATION_SETTINGS_API_KEYS",
                "RIGHT_APPLICATION_SETTINGS_COLLABORATORS",
                "RIGHT_APPLICATION_SETTINGS_PACKAGES",
                "RIGHT_APPLICATION_DELETE",
                "RIGHT_APPLICATION_PURGE",
                "RIGHT_APPLICATION_DEVICES_READ",
                "RIGHT_APPLICATION_DEVICES_WRITE",
                "RIGHT_APPLICATION_DEVICES_READ_KEYS",
                "RIGHT_APPLICATION_DEVICES_WRITE_KEYS",
                "RIGHT_APPLICATION_TRAFFIC_READ",
                "RIGHT_APPLICATION_TRAFFIC_UP_WRITE",
                "RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE",
                "RIGHT_APPLICATION_LINK",
                "RIGHT_APPLICATION_ALL",
                "RIGHT_CLIENT_ALL",
                "RIGHT_CLIENT_INFO",
                "RIGHT_CLIENT_SETTINGS_BASIC",
                "RIGHT_CLIENT_SETTINGS_COLLABORATORS",
                "RIGHT_CLIENT_DELETE",
                "RIGHT_CLIENT_PURGE",
                "RIGHT_GATEWAY_INFO",
                "RIGHT_GATEWAY_SETTINGS_BASIC",
                "RIGHT_GATEWAY_SETTINGS_API_KEYS",
                "RIGHT_GATEWAY_SETTINGS_COLLABORATORS",
                "RIGHT_GATEWAY_DELETE",
                "RIGHT_GATEWAY_PURGE",
                "RIGHT_GATEWAY_TRAFFIC_READ",
                "RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE",
                "RIGHT_GATEWAY_LINK",
                "RIGHT_GATEWAY_STATUS_READ",
                "RIGHT_GATEWAY_LOCATION_READ",
                "RIGHT_GATEWAY_WRITE_SECRETS",
                "RIGHT_GATEWAY_READ_SECRETS",
                "RIGHT_GATEWAY_ALL",
                "RIGHT_ORGANIZATION_INFO",
                "RIGHT_ORGANIZATION_SETTINGS_BASIC",
                "RIGHT_ORGANIZATION_SETTINGS_API_KEYS",
                "RIGHT_ORGANIZATION_SETTINGS_MEMBERS",
                "RIGHT_ORGANIZATION_DELETE",
                "RIGHT_ORGANIZATION_PURGE",
                "RIGHT_ORGANIZATION_APPLICATIONS_LIST",
                "RIGHT_ORGANIZATION_APPLICATIONS_CREATE",
                "RIGHT_ORGANIZATION_GATEWAYS_LIST",
                "RIGHT_ORGANIZATION_GATEWAYS_CREATE",
                "RIGHT_ORGANIZATION_CLIENTS_LIST",
                "RIGHT_ORGANIZATION_CLIENTS_CREATE",
                "RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR",
                "RIGHT_ORGANIZATION_ALL",
                "RIGHT_SEND_INVITES",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_CREATE",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_INFO",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_LIST",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_UPDATE",
                "RIGHT_ALERT_NOTIFICATION_PROFILE_DELETE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_CREATE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_INFO",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_LIST",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_UPDATE",
                "RIGHT_ALERT_NOTIFICATION_RECEIVER_DELETE",
                "RIGHT_AUTHENTICATION_PROVIDER_CREATE",
                "RIGHT_AUTHENTICATION_PROVIDER_INFO",
                "RIGHT_AUTHENTICATION_PROVIDER_LIST",
                "RIGHT_AUTHENTICATION_PROVIDER_UPDATE",
                "RIGHT_AUTHENTICATION_PROVIDER_DELETE",
                "RIGHT_EXTERNAL_USER_CREATE",
                "RIGHT_EXTERNAL_USER_INFO",
                "RIGHT_EXTERNAL_USER_DELETE",
                "RIGHT_PACKET_BROKER_AGENT_READ",
                "RIGHT_PACKET_BROKER_AGENT_WRITE",
                "RIGHT_TENANT_CONFIGURATION_UPDATE",
                "RIGHT_LABEL_CREATE",
                "RIGHT_LABEL_INFO",
                "RIGHT_LABELS_LIST",
                "RIGHT_LABEL_UPDATE",
                "RIGHT_LABEL_DELETE",
                "RIGHT_LABEL_ASSIGN",
                "RIGHT_ALL"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "updated_at": {
            "description": "When the user was last updated. This information is public and can be seen by any authenticated user in the network.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    CryptoServicePayloadRequest

    Fields
    Name Type Description
    ids object
    lorawan_version string
    payload string Raw input payload.
    provisioner_id string Provisioner that provisioned the end device.
    provisioning_data object Provisioning data for the provisioner.
    Schema
    {
      "ids": {
        "properties": {
          "application_ids": {
            "properties": {
              "application_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "device_id": {
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "lorawan_version": {
        "default": "MAC_UNKNOWN",
        "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"
        ],
        "type": "string"
      },
      "payload": {
        "description": "Raw input payload.",
        "format": "byte",
        "type": "string"
      },
      "provisioner_id": {
        "description": "Provisioner that provisioned the end device.",
        "type": "string"
      },
      "provisioning_data": {
        "description": "Provisioning data for the provisioner.",
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    CryptoServicePayloadResponse

    Fields
    Name Type Description
    payload string Raw output payload.
    Schema
    {
      "payload": {
        "description": "Raw output payload.",
        "format": "byte",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    DLSettings

    Fields
    Name Type Description
    opt_neg boolean OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.
    rx1_dr_offset string
    rx2_dr string
    Schema
    {
      "opt_neg": {
        "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
        "type": "boolean"
      },
      "rx1_dr_offset": {
        "default": "DATA_RATE_OFFSET_0",
        "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"
        ],
        "type": "string"
      },
      "rx2_dr": {
        "default": "DATA_RATE_0",
        "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"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    DashboardLayout

    Supported values
    Name Description

    DataRate

    Fields
    Name Type Description
    fsk object
    lora object
    lrfhss object
    Schema
    {
      "fsk": {
        "properties": {
          "bit_rate": {
            "description": "Bit rate (bps).",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "lora": {
        "properties": {
          "bandwidth": {
            "description": "Bandwidth (Hz).",
            "format": "int64",
            "type": "integer"
          },
          "coding_rate": {
            "type": "string"
          },
          "spreading_factor": {
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "lrfhss": {
        "properties": {
          "coding_rate": {
            "type": "string"
          },
          "modulation_type": {
            "format": "int64",
            "type": "integer"
          },
          "operating_channel_width": {
            "description": "Operating Channel Width (Hz).",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    DataRateIndex

    Supported values
  • 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

    DataRateIndexValue

    Fields
    Name Type Description
    value string
    Schema
    {
      "value": {
        "default": "DATA_RATE_0",
        "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"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    DataRateOffset

    Supported values
  • 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

    DataRateOffsetValue

    Fields
    Name Type Description
    value string
    Schema
    {
      "value": {
        "default": "DATA_RATE_OFFSET_0",
        "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"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    DataRatePacketCount

    Fields
    Name Type Description
    count object Packet counts per data rate.
    time string
    Schema
    {
      "count": {
        "additionalProperties": {
          "format": "uint64",
          "type": "string"
        },
        "description": "Packet counts per data rate.",
        "type": "object"
      },
      "time": {
        "format": "date-time",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    DataRatesPacketCount

    Fields
    Name Type Description
    data_rates object
    Schema
    {
      "data_rates": {
        "items": {
          "properties": {
            "count": {
              "additionalProperties": {
                "format": "uint64",
                "type": "string"
              },
              "description": "Packet counts per data rate.",
              "type": "object"
            },
            "time": {
              "format": "date-time",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    DecodeDownlinkResponse

    Fields
    Name Type Description
    downlink object
    Schema
    {
      "downlink": {
        "properties": {
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Attributes for devices, set by the Application Server while handling the message.",
            "type": "object"
          },
          "class_b_c": {
            "properties": {
              "absolute_time": {
                "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                "format": "date-time",
                "type": "string"
              },
              "gateways": {
                "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                "items": {
                  "properties": {
                    "antenna_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "gateway_ids": {
                      "properties": {
                        "eui": {
                          "description": "Secondary identifier, which can only be used in specific requests.",
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "gateway_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "group_index": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "confirmed": {
            "type": "boolean"
          },
          "confirmed_retry": {
            "properties": {
              "attempt": {
                "description": "The number of attempted confirmed downlink acknowledgements.",
                "format": "int64",
                "type": "integer"
              },
              "max_attempts": {
                "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "correlation_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "decoded_payload": {
            "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
            "type": "object"
          },
          "decoded_payload_warnings": {
            "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "f_cnt": {
            "format": "int64",
            "type": "integer"
          },
          "f_port": {
            "format": "int64",
            "type": "integer"
          },
          "frm_payload": {
            "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
            "format": "byte",
            "type": "string"
          },
          "locations": {
            "additionalProperties": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "description": "End device location metadata, set by the Application Server while handling the message.",
            "type": "object"
          },
          "network_ids": {
            "description": "Identifies a Network Server.",
            "properties": {
              "cluster_address": {
                "description": "Cluster address of the Network Server.",
                "type": "string"
              },
              "cluster_id": {
                "description": "Cluster identifier of the Network Server.",
                "type": "string"
              },
              "net_id": {
                "description": "LoRa Alliance NetID.",
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "ns_id": {
                "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "tenant_address": {
                "description": "Optional tenant address for multi-tenant deployments.",
                "type": "string"
              },
              "tenant_id": {
                "description": "Optional tenant identifier for multi-tenant deployments.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "priority": {
            "default": "LOWEST",
            "enum": [
              "LOWEST",
              "LOW",
              "BELOW_NORMAL",
              "NORMAL",
              "ABOVE_NORMAL",
              "HIGH",
              "HIGHEST"
            ],
            "type": "string"
          },
          "session_key_id": {
            "description": "Join Server issued identifier for the session keys used by this downlink.",
            "format": "byte",
            "type": "string"
          },
          "version_ids": {
            "description": "Identifies an end device model with version information.",
            "properties": {
              "band_id": {
                "type": "string"
              },
              "brand_id": {
                "type": "string"
              },
              "firmware_version": {
                "type": "string"
              },
              "hardware_version": {
                "type": "string"
              },
              "model_id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    DecodeUplinkResponse

    Fields
    Name Type Description
    uplink object
    Schema
    {
      "uplink": {
        "properties": {
          "app_s_key": {
            "properties": {
              "encrypted_key": {
                "format": "byte",
                "type": "string"
              },
              "kek_label": {
                "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                "type": "string"
              },
              "key": {
                "description": "The unencrypted AES key.",
                "example": "0123456789ABCDEF0123456789ABCDEF",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          },
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Attributes for devices, set by the Application Server while handling the message.",
            "type": "object"
          },
          "confirmed": {
            "description": "Indicates whether the end device used confirmed data uplink.",
            "type": "boolean"
          },
          "consumed_airtime": {
            "description": "Consumed airtime for the transmission of the uplink message. Calculated by Network Server using the raw payload size and the transmission settings.",
            "type": "string"
          },
          "decoded_payload": {
            "description": "The decoded frame payload of the uplink message.\nThis field is set by the message processor that is configured for the end device (see formatters) or application (see default_formatters).",
            "type": "object"
          },
          "decoded_payload_warnings": {
            "description": "Warnings generated by the message processor while decoding the frm_payload.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "f_cnt": {
            "description": "LoRaWAN FCntUp of the uplink message.",
            "format": "int64",
            "type": "integer"
          },
          "f_port": {
            "description": "LoRaWAN FPort of the uplink message.",
            "format": "int64",
            "type": "integer"
          },
          "frm_payload": {
            "description": "The frame payload of the uplink message.\nThe payload is still encrypted if the skip_payload_crypto field of the EndDevice\nis true, which is indicated by the presence of the app_s_key field.",
            "format": "byte",
            "type": "string"
          },
          "last_a_f_cnt_down": {
            "description": "The last AFCntDown of the current session.\nThis field is only present if the skip_payload_crypto field of the EndDevice\nis true.\nCan be used with app_s_key to encrypt downlink payloads.",
            "format": "int64",
            "type": "integer"
          },
          "last_battery_percentage": {
            "properties": {
              "f_cnt": {
                "description": "Frame counter value of last uplink containing DevStatusAns.",
                "format": "int64",
                "type": "integer"
              },
              "received_at": {
                "description": "Time when last DevStatus MAC command was received.",
                "format": "date-time",
                "type": "string"
              },
              "value": {
                "description": "The battery percentage of the end device.\nThe value is defined in the [0, 100] interval.",
                "format": "float",
                "type": "number"
              }
            },
            "type": "object"
          },
          "locations": {
            "additionalProperties": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "description": "End device location metadata, set by the Application Server while handling the message.",
            "type": "object"
          },
          "network_ids": {
            "description": "Identifies a Network Server.",
            "properties": {
              "cluster_address": {
                "description": "Cluster address of the Network Server.",
                "type": "string"
              },
              "cluster_id": {
                "description": "Cluster identifier of the Network Server.",
                "type": "string"
              },
              "net_id": {
                "description": "LoRa Alliance NetID.",
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "ns_id": {
                "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "tenant_address": {
                "description": "Optional tenant address for multi-tenant deployments.",
                "type": "string"
              },
              "tenant_id": {
                "description": "Optional tenant identifier for multi-tenant deployments.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "normalized_payload": {
            "description": "The normalized frame payload of the uplink message.\nThis field is set by the message processor that is configured for the end device (see formatters) or application (see default_formatters).\nIf the message processor is a custom script, there is no uplink normalizer script and the decoded output is valid\nnormalized payload, this field contains the decoded payload.",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "normalized_payload_warnings": {
            "description": "Warnings generated by the message processor while normalizing the decoded payload.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "packet_error_rate": {
            "description": "Packet error rate of the recent uplinks in the current session.\nCalculated by the Network Server. The value is defined in the [0, 1] interval.",
            "format": "float",
            "type": "number"
          },
          "received_at": {
            "description": "Server time when the Network Server received the message.",
            "format": "date-time",
            "type": "string"
          },
          "rx_metadata": {
            "description": "A list of metadata for each antenna of each gateway that received this message.",
            "items": {
              "description": "Contains metadata for a received message. Each antenna that receives\na message corresponds to one RxMetadata.",
              "properties": {
                "advanced": {
                  "title": "Advanced metadata fields\n- can be used for advanced information or experimental features that are not yet formally defined in the API\n- field names are written in snake_case",
                  "type": "object"
                },
                "antenna_index": {
                  "format": "int64",
                  "type": "integer"
                },
                "channel_index": {
                  "description": "Index of the gateway channel that received the message.",
                  "format": "int64",
                  "type": "integer"
                },
                "channel_rssi": {
                  "description": "Received signal strength indicator of the channel (dBm).",
                  "format": "float",
                  "type": "number"
                },
                "downlink_path_constraint": {
                  "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.",
                  "enum": [
                    "DOWNLINK_PATH_CONSTRAINT_NONE",
                    "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
                    "DOWNLINK_PATH_CONSTRAINT_NEVER"
                  ],
                  "type": "string"
                },
                "encrypted_fine_timestamp": {
                  "description": "Encrypted gateway's internal fine timestamp when the Rx finished (nanoseconds).",
                  "format": "byte",
                  "type": "string"
                },
                "encrypted_fine_timestamp_key_id": {
                  "type": "string"
                },
                "fine_timestamp": {
                  "description": "Gateway's internal fine timestamp when the Rx finished (nanoseconds).",
                  "format": "uint64",
                  "type": "string"
                },
                "frequency_drift": {
                  "description": "Frequency drift in Hz between start and end of an LR-FHSS packet (signed).",
                  "format": "int32",
                  "type": "integer"
                },
                "frequency_offset": {
                  "description": "Frequency offset (Hz).",
                  "format": "int64",
                  "type": "string"
                },
                "gateway_ids": {
                  "properties": {
                    "eui": {
                      "description": "Secondary identifier, which can only be used in specific requests.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "gateway_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "gps_time": {
                  "description": "Timestamp at the end of the transmission, provided by the gateway.\nGuaranteed to be based on a GPS PPS signal, with an accuracy of 1 millisecond.",
                  "format": "date-time",
                  "type": "string"
                },
                "hopping_width": {
                  "description": "Hopping width; a number describing the number of steps of the LR-FHSS grid.",
                  "format": "int64",
                  "type": "integer"
                },
                "location": {
                  "properties": {
                    "accuracy": {
                      "description": "The accuracy of the location (meters).",
                      "format": "int32",
                      "type": "integer"
                    },
                    "altitude": {
                      "description": "The altitude (meters), where 0 is the mean sea level.",
                      "format": "int32",
                      "type": "integer"
                    },
                    "latitude": {
                      "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                      "format": "double",
                      "type": "number"
                    },
                    "longitude": {
                      "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                      "format": "double",
                      "type": "number"
                    },
                    "source": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "packet_broker": {
                  "properties": {
                    "forwarder_cluster_id": {
                      "description": "Forwarder Cluster ID of the Packet Broker Forwarder.",
                      "type": "string"
                    },
                    "forwarder_gateway_eui": {
                      "description": "Forwarder gateway EUI.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "forwarder_gateway_id": {
                      "description": "Forwarder gateway ID.",
                      "type": "string"
                    },
                    "forwarder_net_id": {
                      "description": "LoRa Alliance NetID of the Packet Broker Forwarder Member.",
                      "example": "000013",
                      "format": "string",
                      "type": "string"
                    },
                    "forwarder_tenant_id": {
                      "description": "Tenant ID managed by the Packet Broker Forwarder Member.",
                      "type": "string"
                    },
                    "home_network_cluster_id": {
                      "description": "Home Network Cluster ID of the Packet Broker Home Network.",
                      "type": "string"
                    },
                    "home_network_net_id": {
                      "description": "LoRa Alliance NetID of the Packet Broker Home Network Member.",
                      "example": "000013",
                      "format": "string",
                      "type": "string"
                    },
                    "home_network_tenant_id": {
                      "description": "Tenant ID managed by the Packet Broker Home Network Member.\nThis value is empty if it cannot be determined by the Packet Broker Router.",
                      "type": "string"
                    },
                    "hops": {
                      "description": "Hops that the message passed. Each Packet Broker Router service appends an entry.",
                      "items": {
                        "properties": {
                          "received_at": {
                            "description": "Time when the service received the message.",
                            "format": "date-time",
                            "type": "string"
                          },
                          "receiver_agent": {
                            "description": "Receiver agent.",
                            "type": "string"
                          },
                          "receiver_name": {
                            "description": "Receiver of the message.",
                            "type": "string"
                          },
                          "sender_address": {
                            "description": "Sender IP address or host name.",
                            "type": "string"
                          },
                          "sender_name": {
                            "description": "Sender of the message, typically the authorized client identifier.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "message_id": {
                      "description": "Message identifier generated by Packet Broker Router.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "received_at": {
                  "description": "Timestamp at which the Gateway Server has received the message.",
                  "format": "date-time",
                  "type": "string"
                },
                "relay": {
                  "properties": {
                    "device_id": {
                      "description": "End device identifiers of the relay.",
                      "type": "string"
                    },
                    "wor_channel": {
                      "default": "RELAY_WOR_CHANNEL_DEFAULT",
                      "enum": [
                        "RELAY_WOR_CHANNEL_DEFAULT",
                        "RELAY_WOR_CHANNEL_SECONDARY"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rssi": {
                  "description": "Received signal strength indicator (dBm).\nThis value equals `channel_rssi`.",
                  "format": "float",
                  "type": "number"
                },
                "rssi_standard_deviation": {
                  "description": "Standard deviation of the RSSI during preamble.",
                  "format": "float",
                  "type": "number"
                },
                "signal_rssi": {
                  "description": "Received signal strength indicator of the signal (dBm).",
                  "format": "float",
                  "type": "number"
                },
                "snr": {
                  "description": "Signal-to-noise ratio (dB).",
                  "format": "float",
                  "type": "number"
                },
                "time": {
                  "description": "Timestamp at the end of the transmission, provided by the gateway. The accuracy is undefined.",
                  "format": "date-time",
                  "type": "string"
                },
                "timestamp": {
                  "description": "Gateway concentrator timestamp when the Rx finished (microseconds).",
                  "format": "int64",
                  "type": "integer"
                },
                "uplink_token": {
                  "description": "Uplink token to be included in the Tx request in class A downlink; injected by gateway, Gateway Server or fNS.",
                  "format": "byte",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "session_key_id": {
            "description": "Join Server issued identifier for the session keys used by this uplink.",
            "format": "byte",
            "type": "string"
          },
          "settings": {
            "description": "TxSettings contains the settings for a transmission.\nThis message is used on both uplink and downlink.\nOn downlink, this is a scheduled transmission.",
            "properties": {
              "concentrator_timestamp": {
                "description": "Concentrator timestamp for the downlink as calculated by the Gateway Server scheduler.\nThis value takes into account necessary offsets such as the RTT (Round Trip Time) and TOA (Time Of Arrival).\nThis field is set and used only by the Gateway Server.",
                "format": "int64",
                "type": "string"
              },
              "data_rate": {
                "properties": {
                  "fsk": {
                    "properties": {
                      "bit_rate": {
                        "description": "Bit rate (bps).",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "lora": {
                    "properties": {
                      "bandwidth": {
                        "description": "Bandwidth (Hz).",
                        "format": "int64",
                        "type": "integer"
                      },
                      "coding_rate": {
                        "type": "string"
                      },
                      "spreading_factor": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "lrfhss": {
                    "properties": {
                      "coding_rate": {
                        "type": "string"
                      },
                      "modulation_type": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "operating_channel_width": {
                        "description": "Operating Channel Width (Hz).",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "downlink": {
                "description": "Transmission settings for downlink.",
                "properties": {
                  "antenna_index": {
                    "description": "Index of the antenna on which the uplink was received and/or downlink must be sent.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "invert_polarization": {
                    "description": "Invert LoRa polarization; false for LoRaWAN uplink, true for downlink.",
                    "type": "boolean"
                  },
                  "tx_power": {
                    "description": "Transmission power (dBm). Only on downlink.",
                    "format": "float",
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "enable_crc": {
                "description": "Send a CRC in the packet; only on uplink; on downlink, CRC should not be enabled.",
                "type": "boolean"
              },
              "frequency": {
                "description": "Frequency (Hz).",
                "format": "uint64",
                "type": "string"
              },
              "time": {
                "description": "Time of the gateway when the uplink message was received, or when the downlink message should be transmitted.\nFor downlink, this requires the gateway to have GPS time synchronization.",
                "format": "date-time",
                "type": "string"
              },
              "timestamp": {
                "description": "Timestamp of the gateway concentrator when the uplink message was received, or when the downlink message should be transmitted (microseconds).\nOn downlink, set timestamp to 0 and time to null to use immediate scheduling.",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "version_ids": {
            "description": "Identifies an end device model with version information.",
            "properties": {
              "band_id": {
                "type": "string"
              },
              "brand_id": {
                "type": "string"
              },
              "firmware_version": {
                "type": "string"
              },
              "hardware_version": {
                "type": "string"
              },
              "model_id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    DecodedMessagePayload

    Fields
    Name Type Description
    data object
    errors string
    warnings string
    Schema
    {
      "data": {
        "type": "object"
      },
      "errors": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "warnings": {
        "items": {
          "type": "string"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    DeleteMACSettingsProfileResponse

    DeleteRelayResponse

    DeleteRelayUplinkForwardingRuleResponse

    DevAddrPrefix

    Fields
    Name Type Description
    dev_addr string DevAddr base.
    length integer Number of most significant bits from dev_addr that are used as prefix.
    Schema
    {
      "dev_addr": {
        "description": "DevAddr base.",
        "example": "2600ABCD",
        "format": "string",
        "type": "string"
      },
      "length": {
        "description": "Number of most significant bits from dev_addr that are used as prefix.",
        "format": "int64",
        "type": "integer"
      }
    }
    Show the schema of the message in JSON format.

    DeviceEIRP

    Supported values
    Name Description
    DEVICE_EIRP_8 8 dBm.
    DEVICE_EIRP_10 10 dBm.
    DEVICE_EIRP_12 12 dBm.
    DEVICE_EIRP_13 13 dBm.
    DEVICE_EIRP_14 14 dBm.
    DEVICE_EIRP_16 16 dBm.
    DEVICE_EIRP_18 18 dBm.
    DEVICE_EIRP_20 20 dBm.
    DEVICE_EIRP_21 21 dBm.
    DEVICE_EIRP_24 24 dBm.
    DEVICE_EIRP_26 26 dBm.
    DEVICE_EIRP_27 27 dBm.
    DEVICE_EIRP_29 29 dBm.
    DEVICE_EIRP_30 30 dBm.
    DEVICE_EIRP_33 33 dBm.
    DEVICE_EIRP_36 36 dBm.

    DeviceEIRPValue

    Fields
    Name Type Description
    value string - DEVICE_EIRP_8: 8 dBm. - DEVICE_EIRP_10: 10 dBm. - DEVICE_EIRP_12: 12 dBm. - DEVICE_EIRP_13: 13 dBm. - DEVICE_EIRP_14: 14 dBm. - DEVICE_EIRP_16: 16 dBm. - DEVICE_EIRP_18: 18 dBm. - DEVICE_EIRP_20: 20 dBm. - DEVICE_EIRP_21: 21 dBm. - DEVICE_EIRP_24: 24 dBm. - DEVICE_EIRP_26: 26 dBm. - DEVICE_EIRP_27: 27 dBm. - DEVICE_EIRP_29: 29 dBm. - DEVICE_EIRP_30: 30 dBm. - DEVICE_EIRP_33: 33 dBm. - DEVICE_EIRP_36: 36 dBm.
    Schema
    {
      "value": {
        "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.",
        "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"
        ],
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    DownlinkPath

    Fields
    Name Type Description
    fixed object
    uplink_token string
    Schema
    {
      "fixed": {
        "properties": {
          "antenna_index": {
            "format": "int64",
            "type": "integer"
          },
          "gateway_ids": {
            "properties": {
              "eui": {
                "description": "Secondary identifier, which can only be used in specific requests.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "gateway_id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "uplink_token": {
        "format": "byte",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    DownlinkPathConstraint

    Supported values
    Name Description
    DOWNLINK_PATH_CONSTRAINT_NONE Indicates that the gateway can be selected for downlink without constraints by the Network Server.
    DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER Indicates that the gateway can be selected for downlink only if no other or better gateway can be selected.
    DOWNLINK_PATH_CONSTRAINT_NEVER Indicates that this gateway will never be selected for downlink, even if that results in no available downlink path.

    EmailNotificationPreferences

    EmailNotificationPreferences is the message that defines the types of notifications for which the user wants to receive an email.
    Fields
    Name Type Description
    types string
    Schema
    {
      "types": {
        "items": {
          "default": "UNKNOWN",
          "enum": [
            "UNKNOWN",
            "API_KEY_CREATED",
            "API_KEY_CHANGED",
            "CLIENT_REQUESTED",
            "COLLABORATOR_CHANGED",
            "ENTITY_STATE_CHANGED",
            "INVITATION",
            "LOGIN_TOKEN",
            "PASSWORD_CHANGED",
            "TEMPORARY_PASSWORD",
            "USER_REQUESTED",
            "VALIDATE",
            "SUPPORT_ACCESS_REQUESTED"
          ],
          "type": "string"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    EmailValidation

    Fields
    Name Type Description
    address string
    created_at string
    expires_at string
    id string
    token string
    updated_at string
    Schema
    {
      "address": {
        "type": "string"
      },
      "created_at": {
        "format": "date-time",
        "type": "string"
      },
      "expires_at": {
        "format": "date-time",
        "type": "string"
      },
      "id": {
        "type": "string"
      },
      "token": {
        "type": "string"
      },
      "updated_at": {
        "format": "date-time",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    EncodeDownlinkResponse

    Fields
    Name Type Description
    downlink object
    Schema
    {
      "downlink": {
        "properties": {
          "attributes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Attributes for devices, set by the Application Server while handling the message.",
            "type": "object"
          },
          "class_b_c": {
            "properties": {
              "absolute_time": {
                "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                "format": "date-time",
                "type": "string"
              },
              "gateways": {
                "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                "items": {
                  "properties": {
                    "antenna_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "gateway_ids": {
                      "properties": {
                        "eui": {
                          "description": "Secondary identifier, which can only be used in specific requests.",
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "gateway_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "group_index": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "confirmed": {
            "type": "boolean"
          },
          "confirmed_retry": {
            "properties": {
              "attempt": {
                "description": "The number of attempted confirmed downlink acknowledgements.",
                "format": "int64",
                "type": "integer"
              },
              "max_attempts": {
                "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "correlation_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "decoded_payload": {
            "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
            "type": "object"
          },
          "decoded_payload_warnings": {
            "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "f_cnt": {
            "format": "int64",
            "type": "integer"
          },
          "f_port": {
            "format": "int64",
            "type": "integer"
          },
          "frm_payload": {
            "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
            "format": "byte",
            "type": "string"
          },
          "locations": {
            "additionalProperties": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "description": "End device location metadata, set by the Application Server while handling the message.",
            "type": "object"
          },
          "network_ids": {
            "description": "Identifies a Network Server.",
            "properties": {
              "cluster_address": {
                "description": "Cluster address of the Network Server.",
                "type": "string"
              },
              "cluster_id": {
                "description": "Cluster identifier of the Network Server.",
                "type": "string"
              },
              "net_id": {
                "description": "LoRa Alliance NetID.",
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "ns_id": {
                "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "tenant_address": {
                "description": "Optional tenant address for multi-tenant deployments.",
                "type": "string"
              },
              "tenant_id": {
                "description": "Optional tenant identifier for multi-tenant deployments.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "priority": {
            "default": "LOWEST",
            "enum": [
              "LOWEST",
              "LOW",
              "BELOW_NORMAL",
              "NORMAL",
              "ABOVE_NORMAL",
              "HIGH",
              "HIGHEST"
            ],
            "type": "string"
          },
          "session_key_id": {
            "description": "Join Server issued identifier for the session keys used by this downlink.",
            "format": "byte",
            "type": "string"
          },
          "version_ids": {
            "description": "Identifies an end device model with version information.",
            "properties": {
              "band_id": {
                "type": "string"
              },
              "brand_id": {
                "type": "string"
              },
              "firmware_version": {
                "type": "string"
              },
              "hardware_version": {
                "type": "string"
              },
              "model_id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    EncodedMessagePayload

    Fields
    Name Type Description
    errors string
    f_port integer
    frm_payload string
    warnings string
    Schema
    {
      "errors": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "f_port": {
        "format": "int64",
        "type": "integer"
      },
      "frm_payload": {
        "format": "byte",
        "type": "string"
      },
      "warnings": {
        "items": {
          "type": "string"
        },
        "type": "array"
      }
    }
    Show the schema of the message in JSON format.

    EndDevice

    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.
    Fields
    Name Type Description
    activated_at string 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.
    application_server_address string 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_id string The AS-ID of the Application Server to use. Stored in Join Server.
    application_server_kek_label string The KEK label of the Application Server to use for wrapping the application session key. Stored in Join Server.
    attributes object Key-value attributes for this end device. Typically used for organizing end devices or for storing integration-specific data. Stored in Entity Registry.
    battery_percentage number 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.
    claim_authentication_code object Authentication code for end devices.
    created_at string
    description string Description of the device. Stored in Entity Registry.
    downlink_margin integer Demodulation signal-to-noise ratio (dB). Received via the DevStatus MAC command at last_dev_status_received_at. Stored in Network Server.
    formatters object
    frequency_plan_id string 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.
    ids object
    join_server_address string 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.
    label_ids string
    last_dev_nonce integer Last DevNonce used. This field is only used for devices using LoRaWAN version 1.1 and later. Stored in Join Server.
    last_dev_status_received_at string Time when last DevStatus MAC command was received. Stored in Network Server.
    last_join_nonce integer Last JoinNonce/AppNonce(for devices using LoRaWAN versions preceding 1.1) used. Stored in Join Server.
    last_rj_count_0 integer Last Rejoin counter value used (type 0/2). Stored in Join Server.
    last_rj_count_1 integer Last Rejoin counter value used (type 1). Stored in Join Server.
    last_seen_at string Timestamp when a device uplink has been last observed. This field is set by the Application Server and stored in the Identity Server.
    locations object Location of the device. Stored in Entity Registry.
    lora_alliance_profile_ids object
    lorawan_phy_version string
    lorawan_version string
    mac_settings object
    mac_settings_profile_ids object
    mac_state object 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.
    max_frequency string 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.
    min_frequency string 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.
    multicast boolean Indicates whether this device represents a multicast group.
    name string Friendly name of the device. Stored in Entity Registry.
    net_id string Home NetID. Stored in Join Server.
    network_server_address string 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 string The KEK label of the Network Server to use for wrapping network session keys. Stored in Join Server.
    pending_mac_state object 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.
    pending_session object
    picture object
    power_state string Power state of the device.
    provisioner_id string ID of the provisioner. Stored in Join Server.
    provisioning_data object Vendor-specific provisioning data. Stored in Join Server.
    queued_application_downlinks object 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.
    resets_join_nonces boolean 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 object Root keys for a LoRaWAN device. These are stored on the Join Server.
    serial_number string
    service_profile_id string Default service profile. Stored in Entity Registry.
    session object
    skip_payload_crypto boolean Skip decryption of uplink payloads and encryption of downlink payloads. This field is deprecated, use skip_payload_crypto_override instead.
    skip_payload_crypto_override boolean Skip decryption of uplink payloads and encryption of downlink payloads. This field overrides the application-level setting.
    supports_class_b boolean 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 boolean 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.
    supports_join boolean 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.
    updated_at string
    used_dev_nonces integer Used DevNonces sorted in ascending order. This field is only used for devices using LoRaWAN versions preceding 1.1. Stored in Join Server.
    version_ids object Identifies an end device model with version information.
    Schema
    {
      "activated_at": {
        "description": "Timestamp when the device has been activated. Stored in the Entity Registry.\nThis field is set by the Application Server when an end device sends\nits first uplink.\nThe Application Server will use the field in order to avoid repeated\ncalls to the Entity Registry.\nThe field cannot be unset once set.",
        "format": "date-time",
        "type": "string"
      },
      "application_server_address": {
        "description": "The address of the Application Server where this device is supposed to be registered.\nStored in Entity Registry and Join Server.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
        "type": "string"
      },
      "application_server_id": {
        "description": "The AS-ID of the Application Server to use.\nStored in Join Server.",
        "type": "string"
      },
      "application_server_kek_label": {
        "description": "The KEK label of the Application Server to use for wrapping the application session key.\nStored in Join Server.",
        "type": "string"
      },
      "attributes": {
        "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.",
        "type": "object"
      },
      "battery_percentage": {
        "description": "Latest-known battery percentage of the device.\nReceived via the DevStatus MAC command at last_dev_status_received_at or earlier.\nStored in Network Server.",
        "format": "float",
        "type": "number"
      },
      "claim_authentication_code": {
        "description": "Authentication code for end devices.",
        "properties": {
          "valid_from": {
            "format": "date-time",
            "type": "string"
          },
          "valid_to": {
            "format": "date-time",
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "created_at": {
        "format": "date-time",
        "type": "string"
      },
      "description": {
        "description": "Description of the device. Stored in Entity Registry.",
        "type": "string"
      },
      "downlink_margin": {
        "description": "Demodulation signal-to-noise ratio (dB).\nReceived via the DevStatus MAC command at last_dev_status_received_at.\nStored in Network Server.",
        "format": "int32",
        "type": "integer"
      },
      "formatters": {
        "properties": {
          "down_formatter": {
            "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.",
            "enum": [
              "FORMATTER_NONE",
              "FORMATTER_REPOSITORY",
              "FORMATTER_GRPC_SERVICE",
              "FORMATTER_JAVASCRIPT",
              "FORMATTER_CAYENNELPP"
            ],
            "type": "string"
          },
          "down_formatter_parameter": {
            "description": "Parameter for the down_formatter, must be set together. The API enforces a maximum length of 16KB, but the size may be restricted further by deployment configuration.",
            "type": "string"
          },
          "up_formatter": {
            "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.",
            "enum": [
              "FORMATTER_NONE",
              "FORMATTER_REPOSITORY",
              "FORMATTER_GRPC_SERVICE",
              "FORMATTER_JAVASCRIPT",
              "FORMATTER_CAYENNELPP"
            ],
            "type": "string"
          },
          "up_formatter_parameter": {
            "description": "Parameter for the up_formatter, must be set together. The API enforces a maximum length of 16KB, but the size may be restricted further by deployment configuration.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "frequency_plan_id": {
        "description": "ID of the frequency plan used by this device.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
        "type": "string"
      },
      "ids": {
        "properties": {
          "application_ids": {
            "properties": {
              "application_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "dev_addr": {
            "description": "The LoRaWAN DevAddr.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "dev_eui": {
            "description": "The LoRaWAN DevEUI.",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          },
          "device_id": {
            "type": "string"
          },
          "join_eui": {
            "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
            "example": "70B3D57ED000ABCD",
            "format": "string",
            "type": "string"
          }
        },
        "type": "object"
      },
      "join_server_address": {
        "description": "The address of the Join Server where this device is supposed to be registered.\nStored in Entity Registry.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
        "type": "string"
      },
      "label_ids": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "last_dev_nonce": {
        "description": "Last DevNonce used.\nThis field is only used for devices using LoRaWAN version 1.1 and later.\nStored in Join Server.",
        "format": "int64",
        "type": "integer"
      },
      "last_dev_status_received_at": {
        "description": "Time when last DevStatus MAC command was received.\nStored in Network Server.",
        "format": "date-time",
        "type": "string"
      },
      "last_join_nonce": {
        "description": "Last JoinNonce/AppNonce(for devices using LoRaWAN versions preceding 1.1) used.\nStored in Join Server.",
        "format": "int64",
        "type": "integer"
      },
      "last_rj_count_0": {
        "description": "Last Rejoin counter value used (type 0/2).\nStored in Join Server.",
        "format": "int64",
        "type": "integer"
      },
      "last_rj_count_1": {
        "description": "Last Rejoin counter value used (type 1).\nStored in Join Server.",
        "format": "int64",
        "type": "integer"
      },
      "last_seen_at": {
        "description": "Timestamp when a device uplink has been last observed.\nThis field is set by the Application Server and stored in the Identity Server.",
        "format": "date-time",
        "type": "string"
      },
      "locations": {
        "additionalProperties": {
          "properties": {
            "accuracy": {
              "description": "The accuracy of the location (meters).",
              "format": "int32",
              "type": "integer"
            },
            "altitude": {
              "description": "The altitude (meters), where 0 is the mean sea level.",
              "format": "int32",
              "type": "integer"
            },
            "latitude": {
              "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
              "format": "double",
              "type": "number"
            },
            "longitude": {
              "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
              "format": "double",
              "type": "number"
            },
            "source": {
              "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.",
              "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"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "description": "Location of the device. Stored in Entity Registry.",
        "type": "object"
      },
      "lora_alliance_profile_ids": {
        "properties": {
          "vendor_id": {
            "description": "VendorID managed by the LoRa Alliance, as defined in TR005.",
            "format": "int64",
            "type": "integer"
          },
          "vendor_profile_id": {
            "description": "ID of the LoRaWAN end device profile assigned by the vendor.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "lorawan_phy_version": {
        "default": "PHY_UNKNOWN",
        "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"
        ],
        "type": "string"
      },
      "lorawan_version": {
        "default": "MAC_UNKNOWN",
        "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"
        ],
        "type": "string"
      },
      "mac_settings": {
        "properties": {
          "adr": {
            "description": "Adaptive Data Rate settings.",
            "properties": {
              "disabled": {
                "description": "Configuration options for cases in which ADR is to be disabled\ncompletely.",
                "type": "object"
              },
              "dynamic": {
                "description": "Configuration options for dynamic ADR.",
                "properties": {
                  "channel_steering": {
                    "description": "EXPERIMENTAL: Channel steering settings.",
                    "properties": {
                      "disabled": {
                        "description": "Configuration options for cases in which ADR is not supposed to steer the end device\nto another set of channels.",
                        "type": "object"
                      },
                      "lora_narrow": {
                        "description": "Configuration options for LoRa narrow channels steering.\nThe narrow mode attempts to steer the end device towards\nusing the LoRa modulated, 125kHz bandwidth channels.",
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "margin": {
                    "description": "The ADR margin (dB) tells the network server how much margin it should add in ADR requests.\nA bigger margin is less efficient, but gives a better chance of successful reception.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "float",
                    "type": "number"
                  },
                  "max_data_rate_index": {
                    "properties": {
                      "value": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "max_nb_trans": {
                    "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "max_tx_power_index": {
                    "description": "Maximum transmission power index.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "min_data_rate_index": {
                    "properties": {
                      "value": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "min_nb_trans": {
                    "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "min_tx_power_index": {
                    "description": "Minimum transmission power index.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "overrides": {
                    "description": "EXPERIMENTAL: Configuration overrides.",
                    "properties": {
                      "data_rate_0": {
                        "description": "EXPERIMENTAL: Data rate index override settings.",
                        "properties": {
                          "max_nb_trans": {
                            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "min_nb_trans": {
                            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "data_rate_1": {
                        "description": "EXPERIMENTAL: Data rate index override settings.",
                        "properties": {
                          "max_nb_trans": {
                            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "min_nb_trans": {
                            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "data_rate_10": {
                        "description": "EXPERIMENTAL: Data rate index override settings.",
                        "properties": {
                          "max_nb_trans": {
                            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "min_nb_trans": {
                            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "data_rate_11": {
                        "description": "EXPERIMENTAL: Data rate index override settings.",
                        "properties": {
                          "max_nb_trans": {
                            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "min_nb_trans": {
                            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "data_rate_12": {
                        "description": "EXPERIMENTAL: Data rate index override settings.",
                        "properties": {
                          "max_nb_trans": {
                            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "min_nb_trans": {
                            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "data_rate_13": {
                        "description": "EXPERIMENTAL: Data rate index override settings.",
                        "properties": {
                          "max_nb_trans": {
                            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "min_nb_trans": {
                            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "data_rate_14": {
                        "description": "EXPERIMENTAL: Data rate index override settings.",
                        "properties": {
                          "max_nb_trans": {
                            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "min_nb_trans": {
                            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "data_rate_15": {
                        "description": "EXPERIMENTAL: Data rate index override settings.",
                        "properties": {
                          "max_nb_trans": {
                            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "min_nb_trans": {
                            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "data_rate_2": {
                        "description": "EXPERIMENTAL: Data rate index override settings.",
                        "properties": {
                          "max_nb_trans": {
                            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "min_nb_trans": {
                            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "data_rate_3": {
                        "description": "EXPERIMENTAL: Data rate index override settings.",
                        "properties": {
                          "max_nb_trans": {
                            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "min_nb_trans": {
                            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "data_rate_4": {
                        "description": "EXPERIMENTAL: Data rate index override settings.",
                        "properties": {
                          "max_nb_trans": {
                            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "min_nb_trans": {
                            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "data_rate_5": {
                        "description": "EXPERIMENTAL: Data rate index override settings.",
                        "properties": {
                          "max_nb_trans": {
                            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "min_nb_trans": {
                            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "data_rate_6": {
                        "description": "EXPERIMENTAL: Data rate index override settings.",
                        "properties": {
                          "max_nb_trans": {
                            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "min_nb_trans": {
                            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "data_rate_7": {
                        "description": "EXPERIMENTAL: Data rate index override settings.",
                        "properties": {
                          "max_nb_trans": {
                            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "min_nb_trans": {
                            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "data_rate_8": {
                        "description": "EXPERIMENTAL: Data rate index override settings.",
                        "properties": {
                          "max_nb_trans": {
                            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "min_nb_trans": {
                            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "data_rate_9": {
                        "description": "EXPERIMENTAL: Data rate index override settings.",
                        "properties": {
                          "max_nb_trans": {
                            "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "min_nb_trans": {
                            "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "static": {
                "description": "Configuration options for static ADR.",
                "properties": {
                  "data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "nb_trans": {
                    "description": "Number of retransmissions.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "tx_power_index": {
                    "description": "Transmission power index to use.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "adr_margin": {
            "description": "The ADR margin (dB) tells the network server how much margin it should add in ADR requests.\nA bigger margin is less efficient, but gives a better chance of successful reception.\nThis field is deprecated, use adr_settings.dynamic.margin instead.",
            "format": "float",
            "type": "number"
          },
          "beacon_frequency": {
            "properties": {
              "value": {
                "format": "uint64",
                "type": "string"
              }
            },
            "type": "object"
          },
          "class_b_c_downlink_interval": {
            "description": "The minimum duration passed before a network-initiated(e.g. Class B or C) downlink following an arbitrary downlink.",
            "type": "string"
          },
          "class_b_timeout": {
            "description": "Maximum delay for the device to answer a MAC request or a confirmed downlink frame.\nIf unset, the default value from Network Server configuration will be used.",
            "type": "string"
          },
          "class_c_timeout": {
            "description": "Maximum delay for the device to answer a MAC request or a confirmed downlink frame.\nIf unset, the default value from Network Server configuration will be used.",
            "type": "string"
          },
          "desired_adr_ack_delay_exponent": {
            "properties": {
              "value": {
                "default": "ADR_ACK_DELAY_1",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "desired_adr_ack_limit_exponent": {
            "properties": {
              "value": {
                "default": "ADR_ACK_LIMIT_1",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "desired_beacon_frequency": {
            "properties": {
              "value": {
                "format": "uint64",
                "type": "string"
              }
            },
            "type": "object"
          },
          "desired_max_duty_cycle": {
            "properties": {
              "value": {
                "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%.",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "desired_max_eirp": {
            "properties": {
              "value": {
                "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.",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "desired_ping_slot_data_rate_index": {
            "properties": {
              "value": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "desired_ping_slot_frequency": {
            "properties": {
              "value": {
                "format": "uint64",
                "type": "string"
              }
            },
            "type": "object"
          },
          "desired_relay": {
            "description": "RelaySettings represent the settings of a relay.\nThis is used internally by the Network Server.",
            "properties": {
              "served": {
                "properties": {
                  "always": {
                    "type": "object"
                  },
                  "backoff": {
                    "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "dynamic": {
                    "properties": {
                      "smart_enable_level": {
                        "default": "RELAY_SMART_ENABLE_LEVEL_8",
                        "enum": [
                          "RELAY_SMART_ENABLE_LEVEL_8",
                          "RELAY_SMART_ENABLE_LEVEL_16",
                          "RELAY_SMART_ENABLE_LEVEL_32",
                          "RELAY_SMART_ENABLE_LEVEL_64"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "end_device_controlled": {
                    "type": "object"
                  },
                  "second_channel": {
                    "properties": {
                      "ack_offset": {
                        "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                        "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"
                        ],
                        "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",
                        "type": "string"
                      },
                      "data_rate_index": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "frequency": {
                        "description": "The frequency (Hz) used by the wake on radio message.",
                        "format": "uint64",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "serving_device_id": {
                    "description": "End device identifier of the serving end device.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "serving": {
                "properties": {
                  "cad_periodicity": {
                    "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                    "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"
                    ],
                    "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                    "type": "string"
                  },
                  "default_channel_index": {
                    "description": "Index of the default wake on radio channel.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "limits": {
                    "properties": {
                      "join_requests": {
                        "properties": {
                          "bucket_size": {
                            "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                            "enum": [
                              "RELAY_LIMIT_BUCKET_SIZE_1",
                              "RELAY_LIMIT_BUCKET_SIZE_2",
                              "RELAY_LIMIT_BUCKET_SIZE_4",
                              "RELAY_LIMIT_BUCKET_SIZE_12"
                            ],
                            "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                            "type": "string"
                          },
                          "reload_rate": {
                            "description": "The number of tokens which are replenished in the bucket every hour.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "notifications": {
                        "properties": {
                          "bucket_size": {
                            "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                            "enum": [
                              "RELAY_LIMIT_BUCKET_SIZE_1",
                              "RELAY_LIMIT_BUCKET_SIZE_2",
                              "RELAY_LIMIT_BUCKET_SIZE_4",
                              "RELAY_LIMIT_BUCKET_SIZE_12"
                            ],
                            "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                            "type": "string"
                          },
                          "reload_rate": {
                            "description": "The number of tokens which are replenished in the bucket every hour.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "overall": {
                        "properties": {
                          "bucket_size": {
                            "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                            "enum": [
                              "RELAY_LIMIT_BUCKET_SIZE_1",
                              "RELAY_LIMIT_BUCKET_SIZE_2",
                              "RELAY_LIMIT_BUCKET_SIZE_4",
                              "RELAY_LIMIT_BUCKET_SIZE_12"
                            ],
                            "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                            "type": "string"
                          },
                          "reload_rate": {
                            "description": "The number of tokens which are replenished in the bucket every hour.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "reset_behavior": {
                        "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                        "enum": [
                          "RELAY_RESET_LIMIT_COUNTER_ZERO",
                          "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                          "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                          "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                        ],
                        "type": "string"
                      },
                      "uplink_messages": {
                        "properties": {
                          "bucket_size": {
                            "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                            "enum": [
                              "RELAY_LIMIT_BUCKET_SIZE_1",
                              "RELAY_LIMIT_BUCKET_SIZE_2",
                              "RELAY_LIMIT_BUCKET_SIZE_4",
                              "RELAY_LIMIT_BUCKET_SIZE_12"
                            ],
                            "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                            "type": "string"
                          },
                          "reload_rate": {
                            "description": "The number of tokens which are replenished in the bucket every hour.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "second_channel": {
                    "properties": {
                      "ack_offset": {
                        "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                        "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"
                        ],
                        "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",
                        "type": "string"
                      },
                      "data_rate_index": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "frequency": {
                        "description": "The frequency (Hz) used by the wake on radio message.",
                        "format": "uint64",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "uplink_forwarding_rules": {
                    "description": "Configured uplink forwarding rules.",
                    "items": {
                      "properties": {
                        "device_id": {
                          "description": "End device identifier of the served end device.",
                          "type": "string"
                        },
                        "last_w_f_cnt": {
                          "description": "Last wake on radio frame counter used by the served end device.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "session_key_id": {
                          "description": "Session key ID of the session keys used to derive the root relay session key.",
                          "format": "byte",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "desired_rx1_data_rate_offset": {
            "properties": {
              "value": {
                "default": "DATA_RATE_OFFSET_0",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "desired_rx1_delay": {
            "properties": {
              "value": {
                "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.",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "desired_rx2_data_rate_index": {
            "properties": {
              "value": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "desired_rx2_frequency": {
            "properties": {
              "value": {
                "format": "uint64",
                "type": "string"
              }
            },
            "type": "object"
          },
          "downlink_dwell_time": {
            "properties": {
              "value": {
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "factory_preset_frequencies": {
            "description": "List of factory-preset frequencies.\nIf unset, the default value from Network Server configuration or regional parameters specification will be used.",
            "items": {
              "format": "uint64",
              "type": "string"
            },
            "type": "array"
          },
          "max_duty_cycle": {
            "properties": {
              "value": {
                "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%.",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "ping_slot_data_rate_index": {
            "properties": {
              "value": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "ping_slot_frequency": {
            "properties": {
              "value": {
                "format": "uint64",
                "type": "string"
              }
            },
            "type": "object"
          },
          "ping_slot_periodicity": {
            "properties": {
              "value": {
                "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.",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "relay": {
            "description": "RelaySettings represent the settings of a relay.\nThis is used internally by the Network Server.",
            "properties": {
              "served": {
                "properties": {
                  "always": {
                    "type": "object"
                  },
                  "backoff": {
                    "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "dynamic": {
                    "properties": {
                      "smart_enable_level": {
                        "default": "RELAY_SMART_ENABLE_LEVEL_8",
                        "enum": [
                          "RELAY_SMART_ENABLE_LEVEL_8",
                          "RELAY_SMART_ENABLE_LEVEL_16",
                          "RELAY_SMART_ENABLE_LEVEL_32",
                          "RELAY_SMART_ENABLE_LEVEL_64"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "end_device_controlled": {
                    "type": "object"
                  },
                  "second_channel": {
                    "properties": {
                      "ack_offset": {
                        "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                        "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"
                        ],
                        "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",
                        "type": "string"
                      },
                      "data_rate_index": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "frequency": {
                        "description": "The frequency (Hz) used by the wake on radio message.",
                        "format": "uint64",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "serving_device_id": {
                    "description": "End device identifier of the serving end device.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "serving": {
                "properties": {
                  "cad_periodicity": {
                    "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                    "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"
                    ],
                    "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                    "type": "string"
                  },
                  "default_channel_index": {
                    "description": "Index of the default wake on radio channel.\nIf unset, the default value from Network Server configuration will be used.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "limits": {
                    "properties": {
                      "join_requests": {
                        "properties": {
                          "bucket_size": {
                            "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                            "enum": [
                              "RELAY_LIMIT_BUCKET_SIZE_1",
                              "RELAY_LIMIT_BUCKET_SIZE_2",
                              "RELAY_LIMIT_BUCKET_SIZE_4",
                              "RELAY_LIMIT_BUCKET_SIZE_12"
                            ],
                            "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                            "type": "string"
                          },
                          "reload_rate": {
                            "description": "The number of tokens which are replenished in the bucket every hour.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "notifications": {
                        "properties": {
                          "bucket_size": {
                            "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                            "enum": [
                              "RELAY_LIMIT_BUCKET_SIZE_1",
                              "RELAY_LIMIT_BUCKET_SIZE_2",
                              "RELAY_LIMIT_BUCKET_SIZE_4",
                              "RELAY_LIMIT_BUCKET_SIZE_12"
                            ],
                            "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                            "type": "string"
                          },
                          "reload_rate": {
                            "description": "The number of tokens which are replenished in the bucket every hour.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "overall": {
                        "properties": {
                          "bucket_size": {
                            "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                            "enum": [
                              "RELAY_LIMIT_BUCKET_SIZE_1",
                              "RELAY_LIMIT_BUCKET_SIZE_2",
                              "RELAY_LIMIT_BUCKET_SIZE_4",
                              "RELAY_LIMIT_BUCKET_SIZE_12"
                            ],
                            "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                            "type": "string"
                          },
                          "reload_rate": {
                            "description": "The number of tokens which are replenished in the bucket every hour.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "reset_behavior": {
                        "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                        "enum": [
                          "RELAY_RESET_LIMIT_COUNTER_ZERO",
                          "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                          "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                          "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                        ],
                        "type": "string"
                      },
                      "uplink_messages": {
                        "properties": {
                          "bucket_size": {
                            "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                            "enum": [
                              "RELAY_LIMIT_BUCKET_SIZE_1",
                              "RELAY_LIMIT_BUCKET_SIZE_2",
                              "RELAY_LIMIT_BUCKET_SIZE_4",
                              "RELAY_LIMIT_BUCKET_SIZE_12"
                            ],
                            "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                            "type": "string"
                          },
                          "reload_rate": {
                            "description": "The number of tokens which are replenished in the bucket every hour.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "second_channel": {
                    "properties": {
                      "ack_offset": {
                        "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                        "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"
                        ],
                        "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",
                        "type": "string"
                      },
                      "data_rate_index": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "frequency": {
                        "description": "The frequency (Hz) used by the wake on radio message.",
                        "format": "uint64",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "uplink_forwarding_rules": {
                    "description": "Configured uplink forwarding rules.",
                    "items": {
                      "properties": {
                        "device_id": {
                          "description": "End device identifier of the served end device.",
                          "type": "string"
                        },
                        "last_w_f_cnt": {
                          "description": "Last wake on radio frame counter used by the served end device.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "session_key_id": {
                          "description": "Session key ID of the session keys used to derive the root relay session key.",
                          "format": "byte",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "resets_f_cnt": {
            "properties": {
              "value": {
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "rx1_data_rate_offset": {
            "properties": {
              "value": {
                "default": "DATA_RATE_OFFSET_0",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "rx1_delay": {
            "properties": {
              "value": {
                "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.",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "rx2_data_rate_index": {
            "properties": {
              "value": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "rx2_frequency": {
            "properties": {
              "value": {
                "format": "uint64",
                "type": "string"
              }
            },
            "type": "object"
          },
          "schedule_downlinks": {
            "properties": {
              "value": {
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "status_count_periodicity": {
            "description": "Number of uplink messages after which a DevStatusReq MACCommand shall be sent.\nIf unset, the default value from Network Server configuration will be used.",
            "format": "int64",
            "type": "integer"
          },
          "status_time_periodicity": {
            "description": "The interval after which a DevStatusReq MACCommand shall be sent.\nIf unset, the default value from Network Server configuration will be used.",
            "type": "string"
          },
          "supports_32_bit_f_cnt": {
            "properties": {
              "value": {
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "uplink_dwell_time": {
            "properties": {
              "value": {
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "use_adr": {
            "properties": {
              "value": {
                "type": "boolean"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "mac_settings_profile_ids": {
        "properties": {
          "application_ids": {
            "properties": {
              "application_id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "profile_id": {
            "description": "Profile ID.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "mac_state": {
        "description": "MACState represents the state of MAC layer of the device.\nMACState is reset on each join for OTAA or ResetInd for ABP devices.\nThis is used internally by the Network Server.",
        "properties": {
          "current_parameters": {
            "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
            "properties": {
              "adr_ack_delay": {
                "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                "format": "int64",
                "type": "integer"
              },
              "adr_ack_delay_exponent": {
                "properties": {
                  "value": {
                    "default": "ADR_ACK_DELAY_1",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "adr_ack_limit": {
                "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                "format": "int64",
                "type": "integer"
              },
              "adr_ack_limit_exponent": {
                "properties": {
                  "value": {
                    "default": "ADR_ACK_LIMIT_1",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "adr_data_rate_index": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              },
              "adr_nb_trans": {
                "description": "ADR: number of retransmissions.",
                "format": "int64",
                "type": "integer"
              },
              "adr_tx_power_index": {
                "description": "ADR: transmission power index to use.",
                "format": "int64",
                "type": "integer"
              },
              "beacon_frequency": {
                "description": "Frequency of the class B beacon (Hz).",
                "format": "uint64",
                "type": "string"
              },
              "channels": {
                "description": "Configured uplink channels and optionally Rx1 frequency.",
                "items": {
                  "properties": {
                    "downlink_frequency": {
                      "description": "Downlink frequency of the channel (Hz).",
                      "format": "uint64",
                      "type": "string"
                    },
                    "enable_uplink": {
                      "description": "Channel can be used by device for uplink.",
                      "type": "boolean"
                    },
                    "max_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "min_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "uplink_frequency": {
                      "description": "Uplink frequency of the channel (Hz).",
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "downlink_dwell_time": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "max_duty_cycle": {
                "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%.",
                "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"
                ],
                "type": "string"
              },
              "max_eirp": {
                "description": "Maximum EIRP (dBm).",
                "format": "float",
                "type": "number"
              },
              "ping_slot_data_rate_index": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              },
              "ping_slot_data_rate_index_value": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "ping_slot_frequency": {
                "description": "Frequency of the class B ping slot (Hz).",
                "format": "uint64",
                "type": "string"
              },
              "rejoin_count_periodicity": {
                "default": "REJOIN_COUNT_16",
                "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"
                ],
                "type": "string"
              },
              "rejoin_time_periodicity": {
                "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.",
                "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"
                ],
                "type": "string"
              },
              "relay": {
                "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                "properties": {
                  "served": {
                    "properties": {
                      "always": {
                        "type": "object"
                      },
                      "backoff": {
                        "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "dynamic": {
                        "properties": {
                          "smart_enable_level": {
                            "default": "RELAY_SMART_ENABLE_LEVEL_8",
                            "enum": [
                              "RELAY_SMART_ENABLE_LEVEL_8",
                              "RELAY_SMART_ENABLE_LEVEL_16",
                              "RELAY_SMART_ENABLE_LEVEL_32",
                              "RELAY_SMART_ENABLE_LEVEL_64"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "end_device_controlled": {
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving_device_id": {
                        "description": "End device identifier of the serving end device.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "serving": {
                    "properties": {
                      "cad_periodicity": {
                        "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                        "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"
                        ],
                        "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                        "type": "string"
                      },
                      "default_channel_index": {
                        "description": "Index of the default wake on radio channel.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "limits": {
                        "properties": {
                          "join_requests": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "notifications": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "overall": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "reset_behavior": {
                            "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "enum": [
                              "RELAY_RESET_LIMIT_COUNTER_ZERO",
                              "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                              "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                              "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                            ],
                            "type": "string"
                          },
                          "uplink_messages": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "uplink_forwarding_rules": {
                        "description": "Configured uplink forwarding rules.",
                        "items": {
                          "properties": {
                            "device_id": {
                              "description": "End device identifier of the served end device.",
                              "type": "string"
                            },
                            "last_w_f_cnt": {
                              "description": "Last wake on radio frame counter used by the served end device.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "limits": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "session_key_id": {
                              "description": "Session key ID of the session keys used to derive the root relay session key.",
                              "format": "byte",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "rx1_data_rate_offset": {
                "default": "DATA_RATE_OFFSET_0",
                "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"
                ],
                "type": "string"
              },
              "rx1_delay": {
                "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.",
                "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"
                ],
                "type": "string"
              },
              "rx2_data_rate_index": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              },
              "rx2_frequency": {
                "description": "Frequency for Rx2 (Hz).",
                "format": "uint64",
                "type": "string"
              },
              "uplink_dwell_time": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "desired_parameters": {
            "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
            "properties": {
              "adr_ack_delay": {
                "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                "format": "int64",
                "type": "integer"
              },
              "adr_ack_delay_exponent": {
                "properties": {
                  "value": {
                    "default": "ADR_ACK_DELAY_1",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "adr_ack_limit": {
                "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                "format": "int64",
                "type": "integer"
              },
              "adr_ack_limit_exponent": {
                "properties": {
                  "value": {
                    "default": "ADR_ACK_LIMIT_1",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "adr_data_rate_index": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              },
              "adr_nb_trans": {
                "description": "ADR: number of retransmissions.",
                "format": "int64",
                "type": "integer"
              },
              "adr_tx_power_index": {
                "description": "ADR: transmission power index to use.",
                "format": "int64",
                "type": "integer"
              },
              "beacon_frequency": {
                "description": "Frequency of the class B beacon (Hz).",
                "format": "uint64",
                "type": "string"
              },
              "channels": {
                "description": "Configured uplink channels and optionally Rx1 frequency.",
                "items": {
                  "properties": {
                    "downlink_frequency": {
                      "description": "Downlink frequency of the channel (Hz).",
                      "format": "uint64",
                      "type": "string"
                    },
                    "enable_uplink": {
                      "description": "Channel can be used by device for uplink.",
                      "type": "boolean"
                    },
                    "max_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "min_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "uplink_frequency": {
                      "description": "Uplink frequency of the channel (Hz).",
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "downlink_dwell_time": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "max_duty_cycle": {
                "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%.",
                "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"
                ],
                "type": "string"
              },
              "max_eirp": {
                "description": "Maximum EIRP (dBm).",
                "format": "float",
                "type": "number"
              },
              "ping_slot_data_rate_index": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              },
              "ping_slot_data_rate_index_value": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "ping_slot_frequency": {
                "description": "Frequency of the class B ping slot (Hz).",
                "format": "uint64",
                "type": "string"
              },
              "rejoin_count_periodicity": {
                "default": "REJOIN_COUNT_16",
                "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"
                ],
                "type": "string"
              },
              "rejoin_time_periodicity": {
                "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.",
                "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"
                ],
                "type": "string"
              },
              "relay": {
                "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                "properties": {
                  "served": {
                    "properties": {
                      "always": {
                        "type": "object"
                      },
                      "backoff": {
                        "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "dynamic": {
                        "properties": {
                          "smart_enable_level": {
                            "default": "RELAY_SMART_ENABLE_LEVEL_8",
                            "enum": [
                              "RELAY_SMART_ENABLE_LEVEL_8",
                              "RELAY_SMART_ENABLE_LEVEL_16",
                              "RELAY_SMART_ENABLE_LEVEL_32",
                              "RELAY_SMART_ENABLE_LEVEL_64"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "end_device_controlled": {
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving_device_id": {
                        "description": "End device identifier of the serving end device.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "serving": {
                    "properties": {
                      "cad_periodicity": {
                        "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                        "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"
                        ],
                        "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                        "type": "string"
                      },
                      "default_channel_index": {
                        "description": "Index of the default wake on radio channel.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "limits": {
                        "properties": {
                          "join_requests": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "notifications": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "overall": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "reset_behavior": {
                            "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "enum": [
                              "RELAY_RESET_LIMIT_COUNTER_ZERO",
                              "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                              "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                              "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                            ],
                            "type": "string"
                          },
                          "uplink_messages": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "uplink_forwarding_rules": {
                        "description": "Configured uplink forwarding rules.",
                        "items": {
                          "properties": {
                            "device_id": {
                              "description": "End device identifier of the served end device.",
                              "type": "string"
                            },
                            "last_w_f_cnt": {
                              "description": "Last wake on radio frame counter used by the served end device.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "limits": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "session_key_id": {
                              "description": "Session key ID of the session keys used to derive the root relay session key.",
                              "format": "byte",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "rx1_data_rate_offset": {
                "default": "DATA_RATE_OFFSET_0",
                "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"
                ],
                "type": "string"
              },
              "rx1_delay": {
                "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.",
                "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"
                ],
                "type": "string"
              },
              "rx2_data_rate_index": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              },
              "rx2_frequency": {
                "description": "Frequency for Rx2 (Hz).",
                "format": "uint64",
                "type": "string"
              },
              "uplink_dwell_time": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "device_class": {
            "default": "CLASS_A",
            "enum": [
              "CLASS_A",
              "CLASS_B",
              "CLASS_C"
            ],
            "type": "string"
          },
          "last_adr_change_f_cnt_up": {
            "description": "Frame counter of uplink, which confirmed the last ADR parameter change.",
            "format": "int64",
            "type": "integer"
          },
          "last_confirmed_downlink_at": {
            "description": "Time when the last confirmed downlink message or MAC command was scheduled.",
            "format": "date-time",
            "type": "string"
          },
          "last_dev_status_f_cnt_up": {
            "description": "Frame counter value of last uplink containing DevStatusAns.",
            "format": "int64",
            "type": "integer"
          },
          "last_downlink_at": {
            "description": "Time when the last downlink message was scheduled.",
            "format": "date-time",
            "type": "string"
          },
          "last_network_initiated_downlink_at": {
            "description": "Time when the last network-initiated downlink message was scheduled.",
            "format": "date-time",
            "type": "string"
          },
          "lorawan_version": {
            "default": "MAC_UNKNOWN",
            "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"
            ],
            "type": "string"
          },
          "pending_application_downlink": {
            "properties": {
              "attributes": {
                "additionalProperties": {
                  "type": "string"
                },
                "description": "Attributes for devices, set by the Application Server while handling the message.",
                "type": "object"
              },
              "class_b_c": {
                "properties": {
                  "absolute_time": {
                    "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                    "format": "date-time",
                    "type": "string"
                  },
                  "gateways": {
                    "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                    "items": {
                      "properties": {
                        "antenna_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "gateway_ids": {
                          "properties": {
                            "eui": {
                              "description": "Secondary identifier, which can only be used in specific requests.",
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "gateway_id": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "group_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  }
                },
                "type": "object"
              },
              "confirmed": {
                "type": "boolean"
              },
              "confirmed_retry": {
                "properties": {
                  "attempt": {
                    "description": "The number of attempted confirmed downlink acknowledgements.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "max_attempts": {
                    "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "correlation_ids": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "decoded_payload": {
                "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                "type": "object"
              },
              "decoded_payload_warnings": {
                "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "f_cnt": {
                "format": "int64",
                "type": "integer"
              },
              "f_port": {
                "format": "int64",
                "type": "integer"
              },
              "frm_payload": {
                "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                "format": "byte",
                "type": "string"
              },
              "locations": {
                "additionalProperties": {
                  "properties": {
                    "accuracy": {
                      "description": "The accuracy of the location (meters).",
                      "format": "int32",
                      "type": "integer"
                    },
                    "altitude": {
                      "description": "The altitude (meters), where 0 is the mean sea level.",
                      "format": "int32",
                      "type": "integer"
                    },
                    "latitude": {
                      "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                      "format": "double",
                      "type": "number"
                    },
                    "longitude": {
                      "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                      "format": "double",
                      "type": "number"
                    },
                    "source": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "description": "End device location metadata, set by the Application Server while handling the message.",
                "type": "object"
              },
              "network_ids": {
                "description": "Identifies a Network Server.",
                "properties": {
                  "cluster_address": {
                    "description": "Cluster address of the Network Server.",
                    "type": "string"
                  },
                  "cluster_id": {
                    "description": "Cluster identifier of the Network Server.",
                    "type": "string"
                  },
                  "net_id": {
                    "description": "LoRa Alliance NetID.",
                    "example": "000013",
                    "format": "string",
                    "type": "string"
                  },
                  "ns_id": {
                    "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                    "example": "70B3D57ED000ABCD",
                    "format": "string",
                    "type": "string"
                  },
                  "tenant_address": {
                    "description": "Optional tenant address for multi-tenant deployments.",
                    "type": "string"
                  },
                  "tenant_id": {
                    "description": "Optional tenant identifier for multi-tenant deployments.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "priority": {
                "default": "LOWEST",
                "enum": [
                  "LOWEST",
                  "LOW",
                  "BELOW_NORMAL",
                  "NORMAL",
                  "ABOVE_NORMAL",
                  "HIGH",
                  "HIGHEST"
                ],
                "type": "string"
              },
              "session_key_id": {
                "description": "Join Server issued identifier for the session keys used by this downlink.",
                "format": "byte",
                "type": "string"
              },
              "version_ids": {
                "description": "Identifies an end device model with version information.",
                "properties": {
                  "band_id": {
                    "type": "string"
                  },
                  "brand_id": {
                    "type": "string"
                  },
                  "firmware_version": {
                    "type": "string"
                  },
                  "hardware_version": {
                    "type": "string"
                  },
                  "model_id": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "pending_join_request": {
            "properties": {
              "cf_list": {
                "properties": {
                  "ch_masks": {
                    "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                    "items": {
                      "type": "boolean"
                    },
                    "type": "array"
                  },
                  "freq": {
                    "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                    "items": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "type": "array"
                  },
                  "type": {
                    "default": "FREQUENCIES",
                    "enum": [
                      "FREQUENCIES",
                      "CHANNEL_MASKS"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "downlink_settings": {
                "properties": {
                  "opt_neg": {
                    "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                    "type": "boolean"
                  },
                  "rx1_dr_offset": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_dr": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "rx_delay": {
                "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.",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "pending_relay_downlink": {
            "properties": {
              "raw_payload": {
                "format": "byte",
                "type": "string"
              }
            },
            "type": "object"
          },
          "pending_requests": {
            "description": "Pending MAC requests(i.e. sent requests, for which no response has been received yet).\nRegenerated on each downlink.",
            "items": {
              "properties": {
                "adr_param_setup_req": {
                  "properties": {
                    "adr_ack_delay_exponent": {
                      "default": "ADR_ACK_DELAY_1",
                      "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"
                      ],
                      "type": "string"
                    },
                    "adr_ack_limit_exponent": {
                      "default": "ADR_ACK_LIMIT_1",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "beacon_freq_ans": {
                  "properties": {
                    "frequency_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "beacon_freq_req": {
                  "properties": {
                    "frequency": {
                      "description": "Frequency of the Class B beacons (Hz).",
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "beacon_timing_ans": {
                  "properties": {
                    "channel_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "delay": {
                      "description": "(uint16) See LoRaWAN specification.",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "cid": {
                  "default": "CID_RFU_0",
                  "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"
                  ],
                  "title": "- CID_BEACON_TIMING: Deprecated",
                  "type": "string"
                },
                "dev_status_ans": {
                  "properties": {
                    "battery": {
                      "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "margin": {
                      "description": "SNR of the last downlink (dB; [-32, +31]).",
                      "format": "int32",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "device_mode_conf": {
                  "properties": {
                    "class": {
                      "default": "CLASS_A",
                      "enum": [
                        "CLASS_A",
                        "CLASS_B",
                        "CLASS_C"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "device_mode_ind": {
                  "properties": {
                    "class": {
                      "default": "CLASS_A",
                      "enum": [
                        "CLASS_A",
                        "CLASS_B",
                        "CLASS_C"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "device_time_ans": {
                  "properties": {
                    "time": {
                      "format": "date-time",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "dl_channel_ans": {
                  "properties": {
                    "channel_index_ack": {
                      "type": "boolean"
                    },
                    "frequency_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "dl_channel_req": {
                  "properties": {
                    "channel_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "frequency": {
                      "description": "Downlink channel frequency (Hz).",
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "duty_cycle_req": {
                  "properties": {
                    "max_duty_cycle": {
                      "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%.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "force_rejoin_req": {
                  "properties": {
                    "data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "max_retries": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "period_exponent": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rejoin_type": {
                      "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.",
                      "enum": [
                        "CONTEXT",
                        "SESSION",
                        "KEYS"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "link_adr_ans": {
                  "properties": {
                    "channel_mask_ack": {
                      "type": "boolean"
                    },
                    "data_rate_index_ack": {
                      "type": "boolean"
                    },
                    "tx_power_index_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "link_adr_req": {
                  "properties": {
                    "channel_mask": {
                      "items": {
                        "type": "boolean"
                      },
                      "type": "array"
                    },
                    "channel_mask_control": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "nb_trans": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "tx_power_index": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "link_check_ans": {
                  "properties": {
                    "gateway_count": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "margin": {
                      "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "new_channel_ans": {
                  "properties": {
                    "data_rate_ack": {
                      "type": "boolean"
                    },
                    "frequency_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "new_channel_req": {
                  "properties": {
                    "channel_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "frequency": {
                      "description": "Channel frequency (Hz).",
                      "format": "uint64",
                      "type": "string"
                    },
                    "max_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "min_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "ping_slot_channel_ans": {
                  "properties": {
                    "data_rate_index_ack": {
                      "type": "boolean"
                    },
                    "frequency_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "ping_slot_channel_req": {
                  "properties": {
                    "data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "frequency": {
                      "description": "Ping slot channel frequency (Hz).",
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "ping_slot_info_req": {
                  "properties": {
                    "period": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "raw_payload": {
                  "format": "byte",
                  "type": "string"
                },
                "rejoin_param_setup_ans": {
                  "properties": {
                    "max_time_exponent_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "rejoin_param_setup_req": {
                  "properties": {
                    "max_count_exponent": {
                      "default": "REJOIN_COUNT_16",
                      "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"
                      ],
                      "type": "string"
                    },
                    "max_time_exponent": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rekey_conf": {
                  "properties": {
                    "minor_version": {
                      "default": "MINOR_RFU_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rekey_ind": {
                  "properties": {
                    "minor_version": {
                      "default": "MINOR_RFU_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "relay_conf_ans": {
                  "properties": {
                    "cad_periodicity_ack": {
                      "type": "boolean"
                    },
                    "default_channel_index_ack": {
                      "type": "boolean"
                    },
                    "second_channel_ack_offset_ack": {
                      "type": "boolean"
                    },
                    "second_channel_data_rate_index_ack": {
                      "type": "boolean"
                    },
                    "second_channel_frequency_ack": {
                      "type": "boolean"
                    },
                    "second_channel_index_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "relay_conf_req": {
                  "properties": {
                    "configuration": {
                      "properties": {
                        "cad_periodicity": {
                          "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                          "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"
                          ],
                          "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                          "type": "string"
                        },
                        "default_channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "second_channel": {
                          "properties": {
                            "ack_offset": {
                              "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                              "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"
                              ],
                              "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",
                              "type": "string"
                            },
                            "data_rate_index": {
                              "default": "DATA_RATE_0",
                              "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"
                              ],
                              "type": "string"
                            },
                            "frequency": {
                              "description": "The frequency (Hz) used by the wake on radio message.",
                              "format": "uint64",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "relay_configure_fwd_limit_ans": {
                  "type": "object"
                },
                "relay_configure_fwd_limit_req": {
                  "properties": {
                    "global_uplink_limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "join_request_limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "notify_limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "overall_limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "reset_limit_counter": {
                      "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                      "enum": [
                        "RELAY_RESET_LIMIT_COUNTER_ZERO",
                        "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                        "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                        "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "relay_ctrl_uplink_list_ans": {
                  "properties": {
                    "rule_index_ack": {
                      "type": "boolean"
                    },
                    "w_f_cnt": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "relay_ctrl_uplink_list_req": {
                  "properties": {
                    "action": {
                      "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                      "enum": [
                        "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                        "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                      ],
                      "type": "string"
                    },
                    "rule_index": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "relay_end_device_conf_ans": {
                  "properties": {
                    "backoff_ack": {
                      "type": "boolean"
                    },
                    "second_channel_data_rate_index_ack": {
                      "type": "boolean"
                    },
                    "second_channel_frequency_ack": {
                      "type": "boolean"
                    },
                    "second_channel_index_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "relay_end_device_conf_req": {
                  "properties": {
                    "configuration": {
                      "properties": {
                        "always": {
                          "type": "object"
                        },
                        "backoff": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "dynamic": {
                          "properties": {
                            "smart_enable_level": {
                              "default": "RELAY_SMART_ENABLE_LEVEL_8",
                              "enum": [
                                "RELAY_SMART_ENABLE_LEVEL_8",
                                "RELAY_SMART_ENABLE_LEVEL_16",
                                "RELAY_SMART_ENABLE_LEVEL_32",
                                "RELAY_SMART_ENABLE_LEVEL_64"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "end_device_controlled": {
                          "type": "object"
                        },
                        "second_channel": {
                          "properties": {
                            "ack_offset": {
                              "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                              "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"
                              ],
                              "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",
                              "type": "string"
                            },
                            "data_rate_index": {
                              "default": "DATA_RATE_0",
                              "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"
                              ],
                              "type": "string"
                            },
                            "frequency": {
                              "description": "The frequency (Hz) used by the wake on radio message.",
                              "format": "uint64",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "serving_device_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "relay_notify_new_end_device_req": {
                  "properties": {
                    "dev_addr": {
                      "example": "2600ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "rssi": {
                      "format": "int32",
                      "type": "integer"
                    },
                    "snr": {
                      "format": "int32",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "relay_update_uplink_list_ans": {
                  "type": "object"
                },
                "relay_update_uplink_list_req": {
                  "properties": {
                    "dev_addr": {
                      "example": "2600ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "device_id": {
                      "type": "string"
                    },
                    "forward_limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "root_wor_s_key": {
                      "example": "0123456789ABCDEF0123456789ABCDEF",
                      "format": "string",
                      "type": "string"
                    },
                    "rule_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "session_key_id": {
                      "format": "byte",
                      "type": "string"
                    },
                    "w_f_cnt": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "reset_conf": {
                  "properties": {
                    "minor_version": {
                      "default": "MINOR_RFU_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "reset_ind": {
                  "properties": {
                    "minor_version": {
                      "default": "MINOR_RFU_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rx_param_setup_ans": {
                  "properties": {
                    "rx1_data_rate_offset_ack": {
                      "type": "boolean"
                    },
                    "rx2_data_rate_index_ack": {
                      "type": "boolean"
                    },
                    "rx2_frequency_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "rx_param_setup_req": {
                  "properties": {
                    "rx1_data_rate_offset": {
                      "default": "DATA_RATE_OFFSET_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rx2_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rx2_frequency": {
                      "description": "Rx2 frequency (Hz).",
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rx_timing_setup_req": {
                  "properties": {
                    "delay": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "tx_param_setup_req": {
                  "properties": {
                    "downlink_dwell_time": {
                      "type": "boolean"
                    },
                    "max_eirp_index": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    },
                    "uplink_dwell_time": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "ping_slot_periodicity": {
            "properties": {
              "value": {
                "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.",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "queued_join_accept": {
            "properties": {
              "correlation_ids": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "dev_addr": {
                "example": "2600ABCD",
                "format": "string",
                "type": "string"
              },
              "keys": {
                "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
                "properties": {
                  "app_s_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "f_nwk_s_int_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "nwk_s_enc_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "s_nwk_s_int_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "session_key_id": {
                    "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                    "format": "byte",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "net_id": {
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "payload": {
                "description": "Payload of the join-accept received from Join Server.",
                "format": "byte",
                "type": "string"
              },
              "request": {
                "properties": {
                  "cf_list": {
                    "properties": {
                      "ch_masks": {
                        "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                        "items": {
                          "type": "boolean"
                        },
                        "type": "array"
                      },
                      "freq": {
                        "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                        "items": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "type": "array"
                      },
                      "type": {
                        "default": "FREQUENCIES",
                        "enum": [
                          "FREQUENCIES",
                          "CHANNEL_MASKS"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "downlink_settings": {
                    "properties": {
                      "opt_neg": {
                        "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                        "type": "boolean"
                      },
                      "rx1_dr_offset": {
                        "default": "DATA_RATE_OFFSET_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "rx2_dr": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "rx_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "queued_responses": {
            "description": "Queued MAC responses.\nRegenerated on each uplink.",
            "items": {
              "properties": {
                "adr_param_setup_req": {
                  "properties": {
                    "adr_ack_delay_exponent": {
                      "default": "ADR_ACK_DELAY_1",
                      "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"
                      ],
                      "type": "string"
                    },
                    "adr_ack_limit_exponent": {
                      "default": "ADR_ACK_LIMIT_1",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "beacon_freq_ans": {
                  "properties": {
                    "frequency_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "beacon_freq_req": {
                  "properties": {
                    "frequency": {
                      "description": "Frequency of the Class B beacons (Hz).",
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "beacon_timing_ans": {
                  "properties": {
                    "channel_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "delay": {
                      "description": "(uint16) See LoRaWAN specification.",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "cid": {
                  "default": "CID_RFU_0",
                  "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"
                  ],
                  "title": "- CID_BEACON_TIMING: Deprecated",
                  "type": "string"
                },
                "dev_status_ans": {
                  "properties": {
                    "battery": {
                      "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "margin": {
                      "description": "SNR of the last downlink (dB; [-32, +31]).",
                      "format": "int32",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "device_mode_conf": {
                  "properties": {
                    "class": {
                      "default": "CLASS_A",
                      "enum": [
                        "CLASS_A",
                        "CLASS_B",
                        "CLASS_C"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "device_mode_ind": {
                  "properties": {
                    "class": {
                      "default": "CLASS_A",
                      "enum": [
                        "CLASS_A",
                        "CLASS_B",
                        "CLASS_C"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "device_time_ans": {
                  "properties": {
                    "time": {
                      "format": "date-time",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "dl_channel_ans": {
                  "properties": {
                    "channel_index_ack": {
                      "type": "boolean"
                    },
                    "frequency_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "dl_channel_req": {
                  "properties": {
                    "channel_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "frequency": {
                      "description": "Downlink channel frequency (Hz).",
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "duty_cycle_req": {
                  "properties": {
                    "max_duty_cycle": {
                      "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%.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "force_rejoin_req": {
                  "properties": {
                    "data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "max_retries": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "period_exponent": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rejoin_type": {
                      "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.",
                      "enum": [
                        "CONTEXT",
                        "SESSION",
                        "KEYS"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "link_adr_ans": {
                  "properties": {
                    "channel_mask_ack": {
                      "type": "boolean"
                    },
                    "data_rate_index_ack": {
                      "type": "boolean"
                    },
                    "tx_power_index_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "link_adr_req": {
                  "properties": {
                    "channel_mask": {
                      "items": {
                        "type": "boolean"
                      },
                      "type": "array"
                    },
                    "channel_mask_control": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "nb_trans": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "tx_power_index": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "link_check_ans": {
                  "properties": {
                    "gateway_count": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "margin": {
                      "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "new_channel_ans": {
                  "properties": {
                    "data_rate_ack": {
                      "type": "boolean"
                    },
                    "frequency_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "new_channel_req": {
                  "properties": {
                    "channel_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "frequency": {
                      "description": "Channel frequency (Hz).",
                      "format": "uint64",
                      "type": "string"
                    },
                    "max_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "min_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "ping_slot_channel_ans": {
                  "properties": {
                    "data_rate_index_ack": {
                      "type": "boolean"
                    },
                    "frequency_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "ping_slot_channel_req": {
                  "properties": {
                    "data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "frequency": {
                      "description": "Ping slot channel frequency (Hz).",
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "ping_slot_info_req": {
                  "properties": {
                    "period": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "raw_payload": {
                  "format": "byte",
                  "type": "string"
                },
                "rejoin_param_setup_ans": {
                  "properties": {
                    "max_time_exponent_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "rejoin_param_setup_req": {
                  "properties": {
                    "max_count_exponent": {
                      "default": "REJOIN_COUNT_16",
                      "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"
                      ],
                      "type": "string"
                    },
                    "max_time_exponent": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rekey_conf": {
                  "properties": {
                    "minor_version": {
                      "default": "MINOR_RFU_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rekey_ind": {
                  "properties": {
                    "minor_version": {
                      "default": "MINOR_RFU_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "relay_conf_ans": {
                  "properties": {
                    "cad_periodicity_ack": {
                      "type": "boolean"
                    },
                    "default_channel_index_ack": {
                      "type": "boolean"
                    },
                    "second_channel_ack_offset_ack": {
                      "type": "boolean"
                    },
                    "second_channel_data_rate_index_ack": {
                      "type": "boolean"
                    },
                    "second_channel_frequency_ack": {
                      "type": "boolean"
                    },
                    "second_channel_index_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "relay_conf_req": {
                  "properties": {
                    "configuration": {
                      "properties": {
                        "cad_periodicity": {
                          "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                          "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"
                          ],
                          "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                          "type": "string"
                        },
                        "default_channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "second_channel": {
                          "properties": {
                            "ack_offset": {
                              "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                              "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"
                              ],
                              "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",
                              "type": "string"
                            },
                            "data_rate_index": {
                              "default": "DATA_RATE_0",
                              "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"
                              ],
                              "type": "string"
                            },
                            "frequency": {
                              "description": "The frequency (Hz) used by the wake on radio message.",
                              "format": "uint64",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "relay_configure_fwd_limit_ans": {
                  "type": "object"
                },
                "relay_configure_fwd_limit_req": {
                  "properties": {
                    "global_uplink_limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "join_request_limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "notify_limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "overall_limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "reset_limit_counter": {
                      "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                      "enum": [
                        "RELAY_RESET_LIMIT_COUNTER_ZERO",
                        "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                        "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                        "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "relay_ctrl_uplink_list_ans": {
                  "properties": {
                    "rule_index_ack": {
                      "type": "boolean"
                    },
                    "w_f_cnt": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "relay_ctrl_uplink_list_req": {
                  "properties": {
                    "action": {
                      "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                      "enum": [
                        "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                        "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                      ],
                      "type": "string"
                    },
                    "rule_index": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "relay_end_device_conf_ans": {
                  "properties": {
                    "backoff_ack": {
                      "type": "boolean"
                    },
                    "second_channel_data_rate_index_ack": {
                      "type": "boolean"
                    },
                    "second_channel_frequency_ack": {
                      "type": "boolean"
                    },
                    "second_channel_index_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "relay_end_device_conf_req": {
                  "properties": {
                    "configuration": {
                      "properties": {
                        "always": {
                          "type": "object"
                        },
                        "backoff": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "dynamic": {
                          "properties": {
                            "smart_enable_level": {
                              "default": "RELAY_SMART_ENABLE_LEVEL_8",
                              "enum": [
                                "RELAY_SMART_ENABLE_LEVEL_8",
                                "RELAY_SMART_ENABLE_LEVEL_16",
                                "RELAY_SMART_ENABLE_LEVEL_32",
                                "RELAY_SMART_ENABLE_LEVEL_64"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "end_device_controlled": {
                          "type": "object"
                        },
                        "second_channel": {
                          "properties": {
                            "ack_offset": {
                              "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                              "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"
                              ],
                              "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",
                              "type": "string"
                            },
                            "data_rate_index": {
                              "default": "DATA_RATE_0",
                              "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"
                              ],
                              "type": "string"
                            },
                            "frequency": {
                              "description": "The frequency (Hz) used by the wake on radio message.",
                              "format": "uint64",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "serving_device_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "relay_notify_new_end_device_req": {
                  "properties": {
                    "dev_addr": {
                      "example": "2600ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "rssi": {
                      "format": "int32",
                      "type": "integer"
                    },
                    "snr": {
                      "format": "int32",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "relay_update_uplink_list_ans": {
                  "type": "object"
                },
                "relay_update_uplink_list_req": {
                  "properties": {
                    "dev_addr": {
                      "example": "2600ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "device_id": {
                      "type": "string"
                    },
                    "forward_limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "root_wor_s_key": {
                      "example": "0123456789ABCDEF0123456789ABCDEF",
                      "format": "string",
                      "type": "string"
                    },
                    "rule_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "session_key_id": {
                      "format": "byte",
                      "type": "string"
                    },
                    "w_f_cnt": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "reset_conf": {
                  "properties": {
                    "minor_version": {
                      "default": "MINOR_RFU_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "reset_ind": {
                  "properties": {
                    "minor_version": {
                      "default": "MINOR_RFU_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rx_param_setup_ans": {
                  "properties": {
                    "rx1_data_rate_offset_ack": {
                      "type": "boolean"
                    },
                    "rx2_data_rate_index_ack": {
                      "type": "boolean"
                    },
                    "rx2_frequency_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "rx_param_setup_req": {
                  "properties": {
                    "rx1_data_rate_offset": {
                      "default": "DATA_RATE_OFFSET_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rx2_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rx2_frequency": {
                      "description": "Rx2 frequency (Hz).",
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rx_timing_setup_req": {
                  "properties": {
                    "delay": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "tx_param_setup_req": {
                  "properties": {
                    "downlink_dwell_time": {
                      "type": "boolean"
                    },
                    "max_eirp_index": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    },
                    "uplink_dwell_time": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "recent_downlinks": {
            "description": "Recent data downlink messages sorted by time.\nThe number of messages stored may depend on configuration.",
            "items": {
              "description": "A minimal DownlinkMessage definition which is binary compatible with the top level DownlinkMessage message.\nUsed for type safe recent downlink storage.",
              "properties": {
                "correlation_ids": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "payload": {
                  "properties": {
                    "m_hdr": {
                      "properties": {
                        "m_type": {
                          "default": "JOIN_REQUEST",
                          "enum": [
                            "JOIN_REQUEST",
                            "JOIN_ACCEPT",
                            "UNCONFIRMED_UP",
                            "UNCONFIRMED_DOWN",
                            "CONFIRMED_UP",
                            "CONFIRMED_DOWN",
                            "REJOIN_REQUEST",
                            "PROPRIETARY"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "mac_payload": {
                      "properties": {
                        "f_port": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "full_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "recent_mac_command_identifiers": {
            "description": "MAC command identifiers sent by the end device in the last received uplink.\nThe Network Server may choose to store only certain types of MAC\ncommand identifiers in the underlying implementation.",
            "items": {
              "default": "CID_RFU_0",
              "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"
              ],
              "title": "- CID_BEACON_TIMING: Deprecated",
              "type": "string"
            },
            "type": "array"
          },
          "recent_uplinks": {
            "description": "Recent data uplink messages sorted by time.\nThe number of messages stored may depend on configuration.",
            "items": {
              "description": "A minimal UplinkMessage definition which is binary compatible with the top level UplinkMessage message.\nUsed for type safe recent uplink storage.",
              "properties": {
                "correlation_ids": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "device_channel_index": {
                  "format": "int64",
                  "type": "integer"
                },
                "payload": {
                  "properties": {
                    "join_accept_payload": {
                      "properties": {
                        "cf_list": {
                          "properties": {
                            "ch_masks": {
                              "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                              "items": {
                                "type": "boolean"
                              },
                              "type": "array"
                            },
                            "freq": {
                              "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                              "items": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "type": "array"
                            },
                            "type": {
                              "default": "FREQUENCIES",
                              "enum": [
                                "FREQUENCIES",
                                "CHANNEL_MASKS"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "dl_settings": {
                          "properties": {
                            "opt_neg": {
                              "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                              "type": "boolean"
                            },
                            "rx1_dr_offset": {
                              "default": "DATA_RATE_OFFSET_0",
                              "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"
                              ],
                              "type": "string"
                            },
                            "rx2_dr": {
                              "default": "DATA_RATE_0",
                              "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"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "encrypted": {
                          "format": "byte",
                          "type": "string"
                        },
                        "join_nonce": {
                          "example": "ABCDEF",
                          "format": "string",
                          "type": "string"
                        },
                        "net_id": {
                          "example": "000013",
                          "format": "string",
                          "type": "string"
                        },
                        "rx_delay": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "join_request_payload": {
                      "properties": {
                        "dev_eui": {
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "dev_nonce": {
                          "example": "ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "join_eui": {
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "m_hdr": {
                      "properties": {
                        "m_type": {
                          "default": "JOIN_REQUEST",
                          "enum": [
                            "JOIN_REQUEST",
                            "JOIN_ACCEPT",
                            "UNCONFIRMED_UP",
                            "UNCONFIRMED_DOWN",
                            "CONFIRMED_UP",
                            "CONFIRMED_DOWN",
                            "REJOIN_REQUEST",
                            "PROPRIETARY"
                          ],
                          "type": "string"
                        },
                        "major": {
                          "default": "LORAWAN_R1",
                          "enum": [
                            "LORAWAN_R1"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "mac_payload": {
                      "properties": {
                        "decoded_payload": {
                          "type": "object"
                        },
                        "f_hdr": {
                          "properties": {
                            "dev_addr": {
                              "example": "2600ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "f_cnt": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "f_ctrl": {
                              "properties": {
                                "ack": {
                                  "type": "boolean"
                                },
                                "adr": {
                                  "type": "boolean"
                                },
                                "adr_ack_req": {
                                  "description": "Only on uplink.",
                                  "type": "boolean"
                                },
                                "class_b": {
                                  "description": "Only on uplink.",
                                  "type": "boolean"
                                },
                                "f_pending": {
                                  "description": "Only on downlink.",
                                  "type": "boolean"
                                }
                              },
                              "type": "object"
                            },
                            "f_opts": {
                              "format": "byte",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "f_port": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frm_payload": {
                          "format": "byte",
                          "type": "string"
                        },
                        "full_f_cnt": {
                          "description": "Full 32-bit FCnt value. Used internally by Network Server.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "mic": {
                      "format": "byte",
                      "type": "string"
                    },
                    "rejoin_request_payload": {
                      "properties": {
                        "dev_eui": {
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "join_eui": {
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "net_id": {
                          "example": "000013",
                          "format": "string",
                          "type": "string"
                        },
                        "rejoin_cnt": {
                          "description": "Contains RJCount0 or RJCount1 depending on rejoin_type.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "rejoin_type": {
                          "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.",
                          "enum": [
                            "CONTEXT",
                            "SESSION",
                            "KEYS"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "title": "Message represents a LoRaWAN message",
                  "type": "object"
                },
                "received_at": {
                  "format": "date-time",
                  "type": "string"
                },
                "rx_metadata": {
                  "items": {
                    "properties": {
                      "channel_rssi": {
                        "format": "float",
                        "type": "number"
                      },
                      "downlink_path_constraint": {
                        "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.",
                        "enum": [
                          "DOWNLINK_PATH_CONSTRAINT_NONE",
                          "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
                          "DOWNLINK_PATH_CONSTRAINT_NEVER"
                        ],
                        "type": "string"
                      },
                      "gateway_ids": {
                        "properties": {
                          "eui": {
                            "description": "Secondary identifier, which can only be used in specific requests.",
                            "example": "70B3D57ED000ABCD",
                            "format": "string",
                            "type": "string"
                          },
                          "gateway_id": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "packet_broker": {
                        "type": "object"
                      },
                      "relay": {
                        "type": "object"
                      },
                      "snr": {
                        "format": "float",
                        "type": "number"
                      },
                      "uplink_token": {
                        "format": "byte",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "settings": {
                  "properties": {
                    "data_rate": {
                      "properties": {
                        "fsk": {
                          "properties": {
                            "bit_rate": {
                              "description": "Bit rate (bps).",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "lora": {
                          "properties": {
                            "bandwidth": {
                              "description": "Bandwidth (Hz).",
                              "format": "int64",
                              "type": "integer"
                            },
                            "coding_rate": {
                              "type": "string"
                            },
                            "spreading_factor": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "lrfhss": {
                          "properties": {
                            "coding_rate": {
                              "type": "string"
                            },
                            "modulation_type": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "operating_channel_width": {
                              "description": "Operating Channel Width (Hz).",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "rejected_adr_data_rate_indexes": {
            "description": "ADR Data rate index values rejected by the device.\nReset each time `current_parameters.channels` change.\nElements are sorted in ascending order.",
            "items": {
              "default": "DATA_RATE_0",
              "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"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "rejected_adr_tx_power_indexes": {
            "description": "ADR TX output power index values rejected by the device.\nElements are sorted in ascending order.",
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": "array"
          },
          "rejected_data_rate_ranges": {
            "additionalProperties": {
              "properties": {
                "ranges": {
                  "items": {
                    "properties": {
                      "max_data_rate_index": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "min_data_rate_index": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "description": "Data rate ranges rejected by the device per frequency.",
            "type": "object"
          },
          "rejected_frequencies": {
            "description": "Frequencies rejected by the device.",
            "items": {
              "format": "uint64",
              "type": "string"
            },
            "type": "array"
          },
          "rx_windows_available": {
            "description": "Whether or not Rx windows are expected to be open.\nSet to true every time an uplink is received.\nSet to false every time a successful downlink scheduling attempt is made.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "max_frequency": {
        "description": "Maximum frequency the device is capable of using (Hz). Stored in Network Server.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
        "format": "uint64",
        "type": "string"
      },
      "min_frequency": {
        "description": "Minimum frequency the device is capable of using (Hz). Stored in Network Server.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
        "format": "uint64",
        "type": "string"
      },
      "multicast": {
        "description": "Indicates whether this device represents a multicast group.",
        "type": "boolean"
      },
      "name": {
        "description": "Friendly name of the device. Stored in Entity Registry.",
        "type": "string"
      },
      "net_id": {
        "description": "Home NetID. Stored in Join Server.",
        "example": "000013",
        "format": "string",
        "type": "string"
      },
      "network_server_address": {
        "description": "The address of the Network Server where this device is supposed to be registered.\nStored in Entity Registry and Join Server.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
        "type": "string"
      },
      "network_server_kek_label": {
        "description": "The KEK label of the Network Server to use for wrapping network session keys.\nStored in Join Server.",
        "type": "string"
      },
      "pending_mac_state": {
        "description": "MACState represents the state of MAC layer of the device.\nMACState is reset on each join for OTAA or ResetInd for ABP devices.\nThis is used internally by the Network Server.",
        "properties": {
          "current_parameters": {
            "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
            "properties": {
              "adr_ack_delay": {
                "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                "format": "int64",
                "type": "integer"
              },
              "adr_ack_delay_exponent": {
                "properties": {
                  "value": {
                    "default": "ADR_ACK_DELAY_1",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "adr_ack_limit": {
                "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                "format": "int64",
                "type": "integer"
              },
              "adr_ack_limit_exponent": {
                "properties": {
                  "value": {
                    "default": "ADR_ACK_LIMIT_1",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "adr_data_rate_index": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              },
              "adr_nb_trans": {
                "description": "ADR: number of retransmissions.",
                "format": "int64",
                "type": "integer"
              },
              "adr_tx_power_index": {
                "description": "ADR: transmission power index to use.",
                "format": "int64",
                "type": "integer"
              },
              "beacon_frequency": {
                "description": "Frequency of the class B beacon (Hz).",
                "format": "uint64",
                "type": "string"
              },
              "channels": {
                "description": "Configured uplink channels and optionally Rx1 frequency.",
                "items": {
                  "properties": {
                    "downlink_frequency": {
                      "description": "Downlink frequency of the channel (Hz).",
                      "format": "uint64",
                      "type": "string"
                    },
                    "enable_uplink": {
                      "description": "Channel can be used by device for uplink.",
                      "type": "boolean"
                    },
                    "max_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "min_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "uplink_frequency": {
                      "description": "Uplink frequency of the channel (Hz).",
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "downlink_dwell_time": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "max_duty_cycle": {
                "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%.",
                "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"
                ],
                "type": "string"
              },
              "max_eirp": {
                "description": "Maximum EIRP (dBm).",
                "format": "float",
                "type": "number"
              },
              "ping_slot_data_rate_index": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              },
              "ping_slot_data_rate_index_value": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "ping_slot_frequency": {
                "description": "Frequency of the class B ping slot (Hz).",
                "format": "uint64",
                "type": "string"
              },
              "rejoin_count_periodicity": {
                "default": "REJOIN_COUNT_16",
                "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"
                ],
                "type": "string"
              },
              "rejoin_time_periodicity": {
                "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.",
                "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"
                ],
                "type": "string"
              },
              "relay": {
                "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                "properties": {
                  "served": {
                    "properties": {
                      "always": {
                        "type": "object"
                      },
                      "backoff": {
                        "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "dynamic": {
                        "properties": {
                          "smart_enable_level": {
                            "default": "RELAY_SMART_ENABLE_LEVEL_8",
                            "enum": [
                              "RELAY_SMART_ENABLE_LEVEL_8",
                              "RELAY_SMART_ENABLE_LEVEL_16",
                              "RELAY_SMART_ENABLE_LEVEL_32",
                              "RELAY_SMART_ENABLE_LEVEL_64"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "end_device_controlled": {
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving_device_id": {
                        "description": "End device identifier of the serving end device.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "serving": {
                    "properties": {
                      "cad_periodicity": {
                        "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                        "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"
                        ],
                        "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                        "type": "string"
                      },
                      "default_channel_index": {
                        "description": "Index of the default wake on radio channel.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "limits": {
                        "properties": {
                          "join_requests": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "notifications": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "overall": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "reset_behavior": {
                            "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "enum": [
                              "RELAY_RESET_LIMIT_COUNTER_ZERO",
                              "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                              "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                              "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                            ],
                            "type": "string"
                          },
                          "uplink_messages": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "uplink_forwarding_rules": {
                        "description": "Configured uplink forwarding rules.",
                        "items": {
                          "properties": {
                            "device_id": {
                              "description": "End device identifier of the served end device.",
                              "type": "string"
                            },
                            "last_w_f_cnt": {
                              "description": "Last wake on radio frame counter used by the served end device.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "limits": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "session_key_id": {
                              "description": "Session key ID of the session keys used to derive the root relay session key.",
                              "format": "byte",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "rx1_data_rate_offset": {
                "default": "DATA_RATE_OFFSET_0",
                "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"
                ],
                "type": "string"
              },
              "rx1_delay": {
                "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.",
                "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"
                ],
                "type": "string"
              },
              "rx2_data_rate_index": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              },
              "rx2_frequency": {
                "description": "Frequency for Rx2 (Hz).",
                "format": "uint64",
                "type": "string"
              },
              "uplink_dwell_time": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "desired_parameters": {
            "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
            "properties": {
              "adr_ack_delay": {
                "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                "format": "int64",
                "type": "integer"
              },
              "adr_ack_delay_exponent": {
                "properties": {
                  "value": {
                    "default": "ADR_ACK_DELAY_1",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "adr_ack_limit": {
                "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                "format": "int64",
                "type": "integer"
              },
              "adr_ack_limit_exponent": {
                "properties": {
                  "value": {
                    "default": "ADR_ACK_LIMIT_1",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "adr_data_rate_index": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              },
              "adr_nb_trans": {
                "description": "ADR: number of retransmissions.",
                "format": "int64",
                "type": "integer"
              },
              "adr_tx_power_index": {
                "description": "ADR: transmission power index to use.",
                "format": "int64",
                "type": "integer"
              },
              "beacon_frequency": {
                "description": "Frequency of the class B beacon (Hz).",
                "format": "uint64",
                "type": "string"
              },
              "channels": {
                "description": "Configured uplink channels and optionally Rx1 frequency.",
                "items": {
                  "properties": {
                    "downlink_frequency": {
                      "description": "Downlink frequency of the channel (Hz).",
                      "format": "uint64",
                      "type": "string"
                    },
                    "enable_uplink": {
                      "description": "Channel can be used by device for uplink.",
                      "type": "boolean"
                    },
                    "max_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "min_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "uplink_frequency": {
                      "description": "Uplink frequency of the channel (Hz).",
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "downlink_dwell_time": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "max_duty_cycle": {
                "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%.",
                "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"
                ],
                "type": "string"
              },
              "max_eirp": {
                "description": "Maximum EIRP (dBm).",
                "format": "float",
                "type": "number"
              },
              "ping_slot_data_rate_index": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              },
              "ping_slot_data_rate_index_value": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "ping_slot_frequency": {
                "description": "Frequency of the class B ping slot (Hz).",
                "format": "uint64",
                "type": "string"
              },
              "rejoin_count_periodicity": {
                "default": "REJOIN_COUNT_16",
                "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"
                ],
                "type": "string"
              },
              "rejoin_time_periodicity": {
                "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.",
                "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"
                ],
                "type": "string"
              },
              "relay": {
                "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                "properties": {
                  "served": {
                    "properties": {
                      "always": {
                        "type": "object"
                      },
                      "backoff": {
                        "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "dynamic": {
                        "properties": {
                          "smart_enable_level": {
                            "default": "RELAY_SMART_ENABLE_LEVEL_8",
                            "enum": [
                              "RELAY_SMART_ENABLE_LEVEL_8",
                              "RELAY_SMART_ENABLE_LEVEL_16",
                              "RELAY_SMART_ENABLE_LEVEL_32",
                              "RELAY_SMART_ENABLE_LEVEL_64"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "end_device_controlled": {
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving_device_id": {
                        "description": "End device identifier of the serving end device.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "serving": {
                    "properties": {
                      "cad_periodicity": {
                        "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                        "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"
                        ],
                        "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                        "type": "string"
                      },
                      "default_channel_index": {
                        "description": "Index of the default wake on radio channel.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "limits": {
                        "properties": {
                          "join_requests": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "notifications": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "overall": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "reset_behavior": {
                            "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "enum": [
                              "RELAY_RESET_LIMIT_COUNTER_ZERO",
                              "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                              "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                              "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                            ],
                            "type": "string"
                          },
                          "uplink_messages": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "uplink_forwarding_rules": {
                        "description": "Configured uplink forwarding rules.",
                        "items": {
                          "properties": {
                            "device_id": {
                              "description": "End device identifier of the served end device.",
                              "type": "string"
                            },
                            "last_w_f_cnt": {
                              "description": "Last wake on radio frame counter used by the served end device.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "limits": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "session_key_id": {
                              "description": "Session key ID of the session keys used to derive the root relay session key.",
                              "format": "byte",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "rx1_data_rate_offset": {
                "default": "DATA_RATE_OFFSET_0",
                "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"
                ],
                "type": "string"
              },
              "rx1_delay": {
                "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.",
                "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"
                ],
                "type": "string"
              },
              "rx2_data_rate_index": {
                "default": "DATA_RATE_0",
                "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"
                ],
                "type": "string"
              },
              "rx2_frequency": {
                "description": "Frequency for Rx2 (Hz).",
                "format": "uint64",
                "type": "string"
              },
              "uplink_dwell_time": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "device_class": {
            "default": "CLASS_A",
            "enum": [
              "CLASS_A",
              "CLASS_B",
              "CLASS_C"
            ],
            "type": "string"
          },
          "last_adr_change_f_cnt_up": {
            "description": "Frame counter of uplink, which confirmed the last ADR parameter change.",
            "format": "int64",
            "type": "integer"
          },
          "last_confirmed_downlink_at": {
            "description": "Time when the last confirmed downlink message or MAC command was scheduled.",
            "format": "date-time",
            "type": "string"
          },
          "last_dev_status_f_cnt_up": {
            "description": "Frame counter value of last uplink containing DevStatusAns.",
            "format": "int64",
            "type": "integer"
          },
          "last_downlink_at": {
            "description": "Time when the last downlink message was scheduled.",
            "format": "date-time",
            "type": "string"
          },
          "last_network_initiated_downlink_at": {
            "description": "Time when the last network-initiated downlink message was scheduled.",
            "format": "date-time",
            "type": "string"
          },
          "lorawan_version": {
            "default": "MAC_UNKNOWN",
            "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"
            ],
            "type": "string"
          },
          "pending_application_downlink": {
            "properties": {
              "attributes": {
                "additionalProperties": {
                  "type": "string"
                },
                "description": "Attributes for devices, set by the Application Server while handling the message.",
                "type": "object"
              },
              "class_b_c": {
                "properties": {
                  "absolute_time": {
                    "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                    "format": "date-time",
                    "type": "string"
                  },
                  "gateways": {
                    "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                    "items": {
                      "properties": {
                        "antenna_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "gateway_ids": {
                          "properties": {
                            "eui": {
                              "description": "Secondary identifier, which can only be used in specific requests.",
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "gateway_id": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "group_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  }
                },
                "type": "object"
              },
              "confirmed": {
                "type": "boolean"
              },
              "confirmed_retry": {
                "properties": {
                  "attempt": {
                    "description": "The number of attempted confirmed downlink acknowledgements.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "max_attempts": {
                    "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                    "format": "int64",
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "correlation_ids": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "decoded_payload": {
                "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                "type": "object"
              },
              "decoded_payload_warnings": {
                "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "f_cnt": {
                "format": "int64",
                "type": "integer"
              },
              "f_port": {
                "format": "int64",
                "type": "integer"
              },
              "frm_payload": {
                "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                "format": "byte",
                "type": "string"
              },
              "locations": {
                "additionalProperties": {
                  "properties": {
                    "accuracy": {
                      "description": "The accuracy of the location (meters).",
                      "format": "int32",
                      "type": "integer"
                    },
                    "altitude": {
                      "description": "The altitude (meters), where 0 is the mean sea level.",
                      "format": "int32",
                      "type": "integer"
                    },
                    "latitude": {
                      "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                      "format": "double",
                      "type": "number"
                    },
                    "longitude": {
                      "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                      "format": "double",
                      "type": "number"
                    },
                    "source": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "description": "End device location metadata, set by the Application Server while handling the message.",
                "type": "object"
              },
              "network_ids": {
                "description": "Identifies a Network Server.",
                "properties": {
                  "cluster_address": {
                    "description": "Cluster address of the Network Server.",
                    "type": "string"
                  },
                  "cluster_id": {
                    "description": "Cluster identifier of the Network Server.",
                    "type": "string"
                  },
                  "net_id": {
                    "description": "LoRa Alliance NetID.",
                    "example": "000013",
                    "format": "string",
                    "type": "string"
                  },
                  "ns_id": {
                    "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                    "example": "70B3D57ED000ABCD",
                    "format": "string",
                    "type": "string"
                  },
                  "tenant_address": {
                    "description": "Optional tenant address for multi-tenant deployments.",
                    "type": "string"
                  },
                  "tenant_id": {
                    "description": "Optional tenant identifier for multi-tenant deployments.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "priority": {
                "default": "LOWEST",
                "enum": [
                  "LOWEST",
                  "LOW",
                  "BELOW_NORMAL",
                  "NORMAL",
                  "ABOVE_NORMAL",
                  "HIGH",
                  "HIGHEST"
                ],
                "type": "string"
              },
              "session_key_id": {
                "description": "Join Server issued identifier for the session keys used by this downlink.",
                "format": "byte",
                "type": "string"
              },
              "version_ids": {
                "description": "Identifies an end device model with version information.",
                "properties": {
                  "band_id": {
                    "type": "string"
                  },
                  "brand_id": {
                    "type": "string"
                  },
                  "firmware_version": {
                    "type": "string"
                  },
                  "hardware_version": {
                    "type": "string"
                  },
                  "model_id": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "pending_join_request": {
            "properties": {
              "cf_list": {
                "properties": {
                  "ch_masks": {
                    "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                    "items": {
                      "type": "boolean"
                    },
                    "type": "array"
                  },
                  "freq": {
                    "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                    "items": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "type": "array"
                  },
                  "type": {
                    "default": "FREQUENCIES",
                    "enum": [
                      "FREQUENCIES",
                      "CHANNEL_MASKS"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "downlink_settings": {
                "properties": {
                  "opt_neg": {
                    "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                    "type": "boolean"
                  },
                  "rx1_dr_offset": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_dr": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "rx_delay": {
                "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.",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "pending_relay_downlink": {
            "properties": {
              "raw_payload": {
                "format": "byte",
                "type": "string"
              }
            },
            "type": "object"
          },
          "pending_requests": {
            "description": "Pending MAC requests(i.e. sent requests, for which no response has been received yet).\nRegenerated on each downlink.",
            "items": {
              "properties": {
                "adr_param_setup_req": {
                  "properties": {
                    "adr_ack_delay_exponent": {
                      "default": "ADR_ACK_DELAY_1",
                      "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"
                      ],
                      "type": "string"
                    },
                    "adr_ack_limit_exponent": {
                      "default": "ADR_ACK_LIMIT_1",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "beacon_freq_ans": {
                  "properties": {
                    "frequency_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "beacon_freq_req": {
                  "properties": {
                    "frequency": {
                      "description": "Frequency of the Class B beacons (Hz).",
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "beacon_timing_ans": {
                  "properties": {
                    "channel_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "delay": {
                      "description": "(uint16) See LoRaWAN specification.",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "cid": {
                  "default": "CID_RFU_0",
                  "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"
                  ],
                  "title": "- CID_BEACON_TIMING: Deprecated",
                  "type": "string"
                },
                "dev_status_ans": {
                  "properties": {
                    "battery": {
                      "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "margin": {
                      "description": "SNR of the last downlink (dB; [-32, +31]).",
                      "format": "int32",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "device_mode_conf": {
                  "properties": {
                    "class": {
                      "default": "CLASS_A",
                      "enum": [
                        "CLASS_A",
                        "CLASS_B",
                        "CLASS_C"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "device_mode_ind": {
                  "properties": {
                    "class": {
                      "default": "CLASS_A",
                      "enum": [
                        "CLASS_A",
                        "CLASS_B",
                        "CLASS_C"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "device_time_ans": {
                  "properties": {
                    "time": {
                      "format": "date-time",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "dl_channel_ans": {
                  "properties": {
                    "channel_index_ack": {
                      "type": "boolean"
                    },
                    "frequency_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "dl_channel_req": {
                  "properties": {
                    "channel_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "frequency": {
                      "description": "Downlink channel frequency (Hz).",
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "duty_cycle_req": {
                  "properties": {
                    "max_duty_cycle": {
                      "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%.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "force_rejoin_req": {
                  "properties": {
                    "data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "max_retries": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "period_exponent": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rejoin_type": {
                      "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.",
                      "enum": [
                        "CONTEXT",
                        "SESSION",
                        "KEYS"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "link_adr_ans": {
                  "properties": {
                    "channel_mask_ack": {
                      "type": "boolean"
                    },
                    "data_rate_index_ack": {
                      "type": "boolean"
                    },
                    "tx_power_index_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "link_adr_req": {
                  "properties": {
                    "channel_mask": {
                      "items": {
                        "type": "boolean"
                      },
                      "type": "array"
                    },
                    "channel_mask_control": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "nb_trans": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "tx_power_index": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "link_check_ans": {
                  "properties": {
                    "gateway_count": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "margin": {
                      "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "new_channel_ans": {
                  "properties": {
                    "data_rate_ack": {
                      "type": "boolean"
                    },
                    "frequency_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "new_channel_req": {
                  "properties": {
                    "channel_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "frequency": {
                      "description": "Channel frequency (Hz).",
                      "format": "uint64",
                      "type": "string"
                    },
                    "max_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "min_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "ping_slot_channel_ans": {
                  "properties": {
                    "data_rate_index_ack": {
                      "type": "boolean"
                    },
                    "frequency_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "ping_slot_channel_req": {
                  "properties": {
                    "data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "frequency": {
                      "description": "Ping slot channel frequency (Hz).",
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "ping_slot_info_req": {
                  "properties": {
                    "period": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "raw_payload": {
                  "format": "byte",
                  "type": "string"
                },
                "rejoin_param_setup_ans": {
                  "properties": {
                    "max_time_exponent_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "rejoin_param_setup_req": {
                  "properties": {
                    "max_count_exponent": {
                      "default": "REJOIN_COUNT_16",
                      "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"
                      ],
                      "type": "string"
                    },
                    "max_time_exponent": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rekey_conf": {
                  "properties": {
                    "minor_version": {
                      "default": "MINOR_RFU_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rekey_ind": {
                  "properties": {
                    "minor_version": {
                      "default": "MINOR_RFU_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "relay_conf_ans": {
                  "properties": {
                    "cad_periodicity_ack": {
                      "type": "boolean"
                    },
                    "default_channel_index_ack": {
                      "type": "boolean"
                    },
                    "second_channel_ack_offset_ack": {
                      "type": "boolean"
                    },
                    "second_channel_data_rate_index_ack": {
                      "type": "boolean"
                    },
                    "second_channel_frequency_ack": {
                      "type": "boolean"
                    },
                    "second_channel_index_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "relay_conf_req": {
                  "properties": {
                    "configuration": {
                      "properties": {
                        "cad_periodicity": {
                          "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                          "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"
                          ],
                          "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                          "type": "string"
                        },
                        "default_channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "second_channel": {
                          "properties": {
                            "ack_offset": {
                              "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                              "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"
                              ],
                              "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",
                              "type": "string"
                            },
                            "data_rate_index": {
                              "default": "DATA_RATE_0",
                              "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"
                              ],
                              "type": "string"
                            },
                            "frequency": {
                              "description": "The frequency (Hz) used by the wake on radio message.",
                              "format": "uint64",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "relay_configure_fwd_limit_ans": {
                  "type": "object"
                },
                "relay_configure_fwd_limit_req": {
                  "properties": {
                    "global_uplink_limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "join_request_limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "notify_limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "overall_limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "reset_limit_counter": {
                      "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                      "enum": [
                        "RELAY_RESET_LIMIT_COUNTER_ZERO",
                        "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                        "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                        "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "relay_ctrl_uplink_list_ans": {
                  "properties": {
                    "rule_index_ack": {
                      "type": "boolean"
                    },
                    "w_f_cnt": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "relay_ctrl_uplink_list_req": {
                  "properties": {
                    "action": {
                      "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                      "enum": [
                        "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                        "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                      ],
                      "type": "string"
                    },
                    "rule_index": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "relay_end_device_conf_ans": {
                  "properties": {
                    "backoff_ack": {
                      "type": "boolean"
                    },
                    "second_channel_data_rate_index_ack": {
                      "type": "boolean"
                    },
                    "second_channel_frequency_ack": {
                      "type": "boolean"
                    },
                    "second_channel_index_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "relay_end_device_conf_req": {
                  "properties": {
                    "configuration": {
                      "properties": {
                        "always": {
                          "type": "object"
                        },
                        "backoff": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "dynamic": {
                          "properties": {
                            "smart_enable_level": {
                              "default": "RELAY_SMART_ENABLE_LEVEL_8",
                              "enum": [
                                "RELAY_SMART_ENABLE_LEVEL_8",
                                "RELAY_SMART_ENABLE_LEVEL_16",
                                "RELAY_SMART_ENABLE_LEVEL_32",
                                "RELAY_SMART_ENABLE_LEVEL_64"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "end_device_controlled": {
                          "type": "object"
                        },
                        "second_channel": {
                          "properties": {
                            "ack_offset": {
                              "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                              "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"
                              ],
                              "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",
                              "type": "string"
                            },
                            "data_rate_index": {
                              "default": "DATA_RATE_0",
                              "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"
                              ],
                              "type": "string"
                            },
                            "frequency": {
                              "description": "The frequency (Hz) used by the wake on radio message.",
                              "format": "uint64",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "serving_device_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "relay_notify_new_end_device_req": {
                  "properties": {
                    "dev_addr": {
                      "example": "2600ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "rssi": {
                      "format": "int32",
                      "type": "integer"
                    },
                    "snr": {
                      "format": "int32",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "relay_update_uplink_list_ans": {
                  "type": "object"
                },
                "relay_update_uplink_list_req": {
                  "properties": {
                    "dev_addr": {
                      "example": "2600ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "device_id": {
                      "type": "string"
                    },
                    "forward_limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "root_wor_s_key": {
                      "example": "0123456789ABCDEF0123456789ABCDEF",
                      "format": "string",
                      "type": "string"
                    },
                    "rule_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "session_key_id": {
                      "format": "byte",
                      "type": "string"
                    },
                    "w_f_cnt": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "reset_conf": {
                  "properties": {
                    "minor_version": {
                      "default": "MINOR_RFU_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "reset_ind": {
                  "properties": {
                    "minor_version": {
                      "default": "MINOR_RFU_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rx_param_setup_ans": {
                  "properties": {
                    "rx1_data_rate_offset_ack": {
                      "type": "boolean"
                    },
                    "rx2_data_rate_index_ack": {
                      "type": "boolean"
                    },
                    "rx2_frequency_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "rx_param_setup_req": {
                  "properties": {
                    "rx1_data_rate_offset": {
                      "default": "DATA_RATE_OFFSET_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rx2_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rx2_frequency": {
                      "description": "Rx2 frequency (Hz).",
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rx_timing_setup_req": {
                  "properties": {
                    "delay": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "tx_param_setup_req": {
                  "properties": {
                    "downlink_dwell_time": {
                      "type": "boolean"
                    },
                    "max_eirp_index": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    },
                    "uplink_dwell_time": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "ping_slot_periodicity": {
            "properties": {
              "value": {
                "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.",
                "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"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "queued_join_accept": {
            "properties": {
              "correlation_ids": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "dev_addr": {
                "example": "2600ABCD",
                "format": "string",
                "type": "string"
              },
              "keys": {
                "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
                "properties": {
                  "app_s_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "f_nwk_s_int_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "nwk_s_enc_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "s_nwk_s_int_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "session_key_id": {
                    "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                    "format": "byte",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "net_id": {
                "example": "000013",
                "format": "string",
                "type": "string"
              },
              "payload": {
                "description": "Payload of the join-accept received from Join Server.",
                "format": "byte",
                "type": "string"
              },
              "request": {
                "properties": {
                  "cf_list": {
                    "properties": {
                      "ch_masks": {
                        "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                        "items": {
                          "type": "boolean"
                        },
                        "type": "array"
                      },
                      "freq": {
                        "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                        "items": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "type": "array"
                      },
                      "type": {
                        "default": "FREQUENCIES",
                        "enum": [
                          "FREQUENCIES",
                          "CHANNEL_MASKS"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "downlink_settings": {
                    "properties": {
                      "opt_neg": {
                        "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                        "type": "boolean"
                      },
                      "rx1_dr_offset": {
                        "default": "DATA_RATE_OFFSET_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "rx2_dr": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "rx_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "queued_responses": {
            "description": "Queued MAC responses.\nRegenerated on each uplink.",
            "items": {
              "properties": {
                "adr_param_setup_req": {
                  "properties": {
                    "adr_ack_delay_exponent": {
                      "default": "ADR_ACK_DELAY_1",
                      "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"
                      ],
                      "type": "string"
                    },
                    "adr_ack_limit_exponent": {
                      "default": "ADR_ACK_LIMIT_1",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "beacon_freq_ans": {
                  "properties": {
                    "frequency_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "beacon_freq_req": {
                  "properties": {
                    "frequency": {
                      "description": "Frequency of the Class B beacons (Hz).",
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "beacon_timing_ans": {
                  "properties": {
                    "channel_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "delay": {
                      "description": "(uint16) See LoRaWAN specification.",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "cid": {
                  "default": "CID_RFU_0",
                  "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"
                  ],
                  "title": "- CID_BEACON_TIMING: Deprecated",
                  "type": "string"
                },
                "dev_status_ans": {
                  "properties": {
                    "battery": {
                      "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "margin": {
                      "description": "SNR of the last downlink (dB; [-32, +31]).",
                      "format": "int32",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "device_mode_conf": {
                  "properties": {
                    "class": {
                      "default": "CLASS_A",
                      "enum": [
                        "CLASS_A",
                        "CLASS_B",
                        "CLASS_C"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "device_mode_ind": {
                  "properties": {
                    "class": {
                      "default": "CLASS_A",
                      "enum": [
                        "CLASS_A",
                        "CLASS_B",
                        "CLASS_C"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "device_time_ans": {
                  "properties": {
                    "time": {
                      "format": "date-time",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "dl_channel_ans": {
                  "properties": {
                    "channel_index_ack": {
                      "type": "boolean"
                    },
                    "frequency_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "dl_channel_req": {
                  "properties": {
                    "channel_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "frequency": {
                      "description": "Downlink channel frequency (Hz).",
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "duty_cycle_req": {
                  "properties": {
                    "max_duty_cycle": {
                      "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%.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "force_rejoin_req": {
                  "properties": {
                    "data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "max_retries": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "period_exponent": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rejoin_type": {
                      "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.",
                      "enum": [
                        "CONTEXT",
                        "SESSION",
                        "KEYS"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "link_adr_ans": {
                  "properties": {
                    "channel_mask_ack": {
                      "type": "boolean"
                    },
                    "data_rate_index_ack": {
                      "type": "boolean"
                    },
                    "tx_power_index_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "link_adr_req": {
                  "properties": {
                    "channel_mask": {
                      "items": {
                        "type": "boolean"
                      },
                      "type": "array"
                    },
                    "channel_mask_control": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "nb_trans": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "tx_power_index": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "link_check_ans": {
                  "properties": {
                    "gateway_count": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "margin": {
                      "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "new_channel_ans": {
                  "properties": {
                    "data_rate_ack": {
                      "type": "boolean"
                    },
                    "frequency_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "new_channel_req": {
                  "properties": {
                    "channel_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "frequency": {
                      "description": "Channel frequency (Hz).",
                      "format": "uint64",
                      "type": "string"
                    },
                    "max_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "min_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "ping_slot_channel_ans": {
                  "properties": {
                    "data_rate_index_ack": {
                      "type": "boolean"
                    },
                    "frequency_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "ping_slot_channel_req": {
                  "properties": {
                    "data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "frequency": {
                      "description": "Ping slot channel frequency (Hz).",
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "ping_slot_info_req": {
                  "properties": {
                    "period": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "raw_payload": {
                  "format": "byte",
                  "type": "string"
                },
                "rejoin_param_setup_ans": {
                  "properties": {
                    "max_time_exponent_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "rejoin_param_setup_req": {
                  "properties": {
                    "max_count_exponent": {
                      "default": "REJOIN_COUNT_16",
                      "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"
                      ],
                      "type": "string"
                    },
                    "max_time_exponent": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rekey_conf": {
                  "properties": {
                    "minor_version": {
                      "default": "MINOR_RFU_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rekey_ind": {
                  "properties": {
                    "minor_version": {
                      "default": "MINOR_RFU_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "relay_conf_ans": {
                  "properties": {
                    "cad_periodicity_ack": {
                      "type": "boolean"
                    },
                    "default_channel_index_ack": {
                      "type": "boolean"
                    },
                    "second_channel_ack_offset_ack": {
                      "type": "boolean"
                    },
                    "second_channel_data_rate_index_ack": {
                      "type": "boolean"
                    },
                    "second_channel_frequency_ack": {
                      "type": "boolean"
                    },
                    "second_channel_index_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "relay_conf_req": {
                  "properties": {
                    "configuration": {
                      "properties": {
                        "cad_periodicity": {
                          "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                          "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"
                          ],
                          "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                          "type": "string"
                        },
                        "default_channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "second_channel": {
                          "properties": {
                            "ack_offset": {
                              "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                              "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"
                              ],
                              "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",
                              "type": "string"
                            },
                            "data_rate_index": {
                              "default": "DATA_RATE_0",
                              "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"
                              ],
                              "type": "string"
                            },
                            "frequency": {
                              "description": "The frequency (Hz) used by the wake on radio message.",
                              "format": "uint64",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "relay_configure_fwd_limit_ans": {
                  "type": "object"
                },
                "relay_configure_fwd_limit_req": {
                  "properties": {
                    "global_uplink_limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "join_request_limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "notify_limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "overall_limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "reset_limit_counter": {
                      "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                      "enum": [
                        "RELAY_RESET_LIMIT_COUNTER_ZERO",
                        "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                        "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                        "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "relay_ctrl_uplink_list_ans": {
                  "properties": {
                    "rule_index_ack": {
                      "type": "boolean"
                    },
                    "w_f_cnt": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "relay_ctrl_uplink_list_req": {
                  "properties": {
                    "action": {
                      "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                      "enum": [
                        "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                        "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                      ],
                      "type": "string"
                    },
                    "rule_index": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "relay_end_device_conf_ans": {
                  "properties": {
                    "backoff_ack": {
                      "type": "boolean"
                    },
                    "second_channel_data_rate_index_ack": {
                      "type": "boolean"
                    },
                    "second_channel_frequency_ack": {
                      "type": "boolean"
                    },
                    "second_channel_index_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "relay_end_device_conf_req": {
                  "properties": {
                    "configuration": {
                      "properties": {
                        "always": {
                          "type": "object"
                        },
                        "backoff": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "dynamic": {
                          "properties": {
                            "smart_enable_level": {
                              "default": "RELAY_SMART_ENABLE_LEVEL_8",
                              "enum": [
                                "RELAY_SMART_ENABLE_LEVEL_8",
                                "RELAY_SMART_ENABLE_LEVEL_16",
                                "RELAY_SMART_ENABLE_LEVEL_32",
                                "RELAY_SMART_ENABLE_LEVEL_64"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "end_device_controlled": {
                          "type": "object"
                        },
                        "second_channel": {
                          "properties": {
                            "ack_offset": {
                              "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                              "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"
                              ],
                              "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",
                              "type": "string"
                            },
                            "data_rate_index": {
                              "default": "DATA_RATE_0",
                              "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"
                              ],
                              "type": "string"
                            },
                            "frequency": {
                              "description": "The frequency (Hz) used by the wake on radio message.",
                              "format": "uint64",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "serving_device_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "relay_notify_new_end_device_req": {
                  "properties": {
                    "dev_addr": {
                      "example": "2600ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "rssi": {
                      "format": "int32",
                      "type": "integer"
                    },
                    "snr": {
                      "format": "int32",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "relay_update_uplink_list_ans": {
                  "type": "object"
                },
                "relay_update_uplink_list_req": {
                  "properties": {
                    "dev_addr": {
                      "example": "2600ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "device_id": {
                      "type": "string"
                    },
                    "forward_limits": {
                      "properties": {
                        "bucket_size": {
                          "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                          "enum": [
                            "RELAY_LIMIT_BUCKET_SIZE_1",
                            "RELAY_LIMIT_BUCKET_SIZE_2",
                            "RELAY_LIMIT_BUCKET_SIZE_4",
                            "RELAY_LIMIT_BUCKET_SIZE_12"
                          ],
                          "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                          "type": "string"
                        },
                        "reload_rate": {
                          "description": "The number of tokens which are replenished in the bucket every hour.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "root_wor_s_key": {
                      "example": "0123456789ABCDEF0123456789ABCDEF",
                      "format": "string",
                      "type": "string"
                    },
                    "rule_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "session_key_id": {
                      "format": "byte",
                      "type": "string"
                    },
                    "w_f_cnt": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "reset_conf": {
                  "properties": {
                    "minor_version": {
                      "default": "MINOR_RFU_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "reset_ind": {
                  "properties": {
                    "minor_version": {
                      "default": "MINOR_RFU_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rx_param_setup_ans": {
                  "properties": {
                    "rx1_data_rate_offset_ack": {
                      "type": "boolean"
                    },
                    "rx2_data_rate_index_ack": {
                      "type": "boolean"
                    },
                    "rx2_frequency_ack": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "rx_param_setup_req": {
                  "properties": {
                    "rx1_data_rate_offset": {
                      "default": "DATA_RATE_OFFSET_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rx2_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rx2_frequency": {
                      "description": "Rx2 frequency (Hz).",
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rx_timing_setup_req": {
                  "properties": {
                    "delay": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "tx_param_setup_req": {
                  "properties": {
                    "downlink_dwell_time": {
                      "type": "boolean"
                    },
                    "max_eirp_index": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    },
                    "uplink_dwell_time": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "recent_downlinks": {
            "description": "Recent data downlink messages sorted by time.\nThe number of messages stored may depend on configuration.",
            "items": {
              "description": "A minimal DownlinkMessage definition which is binary compatible with the top level DownlinkMessage message.\nUsed for type safe recent downlink storage.",
              "properties": {
                "correlation_ids": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "payload": {
                  "properties": {
                    "m_hdr": {
                      "properties": {
                        "m_type": {
                          "default": "JOIN_REQUEST",
                          "enum": [
                            "JOIN_REQUEST",
                            "JOIN_ACCEPT",
                            "UNCONFIRMED_UP",
                            "UNCONFIRMED_DOWN",
                            "CONFIRMED_UP",
                            "CONFIRMED_DOWN",
                            "REJOIN_REQUEST",
                            "PROPRIETARY"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "mac_payload": {
                      "properties": {
                        "f_port": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "full_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "recent_mac_command_identifiers": {
            "description": "MAC command identifiers sent by the end device in the last received uplink.\nThe Network Server may choose to store only certain types of MAC\ncommand identifiers in the underlying implementation.",
            "items": {
              "default": "CID_RFU_0",
              "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"
              ],
              "title": "- CID_BEACON_TIMING: Deprecated",
              "type": "string"
            },
            "type": "array"
          },
          "recent_uplinks": {
            "description": "Recent data uplink messages sorted by time.\nThe number of messages stored may depend on configuration.",
            "items": {
              "description": "A minimal UplinkMessage definition which is binary compatible with the top level UplinkMessage message.\nUsed for type safe recent uplink storage.",
              "properties": {
                "correlation_ids": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "device_channel_index": {
                  "format": "int64",
                  "type": "integer"
                },
                "payload": {
                  "properties": {
                    "join_accept_payload": {
                      "properties": {
                        "cf_list": {
                          "properties": {
                            "ch_masks": {
                              "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                              "items": {
                                "type": "boolean"
                              },
                              "type": "array"
                            },
                            "freq": {
                              "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                              "items": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "type": "array"
                            },
                            "type": {
                              "default": "FREQUENCIES",
                              "enum": [
                                "FREQUENCIES",
                                "CHANNEL_MASKS"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "dl_settings": {
                          "properties": {
                            "opt_neg": {
                              "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                              "type": "boolean"
                            },
                            "rx1_dr_offset": {
                              "default": "DATA_RATE_OFFSET_0",
                              "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"
                              ],
                              "type": "string"
                            },
                            "rx2_dr": {
                              "default": "DATA_RATE_0",
                              "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"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "encrypted": {
                          "format": "byte",
                          "type": "string"
                        },
                        "join_nonce": {
                          "example": "ABCDEF",
                          "format": "string",
                          "type": "string"
                        },
                        "net_id": {
                          "example": "000013",
                          "format": "string",
                          "type": "string"
                        },
                        "rx_delay": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "join_request_payload": {
                      "properties": {
                        "dev_eui": {
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "dev_nonce": {
                          "example": "ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "join_eui": {
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "m_hdr": {
                      "properties": {
                        "m_type": {
                          "default": "JOIN_REQUEST",
                          "enum": [
                            "JOIN_REQUEST",
                            "JOIN_ACCEPT",
                            "UNCONFIRMED_UP",
                            "UNCONFIRMED_DOWN",
                            "CONFIRMED_UP",
                            "CONFIRMED_DOWN",
                            "REJOIN_REQUEST",
                            "PROPRIETARY"
                          ],
                          "type": "string"
                        },
                        "major": {
                          "default": "LORAWAN_R1",
                          "enum": [
                            "LORAWAN_R1"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "mac_payload": {
                      "properties": {
                        "decoded_payload": {
                          "type": "object"
                        },
                        "f_hdr": {
                          "properties": {
                            "dev_addr": {
                              "example": "2600ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "f_cnt": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "f_ctrl": {
                              "properties": {
                                "ack": {
                                  "type": "boolean"
                                },
                                "adr": {
                                  "type": "boolean"
                                },
                                "adr_ack_req": {
                                  "description": "Only on uplink.",
                                  "type": "boolean"
                                },
                                "class_b": {
                                  "description": "Only on uplink.",
                                  "type": "boolean"
                                },
                                "f_pending": {
                                  "description": "Only on downlink.",
                                  "type": "boolean"
                                }
                              },
                              "type": "object"
                            },
                            "f_opts": {
                              "format": "byte",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "f_port": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frm_payload": {
                          "format": "byte",
                          "type": "string"
                        },
                        "full_f_cnt": {
                          "description": "Full 32-bit FCnt value. Used internally by Network Server.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "mic": {
                      "format": "byte",
                      "type": "string"
                    },
                    "rejoin_request_payload": {
                      "properties": {
                        "dev_eui": {
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "join_eui": {
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "net_id": {
                          "example": "000013",
                          "format": "string",
                          "type": "string"
                        },
                        "rejoin_cnt": {
                          "description": "Contains RJCount0 or RJCount1 depending on rejoin_type.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "rejoin_type": {
                          "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.",
                          "enum": [
                            "CONTEXT",
                            "SESSION",
                            "KEYS"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "title": "Message represents a LoRaWAN message",
                  "type": "object"
                },
                "received_at": {
                  "format": "date-time",
                  "type": "string"
                },
                "rx_metadata": {
                  "items": {
                    "properties": {
                      "channel_rssi": {
                        "format": "float",
                        "type": "number"
                      },
                      "downlink_path_constraint": {
                        "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.",
                        "enum": [
                          "DOWNLINK_PATH_CONSTRAINT_NONE",
                          "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
                          "DOWNLINK_PATH_CONSTRAINT_NEVER"
                        ],
                        "type": "string"
                      },
                      "gateway_ids": {
                        "properties": {
                          "eui": {
                            "description": "Secondary identifier, which can only be used in specific requests.",
                            "example": "70B3D57ED000ABCD",
                            "format": "string",
                            "type": "string"
                          },
                          "gateway_id": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "packet_broker": {
                        "type": "object"
                      },
                      "relay": {
                        "type": "object"
                      },
                      "snr": {
                        "format": "float",
                        "type": "number"
                      },
                      "uplink_token": {
                        "format": "byte",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "settings": {
                  "properties": {
                    "data_rate": {
                      "properties": {
                        "fsk": {
                          "properties": {
                            "bit_rate": {
                              "description": "Bit rate (bps).",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "lora": {
                          "properties": {
                            "bandwidth": {
                              "description": "Bandwidth (Hz).",
                              "format": "int64",
                              "type": "integer"
                            },
                            "coding_rate": {
                              "type": "string"
                            },
                            "spreading_factor": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "lrfhss": {
                          "properties": {
                            "coding_rate": {
                              "type": "string"
                            },
                            "modulation_type": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "operating_channel_width": {
                              "description": "Operating Channel Width (Hz).",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "rejected_adr_data_rate_indexes": {
            "description": "ADR Data rate index values rejected by the device.\nReset each time `current_parameters.channels` change.\nElements are sorted in ascending order.",
            "items": {
              "default": "DATA_RATE_0",
              "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"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "rejected_adr_tx_power_indexes": {
            "description": "ADR TX output power index values rejected by the device.\nElements are sorted in ascending order.",
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": "array"
          },
          "rejected_data_rate_ranges": {
            "additionalProperties": {
              "properties": {
                "ranges": {
                  "items": {
                    "properties": {
                      "max_data_rate_index": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "min_data_rate_index": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "description": "Data rate ranges rejected by the device per frequency.",
            "type": "object"
          },
          "rejected_frequencies": {
            "description": "Frequencies rejected by the device.",
            "items": {
              "format": "uint64",
              "type": "string"
            },
            "type": "array"
          },
          "rx_windows_available": {
            "description": "Whether or not Rx windows are expected to be open.\nSet to true every time an uplink is received.\nSet to false every time a successful downlink scheduling attempt is made.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "pending_session": {
        "properties": {
          "dev_addr": {
            "description": "Device Address, issued by the Network Server or chosen by device manufacturer in case of testing range (beginning with 00-03).\nKnown by Network Server, Application Server and Join Server. Owned by Network Server.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "keys": {
            "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
            "properties": {
              "app_s_key": {
                "properties": {
                  "encrypted_key": {
                    "format": "byte",
                    "type": "string"
                  },
                  "kek_label": {
                    "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "The unencrypted AES key.",
                    "example": "0123456789ABCDEF0123456789ABCDEF",
                    "format": "string",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "f_nwk_s_int_key": {
                "properties": {
                  "encrypted_key": {
                    "format": "byte",
                    "type": "string"
                  },
                  "kek_label": {
                    "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "The unencrypted AES key.",
                    "example": "0123456789ABCDEF0123456789ABCDEF",
                    "format": "string",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "nwk_s_enc_key": {
                "properties": {
                  "encrypted_key": {
                    "format": "byte",
                    "type": "string"
                  },
                  "kek_label": {
                    "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "The unencrypted AES key.",
                    "example": "0123456789ABCDEF0123456789ABCDEF",
                    "format": "string",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "s_nwk_s_int_key": {
                "properties": {
                  "encrypted_key": {
                    "format": "byte",
                    "type": "string"
                  },
                  "kek_label": {
                    "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "The unencrypted AES key.",
                    "example": "0123456789ABCDEF0123456789ABCDEF",
                    "format": "string",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "session_key_id": {
                "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                "format": "byte",
                "type": "string"
              }
            },
            "type": "object"
          },
          "last_a_f_cnt_down": {
            "description": "Last application downlink frame counter value used. Application Server only.",
            "format": "int64",
            "type": "integer"
          },
          "last_conf_f_cnt_down": {
            "description": "Frame counter of the last confirmed downlink message sent. Network Server only.",
            "format": "int64",
            "type": "integer"
          },
          "last_f_cnt_up": {
            "description": "Last uplink frame counter value used. Network Server only. Application Server assumes the Network Server checked it.",
            "format": "int64",
            "type": "integer"
          },
          "last_n_f_cnt_down": {
            "description": "Last network downlink frame counter value used. Network Server only.",
            "format": "int64",
            "type": "integer"
          },
          "queued_application_downlinks": {
            "description": "Queued Application downlink messages. Stored in Application Server and Network Server.",
            "items": {
              "properties": {
                "attributes": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Attributes for devices, set by the Application Server while handling the message.",
                  "type": "object"
                },
                "class_b_c": {
                  "properties": {
                    "absolute_time": {
                      "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                      "format": "date-time",
                      "type": "string"
                    },
                    "gateways": {
                      "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                      "items": {
                        "properties": {
                          "antenna_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "gateway_ids": {
                            "properties": {
                              "eui": {
                                "description": "Secondary identifier, which can only be used in specific requests.",
                                "example": "70B3D57ED000ABCD",
                                "format": "string",
                                "type": "string"
                              },
                              "gateway_id": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "group_index": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "confirmed": {
                  "type": "boolean"
                },
                "confirmed_retry": {
                  "properties": {
                    "attempt": {
                      "description": "The number of attempted confirmed downlink acknowledgements.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "max_attempts": {
                      "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "correlation_ids": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "decoded_payload": {
                  "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                  "type": "object"
                },
                "decoded_payload_warnings": {
                  "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "f_cnt": {
                  "format": "int64",
                  "type": "integer"
                },
                "f_port": {
                  "format": "int64",
                  "type": "integer"
                },
                "frm_payload": {
                  "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                  "format": "byte",
                  "type": "string"
                },
                "locations": {
                  "additionalProperties": {
                    "properties": {
                      "accuracy": {
                        "description": "The accuracy of the location (meters).",
                        "format": "int32",
                        "type": "integer"
                      },
                      "altitude": {
                        "description": "The altitude (meters), where 0 is the mean sea level.",
                        "format": "int32",
                        "type": "integer"
                      },
                      "latitude": {
                        "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                        "format": "double",
                        "type": "number"
                      },
                      "longitude": {
                        "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                        "format": "double",
                        "type": "number"
                      },
                      "source": {
                        "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.",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "description": "End device location metadata, set by the Application Server while handling the message.",
                  "type": "object"
                },
                "network_ids": {
                  "description": "Identifies a Network Server.",
                  "properties": {
                    "cluster_address": {
                      "description": "Cluster address of the Network Server.",
                      "type": "string"
                    },
                    "cluster_id": {
                      "description": "Cluster identifier of the Network Server.",
                      "type": "string"
                    },
                    "net_id": {
                      "description": "LoRa Alliance NetID.",
                      "example": "000013",
                      "format": "string",
                      "type": "string"
                    },
                    "ns_id": {
                      "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "tenant_address": {
                      "description": "Optional tenant address for multi-tenant deployments.",
                      "type": "string"
                    },
                    "tenant_id": {
                      "description": "Optional tenant identifier for multi-tenant deployments.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "priority": {
                  "default": "LOWEST",
                  "enum": [
                    "LOWEST",
                    "LOW",
                    "BELOW_NORMAL",
                    "NORMAL",
                    "ABOVE_NORMAL",
                    "HIGH",
                    "HIGHEST"
                  ],
                  "type": "string"
                },
                "session_key_id": {
                  "description": "Join Server issued identifier for the session keys used by this downlink.",
                  "format": "byte",
                  "type": "string"
                },
                "version_ids": {
                  "description": "Identifies an end device model with version information.",
                  "properties": {
                    "band_id": {
                      "type": "string"
                    },
                    "brand_id": {
                      "type": "string"
                    },
                    "firmware_version": {
                      "type": "string"
                    },
                    "hardware_version": {
                      "type": "string"
                    },
                    "model_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "started_at": {
            "description": "Time when the session started. Network Server only.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "picture": {
        "properties": {
          "embedded": {
            "properties": {
              "data": {
                "description": "Picture data. A data URI can be constructed as follows:\n`data:\u003cmime_type\u003e;base64,\u003cdata\u003e`.",
                "format": "byte",
                "type": "string"
              },
              "mime_type": {
                "description": "MIME type of the picture.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "sizes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "URLs of the picture for different sizes, if available on a CDN.",
            "type": "object"
          }
        },
        "type": "object"
      },
      "power_state": {
        "default": "POWER_UNKNOWN",
        "description": "Power state of the device.",
        "enum": [
          "POWER_UNKNOWN",
          "POWER_BATTERY",
          "POWER_EXTERNAL"
        ],
        "type": "string"
      },
      "provisioner_id": {
        "description": "ID of the provisioner. Stored in Join Server.",
        "type": "string"
      },
      "provisioning_data": {
        "description": "Vendor-specific provisioning data. Stored in Join Server.",
        "type": "object"
      },
      "queued_application_downlinks": {
        "description": "Queued Application downlink messages. Stored in Application Server,\nwhich sets them on the Network Server.\nThis field is deprecated and is always set equal to session.queued_application_downlinks.",
        "items": {
          "properties": {
            "attributes": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Attributes for devices, set by the Application Server while handling the message.",
              "type": "object"
            },
            "class_b_c": {
              "properties": {
                "absolute_time": {
                  "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                  "format": "date-time",
                  "type": "string"
                },
                "gateways": {
                  "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                  "items": {
                    "properties": {
                      "antenna_index": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "gateway_ids": {
                        "properties": {
                          "eui": {
                            "description": "Secondary identifier, which can only be used in specific requests.",
                            "example": "70B3D57ED000ABCD",
                            "format": "string",
                            "type": "string"
                          },
                          "gateway_id": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "group_index": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "confirmed": {
              "type": "boolean"
            },
            "confirmed_retry": {
              "properties": {
                "attempt": {
                  "description": "The number of attempted confirmed downlink acknowledgements.",
                  "format": "int64",
                  "type": "integer"
                },
                "max_attempts": {
                  "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                  "format": "int64",
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "correlation_ids": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "decoded_payload": {
              "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
              "type": "object"
            },
            "decoded_payload_warnings": {
              "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "f_cnt": {
              "format": "int64",
              "type": "integer"
            },
            "f_port": {
              "format": "int64",
              "type": "integer"
            },
            "frm_payload": {
              "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
              "format": "byte",
              "type": "string"
            },
            "locations": {
              "additionalProperties": {
                "properties": {
                  "accuracy": {
                    "description": "The accuracy of the location (meters).",
                    "format": "int32",
                    "type": "integer"
                  },
                  "altitude": {
                    "description": "The altitude (meters), where 0 is the mean sea level.",
                    "format": "int32",
                    "type": "integer"
                  },
                  "latitude": {
                    "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                    "format": "double",
                    "type": "number"
                  },
                  "longitude": {
                    "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                    "format": "double",
                    "type": "number"
                  },
                  "source": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "description": "End device location metadata, set by the Application Server while handling the message.",
              "type": "object"
            },
            "network_ids": {
              "description": "Identifies a Network Server.",
              "properties": {
                "cluster_address": {
                  "description": "Cluster address of the Network Server.",
                  "type": "string"
                },
                "cluster_id": {
                  "description": "Cluster identifier of the Network Server.",
                  "type": "string"
                },
                "net_id": {
                  "description": "LoRa Alliance NetID.",
                  "example": "000013",
                  "format": "string",
                  "type": "string"
                },
                "ns_id": {
                  "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "tenant_address": {
                  "description": "Optional tenant address for multi-tenant deployments.",
                  "type": "string"
                },
                "tenant_id": {
                  "description": "Optional tenant identifier for multi-tenant deployments.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "priority": {
              "default": "LOWEST",
              "enum": [
                "LOWEST",
                "LOW",
                "BELOW_NORMAL",
                "NORMAL",
                "ABOVE_NORMAL",
                "HIGH",
                "HIGHEST"
              ],
              "type": "string"
            },
            "session_key_id": {
              "description": "Join Server issued identifier for the session keys used by this downlink.",
              "format": "byte",
              "type": "string"
            },
            "version_ids": {
              "description": "Identifies an end device model with version information.",
              "properties": {
                "band_id": {
                  "type": "string"
                },
                "brand_id": {
                  "type": "string"
                },
                "firmware_version": {
                  "type": "string"
                },
                "hardware_version": {
                  "type": "string"
                },
                "model_id": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "resets_join_nonces": {
        "description": "Whether the device resets the join and dev nonces (not LoRaWAN compliant). Stored in Join Server.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
        "type": "boolean"
      },
      "root_keys": {
        "description": "Root keys for a LoRaWAN device.\nThese are stored on the Join Server.",
        "properties": {
          "app_key": {
            "properties": {
              "encrypted_key": {
                "format": "byte",
                "type": "string"
              },
              "kek_label": {
                "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                "type": "string"
              },
              "key": {
                "description": "The unencrypted AES key.",
                "example": "0123456789ABCDEF0123456789ABCDEF",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          },
          "nwk_key": {
            "properties": {
              "encrypted_key": {
                "format": "byte",
                "type": "string"
              },
              "kek_label": {
                "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                "type": "string"
              },
              "key": {
                "description": "The unencrypted AES key.",
                "example": "0123456789ABCDEF0123456789ABCDEF",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          },
          "root_key_id": {
            "description": "Join Server issued identifier for the root keys.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "serial_number": {
        "type": "string"
      },
      "service_profile_id": {
        "description": "Default service profile. Stored in Entity Registry.",
        "type": "string"
      },
      "session": {
        "properties": {
          "dev_addr": {
            "description": "Device Address, issued by the Network Server or chosen by device manufacturer in case of testing range (beginning with 00-03).\nKnown by Network Server, Application Server and Join Server. Owned by Network Server.",
            "example": "2600ABCD",
            "format": "string",
            "type": "string"
          },
          "keys": {
            "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
            "properties": {
              "app_s_key": {
                "properties": {
                  "encrypted_key": {
                    "format": "byte",
                    "type": "string"
                  },
                  "kek_label": {
                    "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "The unencrypted AES key.",
                    "example": "0123456789ABCDEF0123456789ABCDEF",
                    "format": "string",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "f_nwk_s_int_key": {
                "properties": {
                  "encrypted_key": {
                    "format": "byte",
                    "type": "string"
                  },
                  "kek_label": {
                    "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "The unencrypted AES key.",
                    "example": "0123456789ABCDEF0123456789ABCDEF",
                    "format": "string",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "nwk_s_enc_key": {
                "properties": {
                  "encrypted_key": {
                    "format": "byte",
                    "type": "string"
                  },
                  "kek_label": {
                    "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "The unencrypted AES key.",
                    "example": "0123456789ABCDEF0123456789ABCDEF",
                    "format": "string",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "s_nwk_s_int_key": {
                "properties": {
                  "encrypted_key": {
                    "format": "byte",
                    "type": "string"
                  },
                  "kek_label": {
                    "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "The unencrypted AES key.",
                    "example": "0123456789ABCDEF0123456789ABCDEF",
                    "format": "string",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "session_key_id": {
                "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                "format": "byte",
                "type": "string"
              }
            },
            "type": "object"
          },
          "last_a_f_cnt_down": {
            "description": "Last application downlink frame counter value used. Application Server only.",
            "format": "int64",
            "type": "integer"
          },
          "last_conf_f_cnt_down": {
            "description": "Frame counter of the last confirmed downlink message sent. Network Server only.",
            "format": "int64",
            "type": "integer"
          },
          "last_f_cnt_up": {
            "description": "Last uplink frame counter value used. Network Server only. Application Server assumes the Network Server checked it.",
            "format": "int64",
            "type": "integer"
          },
          "last_n_f_cnt_down": {
            "description": "Last network downlink frame counter value used. Network Server only.",
            "format": "int64",
            "type": "integer"
          },
          "queued_application_downlinks": {
            "description": "Queued Application downlink messages. Stored in Application Server and Network Server.",
            "items": {
              "properties": {
                "attributes": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Attributes for devices, set by the Application Server while handling the message.",
                  "type": "object"
                },
                "class_b_c": {
                  "properties": {
                    "absolute_time": {
                      "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                      "format": "date-time",
                      "type": "string"
                    },
                    "gateways": {
                      "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                      "items": {
                        "properties": {
                          "antenna_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "gateway_ids": {
                            "properties": {
                              "eui": {
                                "description": "Secondary identifier, which can only be used in specific requests.",
                                "example": "70B3D57ED000ABCD",
                                "format": "string",
                                "type": "string"
                              },
                              "gateway_id": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "group_index": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "confirmed": {
                  "type": "boolean"
                },
                "confirmed_retry": {
                  "properties": {
                    "attempt": {
                      "description": "The number of attempted confirmed downlink acknowledgements.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "max_attempts": {
                      "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "correlation_ids": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "decoded_payload": {
                  "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                  "type": "object"
                },
                "decoded_payload_warnings": {
                  "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "f_cnt": {
                  "format": "int64",
                  "type": "integer"
                },
                "f_port": {
                  "format": "int64",
                  "type": "integer"
                },
                "frm_payload": {
                  "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                  "format": "byte",
                  "type": "string"
                },
                "locations": {
                  "additionalProperties": {
                    "properties": {
                      "accuracy": {
                        "description": "The accuracy of the location (meters).",
                        "format": "int32",
                        "type": "integer"
                      },
                      "altitude": {
                        "description": "The altitude (meters), where 0 is the mean sea level.",
                        "format": "int32",
                        "type": "integer"
                      },
                      "latitude": {
                        "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                        "format": "double",
                        "type": "number"
                      },
                      "longitude": {
                        "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                        "format": "double",
                        "type": "number"
                      },
                      "source": {
                        "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.",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "description": "End device location metadata, set by the Application Server while handling the message.",
                  "type": "object"
                },
                "network_ids": {
                  "description": "Identifies a Network Server.",
                  "properties": {
                    "cluster_address": {
                      "description": "Cluster address of the Network Server.",
                      "type": "string"
                    },
                    "cluster_id": {
                      "description": "Cluster identifier of the Network Server.",
                      "type": "string"
                    },
                    "net_id": {
                      "description": "LoRa Alliance NetID.",
                      "example": "000013",
                      "format": "string",
                      "type": "string"
                    },
                    "ns_id": {
                      "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "tenant_address": {
                      "description": "Optional tenant address for multi-tenant deployments.",
                      "type": "string"
                    },
                    "tenant_id": {
                      "description": "Optional tenant identifier for multi-tenant deployments.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "priority": {
                  "default": "LOWEST",
                  "enum": [
                    "LOWEST",
                    "LOW",
                    "BELOW_NORMAL",
                    "NORMAL",
                    "ABOVE_NORMAL",
                    "HIGH",
                    "HIGHEST"
                  ],
                  "type": "string"
                },
                "session_key_id": {
                  "description": "Join Server issued identifier for the session keys used by this downlink.",
                  "format": "byte",
                  "type": "string"
                },
                "version_ids": {
                  "description": "Identifies an end device model with version information.",
                  "properties": {
                    "band_id": {
                      "type": "string"
                    },
                    "brand_id": {
                      "type": "string"
                    },
                    "firmware_version": {
                      "type": "string"
                    },
                    "hardware_version": {
                      "type": "string"
                    },
                    "model_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "started_at": {
            "description": "Time when the session started. Network Server only.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "skip_payload_crypto": {
        "description": "Skip decryption of uplink payloads and encryption of downlink payloads.\nThis field is deprecated, use skip_payload_crypto_override instead.",
        "type": "boolean"
      },
      "skip_payload_crypto_override": {
        "description": "Skip decryption of uplink payloads and encryption of downlink payloads.\nThis field overrides the application-level setting.",
        "type": "boolean"
      },
      "supports_class_b": {
        "description": "Whether the device supports class B.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
        "type": "boolean"
      },
      "supports_class_c": {
        "description": "Whether the device supports class C.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
        "type": "boolean"
      },
      "supports_join": {
        "description": "The device supports join (it's OTAA).\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
        "type": "boolean"
      },
      "updated_at": {
        "format": "date-time",
        "type": "string"
      },
      "used_dev_nonces": {
        "description": "Used DevNonces sorted in ascending order.\nThis field is only used for devices using LoRaWAN versions preceding 1.1.\nStored in Join Server.",
        "items": {
          "format": "int64",
          "type": "integer"
        },
        "type": "array"
      },
      "version_ids": {
        "description": "Identifies an end device model with version information.",
        "properties": {
          "band_id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "firmware_version": {
            "type": "string"
          },
          "hardware_version": {
            "type": "string"
          },
          "model_id": {
            "type": "string"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    EndDeviceAuthenticationCode

    Authentication code for end devices.
    Fields
    Name Type Description
    valid_from string
    valid_to string
    value string
    Schema
    {
      "valid_from": {
        "format": "date-time",
        "type": "string"
      },
      "valid_to": {
        "format": "date-time",
        "type": "string"
      },
      "value": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    EndDeviceBrand

    Fields
    Name Type Description
    brand_id string Brand identifier, as specified in the Device Repository.
    email string Contact email address.
    logo string Path to brand logo.
    lora_alliance_vendor_id integer VendorID managed by the LoRa Alliance, as defined in TR005.
    name string Brand name.
    organization_unique_identifiers string Organization Unique Identifiers (OUI) assigned by IEEE.
    private_enterprise_number integer Private Enterprise Number (PEN) assigned by IANA.
    website string Brand website URL.
    Schema
    {
      "brand_id": {
        "description": "Brand identifier, as specified in the Device Repository.",
        "type": "string"
      },
      "email": {
        "description": "Contact email address.",
        "type": "string"
      },
      "logo": {
        "description": "Path to brand logo.",
        "type": "string"
      },
      "lora_alliance_vendor_id": {
        "description": "VendorID managed by the LoRa Alliance, as defined in TR005.",
        "format": "int64",
        "type": "integer"
      },
      "name": {
        "description": "Brand name.",
        "type": "string"
      },
      "organization_unique_identifiers": {
        "description": "Organization Unique Identifiers (OUI) assigned by IEEE.",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "private_enterprise_number": {
        "description": "Private Enterprise Number (PEN) assigned by IANA.",
        "format": "int64",
        "type": "integer"
      },
      "website": {
        "description": "Brand website URL.",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    EndDeviceIdentifiers

    Fields
    Name Type Description
    application_ids object
    dev_addr string The LoRaWAN DevAddr.
    dev_eui string The LoRaWAN DevEUI.
    device_id string
    join_eui string The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).
    Schema
    {
      "application_ids": {
        "properties": {
          "application_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "dev_addr": {
        "description": "The LoRaWAN DevAddr.",
        "example": "2600ABCD",
        "format": "string",
        "type": "string"
      },
      "dev_eui": {
        "description": "The LoRaWAN DevEUI.",
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      },
      "device_id": {
        "type": "string"
      },
      "join_eui": {
        "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
        "example": "70B3D57ED000ABCD",
        "format": "string",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    EndDeviceModel

    Fields
    Name Type Description
    additional_radios string List of any additional radios included in the device.
    battery object
    brand_id string Brand identifier, as defined in the Device Repository.
    compliances object
    datasheet_url string Device datasheet URL.
    description string Model description.
    dimensions object
    firmware_versions object Available firmware versions.
    hardware_versions object Available hardware versions.
    ip_code string Device IP rating code.
    key_provisioning string Supported key provisioning methods.
    key_security string - KEY_SECURITY_UNKNOWN: Unknown key security. - KEY_SECURITY_NONE: No key security. - KEY_SECURITY_READ_PROTECTED: Read Protected key security. - KEY_SECURITY_SECURE_ELEMENT: Key security using the Security Element.
    model_id string Model identifier, as defined in the Device Repository.
    name string Model name, as defined in the Device Repository.
    operating_conditions object
    photos object
    product_url string Device information page URL.
    resellers object Reseller URLs.
    sensors string List of sensors included in the device.
    videos object
    weight number Device weight (gram).
    Schema
    {
      "additional_radios": {
        "description": "List of any additional radios included in the device.",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "battery": {
        "properties": {
          "replaceable": {
            "description": "Whether the device battery can be replaced.",
            "type": "boolean"
          },
          "type": {
            "description": "Battery type.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "brand_id": {
        "description": "Brand identifier, as defined in the Device Repository.",
        "type": "string"
      },
      "compliances": {
        "properties": {
          "radio_equipment": {
            "description": "List of radio equipment standards the device is compliant with.",
            "items": {
              "properties": {
                "body": {
                  "type": "string"
                },
                "norm": {
                  "type": "string"
                },
                "standard": {
                  "type": "string"
                },
                "version": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "safety": {
            "description": "List of safety standards the device is compliant with.",
            "items": {
              "properties": {
                "body": {
                  "type": "string"
                },
                "norm": {
                  "type": "string"
                },
                "standard": {
                  "type": "string"
                },
                "version": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "datasheet_url": {
        "description": "Device datasheet URL.",
        "type": "string"
      },
      "description": {
        "description": "Model description.",
        "type": "string"
      },
      "dimensions": {
        "properties": {
          "diameter": {
            "description": "Device diameter (mm).",
            "format": "float",
            "type": "number"
          },
          "height": {
            "description": "Device height (mm).",
            "format": "float",
            "type": "number"
          },
          "length": {
            "description": "Device length (mm).",
            "format": "float",
            "type": "number"
          },
          "width": {
            "description": "Device width (mm).",
            "format": "float",
            "type": "number"
          }
        },
        "type": "object"
      },
      "firmware_versions": {
        "description": "Available firmware versions.",
        "items": {
          "properties": {
            "numeric": {
              "description": "Numeric firmware revision number.",
              "format": "int64",
              "type": "integer"
            },
            "profiles": {
              "additionalProperties": {
                "properties": {
                  "codec_id": {
                    "description": "Payload formatter codec identifier, as defined in the Device Repository.",
                    "type": "string"
                  },
                  "lorawan_certified": {
                    "description": "Whether the device is LoRaWAN certified.",
                    "type": "boolean"
                  },
                  "profile_id": {
                    "description": "Profile identifier, as defined in the Device Repository.",
                    "type": "string"
                  },
                  "vendor_id": {
                    "description": "Vendor ID of the profile, as defined in the Device Repository.\nIf this value is set, the profile is loaded from this vendor's folder.\nIf this value is not set, the profile is loaded from the current (end device's) vendor.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "description": "Device profiles for each supported region (band).",
              "type": "object"
            },
            "supported_hardware_versions": {
              "description": "Hardware versions supported by this firmware version.",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "version": {
              "description": "Firmware version string.",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "hardware_versions": {
        "description": "Available hardware versions.",
        "items": {
          "properties": {
            "numeric": {
              "description": "Numberic hardware revision number.",
              "format": "int64",
              "type": "integer"
            },
            "part_number": {
              "description": "Hardware part number.",
              "type": "string"
            },
            "version": {
              "description": "Hardware version string.",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "ip_code": {
        "description": "Device IP rating code.",
        "type": "string"
      },
      "key_provisioning": {
        "description": "Supported key provisioning methods.",
        "items": {
          "default": "KEY_PROVISIONING_UNKNOWN",
          "description": " - KEY_PROVISIONING_UNKNOWN: Unknown Key Provisioning.\n - KEY_PROVISIONING_CUSTOM: Custom Key Provisioning.\n - KEY_PROVISIONING_JOIN_SERVER: Key Provisioning from the Global Join Server.\n - KEY_PROVISIONING_MANIFEST: Key Provisioning from Manifest.",
          "enum": [
            "KEY_PROVISIONING_UNKNOWN",
            "KEY_PROVISIONING_CUSTOM",
            "KEY_PROVISIONING_JOIN_SERVER",
            "KEY_PROVISIONING_MANIFEST"
          ],
          "type": "string"
        },
        "type": "array"
      },
      "key_security": {
        "default": "KEY_SECURITY_UNKNOWN",
        "description": " - KEY_SECURITY_UNKNOWN: Unknown key security.\n - KEY_SECURITY_NONE: No key security.\n - KEY_SECURITY_READ_PROTECTED: Read Protected key security.\n - KEY_SECURITY_SECURE_ELEMENT: Key security using the Security Element.",
        "enum": [
          "KEY_SECURITY_UNKNOWN",
          "KEY_SECURITY_NONE",
          "KEY_SECURITY_READ_PROTECTED",
          "KEY_SECURITY_SECURE_ELEMENT"
        ],
        "type": "string"
      },
      "model_id": {
        "description": "Model identifier, as defined in the Device Repository.",
        "type": "string"
      },
      "name": {
        "description": "Model name, as defined in the Device Repository.",
        "type": "string"
      },
      "operating_conditions": {
        "properties": {
          "relative_humidity": {
            "properties": {
              "max": {
                "description": "Max value of operating conditions range.",
                "format": "float",
                "type": "number"
              },
              "min": {
                "description": "Min value of operating conditions range.",
                "format": "float",
                "type": "number"
              }
            },
            "type": "object"
          },
          "temperature": {
            "properties": {
              "max": {
                "description": "Max value of operating conditions range.",
                "format": "float",
                "type": "number"
              },
              "min": {
                "description": "Min value of operating conditions range.",
                "format": "float",
                "type": "number"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "photos": {
        "properties": {
          "main": {
            "description": "Main device photo.",
            "type": "string"
          },
          "other": {
            "description": "List of other device photos.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "product_url": {
        "description": "Device information page URL.",
        "type": "string"
      },
      "resellers": {
        "description": "Reseller URLs.",
        "items": {
          "properties": {
            "name": {
              "description": "Reseller name.",
              "type": "string"
            },
            "region": {
              "description": "Reseller regions.",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "url": {
              "description": "Reseller URL.",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "sensors": {
        "description": "List of sensors included in the device.",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "videos": {
        "properties": {
          "main": {
            "description": "Link to main device video.",
            "type": "string"
          },
          "other": {
            "description": "Links to other device videos.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "weight": {
        "description": "Device weight (gram).",
        "format": "float",
        "type": "number"
      }
    }
    Show the schema of the message in JSON format.

    EndDeviceQRCodeGeneratorParseBody

    Fields
    Name Type Description
    qr_code string Raw QR code contents.
    Schema
    {
      "qr_code": {
        "description": "Raw QR code contents.",
        "format": "byte",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    EndDeviceRegistryCreateBody

    Fields
    Name Type Description
    end_device object 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.
    Schema
    {
      "end_device": {
        "description": "Defines an End Device registration and its state on the network.\nThe persistence of the EndDevice is divided between the Network Server, Application Server and Join Server.\nSDKs are responsible for combining (if desired) the three.",
        "properties": {
          "activated_at": {
            "description": "Timestamp when the device has been activated. Stored in the Entity Registry.\nThis field is set by the Application Server when an end device sends\nits first uplink.\nThe Application Server will use the field in order to avoid repeated\ncalls to the Entity Registry.\nThe field cannot be unset once set.",
            "format": "date-time",
            "type": "string"
          },
          "application_server_address": {
            "description": "The address of the Application Server where this device is supposed to be registered.\nStored in Entity Registry and Join Server.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
            "type": "string"
          },
          "application_server_id": {
            "description": "The AS-ID of the Application Server to use.\nStored in Join Server.",
            "type": "string"
          },
          "application_server_kek_label": {
            "description": "The KEK label of the Application Server to use for wrapping the application session key.\nStored in Join Server.",
            "type": "string"
          },
          "attributes": {
            "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.",
            "type": "object"
          },
          "battery_percentage": {
            "description": "Latest-known battery percentage of the device.\nReceived via the DevStatus MAC command at last_dev_status_received_at or earlier.\nStored in Network Server.",
            "format": "float",
            "type": "number"
          },
          "claim_authentication_code": {
            "description": "Authentication code for end devices.",
            "properties": {
              "valid_from": {
                "format": "date-time",
                "type": "string"
              },
              "valid_to": {
                "format": "date-time",
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "Description of the device. Stored in Entity Registry.",
            "type": "string"
          },
          "downlink_margin": {
            "description": "Demodulation signal-to-noise ratio (dB).\nReceived via the DevStatus MAC command at last_dev_status_received_at.\nStored in Network Server.",
            "format": "int32",
            "type": "integer"
          },
          "formatters": {
            "properties": {
              "down_formatter": {
                "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.",
                "enum": [
                  "FORMATTER_NONE",
                  "FORMATTER_REPOSITORY",
                  "FORMATTER_GRPC_SERVICE",
                  "FORMATTER_JAVASCRIPT",
                  "FORMATTER_CAYENNELPP"
                ],
                "type": "string"
              },
              "down_formatter_parameter": {
                "description": "Parameter for the down_formatter, must be set together. The API enforces a maximum length of 16KB, but the size may be restricted further by deployment configuration.",
                "type": "string"
              },
              "up_formatter": {
                "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.",
                "enum": [
                  "FORMATTER_NONE",
                  "FORMATTER_REPOSITORY",
                  "FORMATTER_GRPC_SERVICE",
                  "FORMATTER_JAVASCRIPT",
                  "FORMATTER_CAYENNELPP"
                ],
                "type": "string"
              },
              "up_formatter_parameter": {
                "description": "Parameter for the up_formatter, must be set together. The API enforces a maximum length of 16KB, but the size may be restricted further by deployment configuration.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "frequency_plan_id": {
            "description": "ID of the frequency plan used by this device.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "type": "string"
          },
          "ids": {
            "properties": {
              "application_ids": {
                "type": "object"
              },
              "dev_addr": {
                "description": "The LoRaWAN DevAddr.",
                "example": "2600ABCD",
                "format": "string",
                "type": "string"
              },
              "dev_eui": {
                "description": "The LoRaWAN DevEUI.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "device_id": {
                "type": "string"
              },
              "join_eui": {
                "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          },
          "join_server_address": {
            "description": "The address of the Join Server where this device is supposed to be registered.\nStored in Entity Registry.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
            "type": "string"
          },
          "label_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "last_dev_nonce": {
            "description": "Last DevNonce used.\nThis field is only used for devices using LoRaWAN version 1.1 and later.\nStored in Join Server.",
            "format": "int64",
            "type": "integer"
          },
          "last_dev_status_received_at": {
            "description": "Time when last DevStatus MAC command was received.\nStored in Network Server.",
            "format": "date-time",
            "type": "string"
          },
          "last_join_nonce": {
            "description": "Last JoinNonce/AppNonce(for devices using LoRaWAN versions preceding 1.1) used.\nStored in Join Server.",
            "format": "int64",
            "type": "integer"
          },
          "last_rj_count_0": {
            "description": "Last Rejoin counter value used (type 0/2).\nStored in Join Server.",
            "format": "int64",
            "type": "integer"
          },
          "last_rj_count_1": {
            "description": "Last Rejoin counter value used (type 1).\nStored in Join Server.",
            "format": "int64",
            "type": "integer"
          },
          "last_seen_at": {
            "description": "Timestamp when a device uplink has been last observed.\nThis field is set by the Application Server and stored in the Identity Server.",
            "format": "date-time",
            "type": "string"
          },
          "locations": {
            "additionalProperties": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "description": "Location of the device. Stored in Entity Registry.",
            "type": "object"
          },
          "lora_alliance_profile_ids": {
            "properties": {
              "vendor_id": {
                "description": "VendorID managed by the LoRa Alliance, as defined in TR005.",
                "format": "int64",
                "type": "integer"
              },
              "vendor_profile_id": {
                "description": "ID of the LoRaWAN end device profile assigned by the vendor.",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "lorawan_phy_version": {
            "default": "PHY_UNKNOWN",
            "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"
            ],
            "type": "string"
          },
          "lorawan_version": {
            "default": "MAC_UNKNOWN",
            "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"
            ],
            "type": "string"
          },
          "mac_settings": {
            "properties": {
              "adr": {
                "description": "Adaptive Data Rate settings.",
                "properties": {
                  "disabled": {
                    "description": "Configuration options for cases in which ADR is to be disabled\ncompletely.",
                    "type": "object"
                  },
                  "dynamic": {
                    "description": "Configuration options for dynamic ADR.",
                    "properties": {
                      "channel_steering": {
                        "description": "EXPERIMENTAL: Channel steering settings.",
                        "properties": {
                          "disabled": {
                            "description": "Configuration options for cases in which ADR is not supposed to steer the end device\nto another set of channels.",
                            "type": "object"
                          },
                          "lora_narrow": {
                            "description": "Configuration options for LoRa narrow channels steering.\nThe narrow mode attempts to steer the end device towards\nusing the LoRa modulated, 125kHz bandwidth channels.",
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "margin": {
                        "description": "The ADR margin (dB) tells the network server how much margin it should add in ADR requests.\nA bigger margin is less efficient, but gives a better chance of successful reception.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "float",
                        "type": "number"
                      },
                      "max_data_rate_index": {
                        "properties": {
                          "value": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "max_nb_trans": {
                        "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_tx_power_index": {
                        "description": "Maximum transmission power index.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "min_data_rate_index": {
                        "properties": {
                          "value": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "min_nb_trans": {
                        "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "min_tx_power_index": {
                        "description": "Minimum transmission power index.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "overrides": {
                        "description": "EXPERIMENTAL: Configuration overrides.",
                        "properties": {
                          "data_rate_0": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_1": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_10": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_11": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_12": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_13": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_14": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_15": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_2": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_3": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_4": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_5": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_6": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_7": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_8": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_9": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "static": {
                    "description": "Configuration options for static ADR.",
                    "properties": {
                      "data_rate_index": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "nb_trans": {
                        "description": "Number of retransmissions.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "tx_power_index": {
                        "description": "Transmission power index to use.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "adr_margin": {
                "description": "The ADR margin (dB) tells the network server how much margin it should add in ADR requests.\nA bigger margin is less efficient, but gives a better chance of successful reception.\nThis field is deprecated, use adr_settings.dynamic.margin instead.",
                "format": "float",
                "type": "number"
              },
              "beacon_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "class_b_c_downlink_interval": {
                "description": "The minimum duration passed before a network-initiated(e.g. Class B or C) downlink following an arbitrary downlink.",
                "type": "string"
              },
              "class_b_timeout": {
                "description": "Maximum delay for the device to answer a MAC request or a confirmed downlink frame.\nIf unset, the default value from Network Server configuration will be used.",
                "type": "string"
              },
              "class_c_timeout": {
                "description": "Maximum delay for the device to answer a MAC request or a confirmed downlink frame.\nIf unset, the default value from Network Server configuration will be used.",
                "type": "string"
              },
              "desired_adr_ack_delay_exponent": {
                "properties": {
                  "value": {
                    "default": "ADR_ACK_DELAY_1",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_adr_ack_limit_exponent": {
                "properties": {
                  "value": {
                    "default": "ADR_ACK_LIMIT_1",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_beacon_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_max_duty_cycle": {
                "properties": {
                  "value": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_max_eirp": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_ping_slot_data_rate_index": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_ping_slot_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_relay": {
                "description": "RelaySettings represent the settings of a relay.\nThis is used internally by the Network Server.",
                "properties": {
                  "served": {
                    "properties": {
                      "always": {
                        "type": "object"
                      },
                      "backoff": {
                        "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "dynamic": {
                        "properties": {
                          "smart_enable_level": {
                            "default": "RELAY_SMART_ENABLE_LEVEL_8",
                            "enum": [
                              "RELAY_SMART_ENABLE_LEVEL_8",
                              "RELAY_SMART_ENABLE_LEVEL_16",
                              "RELAY_SMART_ENABLE_LEVEL_32",
                              "RELAY_SMART_ENABLE_LEVEL_64"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "end_device_controlled": {
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving_device_id": {
                        "description": "End device identifier of the serving end device.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "serving": {
                    "properties": {
                      "cad_periodicity": {
                        "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                        "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"
                        ],
                        "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                        "type": "string"
                      },
                      "default_channel_index": {
                        "description": "Index of the default wake on radio channel.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "limits": {
                        "properties": {
                          "join_requests": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "notifications": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "overall": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "reset_behavior": {
                            "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "enum": [
                              "RELAY_RESET_LIMIT_COUNTER_ZERO",
                              "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                              "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                              "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                            ],
                            "type": "string"
                          },
                          "uplink_messages": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "uplink_forwarding_rules": {
                        "description": "Configured uplink forwarding rules.",
                        "items": {
                          "properties": {
                            "device_id": {
                              "description": "End device identifier of the served end device.",
                              "type": "string"
                            },
                            "last_w_f_cnt": {
                              "description": "Last wake on radio frame counter used by the served end device.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "limits": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "session_key_id": {
                              "description": "Session key ID of the session keys used to derive the root relay session key.",
                              "format": "byte",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "desired_rx1_data_rate_offset": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_rx1_delay": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_rx2_data_rate_index": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_rx2_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "downlink_dwell_time": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "factory_preset_frequencies": {
                "description": "List of factory-preset frequencies.\nIf unset, the default value from Network Server configuration or regional parameters specification will be used.",
                "items": {
                  "format": "uint64",
                  "type": "string"
                },
                "type": "array"
              },
              "max_duty_cycle": {
                "properties": {
                  "value": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "ping_slot_data_rate_index": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "ping_slot_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "ping_slot_periodicity": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "relay": {
                "description": "RelaySettings represent the settings of a relay.\nThis is used internally by the Network Server.",
                "properties": {
                  "served": {
                    "properties": {
                      "always": {
                        "type": "object"
                      },
                      "backoff": {
                        "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "dynamic": {
                        "properties": {
                          "smart_enable_level": {
                            "default": "RELAY_SMART_ENABLE_LEVEL_8",
                            "enum": [
                              "RELAY_SMART_ENABLE_LEVEL_8",
                              "RELAY_SMART_ENABLE_LEVEL_16",
                              "RELAY_SMART_ENABLE_LEVEL_32",
                              "RELAY_SMART_ENABLE_LEVEL_64"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "end_device_controlled": {
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving_device_id": {
                        "description": "End device identifier of the serving end device.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "serving": {
                    "properties": {
                      "cad_periodicity": {
                        "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                        "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"
                        ],
                        "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                        "type": "string"
                      },
                      "default_channel_index": {
                        "description": "Index of the default wake on radio channel.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "limits": {
                        "properties": {
                          "join_requests": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "notifications": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "overall": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "reset_behavior": {
                            "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "enum": [
                              "RELAY_RESET_LIMIT_COUNTER_ZERO",
                              "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                              "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                              "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                            ],
                            "type": "string"
                          },
                          "uplink_messages": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "uplink_forwarding_rules": {
                        "description": "Configured uplink forwarding rules.",
                        "items": {
                          "properties": {
                            "device_id": {
                              "description": "End device identifier of the served end device.",
                              "type": "string"
                            },
                            "last_w_f_cnt": {
                              "description": "Last wake on radio frame counter used by the served end device.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "limits": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "session_key_id": {
                              "description": "Session key ID of the session keys used to derive the root relay session key.",
                              "format": "byte",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "resets_f_cnt": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "rx1_data_rate_offset": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "rx1_delay": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "rx2_data_rate_index": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "rx2_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "schedule_downlinks": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "status_count_periodicity": {
                "description": "Number of uplink messages after which a DevStatusReq MACCommand shall be sent.\nIf unset, the default value from Network Server configuration will be used.",
                "format": "int64",
                "type": "integer"
              },
              "status_time_periodicity": {
                "description": "The interval after which a DevStatusReq MACCommand shall be sent.\nIf unset, the default value from Network Server configuration will be used.",
                "type": "string"
              },
              "supports_32_bit_f_cnt": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "uplink_dwell_time": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "use_adr": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "mac_settings_profile_ids": {
            "properties": {
              "application_ids": {
                "properties": {
                  "application_id": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "profile_id": {
                "description": "Profile ID.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "mac_state": {
            "description": "MACState represents the state of MAC layer of the device.\nMACState is reset on each join for OTAA or ResetInd for ABP devices.\nThis is used internally by the Network Server.",
            "properties": {
              "current_parameters": {
                "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
                "properties": {
                  "adr_ack_delay": {
                    "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_delay_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_DELAY_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_ack_limit": {
                    "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_limit_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_LIMIT_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "adr_nb_trans": {
                    "description": "ADR: number of retransmissions.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_tx_power_index": {
                    "description": "ADR: transmission power index to use.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "beacon_frequency": {
                    "description": "Frequency of the class B beacon (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "channels": {
                    "description": "Configured uplink channels and optionally Rx1 frequency.",
                    "items": {
                      "properties": {
                        "downlink_frequency": {
                          "description": "Downlink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "enable_uplink": {
                          "description": "Channel can be used by device for uplink.",
                          "type": "boolean"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_frequency": {
                          "description": "Uplink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "downlink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "max_duty_cycle": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "max_eirp": {
                    "description": "Maximum EIRP (dBm).",
                    "format": "float",
                    "type": "number"
                  },
                  "ping_slot_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "ping_slot_data_rate_index_value": {
                    "properties": {
                      "value": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "ping_slot_frequency": {
                    "description": "Frequency of the class B ping slot (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "rejoin_count_periodicity": {
                    "default": "REJOIN_COUNT_16",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rejoin_time_periodicity": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "relay": {
                    "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                    "properties": {
                      "served": {
                        "properties": {
                          "always": {
                            "type": "object"
                          },
                          "backoff": {
                            "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "dynamic": {
                            "properties": {
                              "smart_enable_level": {
                                "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                "enum": [
                                  "RELAY_SMART_ENABLE_LEVEL_8",
                                  "RELAY_SMART_ENABLE_LEVEL_16",
                                  "RELAY_SMART_ENABLE_LEVEL_32",
                                  "RELAY_SMART_ENABLE_LEVEL_64"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "end_device_controlled": {
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "serving_device_id": {
                            "description": "End device identifier of the serving end device.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving": {
                        "properties": {
                          "cad_periodicity": {
                            "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                            "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"
                            ],
                            "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                            "type": "string"
                          },
                          "default_channel_index": {
                            "description": "Index of the default wake on radio channel.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "limits": {
                            "properties": {
                              "join_requests": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "notifications": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "overall": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "reset_behavior": {
                                "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                "enum": [
                                  "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                  "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                  "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                  "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                                ],
                                "type": "string"
                              },
                              "uplink_messages": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "uplink_forwarding_rules": {
                            "description": "Configured uplink forwarding rules.",
                            "items": {
                              "properties": {
                                "device_id": {
                                  "description": "End device identifier of the served end device.",
                                  "type": "string"
                                },
                                "last_w_f_cnt": {
                                  "description": "Last wake on radio frame counter used by the served end device.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "limits": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "session_key_id": {
                                  "description": "Session key ID of the session keys used to derive the root relay session key.",
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "rx1_data_rate_offset": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx1_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_frequency": {
                    "description": "Frequency for Rx2 (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "uplink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "desired_parameters": {
                "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
                "properties": {
                  "adr_ack_delay": {
                    "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_delay_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_DELAY_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_ack_limit": {
                    "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_limit_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_LIMIT_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "adr_nb_trans": {
                    "description": "ADR: number of retransmissions.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_tx_power_index": {
                    "description": "ADR: transmission power index to use.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "beacon_frequency": {
                    "description": "Frequency of the class B beacon (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "channels": {
                    "description": "Configured uplink channels and optionally Rx1 frequency.",
                    "items": {
                      "properties": {
                        "downlink_frequency": {
                          "description": "Downlink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "enable_uplink": {
                          "description": "Channel can be used by device for uplink.",
                          "type": "boolean"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_frequency": {
                          "description": "Uplink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "downlink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "max_duty_cycle": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "max_eirp": {
                    "description": "Maximum EIRP (dBm).",
                    "format": "float",
                    "type": "number"
                  },
                  "ping_slot_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "ping_slot_data_rate_index_value": {
                    "properties": {
                      "value": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "ping_slot_frequency": {
                    "description": "Frequency of the class B ping slot (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "rejoin_count_periodicity": {
                    "default": "REJOIN_COUNT_16",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rejoin_time_periodicity": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "relay": {
                    "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                    "properties": {
                      "served": {
                        "properties": {
                          "always": {
                            "type": "object"
                          },
                          "backoff": {
                            "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "dynamic": {
                            "properties": {
                              "smart_enable_level": {
                                "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                "enum": [
                                  "RELAY_SMART_ENABLE_LEVEL_8",
                                  "RELAY_SMART_ENABLE_LEVEL_16",
                                  "RELAY_SMART_ENABLE_LEVEL_32",
                                  "RELAY_SMART_ENABLE_LEVEL_64"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "end_device_controlled": {
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "serving_device_id": {
                            "description": "End device identifier of the serving end device.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving": {
                        "properties": {
                          "cad_periodicity": {
                            "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                            "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"
                            ],
                            "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                            "type": "string"
                          },
                          "default_channel_index": {
                            "description": "Index of the default wake on radio channel.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "limits": {
                            "properties": {
                              "join_requests": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "notifications": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "overall": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "reset_behavior": {
                                "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                "enum": [
                                  "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                  "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                  "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                  "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                                ],
                                "type": "string"
                              },
                              "uplink_messages": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "uplink_forwarding_rules": {
                            "description": "Configured uplink forwarding rules.",
                            "items": {
                              "properties": {
                                "device_id": {
                                  "description": "End device identifier of the served end device.",
                                  "type": "string"
                                },
                                "last_w_f_cnt": {
                                  "description": "Last wake on radio frame counter used by the served end device.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "limits": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "session_key_id": {
                                  "description": "Session key ID of the session keys used to derive the root relay session key.",
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "rx1_data_rate_offset": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx1_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_frequency": {
                    "description": "Frequency for Rx2 (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "uplink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "device_class": {
                "default": "CLASS_A",
                "enum": [
                  "CLASS_A",
                  "CLASS_B",
                  "CLASS_C"
                ],
                "type": "string"
              },
              "last_adr_change_f_cnt_up": {
                "description": "Frame counter of uplink, which confirmed the last ADR parameter change.",
                "format": "int64",
                "type": "integer"
              },
              "last_confirmed_downlink_at": {
                "description": "Time when the last confirmed downlink message or MAC command was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "last_dev_status_f_cnt_up": {
                "description": "Frame counter value of last uplink containing DevStatusAns.",
                "format": "int64",
                "type": "integer"
              },
              "last_downlink_at": {
                "description": "Time when the last downlink message was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "last_network_initiated_downlink_at": {
                "description": "Time when the last network-initiated downlink message was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "lorawan_version": {
                "default": "MAC_UNKNOWN",
                "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"
                ],
                "type": "string"
              },
              "pending_application_downlink": {
                "properties": {
                  "attributes": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "Attributes for devices, set by the Application Server while handling the message.",
                    "type": "object"
                  },
                  "class_b_c": {
                    "properties": {
                      "absolute_time": {
                        "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                        "format": "date-time",
                        "type": "string"
                      },
                      "gateways": {
                        "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                        "items": {
                          "properties": {
                            "antenna_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "gateway_ids": {
                              "properties": {
                                "eui": {
                                  "description": "Secondary identifier, which can only be used in specific requests.",
                                  "example": "70B3D57ED000ABCD",
                                  "format": "string",
                                  "type": "string"
                                },
                                "gateway_id": {
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "group_index": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  },
                  "confirmed": {
                    "type": "boolean"
                  },
                  "confirmed_retry": {
                    "properties": {
                      "attempt": {
                        "description": "The number of attempted confirmed downlink acknowledgements.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_attempts": {
                        "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "correlation_ids": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "decoded_payload": {
                    "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                    "type": "object"
                  },
                  "decoded_payload_warnings": {
                    "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "f_cnt": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "f_port": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "frm_payload": {
                    "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                    "format": "byte",
                    "type": "string"
                  },
                  "locations": {
                    "additionalProperties": {
                      "properties": {
                        "accuracy": {
                          "description": "The accuracy of the location (meters).",
                          "format": "int32",
                          "type": "integer"
                        },
                        "altitude": {
                          "description": "The altitude (meters), where 0 is the mean sea level.",
                          "format": "int32",
                          "type": "integer"
                        },
                        "latitude": {
                          "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                          "format": "double",
                          "type": "number"
                        },
                        "longitude": {
                          "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                          "format": "double",
                          "type": "number"
                        },
                        "source": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "description": "End device location metadata, set by the Application Server while handling the message.",
                    "type": "object"
                  },
                  "network_ids": {
                    "description": "Identifies a Network Server.",
                    "properties": {
                      "cluster_address": {
                        "description": "Cluster address of the Network Server.",
                        "type": "string"
                      },
                      "cluster_id": {
                        "description": "Cluster identifier of the Network Server.",
                        "type": "string"
                      },
                      "net_id": {
                        "description": "LoRa Alliance NetID.",
                        "example": "000013",
                        "format": "string",
                        "type": "string"
                      },
                      "ns_id": {
                        "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                        "example": "70B3D57ED000ABCD",
                        "format": "string",
                        "type": "string"
                      },
                      "tenant_address": {
                        "description": "Optional tenant address for multi-tenant deployments.",
                        "type": "string"
                      },
                      "tenant_id": {
                        "description": "Optional tenant identifier for multi-tenant deployments.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "priority": {
                    "default": "LOWEST",
                    "enum": [
                      "LOWEST",
                      "LOW",
                      "BELOW_NORMAL",
                      "NORMAL",
                      "ABOVE_NORMAL",
                      "HIGH",
                      "HIGHEST"
                    ],
                    "type": "string"
                  },
                  "session_key_id": {
                    "description": "Join Server issued identifier for the session keys used by this downlink.",
                    "format": "byte",
                    "type": "string"
                  },
                  "version_ids": {
                    "description": "Identifies an end device model with version information.",
                    "properties": {
                      "band_id": {
                        "type": "string"
                      },
                      "brand_id": {
                        "type": "string"
                      },
                      "firmware_version": {
                        "type": "string"
                      },
                      "hardware_version": {
                        "type": "string"
                      },
                      "model_id": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "pending_join_request": {
                "properties": {
                  "cf_list": {
                    "properties": {
                      "ch_masks": {
                        "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                        "items": {
                          "type": "boolean"
                        },
                        "type": "array"
                      },
                      "freq": {
                        "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                        "items": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "type": "array"
                      },
                      "type": {
                        "default": "FREQUENCIES",
                        "enum": [
                          "FREQUENCIES",
                          "CHANNEL_MASKS"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "downlink_settings": {
                    "properties": {
                      "opt_neg": {
                        "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                        "type": "boolean"
                      },
                      "rx1_dr_offset": {
                        "default": "DATA_RATE_OFFSET_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "rx2_dr": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "rx_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "pending_relay_downlink": {
                "properties": {
                  "raw_payload": {
                    "format": "byte",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "pending_requests": {
                "description": "Pending MAC requests(i.e. sent requests, for which no response has been received yet).\nRegenerated on each downlink.",
                "items": {
                  "properties": {
                    "adr_param_setup_req": {
                      "properties": {
                        "adr_ack_delay_exponent": {
                          "default": "ADR_ACK_DELAY_1",
                          "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"
                          ],
                          "type": "string"
                        },
                        "adr_ack_limit_exponent": {
                          "default": "ADR_ACK_LIMIT_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_ans": {
                      "properties": {
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_req": {
                      "properties": {
                        "frequency": {
                          "description": "Frequency of the Class B beacons (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_timing_ans": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "delay": {
                          "description": "(uint16) See LoRaWAN specification.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "cid": {
                      "default": "CID_RFU_0",
                      "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"
                      ],
                      "title": "- CID_BEACON_TIMING: Deprecated",
                      "type": "string"
                    },
                    "dev_status_ans": {
                      "properties": {
                        "battery": {
                          "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "SNR of the last downlink (dB; [-32, +31]).",
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_conf": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_ind": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_time_ans": {
                      "properties": {
                        "time": {
                          "format": "date-time",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_ans": {
                      "properties": {
                        "channel_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Downlink channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "duty_cycle_req": {
                      "properties": {
                        "max_duty_cycle": {
                          "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%.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "force_rejoin_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_retries": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "period_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rejoin_type": {
                          "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.",
                          "enum": [
                            "CONTEXT",
                            "SESSION",
                            "KEYS"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_ans": {
                      "properties": {
                        "channel_mask_ack": {
                          "type": "boolean"
                        },
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "tx_power_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_req": {
                      "properties": {
                        "channel_mask": {
                          "items": {
                            "type": "boolean"
                          },
                          "type": "array"
                        },
                        "channel_mask_control": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "nb_trans": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "tx_power_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "link_check_ans": {
                      "properties": {
                        "gateway_count": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_ans": {
                      "properties": {
                        "data_rate_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_ans": {
                      "properties": {
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "frequency": {
                          "description": "Ping slot channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_info_req": {
                      "properties": {
                        "period": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "raw_payload": {
                      "format": "byte",
                      "type": "string"
                    },
                    "rejoin_param_setup_ans": {
                      "properties": {
                        "max_time_exponent_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rejoin_param_setup_req": {
                      "properties": {
                        "max_count_exponent": {
                          "default": "REJOIN_COUNT_16",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_time_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_ans": {
                      "properties": {
                        "cad_periodicity_ack": {
                          "type": "boolean"
                        },
                        "default_channel_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_ack_offset_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "cad_periodicity": {
                              "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                              "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"
                              ],
                              "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                              "type": "string"
                            },
                            "default_channel_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_ans": {
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_req": {
                      "properties": {
                        "global_uplink_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "notify_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "overall_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "reset_limit_counter": {
                          "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                          "enum": [
                            "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                            "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                            "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_ans": {
                      "properties": {
                        "rule_index_ack": {
                          "type": "boolean"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_req": {
                      "properties": {
                        "action": {
                          "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                          "enum": [
                            "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                            "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                          ],
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_ans": {
                      "properties": {
                        "backoff_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "always": {
                              "type": "object"
                            },
                            "backoff": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "dynamic": {
                              "properties": {
                                "smart_enable_level": {
                                  "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                  "enum": [
                                    "RELAY_SMART_ENABLE_LEVEL_8",
                                    "RELAY_SMART_ENABLE_LEVEL_16",
                                    "RELAY_SMART_ENABLE_LEVEL_32",
                                    "RELAY_SMART_ENABLE_LEVEL_64"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "end_device_controlled": {
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "serving_device_id": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_notify_new_end_device_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "rssi": {
                          "format": "int32",
                          "type": "integer"
                        },
                        "snr": {
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_update_uplink_list_ans": {
                      "type": "object"
                    },
                    "relay_update_uplink_list_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "device_id": {
                          "type": "string"
                        },
                        "forward_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "root_wor_s_key": {
                          "example": "0123456789ABCDEF0123456789ABCDEF",
                          "format": "string",
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "session_key_id": {
                          "format": "byte",
                          "type": "string"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "reset_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "reset_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_ans": {
                      "properties": {
                        "rx1_data_rate_offset_ack": {
                          "type": "boolean"
                        },
                        "rx2_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "rx2_frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_req": {
                      "properties": {
                        "rx1_data_rate_offset": {
                          "default": "DATA_RATE_OFFSET_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_frequency": {
                          "description": "Rx2 frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_timing_setup_req": {
                      "properties": {
                        "delay": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "tx_param_setup_req": {
                      "properties": {
                        "downlink_dwell_time": {
                          "type": "boolean"
                        },
                        "max_eirp_index": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_dwell_time": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "ping_slot_periodicity": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "queued_join_accept": {
                "properties": {
                  "correlation_ids": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "dev_addr": {
                    "example": "2600ABCD",
                    "format": "string",
                    "type": "string"
                  },
                  "keys": {
                    "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
                    "properties": {
                      "app_s_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "f_nwk_s_int_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "nwk_s_enc_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "s_nwk_s_int_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "session_key_id": {
                        "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                        "format": "byte",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "net_id": {
                    "example": "000013",
                    "format": "string",
                    "type": "string"
                  },
                  "payload": {
                    "description": "Payload of the join-accept received from Join Server.",
                    "format": "byte",
                    "type": "string"
                  },
                  "request": {
                    "properties": {
                      "cf_list": {
                        "properties": {
                          "ch_masks": {
                            "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                            "items": {
                              "type": "boolean"
                            },
                            "type": "array"
                          },
                          "freq": {
                            "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                            "items": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "type": "array"
                          },
                          "type": {
                            "default": "FREQUENCIES",
                            "enum": [
                              "FREQUENCIES",
                              "CHANNEL_MASKS"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "downlink_settings": {
                        "properties": {
                          "opt_neg": {
                            "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                            "type": "boolean"
                          },
                          "rx1_dr_offset": {
                            "default": "DATA_RATE_OFFSET_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "rx2_dr": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rx_delay": {
                        "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.",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "queued_responses": {
                "description": "Queued MAC responses.\nRegenerated on each uplink.",
                "items": {
                  "properties": {
                    "adr_param_setup_req": {
                      "properties": {
                        "adr_ack_delay_exponent": {
                          "default": "ADR_ACK_DELAY_1",
                          "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"
                          ],
                          "type": "string"
                        },
                        "adr_ack_limit_exponent": {
                          "default": "ADR_ACK_LIMIT_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_ans": {
                      "properties": {
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_req": {
                      "properties": {
                        "frequency": {
                          "description": "Frequency of the Class B beacons (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_timing_ans": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "delay": {
                          "description": "(uint16) See LoRaWAN specification.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "cid": {
                      "default": "CID_RFU_0",
                      "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"
                      ],
                      "title": "- CID_BEACON_TIMING: Deprecated",
                      "type": "string"
                    },
                    "dev_status_ans": {
                      "properties": {
                        "battery": {
                          "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "SNR of the last downlink (dB; [-32, +31]).",
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_conf": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_ind": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_time_ans": {
                      "properties": {
                        "time": {
                          "format": "date-time",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_ans": {
                      "properties": {
                        "channel_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Downlink channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "duty_cycle_req": {
                      "properties": {
                        "max_duty_cycle": {
                          "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%.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "force_rejoin_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_retries": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "period_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rejoin_type": {
                          "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.",
                          "enum": [
                            "CONTEXT",
                            "SESSION",
                            "KEYS"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_ans": {
                      "properties": {
                        "channel_mask_ack": {
                          "type": "boolean"
                        },
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "tx_power_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_req": {
                      "properties": {
                        "channel_mask": {
                          "items": {
                            "type": "boolean"
                          },
                          "type": "array"
                        },
                        "channel_mask_control": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "nb_trans": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "tx_power_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "link_check_ans": {
                      "properties": {
                        "gateway_count": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_ans": {
                      "properties": {
                        "data_rate_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_ans": {
                      "properties": {
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "frequency": {
                          "description": "Ping slot channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_info_req": {
                      "properties": {
                        "period": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "raw_payload": {
                      "format": "byte",
                      "type": "string"
                    },
                    "rejoin_param_setup_ans": {
                      "properties": {
                        "max_time_exponent_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rejoin_param_setup_req": {
                      "properties": {
                        "max_count_exponent": {
                          "default": "REJOIN_COUNT_16",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_time_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_ans": {
                      "properties": {
                        "cad_periodicity_ack": {
                          "type": "boolean"
                        },
                        "default_channel_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_ack_offset_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "cad_periodicity": {
                              "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                              "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"
                              ],
                              "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                              "type": "string"
                            },
                            "default_channel_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_ans": {
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_req": {
                      "properties": {
                        "global_uplink_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "notify_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "overall_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "reset_limit_counter": {
                          "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                          "enum": [
                            "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                            "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                            "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_ans": {
                      "properties": {
                        "rule_index_ack": {
                          "type": "boolean"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_req": {
                      "properties": {
                        "action": {
                          "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                          "enum": [
                            "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                            "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                          ],
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_ans": {
                      "properties": {
                        "backoff_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "always": {
                              "type": "object"
                            },
                            "backoff": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "dynamic": {
                              "properties": {
                                "smart_enable_level": {
                                  "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                  "enum": [
                                    "RELAY_SMART_ENABLE_LEVEL_8",
                                    "RELAY_SMART_ENABLE_LEVEL_16",
                                    "RELAY_SMART_ENABLE_LEVEL_32",
                                    "RELAY_SMART_ENABLE_LEVEL_64"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "end_device_controlled": {
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "serving_device_id": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_notify_new_end_device_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "rssi": {
                          "format": "int32",
                          "type": "integer"
                        },
                        "snr": {
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_update_uplink_list_ans": {
                      "type": "object"
                    },
                    "relay_update_uplink_list_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "device_id": {
                          "type": "string"
                        },
                        "forward_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "root_wor_s_key": {
                          "example": "0123456789ABCDEF0123456789ABCDEF",
                          "format": "string",
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "session_key_id": {
                          "format": "byte",
                          "type": "string"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "reset_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "reset_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_ans": {
                      "properties": {
                        "rx1_data_rate_offset_ack": {
                          "type": "boolean"
                        },
                        "rx2_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "rx2_frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_req": {
                      "properties": {
                        "rx1_data_rate_offset": {
                          "default": "DATA_RATE_OFFSET_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_frequency": {
                          "description": "Rx2 frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_timing_setup_req": {
                      "properties": {
                        "delay": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "tx_param_setup_req": {
                      "properties": {
                        "downlink_dwell_time": {
                          "type": "boolean"
                        },
                        "max_eirp_index": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_dwell_time": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "recent_downlinks": {
                "description": "Recent data downlink messages sorted by time.\nThe number of messages stored may depend on configuration.",
                "items": {
                  "description": "A minimal DownlinkMessage definition which is binary compatible with the top level DownlinkMessage message.\nUsed for type safe recent downlink storage.",
                  "properties": {
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "payload": {
                      "properties": {
                        "m_hdr": {
                          "properties": {
                            "m_type": {
                              "default": "JOIN_REQUEST",
                              "enum": [
                                "JOIN_REQUEST",
                                "JOIN_ACCEPT",
                                "UNCONFIRMED_UP",
                                "UNCONFIRMED_DOWN",
                                "CONFIRMED_UP",
                                "CONFIRMED_DOWN",
                                "REJOIN_REQUEST",
                                "PROPRIETARY"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "mac_payload": {
                          "properties": {
                            "f_port": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "full_f_cnt": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "recent_mac_command_identifiers": {
                "description": "MAC command identifiers sent by the end device in the last received uplink.\nThe Network Server may choose to store only certain types of MAC\ncommand identifiers in the underlying implementation.",
                "items": {
                  "default": "CID_RFU_0",
                  "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"
                  ],
                  "title": "- CID_BEACON_TIMING: Deprecated",
                  "type": "string"
                },
                "type": "array"
              },
              "recent_uplinks": {
                "description": "Recent data uplink messages sorted by time.\nThe number of messages stored may depend on configuration.",
                "items": {
                  "description": "A minimal UplinkMessage definition which is binary compatible with the top level UplinkMessage message.\nUsed for type safe recent uplink storage.",
                  "properties": {
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "device_channel_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "payload": {
                      "properties": {
                        "join_accept_payload": {
                          "properties": {
                            "cf_list": {
                              "properties": {
                                "ch_masks": {
                                  "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                                  "items": {
                                    "type": "boolean"
                                  },
                                  "type": "array"
                                },
                                "freq": {
                                  "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                                  "items": {
                                    "format": "int64",
                                    "type": "integer"
                                  },
                                  "type": "array"
                                },
                                "type": {
                                  "default": "FREQUENCIES",
                                  "enum": [
                                    "FREQUENCIES",
                                    "CHANNEL_MASKS"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "dev_addr": {
                              "example": "2600ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "dl_settings": {
                              "properties": {
                                "opt_neg": {
                                  "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                                  "type": "boolean"
                                },
                                "rx1_dr_offset": {
                                  "default": "DATA_RATE_OFFSET_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "rx2_dr": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "encrypted": {
                              "format": "byte",
                              "type": "string"
                            },
                            "join_nonce": {
                              "example": "ABCDEF",
                              "format": "string",
                              "type": "string"
                            },
                            "net_id": {
                              "example": "000013",
                              "format": "string",
                              "type": "string"
                            },
                            "rx_delay": {
                              "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.",
                              "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"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_payload": {
                          "properties": {
                            "dev_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "dev_nonce": {
                              "example": "ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "join_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "m_hdr": {
                          "properties": {
                            "m_type": {
                              "default": "JOIN_REQUEST",
                              "enum": [
                                "JOIN_REQUEST",
                                "JOIN_ACCEPT",
                                "UNCONFIRMED_UP",
                                "UNCONFIRMED_DOWN",
                                "CONFIRMED_UP",
                                "CONFIRMED_DOWN",
                                "REJOIN_REQUEST",
                                "PROPRIETARY"
                              ],
                              "type": "string"
                            },
                            "major": {
                              "default": "LORAWAN_R1",
                              "enum": [
                                "LORAWAN_R1"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "mac_payload": {
                          "properties": {
                            "decoded_payload": {
                              "type": "object"
                            },
                            "f_hdr": {
                              "properties": {
                                "dev_addr": {
                                  "example": "2600ABCD",
                                  "format": "string",
                                  "type": "string"
                                },
                                "f_cnt": {
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "f_ctrl": {
                                  "properties": {
                                    "ack": {
                                      "type": "boolean"
                                    },
                                    "adr": {
                                      "type": "boolean"
                                    },
                                    "adr_ack_req": {
                                      "description": "Only on uplink.",
                                      "type": "boolean"
                                    },
                                    "class_b": {
                                      "description": "Only on uplink.",
                                      "type": "boolean"
                                    },
                                    "f_pending": {
                                      "description": "Only on downlink.",
                                      "type": "boolean"
                                    }
                                  },
                                  "type": "object"
                                },
                                "f_opts": {
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "f_port": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "frm_payload": {
                              "format": "byte",
                              "type": "string"
                            },
                            "full_f_cnt": {
                              "description": "Full 32-bit FCnt value. Used internally by Network Server.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "mic": {
                          "format": "byte",
                          "type": "string"
                        },
                        "rejoin_request_payload": {
                          "properties": {
                            "dev_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "join_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "net_id": {
                              "example": "000013",
                              "format": "string",
                              "type": "string"
                            },
                            "rejoin_cnt": {
                              "description": "Contains RJCount0 or RJCount1 depending on rejoin_type.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "rejoin_type": {
                              "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.",
                              "enum": [
                                "CONTEXT",
                                "SESSION",
                                "KEYS"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "title": "Message represents a LoRaWAN message",
                      "type": "object"
                    },
                    "received_at": {
                      "format": "date-time",
                      "type": "string"
                    },
                    "rx_metadata": {
                      "items": {
                        "properties": {
                          "channel_rssi": {
                            "format": "float",
                            "type": "number"
                          },
                          "downlink_path_constraint": {
                            "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.",
                            "enum": [
                              "DOWNLINK_PATH_CONSTRAINT_NONE",
                              "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
                              "DOWNLINK_PATH_CONSTRAINT_NEVER"
                            ],
                            "type": "string"
                          },
                          "gateway_ids": {
                            "properties": {
                              "eui": {
                                "description": "Secondary identifier, which can only be used in specific requests.",
                                "example": "70B3D57ED000ABCD",
                                "format": "string",
                                "type": "string"
                              },
                              "gateway_id": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "packet_broker": {
                            "type": "object"
                          },
                          "relay": {
                            "type": "object"
                          },
                          "snr": {
                            "format": "float",
                            "type": "number"
                          },
                          "uplink_token": {
                            "format": "byte",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "settings": {
                      "properties": {
                        "data_rate": {
                          "properties": {
                            "fsk": {
                              "properties": {
                                "bit_rate": {
                                  "description": "Bit rate (bps).",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "lora": {
                              "properties": {
                                "bandwidth": {
                                  "description": "Bandwidth (Hz).",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "coding_rate": {
                                  "type": "string"
                                },
                                "spreading_factor": {
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "lrfhss": {
                              "properties": {
                                "coding_rate": {
                                  "type": "string"
                                },
                                "modulation_type": {
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "operating_channel_width": {
                                  "description": "Operating Channel Width (Hz).",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "rejected_adr_data_rate_indexes": {
                "description": "ADR Data rate index values rejected by the device.\nReset each time `current_parameters.channels` change.\nElements are sorted in ascending order.",
                "items": {
                  "default": "DATA_RATE_0",
                  "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"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              "rejected_adr_tx_power_indexes": {
                "description": "ADR TX output power index values rejected by the device.\nElements are sorted in ascending order.",
                "items": {
                  "format": "int64",
                  "type": "integer"
                },
                "type": "array"
              },
              "rejected_data_rate_ranges": {
                "additionalProperties": {
                  "properties": {
                    "ranges": {
                      "items": {
                        "properties": {
                          "max_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "min_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "description": "Data rate ranges rejected by the device per frequency.",
                "type": "object"
              },
              "rejected_frequencies": {
                "description": "Frequencies rejected by the device.",
                "items": {
                  "format": "uint64",
                  "type": "string"
                },
                "type": "array"
              },
              "rx_windows_available": {
                "description": "Whether or not Rx windows are expected to be open.\nSet to true every time an uplink is received.\nSet to false every time a successful downlink scheduling attempt is made.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "max_frequency": {
            "description": "Maximum frequency the device is capable of using (Hz). Stored in Network Server.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "format": "uint64",
            "type": "string"
          },
          "min_frequency": {
            "description": "Minimum frequency the device is capable of using (Hz). Stored in Network Server.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "format": "uint64",
            "type": "string"
          },
          "multicast": {
            "description": "Indicates whether this device represents a multicast group.",
            "type": "boolean"
          },
          "name": {
            "description": "Friendly name of the device. Stored in Entity Registry.",
            "type": "string"
          },
          "net_id": {
            "description": "Home NetID. Stored in Join Server.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "network_server_address": {
            "description": "The address of the Network Server where this device is supposed to be registered.\nStored in Entity Registry and Join Server.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
            "type": "string"
          },
          "network_server_kek_label": {
            "description": "The KEK label of the Network Server to use for wrapping network session keys.\nStored in Join Server.",
            "type": "string"
          },
          "pending_mac_state": {
            "description": "MACState represents the state of MAC layer of the device.\nMACState is reset on each join for OTAA or ResetInd for ABP devices.\nThis is used internally by the Network Server.",
            "properties": {
              "current_parameters": {
                "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
                "properties": {
                  "adr_ack_delay": {
                    "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_delay_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_DELAY_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_ack_limit": {
                    "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_limit_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_LIMIT_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "adr_nb_trans": {
                    "description": "ADR: number of retransmissions.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_tx_power_index": {
                    "description": "ADR: transmission power index to use.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "beacon_frequency": {
                    "description": "Frequency of the class B beacon (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "channels": {
                    "description": "Configured uplink channels and optionally Rx1 frequency.",
                    "items": {
                      "properties": {
                        "downlink_frequency": {
                          "description": "Downlink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "enable_uplink": {
                          "description": "Channel can be used by device for uplink.",
                          "type": "boolean"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_frequency": {
                          "description": "Uplink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "downlink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "max_duty_cycle": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "max_eirp": {
                    "description": "Maximum EIRP (dBm).",
                    "format": "float",
                    "type": "number"
                  },
                  "ping_slot_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "ping_slot_data_rate_index_value": {
                    "properties": {
                      "value": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "ping_slot_frequency": {
                    "description": "Frequency of the class B ping slot (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "rejoin_count_periodicity": {
                    "default": "REJOIN_COUNT_16",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rejoin_time_periodicity": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "relay": {
                    "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                    "properties": {
                      "served": {
                        "properties": {
                          "always": {
                            "type": "object"
                          },
                          "backoff": {
                            "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "dynamic": {
                            "properties": {
                              "smart_enable_level": {
                                "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                "enum": [
                                  "RELAY_SMART_ENABLE_LEVEL_8",
                                  "RELAY_SMART_ENABLE_LEVEL_16",
                                  "RELAY_SMART_ENABLE_LEVEL_32",
                                  "RELAY_SMART_ENABLE_LEVEL_64"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "end_device_controlled": {
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "serving_device_id": {
                            "description": "End device identifier of the serving end device.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving": {
                        "properties": {
                          "cad_periodicity": {
                            "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                            "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"
                            ],
                            "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                            "type": "string"
                          },
                          "default_channel_index": {
                            "description": "Index of the default wake on radio channel.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "limits": {
                            "properties": {
                              "join_requests": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "notifications": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "overall": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "reset_behavior": {
                                "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                "enum": [
                                  "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                  "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                  "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                  "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                                ],
                                "type": "string"
                              },
                              "uplink_messages": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "uplink_forwarding_rules": {
                            "description": "Configured uplink forwarding rules.",
                            "items": {
                              "properties": {
                                "device_id": {
                                  "description": "End device identifier of the served end device.",
                                  "type": "string"
                                },
                                "last_w_f_cnt": {
                                  "description": "Last wake on radio frame counter used by the served end device.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "limits": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "session_key_id": {
                                  "description": "Session key ID of the session keys used to derive the root relay session key.",
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "rx1_data_rate_offset": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx1_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_frequency": {
                    "description": "Frequency for Rx2 (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "uplink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "desired_parameters": {
                "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
                "properties": {
                  "adr_ack_delay": {
                    "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_delay_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_DELAY_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_ack_limit": {
                    "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_limit_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_LIMIT_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "adr_nb_trans": {
                    "description": "ADR: number of retransmissions.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_tx_power_index": {
                    "description": "ADR: transmission power index to use.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "beacon_frequency": {
                    "description": "Frequency of the class B beacon (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "channels": {
                    "description": "Configured uplink channels and optionally Rx1 frequency.",
                    "items": {
                      "properties": {
                        "downlink_frequency": {
                          "description": "Downlink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "enable_uplink": {
                          "description": "Channel can be used by device for uplink.",
                          "type": "boolean"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_frequency": {
                          "description": "Uplink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "downlink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "max_duty_cycle": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "max_eirp": {
                    "description": "Maximum EIRP (dBm).",
                    "format": "float",
                    "type": "number"
                  },
                  "ping_slot_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "ping_slot_data_rate_index_value": {
                    "properties": {
                      "value": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "ping_slot_frequency": {
                    "description": "Frequency of the class B ping slot (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "rejoin_count_periodicity": {
                    "default": "REJOIN_COUNT_16",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rejoin_time_periodicity": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "relay": {
                    "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                    "properties": {
                      "served": {
                        "properties": {
                          "always": {
                            "type": "object"
                          },
                          "backoff": {
                            "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "dynamic": {
                            "properties": {
                              "smart_enable_level": {
                                "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                "enum": [
                                  "RELAY_SMART_ENABLE_LEVEL_8",
                                  "RELAY_SMART_ENABLE_LEVEL_16",
                                  "RELAY_SMART_ENABLE_LEVEL_32",
                                  "RELAY_SMART_ENABLE_LEVEL_64"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "end_device_controlled": {
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "serving_device_id": {
                            "description": "End device identifier of the serving end device.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving": {
                        "properties": {
                          "cad_periodicity": {
                            "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                            "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"
                            ],
                            "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                            "type": "string"
                          },
                          "default_channel_index": {
                            "description": "Index of the default wake on radio channel.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "limits": {
                            "properties": {
                              "join_requests": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "notifications": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "overall": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "reset_behavior": {
                                "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                "enum": [
                                  "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                  "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                  "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                  "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                                ],
                                "type": "string"
                              },
                              "uplink_messages": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "uplink_forwarding_rules": {
                            "description": "Configured uplink forwarding rules.",
                            "items": {
                              "properties": {
                                "device_id": {
                                  "description": "End device identifier of the served end device.",
                                  "type": "string"
                                },
                                "last_w_f_cnt": {
                                  "description": "Last wake on radio frame counter used by the served end device.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "limits": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "session_key_id": {
                                  "description": "Session key ID of the session keys used to derive the root relay session key.",
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "rx1_data_rate_offset": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx1_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_frequency": {
                    "description": "Frequency for Rx2 (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "uplink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "device_class": {
                "default": "CLASS_A",
                "enum": [
                  "CLASS_A",
                  "CLASS_B",
                  "CLASS_C"
                ],
                "type": "string"
              },
              "last_adr_change_f_cnt_up": {
                "description": "Frame counter of uplink, which confirmed the last ADR parameter change.",
                "format": "int64",
                "type": "integer"
              },
              "last_confirmed_downlink_at": {
                "description": "Time when the last confirmed downlink message or MAC command was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "last_dev_status_f_cnt_up": {
                "description": "Frame counter value of last uplink containing DevStatusAns.",
                "format": "int64",
                "type": "integer"
              },
              "last_downlink_at": {
                "description": "Time when the last downlink message was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "last_network_initiated_downlink_at": {
                "description": "Time when the last network-initiated downlink message was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "lorawan_version": {
                "default": "MAC_UNKNOWN",
                "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"
                ],
                "type": "string"
              },
              "pending_application_downlink": {
                "properties": {
                  "attributes": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "Attributes for devices, set by the Application Server while handling the message.",
                    "type": "object"
                  },
                  "class_b_c": {
                    "properties": {
                      "absolute_time": {
                        "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                        "format": "date-time",
                        "type": "string"
                      },
                      "gateways": {
                        "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                        "items": {
                          "properties": {
                            "antenna_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "gateway_ids": {
                              "properties": {
                                "eui": {
                                  "description": "Secondary identifier, which can only be used in specific requests.",
                                  "example": "70B3D57ED000ABCD",
                                  "format": "string",
                                  "type": "string"
                                },
                                "gateway_id": {
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "group_index": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  },
                  "confirmed": {
                    "type": "boolean"
                  },
                  "confirmed_retry": {
                    "properties": {
                      "attempt": {
                        "description": "The number of attempted confirmed downlink acknowledgements.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_attempts": {
                        "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "correlation_ids": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "decoded_payload": {
                    "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                    "type": "object"
                  },
                  "decoded_payload_warnings": {
                    "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "f_cnt": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "f_port": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "frm_payload": {
                    "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                    "format": "byte",
                    "type": "string"
                  },
                  "locations": {
                    "additionalProperties": {
                      "properties": {
                        "accuracy": {
                          "description": "The accuracy of the location (meters).",
                          "format": "int32",
                          "type": "integer"
                        },
                        "altitude": {
                          "description": "The altitude (meters), where 0 is the mean sea level.",
                          "format": "int32",
                          "type": "integer"
                        },
                        "latitude": {
                          "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                          "format": "double",
                          "type": "number"
                        },
                        "longitude": {
                          "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                          "format": "double",
                          "type": "number"
                        },
                        "source": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "description": "End device location metadata, set by the Application Server while handling the message.",
                    "type": "object"
                  },
                  "network_ids": {
                    "description": "Identifies a Network Server.",
                    "properties": {
                      "cluster_address": {
                        "description": "Cluster address of the Network Server.",
                        "type": "string"
                      },
                      "cluster_id": {
                        "description": "Cluster identifier of the Network Server.",
                        "type": "string"
                      },
                      "net_id": {
                        "description": "LoRa Alliance NetID.",
                        "example": "000013",
                        "format": "string",
                        "type": "string"
                      },
                      "ns_id": {
                        "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                        "example": "70B3D57ED000ABCD",
                        "format": "string",
                        "type": "string"
                      },
                      "tenant_address": {
                        "description": "Optional tenant address for multi-tenant deployments.",
                        "type": "string"
                      },
                      "tenant_id": {
                        "description": "Optional tenant identifier for multi-tenant deployments.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "priority": {
                    "default": "LOWEST",
                    "enum": [
                      "LOWEST",
                      "LOW",
                      "BELOW_NORMAL",
                      "NORMAL",
                      "ABOVE_NORMAL",
                      "HIGH",
                      "HIGHEST"
                    ],
                    "type": "string"
                  },
                  "session_key_id": {
                    "description": "Join Server issued identifier for the session keys used by this downlink.",
                    "format": "byte",
                    "type": "string"
                  },
                  "version_ids": {
                    "description": "Identifies an end device model with version information.",
                    "properties": {
                      "band_id": {
                        "type": "string"
                      },
                      "brand_id": {
                        "type": "string"
                      },
                      "firmware_version": {
                        "type": "string"
                      },
                      "hardware_version": {
                        "type": "string"
                      },
                      "model_id": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "pending_join_request": {
                "properties": {
                  "cf_list": {
                    "properties": {
                      "ch_masks": {
                        "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                        "items": {
                          "type": "boolean"
                        },
                        "type": "array"
                      },
                      "freq": {
                        "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                        "items": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "type": "array"
                      },
                      "type": {
                        "default": "FREQUENCIES",
                        "enum": [
                          "FREQUENCIES",
                          "CHANNEL_MASKS"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "downlink_settings": {
                    "properties": {
                      "opt_neg": {
                        "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                        "type": "boolean"
                      },
                      "rx1_dr_offset": {
                        "default": "DATA_RATE_OFFSET_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "rx2_dr": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "rx_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "pending_relay_downlink": {
                "properties": {
                  "raw_payload": {
                    "format": "byte",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "pending_requests": {
                "description": "Pending MAC requests(i.e. sent requests, for which no response has been received yet).\nRegenerated on each downlink.",
                "items": {
                  "properties": {
                    "adr_param_setup_req": {
                      "properties": {
                        "adr_ack_delay_exponent": {
                          "default": "ADR_ACK_DELAY_1",
                          "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"
                          ],
                          "type": "string"
                        },
                        "adr_ack_limit_exponent": {
                          "default": "ADR_ACK_LIMIT_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_ans": {
                      "properties": {
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_req": {
                      "properties": {
                        "frequency": {
                          "description": "Frequency of the Class B beacons (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_timing_ans": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "delay": {
                          "description": "(uint16) See LoRaWAN specification.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "cid": {
                      "default": "CID_RFU_0",
                      "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"
                      ],
                      "title": "- CID_BEACON_TIMING: Deprecated",
                      "type": "string"
                    },
                    "dev_status_ans": {
                      "properties": {
                        "battery": {
                          "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "SNR of the last downlink (dB; [-32, +31]).",
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_conf": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_ind": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_time_ans": {
                      "properties": {
                        "time": {
                          "format": "date-time",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_ans": {
                      "properties": {
                        "channel_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Downlink channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "duty_cycle_req": {
                      "properties": {
                        "max_duty_cycle": {
                          "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%.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "force_rejoin_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_retries": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "period_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rejoin_type": {
                          "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.",
                          "enum": [
                            "CONTEXT",
                            "SESSION",
                            "KEYS"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_ans": {
                      "properties": {
                        "channel_mask_ack": {
                          "type": "boolean"
                        },
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "tx_power_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_req": {
                      "properties": {
                        "channel_mask": {
                          "items": {
                            "type": "boolean"
                          },
                          "type": "array"
                        },
                        "channel_mask_control": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "nb_trans": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "tx_power_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "link_check_ans": {
                      "properties": {
                        "gateway_count": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_ans": {
                      "properties": {
                        "data_rate_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_ans": {
                      "properties": {
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "frequency": {
                          "description": "Ping slot channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_info_req": {
                      "properties": {
                        "period": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "raw_payload": {
                      "format": "byte",
                      "type": "string"
                    },
                    "rejoin_param_setup_ans": {
                      "properties": {
                        "max_time_exponent_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rejoin_param_setup_req": {
                      "properties": {
                        "max_count_exponent": {
                          "default": "REJOIN_COUNT_16",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_time_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_ans": {
                      "properties": {
                        "cad_periodicity_ack": {
                          "type": "boolean"
                        },
                        "default_channel_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_ack_offset_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "cad_periodicity": {
                              "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                              "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"
                              ],
                              "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                              "type": "string"
                            },
                            "default_channel_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_ans": {
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_req": {
                      "properties": {
                        "global_uplink_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "notify_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "overall_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "reset_limit_counter": {
                          "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                          "enum": [
                            "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                            "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                            "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_ans": {
                      "properties": {
                        "rule_index_ack": {
                          "type": "boolean"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_req": {
                      "properties": {
                        "action": {
                          "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                          "enum": [
                            "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                            "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                          ],
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_ans": {
                      "properties": {
                        "backoff_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "always": {
                              "type": "object"
                            },
                            "backoff": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "dynamic": {
                              "properties": {
                                "smart_enable_level": {
                                  "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                  "enum": [
                                    "RELAY_SMART_ENABLE_LEVEL_8",
                                    "RELAY_SMART_ENABLE_LEVEL_16",
                                    "RELAY_SMART_ENABLE_LEVEL_32",
                                    "RELAY_SMART_ENABLE_LEVEL_64"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "end_device_controlled": {
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "serving_device_id": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_notify_new_end_device_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "rssi": {
                          "format": "int32",
                          "type": "integer"
                        },
                        "snr": {
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_update_uplink_list_ans": {
                      "type": "object"
                    },
                    "relay_update_uplink_list_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "device_id": {
                          "type": "string"
                        },
                        "forward_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "root_wor_s_key": {
                          "example": "0123456789ABCDEF0123456789ABCDEF",
                          "format": "string",
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "session_key_id": {
                          "format": "byte",
                          "type": "string"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "reset_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "reset_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_ans": {
                      "properties": {
                        "rx1_data_rate_offset_ack": {
                          "type": "boolean"
                        },
                        "rx2_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "rx2_frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_req": {
                      "properties": {
                        "rx1_data_rate_offset": {
                          "default": "DATA_RATE_OFFSET_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_frequency": {
                          "description": "Rx2 frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_timing_setup_req": {
                      "properties": {
                        "delay": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "tx_param_setup_req": {
                      "properties": {
                        "downlink_dwell_time": {
                          "type": "boolean"
                        },
                        "max_eirp_index": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_dwell_time": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "ping_slot_periodicity": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "queued_join_accept": {
                "properties": {
                  "correlation_ids": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "dev_addr": {
                    "example": "2600ABCD",
                    "format": "string",
                    "type": "string"
                  },
                  "keys": {
                    "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
                    "properties": {
                      "app_s_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "f_nwk_s_int_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "nwk_s_enc_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "s_nwk_s_int_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "session_key_id": {
                        "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                        "format": "byte",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "net_id": {
                    "example": "000013",
                    "format": "string",
                    "type": "string"
                  },
                  "payload": {
                    "description": "Payload of the join-accept received from Join Server.",
                    "format": "byte",
                    "type": "string"
                  },
                  "request": {
                    "properties": {
                      "cf_list": {
                        "properties": {
                          "ch_masks": {
                            "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                            "items": {
                              "type": "boolean"
                            },
                            "type": "array"
                          },
                          "freq": {
                            "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                            "items": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "type": "array"
                          },
                          "type": {
                            "default": "FREQUENCIES",
                            "enum": [
                              "FREQUENCIES",
                              "CHANNEL_MASKS"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "downlink_settings": {
                        "properties": {
                          "opt_neg": {
                            "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                            "type": "boolean"
                          },
                          "rx1_dr_offset": {
                            "default": "DATA_RATE_OFFSET_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "rx2_dr": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rx_delay": {
                        "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.",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "queued_responses": {
                "description": "Queued MAC responses.\nRegenerated on each uplink.",
                "items": {
                  "properties": {
                    "adr_param_setup_req": {
                      "properties": {
                        "adr_ack_delay_exponent": {
                          "default": "ADR_ACK_DELAY_1",
                          "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"
                          ],
                          "type": "string"
                        },
                        "adr_ack_limit_exponent": {
                          "default": "ADR_ACK_LIMIT_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_ans": {
                      "properties": {
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_req": {
                      "properties": {
                        "frequency": {
                          "description": "Frequency of the Class B beacons (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_timing_ans": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "delay": {
                          "description": "(uint16) See LoRaWAN specification.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "cid": {
                      "default": "CID_RFU_0",
                      "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"
                      ],
                      "title": "- CID_BEACON_TIMING: Deprecated",
                      "type": "string"
                    },
                    "dev_status_ans": {
                      "properties": {
                        "battery": {
                          "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "SNR of the last downlink (dB; [-32, +31]).",
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_conf": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_ind": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_time_ans": {
                      "properties": {
                        "time": {
                          "format": "date-time",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_ans": {
                      "properties": {
                        "channel_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Downlink channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "duty_cycle_req": {
                      "properties": {
                        "max_duty_cycle": {
                          "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%.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "force_rejoin_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_retries": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "period_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rejoin_type": {
                          "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.",
                          "enum": [
                            "CONTEXT",
                            "SESSION",
                            "KEYS"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_ans": {
                      "properties": {
                        "channel_mask_ack": {
                          "type": "boolean"
                        },
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "tx_power_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_req": {
                      "properties": {
                        "channel_mask": {
                          "items": {
                            "type": "boolean"
                          },
                          "type": "array"
                        },
                        "channel_mask_control": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "nb_trans": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "tx_power_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "link_check_ans": {
                      "properties": {
                        "gateway_count": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_ans": {
                      "properties": {
                        "data_rate_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_ans": {
                      "properties": {
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "frequency": {
                          "description": "Ping slot channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_info_req": {
                      "properties": {
                        "period": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "raw_payload": {
                      "format": "byte",
                      "type": "string"
                    },
                    "rejoin_param_setup_ans": {
                      "properties": {
                        "max_time_exponent_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rejoin_param_setup_req": {
                      "properties": {
                        "max_count_exponent": {
                          "default": "REJOIN_COUNT_16",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_time_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_ans": {
                      "properties": {
                        "cad_periodicity_ack": {
                          "type": "boolean"
                        },
                        "default_channel_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_ack_offset_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "cad_periodicity": {
                              "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                              "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"
                              ],
                              "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                              "type": "string"
                            },
                            "default_channel_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_ans": {
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_req": {
                      "properties": {
                        "global_uplink_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "notify_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "overall_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "reset_limit_counter": {
                          "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                          "enum": [
                            "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                            "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                            "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_ans": {
                      "properties": {
                        "rule_index_ack": {
                          "type": "boolean"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_req": {
                      "properties": {
                        "action": {
                          "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                          "enum": [
                            "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                            "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                          ],
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_ans": {
                      "properties": {
                        "backoff_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "always": {
                              "type": "object"
                            },
                            "backoff": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "dynamic": {
                              "properties": {
                                "smart_enable_level": {
                                  "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                  "enum": [
                                    "RELAY_SMART_ENABLE_LEVEL_8",
                                    "RELAY_SMART_ENABLE_LEVEL_16",
                                    "RELAY_SMART_ENABLE_LEVEL_32",
                                    "RELAY_SMART_ENABLE_LEVEL_64"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "end_device_controlled": {
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "serving_device_id": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_notify_new_end_device_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "rssi": {
                          "format": "int32",
                          "type": "integer"
                        },
                        "snr": {
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_update_uplink_list_ans": {
                      "type": "object"
                    },
                    "relay_update_uplink_list_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "device_id": {
                          "type": "string"
                        },
                        "forward_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "root_wor_s_key": {
                          "example": "0123456789ABCDEF0123456789ABCDEF",
                          "format": "string",
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "session_key_id": {
                          "format": "byte",
                          "type": "string"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "reset_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "reset_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_ans": {
                      "properties": {
                        "rx1_data_rate_offset_ack": {
                          "type": "boolean"
                        },
                        "rx2_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "rx2_frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_req": {
                      "properties": {
                        "rx1_data_rate_offset": {
                          "default": "DATA_RATE_OFFSET_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_frequency": {
                          "description": "Rx2 frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_timing_setup_req": {
                      "properties": {
                        "delay": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "tx_param_setup_req": {
                      "properties": {
                        "downlink_dwell_time": {
                          "type": "boolean"
                        },
                        "max_eirp_index": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_dwell_time": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "recent_downlinks": {
                "description": "Recent data downlink messages sorted by time.\nThe number of messages stored may depend on configuration.",
                "items": {
                  "description": "A minimal DownlinkMessage definition which is binary compatible with the top level DownlinkMessage message.\nUsed for type safe recent downlink storage.",
                  "properties": {
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "payload": {
                      "properties": {
                        "m_hdr": {
                          "properties": {
                            "m_type": {
                              "default": "JOIN_REQUEST",
                              "enum": [
                                "JOIN_REQUEST",
                                "JOIN_ACCEPT",
                                "UNCONFIRMED_UP",
                                "UNCONFIRMED_DOWN",
                                "CONFIRMED_UP",
                                "CONFIRMED_DOWN",
                                "REJOIN_REQUEST",
                                "PROPRIETARY"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "mac_payload": {
                          "properties": {
                            "f_port": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "full_f_cnt": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "recent_mac_command_identifiers": {
                "description": "MAC command identifiers sent by the end device in the last received uplink.\nThe Network Server may choose to store only certain types of MAC\ncommand identifiers in the underlying implementation.",
                "items": {
                  "default": "CID_RFU_0",
                  "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"
                  ],
                  "title": "- CID_BEACON_TIMING: Deprecated",
                  "type": "string"
                },
                "type": "array"
              },
              "recent_uplinks": {
                "description": "Recent data uplink messages sorted by time.\nThe number of messages stored may depend on configuration.",
                "items": {
                  "description": "A minimal UplinkMessage definition which is binary compatible with the top level UplinkMessage message.\nUsed for type safe recent uplink storage.",
                  "properties": {
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "device_channel_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "payload": {
                      "properties": {
                        "join_accept_payload": {
                          "properties": {
                            "cf_list": {
                              "properties": {
                                "ch_masks": {
                                  "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                                  "items": {
                                    "type": "boolean"
                                  },
                                  "type": "array"
                                },
                                "freq": {
                                  "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                                  "items": {
                                    "format": "int64",
                                    "type": "integer"
                                  },
                                  "type": "array"
                                },
                                "type": {
                                  "default": "FREQUENCIES",
                                  "enum": [
                                    "FREQUENCIES",
                                    "CHANNEL_MASKS"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "dev_addr": {
                              "example": "2600ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "dl_settings": {
                              "properties": {
                                "opt_neg": {
                                  "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                                  "type": "boolean"
                                },
                                "rx1_dr_offset": {
                                  "default": "DATA_RATE_OFFSET_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "rx2_dr": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "encrypted": {
                              "format": "byte",
                              "type": "string"
                            },
                            "join_nonce": {
                              "example": "ABCDEF",
                              "format": "string",
                              "type": "string"
                            },
                            "net_id": {
                              "example": "000013",
                              "format": "string",
                              "type": "string"
                            },
                            "rx_delay": {
                              "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.",
                              "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"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_payload": {
                          "properties": {
                            "dev_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "dev_nonce": {
                              "example": "ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "join_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "m_hdr": {
                          "properties": {
                            "m_type": {
                              "default": "JOIN_REQUEST",
                              "enum": [
                                "JOIN_REQUEST",
                                "JOIN_ACCEPT",
                                "UNCONFIRMED_UP",
                                "UNCONFIRMED_DOWN",
                                "CONFIRMED_UP",
                                "CONFIRMED_DOWN",
                                "REJOIN_REQUEST",
                                "PROPRIETARY"
                              ],
                              "type": "string"
                            },
                            "major": {
                              "default": "LORAWAN_R1",
                              "enum": [
                                "LORAWAN_R1"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "mac_payload": {
                          "properties": {
                            "decoded_payload": {
                              "type": "object"
                            },
                            "f_hdr": {
                              "properties": {
                                "dev_addr": {
                                  "example": "2600ABCD",
                                  "format": "string",
                                  "type": "string"
                                },
                                "f_cnt": {
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "f_ctrl": {
                                  "properties": {
                                    "ack": {
                                      "type": "boolean"
                                    },
                                    "adr": {
                                      "type": "boolean"
                                    },
                                    "adr_ack_req": {
                                      "description": "Only on uplink.",
                                      "type": "boolean"
                                    },
                                    "class_b": {
                                      "description": "Only on uplink.",
                                      "type": "boolean"
                                    },
                                    "f_pending": {
                                      "description": "Only on downlink.",
                                      "type": "boolean"
                                    }
                                  },
                                  "type": "object"
                                },
                                "f_opts": {
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "f_port": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "frm_payload": {
                              "format": "byte",
                              "type": "string"
                            },
                            "full_f_cnt": {
                              "description": "Full 32-bit FCnt value. Used internally by Network Server.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "mic": {
                          "format": "byte",
                          "type": "string"
                        },
                        "rejoin_request_payload": {
                          "properties": {
                            "dev_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "join_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "net_id": {
                              "example": "000013",
                              "format": "string",
                              "type": "string"
                            },
                            "rejoin_cnt": {
                              "description": "Contains RJCount0 or RJCount1 depending on rejoin_type.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "rejoin_type": {
                              "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.",
                              "enum": [
                                "CONTEXT",
                                "SESSION",
                                "KEYS"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "title": "Message represents a LoRaWAN message",
                      "type": "object"
                    },
                    "received_at": {
                      "format": "date-time",
                      "type": "string"
                    },
                    "rx_metadata": {
                      "items": {
                        "properties": {
                          "channel_rssi": {
                            "format": "float",
                            "type": "number"
                          },
                          "downlink_path_constraint": {
                            "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.",
                            "enum": [
                              "DOWNLINK_PATH_CONSTRAINT_NONE",
                              "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
                              "DOWNLINK_PATH_CONSTRAINT_NEVER"
                            ],
                            "type": "string"
                          },
                          "gateway_ids": {
                            "properties": {
                              "eui": {
                                "description": "Secondary identifier, which can only be used in specific requests.",
                                "example": "70B3D57ED000ABCD",
                                "format": "string",
                                "type": "string"
                              },
                              "gateway_id": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "packet_broker": {
                            "type": "object"
                          },
                          "relay": {
                            "type": "object"
                          },
                          "snr": {
                            "format": "float",
                            "type": "number"
                          },
                          "uplink_token": {
                            "format": "byte",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "settings": {
                      "properties": {
                        "data_rate": {
                          "properties": {
                            "fsk": {
                              "properties": {
                                "bit_rate": {
                                  "description": "Bit rate (bps).",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "lora": {
                              "properties": {
                                "bandwidth": {
                                  "description": "Bandwidth (Hz).",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "coding_rate": {
                                  "type": "string"
                                },
                                "spreading_factor": {
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "lrfhss": {
                              "properties": {
                                "coding_rate": {
                                  "type": "string"
                                },
                                "modulation_type": {
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "operating_channel_width": {
                                  "description": "Operating Channel Width (Hz).",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "rejected_adr_data_rate_indexes": {
                "description": "ADR Data rate index values rejected by the device.\nReset each time `current_parameters.channels` change.\nElements are sorted in ascending order.",
                "items": {
                  "default": "DATA_RATE_0",
                  "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"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              "rejected_adr_tx_power_indexes": {
                "description": "ADR TX output power index values rejected by the device.\nElements are sorted in ascending order.",
                "items": {
                  "format": "int64",
                  "type": "integer"
                },
                "type": "array"
              },
              "rejected_data_rate_ranges": {
                "additionalProperties": {
                  "properties": {
                    "ranges": {
                      "items": {
                        "properties": {
                          "max_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "min_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "description": "Data rate ranges rejected by the device per frequency.",
                "type": "object"
              },
              "rejected_frequencies": {
                "description": "Frequencies rejected by the device.",
                "items": {
                  "format": "uint64",
                  "type": "string"
                },
                "type": "array"
              },
              "rx_windows_available": {
                "description": "Whether or not Rx windows are expected to be open.\nSet to true every time an uplink is received.\nSet to false every time a successful downlink scheduling attempt is made.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "pending_session": {
            "properties": {
              "dev_addr": {
                "description": "Device Address, issued by the Network Server or chosen by device manufacturer in case of testing range (beginning with 00-03).\nKnown by Network Server, Application Server and Join Server. Owned by Network Server.",
                "example": "2600ABCD",
                "format": "string",
                "type": "string"
              },
              "keys": {
                "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
                "properties": {
                  "app_s_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "f_nwk_s_int_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "nwk_s_enc_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "s_nwk_s_int_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "session_key_id": {
                    "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                    "format": "byte",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "last_a_f_cnt_down": {
                "description": "Last application downlink frame counter value used. Application Server only.",
                "format": "int64",
                "type": "integer"
              },
              "last_conf_f_cnt_down": {
                "description": "Frame counter of the last confirmed downlink message sent. Network Server only.",
                "format": "int64",
                "type": "integer"
              },
              "last_f_cnt_up": {
                "description": "Last uplink frame counter value used. Network Server only. Application Server assumes the Network Server checked it.",
                "format": "int64",
                "type": "integer"
              },
              "last_n_f_cnt_down": {
                "description": "Last network downlink frame counter value used. Network Server only.",
                "format": "int64",
                "type": "integer"
              },
              "queued_application_downlinks": {
                "description": "Queued Application downlink messages. Stored in Application Server and Network Server.",
                "items": {
                  "properties": {
                    "attributes": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Attributes for devices, set by the Application Server while handling the message.",
                      "type": "object"
                    },
                    "class_b_c": {
                      "properties": {
                        "absolute_time": {
                          "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                          "format": "date-time",
                          "type": "string"
                        },
                        "gateways": {
                          "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                          "items": {
                            "properties": {
                              "antenna_index": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "gateway_ids": {
                                "properties": {
                                  "eui": {
                                    "description": "Secondary identifier, which can only be used in specific requests.",
                                    "example": "70B3D57ED000ABCD",
                                    "format": "string",
                                    "type": "string"
                                  },
                                  "gateway_id": {
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "group_index": {
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "confirmed": {
                      "type": "boolean"
                    },
                    "confirmed_retry": {
                      "properties": {
                        "attempt": {
                          "description": "The number of attempted confirmed downlink acknowledgements.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "max_attempts": {
                          "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "decoded_payload": {
                      "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                      "type": "object"
                    },
                    "decoded_payload_warnings": {
                      "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "f_cnt": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "f_port": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "frm_payload": {
                      "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                      "format": "byte",
                      "type": "string"
                    },
                    "locations": {
                      "additionalProperties": {
                        "properties": {
                          "accuracy": {
                            "description": "The accuracy of the location (meters).",
                            "format": "int32",
                            "type": "integer"
                          },
                          "altitude": {
                            "description": "The altitude (meters), where 0 is the mean sea level.",
                            "format": "int32",
                            "type": "integer"
                          },
                          "latitude": {
                            "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                            "format": "double",
                            "type": "number"
                          },
                          "longitude": {
                            "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                            "format": "double",
                            "type": "number"
                          },
                          "source": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "description": "End device location metadata, set by the Application Server while handling the message.",
                      "type": "object"
                    },
                    "network_ids": {
                      "description": "Identifies a Network Server.",
                      "properties": {
                        "cluster_address": {
                          "description": "Cluster address of the Network Server.",
                          "type": "string"
                        },
                        "cluster_id": {
                          "description": "Cluster identifier of the Network Server.",
                          "type": "string"
                        },
                        "net_id": {
                          "description": "LoRa Alliance NetID.",
                          "example": "000013",
                          "format": "string",
                          "type": "string"
                        },
                        "ns_id": {
                          "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "tenant_address": {
                          "description": "Optional tenant address for multi-tenant deployments.",
                          "type": "string"
                        },
                        "tenant_id": {
                          "description": "Optional tenant identifier for multi-tenant deployments.",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "priority": {
                      "default": "LOWEST",
                      "enum": [
                        "LOWEST",
                        "LOW",
                        "BELOW_NORMAL",
                        "NORMAL",
                        "ABOVE_NORMAL",
                        "HIGH",
                        "HIGHEST"
                      ],
                      "type": "string"
                    },
                    "session_key_id": {
                      "description": "Join Server issued identifier for the session keys used by this downlink.",
                      "format": "byte",
                      "type": "string"
                    },
                    "version_ids": {
                      "description": "Identifies an end device model with version information.",
                      "properties": {
                        "band_id": {
                          "type": "string"
                        },
                        "brand_id": {
                          "type": "string"
                        },
                        "firmware_version": {
                          "type": "string"
                        },
                        "hardware_version": {
                          "type": "string"
                        },
                        "model_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "started_at": {
                "description": "Time when the session started. Network Server only.",
                "format": "date-time",
                "type": "string"
              }
            },
            "type": "object"
          },
          "picture": {
            "properties": {
              "embedded": {
                "properties": {
                  "data": {
                    "description": "Picture data. A data URI can be constructed as follows:\n`data:\u003cmime_type\u003e;base64,\u003cdata\u003e`.",
                    "format": "byte",
                    "type": "string"
                  },
                  "mime_type": {
                    "description": "MIME type of the picture.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "sizes": {
                "additionalProperties": {
                  "type": "string"
                },
                "description": "URLs of the picture for different sizes, if available on a CDN.",
                "type": "object"
              }
            },
            "type": "object"
          },
          "power_state": {
            "default": "POWER_UNKNOWN",
            "description": "Power state of the device.",
            "enum": [
              "POWER_UNKNOWN",
              "POWER_BATTERY",
              "POWER_EXTERNAL"
            ],
            "type": "string"
          },
          "provisioner_id": {
            "description": "ID of the provisioner. Stored in Join Server.",
            "type": "string"
          },
          "provisioning_data": {
            "description": "Vendor-specific provisioning data. Stored in Join Server.",
            "type": "object"
          },
          "queued_application_downlinks": {
            "description": "Queued Application downlink messages. Stored in Application Server,\nwhich sets them on the Network Server.\nThis field is deprecated and is always set equal to session.queued_application_downlinks.",
            "items": {
              "properties": {
                "attributes": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Attributes for devices, set by the Application Server while handling the message.",
                  "type": "object"
                },
                "class_b_c": {
                  "properties": {
                    "absolute_time": {
                      "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                      "format": "date-time",
                      "type": "string"
                    },
                    "gateways": {
                      "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                      "items": {
                        "properties": {
                          "antenna_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "gateway_ids": {
                            "properties": {
                              "eui": {
                                "description": "Secondary identifier, which can only be used in specific requests.",
                                "example": "70B3D57ED000ABCD",
                                "format": "string",
                                "type": "string"
                              },
                              "gateway_id": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "group_index": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "confirmed": {
                  "type": "boolean"
                },
                "confirmed_retry": {
                  "properties": {
                    "attempt": {
                      "description": "The number of attempted confirmed downlink acknowledgements.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "max_attempts": {
                      "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "correlation_ids": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "decoded_payload": {
                  "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                  "type": "object"
                },
                "decoded_payload_warnings": {
                  "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "f_cnt": {
                  "format": "int64",
                  "type": "integer"
                },
                "f_port": {
                  "format": "int64",
                  "type": "integer"
                },
                "frm_payload": {
                  "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                  "format": "byte",
                  "type": "string"
                },
                "locations": {
                  "additionalProperties": {
                    "properties": {
                      "accuracy": {
                        "description": "The accuracy of the location (meters).",
                        "format": "int32",
                        "type": "integer"
                      },
                      "altitude": {
                        "description": "The altitude (meters), where 0 is the mean sea level.",
                        "format": "int32",
                        "type": "integer"
                      },
                      "latitude": {
                        "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                        "format": "double",
                        "type": "number"
                      },
                      "longitude": {
                        "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                        "format": "double",
                        "type": "number"
                      },
                      "source": {
                        "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.",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "description": "End device location metadata, set by the Application Server while handling the message.",
                  "type": "object"
                },
                "network_ids": {
                  "description": "Identifies a Network Server.",
                  "properties": {
                    "cluster_address": {
                      "description": "Cluster address of the Network Server.",
                      "type": "string"
                    },
                    "cluster_id": {
                      "description": "Cluster identifier of the Network Server.",
                      "type": "string"
                    },
                    "net_id": {
                      "description": "LoRa Alliance NetID.",
                      "example": "000013",
                      "format": "string",
                      "type": "string"
                    },
                    "ns_id": {
                      "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "tenant_address": {
                      "description": "Optional tenant address for multi-tenant deployments.",
                      "type": "string"
                    },
                    "tenant_id": {
                      "description": "Optional tenant identifier for multi-tenant deployments.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "priority": {
                  "default": "LOWEST",
                  "enum": [
                    "LOWEST",
                    "LOW",
                    "BELOW_NORMAL",
                    "NORMAL",
                    "ABOVE_NORMAL",
                    "HIGH",
                    "HIGHEST"
                  ],
                  "type": "string"
                },
                "session_key_id": {
                  "description": "Join Server issued identifier for the session keys used by this downlink.",
                  "format": "byte",
                  "type": "string"
                },
                "version_ids": {
                  "description": "Identifies an end device model with version information.",
                  "properties": {
                    "band_id": {
                      "type": "string"
                    },
                    "brand_id": {
                      "type": "string"
                    },
                    "firmware_version": {
                      "type": "string"
                    },
                    "hardware_version": {
                      "type": "string"
                    },
                    "model_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "resets_join_nonces": {
            "description": "Whether the device resets the join and dev nonces (not LoRaWAN compliant). Stored in Join Server.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "type": "boolean"
          },
          "root_keys": {
            "description": "Root keys for a LoRaWAN device.\nThese are stored on the Join Server.",
            "properties": {
              "app_key": {
                "properties": {
                  "encrypted_key": {
                    "format": "byte",
                    "type": "string"
                  },
                  "kek_label": {
                    "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "The unencrypted AES key.",
                    "example": "0123456789ABCDEF0123456789ABCDEF",
                    "format": "string",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "nwk_key": {
                "properties": {
                  "encrypted_key": {
                    "format": "byte",
                    "type": "string"
                  },
                  "kek_label": {
                    "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "The unencrypted AES key.",
                    "example": "0123456789ABCDEF0123456789ABCDEF",
                    "format": "string",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "root_key_id": {
                "description": "Join Server issued identifier for the root keys.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "serial_number": {
            "type": "string"
          },
          "service_profile_id": {
            "description": "Default service profile. Stored in Entity Registry.",
            "type": "string"
          },
          "session": {
            "properties": {
              "dev_addr": {
                "description": "Device Address, issued by the Network Server or chosen by device manufacturer in case of testing range (beginning with 00-03).\nKnown by Network Server, Application Server and Join Server. Owned by Network Server.",
                "example": "2600ABCD",
                "format": "string",
                "type": "string"
              },
              "keys": {
                "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
                "properties": {
                  "app_s_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "f_nwk_s_int_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "nwk_s_enc_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "s_nwk_s_int_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "session_key_id": {
                    "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                    "format": "byte",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "last_a_f_cnt_down": {
                "description": "Last application downlink frame counter value used. Application Server only.",
                "format": "int64",
                "type": "integer"
              },
              "last_conf_f_cnt_down": {
                "description": "Frame counter of the last confirmed downlink message sent. Network Server only.",
                "format": "int64",
                "type": "integer"
              },
              "last_f_cnt_up": {
                "description": "Last uplink frame counter value used. Network Server only. Application Server assumes the Network Server checked it.",
                "format": "int64",
                "type": "integer"
              },
              "last_n_f_cnt_down": {
                "description": "Last network downlink frame counter value used. Network Server only.",
                "format": "int64",
                "type": "integer"
              },
              "queued_application_downlinks": {
                "description": "Queued Application downlink messages. Stored in Application Server and Network Server.",
                "items": {
                  "properties": {
                    "attributes": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Attributes for devices, set by the Application Server while handling the message.",
                      "type": "object"
                    },
                    "class_b_c": {
                      "properties": {
                        "absolute_time": {
                          "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                          "format": "date-time",
                          "type": "string"
                        },
                        "gateways": {
                          "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                          "items": {
                            "properties": {
                              "antenna_index": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "gateway_ids": {
                                "properties": {
                                  "eui": {
                                    "description": "Secondary identifier, which can only be used in specific requests.",
                                    "example": "70B3D57ED000ABCD",
                                    "format": "string",
                                    "type": "string"
                                  },
                                  "gateway_id": {
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "group_index": {
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "confirmed": {
                      "type": "boolean"
                    },
                    "confirmed_retry": {
                      "properties": {
                        "attempt": {
                          "description": "The number of attempted confirmed downlink acknowledgements.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "max_attempts": {
                          "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "decoded_payload": {
                      "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                      "type": "object"
                    },
                    "decoded_payload_warnings": {
                      "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "f_cnt": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "f_port": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "frm_payload": {
                      "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                      "format": "byte",
                      "type": "string"
                    },
                    "locations": {
                      "additionalProperties": {
                        "properties": {
                          "accuracy": {
                            "description": "The accuracy of the location (meters).",
                            "format": "int32",
                            "type": "integer"
                          },
                          "altitude": {
                            "description": "The altitude (meters), where 0 is the mean sea level.",
                            "format": "int32",
                            "type": "integer"
                          },
                          "latitude": {
                            "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                            "format": "double",
                            "type": "number"
                          },
                          "longitude": {
                            "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                            "format": "double",
                            "type": "number"
                          },
                          "source": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "description": "End device location metadata, set by the Application Server while handling the message.",
                      "type": "object"
                    },
                    "network_ids": {
                      "description": "Identifies a Network Server.",
                      "properties": {
                        "cluster_address": {
                          "description": "Cluster address of the Network Server.",
                          "type": "string"
                        },
                        "cluster_id": {
                          "description": "Cluster identifier of the Network Server.",
                          "type": "string"
                        },
                        "net_id": {
                          "description": "LoRa Alliance NetID.",
                          "example": "000013",
                          "format": "string",
                          "type": "string"
                        },
                        "ns_id": {
                          "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "tenant_address": {
                          "description": "Optional tenant address for multi-tenant deployments.",
                          "type": "string"
                        },
                        "tenant_id": {
                          "description": "Optional tenant identifier for multi-tenant deployments.",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "priority": {
                      "default": "LOWEST",
                      "enum": [
                        "LOWEST",
                        "LOW",
                        "BELOW_NORMAL",
                        "NORMAL",
                        "ABOVE_NORMAL",
                        "HIGH",
                        "HIGHEST"
                      ],
                      "type": "string"
                    },
                    "session_key_id": {
                      "description": "Join Server issued identifier for the session keys used by this downlink.",
                      "format": "byte",
                      "type": "string"
                    },
                    "version_ids": {
                      "description": "Identifies an end device model with version information.",
                      "properties": {
                        "band_id": {
                          "type": "string"
                        },
                        "brand_id": {
                          "type": "string"
                        },
                        "firmware_version": {
                          "type": "string"
                        },
                        "hardware_version": {
                          "type": "string"
                        },
                        "model_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "started_at": {
                "description": "Time when the session started. Network Server only.",
                "format": "date-time",
                "type": "string"
              }
            },
            "type": "object"
          },
          "skip_payload_crypto": {
            "description": "Skip decryption of uplink payloads and encryption of downlink payloads.\nThis field is deprecated, use skip_payload_crypto_override instead.",
            "type": "boolean"
          },
          "skip_payload_crypto_override": {
            "description": "Skip decryption of uplink payloads and encryption of downlink payloads.\nThis field overrides the application-level setting.",
            "type": "boolean"
          },
          "supports_class_b": {
            "description": "Whether the device supports class B.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "type": "boolean"
          },
          "supports_class_c": {
            "description": "Whether the device supports class C.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "type": "boolean"
          },
          "supports_join": {
            "description": "The device supports join (it's OTAA).\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "type": "boolean"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          },
          "used_dev_nonces": {
            "description": "Used DevNonces sorted in ascending order.\nThis field is only used for devices using LoRaWAN versions preceding 1.1.\nStored in Join Server.",
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": "array"
          },
          "version_ids": {
            "description": "Identifies an end device model with version information.",
            "properties": {
              "band_id": {
                "type": "string"
              },
              "brand_id": {
                "type": "string"
              },
              "firmware_version": {
                "type": "string"
              },
              "hardware_version": {
                "type": "string"
              },
              "model_id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    EndDeviceRegistryListBody

    Fields
    Name Type Description
    application_ids object
    field_mask string 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.
    filters object
    limit integer Limit the number of results per page.
    order string Order the results by this field path (must be present in the field mask). Default ordering is by ID. Prepend with a minus (-) to reverse the order.
    page integer Page number for pagination. 0 is interpreted as 1.
    Schema
    {
      "application_ids": {
        "type": "object"
      },
      "field_mask": {
        "description": "The names of the end device fields that should be returned.\nSee the API reference for which fields can be returned by the different services.",
        "type": "string"
      },
      "filters": {
        "items": {
          "description": "Filter end devices by fields.",
          "properties": {
            "updated_since": {
              "format": "date-time",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "limit": {
        "description": "Limit the number of results per page.",
        "format": "int64",
        "type": "integer"
      },
      "order": {
        "description": "Order the results by this field path (must be present in the field mask).\nDefault ordering is by ID. Prepend with a minus (-) to reverse the order.",
        "type": "string"
      },
      "page": {
        "description": "Page number for pagination. 0 is interpreted as 1.",
        "format": "int64",
        "type": "integer"
      }
    }
    Show the schema of the message in JSON format.

    EndDeviceRegistryUpdateBody

    Fields
    Name Type Description
    end_device object 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 string 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.
    Schema
    {
      "end_device": {
        "description": "Defines an End Device registration and its state on the network.\nThe persistence of the EndDevice is divided between the Network Server, Application Server and Join Server.\nSDKs are responsible for combining (if desired) the three.",
        "properties": {
          "activated_at": {
            "description": "Timestamp when the device has been activated. Stored in the Entity Registry.\nThis field is set by the Application Server when an end device sends\nits first uplink.\nThe Application Server will use the field in order to avoid repeated\ncalls to the Entity Registry.\nThe field cannot be unset once set.",
            "format": "date-time",
            "type": "string"
          },
          "application_server_address": {
            "description": "The address of the Application Server where this device is supposed to be registered.\nStored in Entity Registry and Join Server.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
            "type": "string"
          },
          "application_server_id": {
            "description": "The AS-ID of the Application Server to use.\nStored in Join Server.",
            "type": "string"
          },
          "application_server_kek_label": {
            "description": "The KEK label of the Application Server to use for wrapping the application session key.\nStored in Join Server.",
            "type": "string"
          },
          "attributes": {
            "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.",
            "type": "object"
          },
          "battery_percentage": {
            "description": "Latest-known battery percentage of the device.\nReceived via the DevStatus MAC command at last_dev_status_received_at or earlier.\nStored in Network Server.",
            "format": "float",
            "type": "number"
          },
          "claim_authentication_code": {
            "description": "Authentication code for end devices.",
            "properties": {
              "valid_from": {
                "format": "date-time",
                "type": "string"
              },
              "valid_to": {
                "format": "date-time",
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "Description of the device. Stored in Entity Registry.",
            "type": "string"
          },
          "downlink_margin": {
            "description": "Demodulation signal-to-noise ratio (dB).\nReceived via the DevStatus MAC command at last_dev_status_received_at.\nStored in Network Server.",
            "format": "int32",
            "type": "integer"
          },
          "formatters": {
            "properties": {
              "down_formatter": {
                "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.",
                "enum": [
                  "FORMATTER_NONE",
                  "FORMATTER_REPOSITORY",
                  "FORMATTER_GRPC_SERVICE",
                  "FORMATTER_JAVASCRIPT",
                  "FORMATTER_CAYENNELPP"
                ],
                "type": "string"
              },
              "down_formatter_parameter": {
                "description": "Parameter for the down_formatter, must be set together. The API enforces a maximum length of 16KB, but the size may be restricted further by deployment configuration.",
                "type": "string"
              },
              "up_formatter": {
                "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.",
                "enum": [
                  "FORMATTER_NONE",
                  "FORMATTER_REPOSITORY",
                  "FORMATTER_GRPC_SERVICE",
                  "FORMATTER_JAVASCRIPT",
                  "FORMATTER_CAYENNELPP"
                ],
                "type": "string"
              },
              "up_formatter_parameter": {
                "description": "Parameter for the up_formatter, must be set together. The API enforces a maximum length of 16KB, but the size may be restricted further by deployment configuration.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "frequency_plan_id": {
            "description": "ID of the frequency plan used by this device.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "type": "string"
          },
          "ids": {
            "properties": {
              "application_ids": {
                "type": "object"
              },
              "dev_addr": {
                "description": "The LoRaWAN DevAddr.",
                "example": "2600ABCD",
                "format": "string",
                "type": "string"
              },
              "dev_eui": {
                "description": "The LoRaWAN DevEUI.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "join_eui": {
                "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          },
          "join_server_address": {
            "description": "The address of the Join Server where this device is supposed to be registered.\nStored in Entity Registry.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
            "type": "string"
          },
          "label_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "last_dev_nonce": {
            "description": "Last DevNonce used.\nThis field is only used for devices using LoRaWAN version 1.1 and later.\nStored in Join Server.",
            "format": "int64",
            "type": "integer"
          },
          "last_dev_status_received_at": {
            "description": "Time when last DevStatus MAC command was received.\nStored in Network Server.",
            "format": "date-time",
            "type": "string"
          },
          "last_join_nonce": {
            "description": "Last JoinNonce/AppNonce(for devices using LoRaWAN versions preceding 1.1) used.\nStored in Join Server.",
            "format": "int64",
            "type": "integer"
          },
          "last_rj_count_0": {
            "description": "Last Rejoin counter value used (type 0/2).\nStored in Join Server.",
            "format": "int64",
            "type": "integer"
          },
          "last_rj_count_1": {
            "description": "Last Rejoin counter value used (type 1).\nStored in Join Server.",
            "format": "int64",
            "type": "integer"
          },
          "last_seen_at": {
            "description": "Timestamp when a device uplink has been last observed.\nThis field is set by the Application Server and stored in the Identity Server.",
            "format": "date-time",
            "type": "string"
          },
          "locations": {
            "additionalProperties": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "description": "Location of the device. Stored in Entity Registry.",
            "type": "object"
          },
          "lora_alliance_profile_ids": {
            "properties": {
              "vendor_id": {
                "description": "VendorID managed by the LoRa Alliance, as defined in TR005.",
                "format": "int64",
                "type": "integer"
              },
              "vendor_profile_id": {
                "description": "ID of the LoRaWAN end device profile assigned by the vendor.",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "lorawan_phy_version": {
            "default": "PHY_UNKNOWN",
            "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"
            ],
            "type": "string"
          },
          "lorawan_version": {
            "default": "MAC_UNKNOWN",
            "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"
            ],
            "type": "string"
          },
          "mac_settings": {
            "properties": {
              "adr": {
                "description": "Adaptive Data Rate settings.",
                "properties": {
                  "disabled": {
                    "description": "Configuration options for cases in which ADR is to be disabled\ncompletely.",
                    "type": "object"
                  },
                  "dynamic": {
                    "description": "Configuration options for dynamic ADR.",
                    "properties": {
                      "channel_steering": {
                        "description": "EXPERIMENTAL: Channel steering settings.",
                        "properties": {
                          "disabled": {
                            "description": "Configuration options for cases in which ADR is not supposed to steer the end device\nto another set of channels.",
                            "type": "object"
                          },
                          "lora_narrow": {
                            "description": "Configuration options for LoRa narrow channels steering.\nThe narrow mode attempts to steer the end device towards\nusing the LoRa modulated, 125kHz bandwidth channels.",
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "margin": {
                        "description": "The ADR margin (dB) tells the network server how much margin it should add in ADR requests.\nA bigger margin is less efficient, but gives a better chance of successful reception.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "float",
                        "type": "number"
                      },
                      "max_data_rate_index": {
                        "properties": {
                          "value": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "max_nb_trans": {
                        "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_tx_power_index": {
                        "description": "Maximum transmission power index.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "min_data_rate_index": {
                        "properties": {
                          "value": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "min_nb_trans": {
                        "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "min_tx_power_index": {
                        "description": "Minimum transmission power index.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "overrides": {
                        "description": "EXPERIMENTAL: Configuration overrides.",
                        "properties": {
                          "data_rate_0": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_1": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_10": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_11": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_12": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_13": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_14": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_15": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_2": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_3": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_4": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_5": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_6": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_7": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_8": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_9": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "static": {
                    "description": "Configuration options for static ADR.",
                    "properties": {
                      "data_rate_index": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "nb_trans": {
                        "description": "Number of retransmissions.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "tx_power_index": {
                        "description": "Transmission power index to use.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "adr_margin": {
                "description": "The ADR margin (dB) tells the network server how much margin it should add in ADR requests.\nA bigger margin is less efficient, but gives a better chance of successful reception.\nThis field is deprecated, use adr_settings.dynamic.margin instead.",
                "format": "float",
                "type": "number"
              },
              "beacon_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "class_b_c_downlink_interval": {
                "description": "The minimum duration passed before a network-initiated(e.g. Class B or C) downlink following an arbitrary downlink.",
                "type": "string"
              },
              "class_b_timeout": {
                "description": "Maximum delay for the device to answer a MAC request or a confirmed downlink frame.\nIf unset, the default value from Network Server configuration will be used.",
                "type": "string"
              },
              "class_c_timeout": {
                "description": "Maximum delay for the device to answer a MAC request or a confirmed downlink frame.\nIf unset, the default value from Network Server configuration will be used.",
                "type": "string"
              },
              "desired_adr_ack_delay_exponent": {
                "properties": {
                  "value": {
                    "default": "ADR_ACK_DELAY_1",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_adr_ack_limit_exponent": {
                "properties": {
                  "value": {
                    "default": "ADR_ACK_LIMIT_1",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_beacon_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_max_duty_cycle": {
                "properties": {
                  "value": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_max_eirp": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_ping_slot_data_rate_index": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_ping_slot_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_relay": {
                "description": "RelaySettings represent the settings of a relay.\nThis is used internally by the Network Server.",
                "properties": {
                  "served": {
                    "properties": {
                      "always": {
                        "type": "object"
                      },
                      "backoff": {
                        "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "dynamic": {
                        "properties": {
                          "smart_enable_level": {
                            "default": "RELAY_SMART_ENABLE_LEVEL_8",
                            "enum": [
                              "RELAY_SMART_ENABLE_LEVEL_8",
                              "RELAY_SMART_ENABLE_LEVEL_16",
                              "RELAY_SMART_ENABLE_LEVEL_32",
                              "RELAY_SMART_ENABLE_LEVEL_64"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "end_device_controlled": {
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving_device_id": {
                        "description": "End device identifier of the serving end device.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "serving": {
                    "properties": {
                      "cad_periodicity": {
                        "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                        "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"
                        ],
                        "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                        "type": "string"
                      },
                      "default_channel_index": {
                        "description": "Index of the default wake on radio channel.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "limits": {
                        "properties": {
                          "join_requests": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "notifications": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "overall": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "reset_behavior": {
                            "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "enum": [
                              "RELAY_RESET_LIMIT_COUNTER_ZERO",
                              "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                              "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                              "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                            ],
                            "type": "string"
                          },
                          "uplink_messages": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "uplink_forwarding_rules": {
                        "description": "Configured uplink forwarding rules.",
                        "items": {
                          "properties": {
                            "device_id": {
                              "description": "End device identifier of the served end device.",
                              "type": "string"
                            },
                            "last_w_f_cnt": {
                              "description": "Last wake on radio frame counter used by the served end device.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "limits": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "session_key_id": {
                              "description": "Session key ID of the session keys used to derive the root relay session key.",
                              "format": "byte",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "desired_rx1_data_rate_offset": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_rx1_delay": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_rx2_data_rate_index": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_rx2_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "downlink_dwell_time": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "factory_preset_frequencies": {
                "description": "List of factory-preset frequencies.\nIf unset, the default value from Network Server configuration or regional parameters specification will be used.",
                "items": {
                  "format": "uint64",
                  "type": "string"
                },
                "type": "array"
              },
              "max_duty_cycle": {
                "properties": {
                  "value": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "ping_slot_data_rate_index": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "ping_slot_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "ping_slot_periodicity": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "relay": {
                "description": "RelaySettings represent the settings of a relay.\nThis is used internally by the Network Server.",
                "properties": {
                  "served": {
                    "properties": {
                      "always": {
                        "type": "object"
                      },
                      "backoff": {
                        "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "dynamic": {
                        "properties": {
                          "smart_enable_level": {
                            "default": "RELAY_SMART_ENABLE_LEVEL_8",
                            "enum": [
                              "RELAY_SMART_ENABLE_LEVEL_8",
                              "RELAY_SMART_ENABLE_LEVEL_16",
                              "RELAY_SMART_ENABLE_LEVEL_32",
                              "RELAY_SMART_ENABLE_LEVEL_64"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "end_device_controlled": {
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving_device_id": {
                        "description": "End device identifier of the serving end device.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "serving": {
                    "properties": {
                      "cad_periodicity": {
                        "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                        "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"
                        ],
                        "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                        "type": "string"
                      },
                      "default_channel_index": {
                        "description": "Index of the default wake on radio channel.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "limits": {
                        "properties": {
                          "join_requests": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "notifications": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "overall": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "reset_behavior": {
                            "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "enum": [
                              "RELAY_RESET_LIMIT_COUNTER_ZERO",
                              "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                              "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                              "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                            ],
                            "type": "string"
                          },
                          "uplink_messages": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "uplink_forwarding_rules": {
                        "description": "Configured uplink forwarding rules.",
                        "items": {
                          "properties": {
                            "device_id": {
                              "description": "End device identifier of the served end device.",
                              "type": "string"
                            },
                            "last_w_f_cnt": {
                              "description": "Last wake on radio frame counter used by the served end device.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "limits": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "session_key_id": {
                              "description": "Session key ID of the session keys used to derive the root relay session key.",
                              "format": "byte",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "resets_f_cnt": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "rx1_data_rate_offset": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "rx1_delay": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "rx2_data_rate_index": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "rx2_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "schedule_downlinks": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "status_count_periodicity": {
                "description": "Number of uplink messages after which a DevStatusReq MACCommand shall be sent.\nIf unset, the default value from Network Server configuration will be used.",
                "format": "int64",
                "type": "integer"
              },
              "status_time_periodicity": {
                "description": "The interval after which a DevStatusReq MACCommand shall be sent.\nIf unset, the default value from Network Server configuration will be used.",
                "type": "string"
              },
              "supports_32_bit_f_cnt": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "uplink_dwell_time": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "use_adr": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "mac_settings_profile_ids": {
            "properties": {
              "application_ids": {
                "properties": {
                  "application_id": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "profile_id": {
                "description": "Profile ID.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "mac_state": {
            "description": "MACState represents the state of MAC layer of the device.\nMACState is reset on each join for OTAA or ResetInd for ABP devices.\nThis is used internally by the Network Server.",
            "properties": {
              "current_parameters": {
                "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
                "properties": {
                  "adr_ack_delay": {
                    "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_delay_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_DELAY_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_ack_limit": {
                    "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_limit_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_LIMIT_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "adr_nb_trans": {
                    "description": "ADR: number of retransmissions.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_tx_power_index": {
                    "description": "ADR: transmission power index to use.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "beacon_frequency": {
                    "description": "Frequency of the class B beacon (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "channels": {
                    "description": "Configured uplink channels and optionally Rx1 frequency.",
                    "items": {
                      "properties": {
                        "downlink_frequency": {
                          "description": "Downlink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "enable_uplink": {
                          "description": "Channel can be used by device for uplink.",
                          "type": "boolean"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_frequency": {
                          "description": "Uplink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "downlink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "max_duty_cycle": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "max_eirp": {
                    "description": "Maximum EIRP (dBm).",
                    "format": "float",
                    "type": "number"
                  },
                  "ping_slot_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "ping_slot_data_rate_index_value": {
                    "properties": {
                      "value": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "ping_slot_frequency": {
                    "description": "Frequency of the class B ping slot (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "rejoin_count_periodicity": {
                    "default": "REJOIN_COUNT_16",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rejoin_time_periodicity": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "relay": {
                    "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                    "properties": {
                      "served": {
                        "properties": {
                          "always": {
                            "type": "object"
                          },
                          "backoff": {
                            "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "dynamic": {
                            "properties": {
                              "smart_enable_level": {
                                "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                "enum": [
                                  "RELAY_SMART_ENABLE_LEVEL_8",
                                  "RELAY_SMART_ENABLE_LEVEL_16",
                                  "RELAY_SMART_ENABLE_LEVEL_32",
                                  "RELAY_SMART_ENABLE_LEVEL_64"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "end_device_controlled": {
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "serving_device_id": {
                            "description": "End device identifier of the serving end device.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving": {
                        "properties": {
                          "cad_periodicity": {
                            "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                            "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"
                            ],
                            "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                            "type": "string"
                          },
                          "default_channel_index": {
                            "description": "Index of the default wake on radio channel.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "limits": {
                            "properties": {
                              "join_requests": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "notifications": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "overall": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "reset_behavior": {
                                "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                "enum": [
                                  "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                  "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                  "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                  "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                                ],
                                "type": "string"
                              },
                              "uplink_messages": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "uplink_forwarding_rules": {
                            "description": "Configured uplink forwarding rules.",
                            "items": {
                              "properties": {
                                "device_id": {
                                  "description": "End device identifier of the served end device.",
                                  "type": "string"
                                },
                                "last_w_f_cnt": {
                                  "description": "Last wake on radio frame counter used by the served end device.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "limits": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "session_key_id": {
                                  "description": "Session key ID of the session keys used to derive the root relay session key.",
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "rx1_data_rate_offset": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx1_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_frequency": {
                    "description": "Frequency for Rx2 (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "uplink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "desired_parameters": {
                "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
                "properties": {
                  "adr_ack_delay": {
                    "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_delay_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_DELAY_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_ack_limit": {
                    "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_limit_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_LIMIT_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "adr_nb_trans": {
                    "description": "ADR: number of retransmissions.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_tx_power_index": {
                    "description": "ADR: transmission power index to use.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "beacon_frequency": {
                    "description": "Frequency of the class B beacon (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "channels": {
                    "description": "Configured uplink channels and optionally Rx1 frequency.",
                    "items": {
                      "properties": {
                        "downlink_frequency": {
                          "description": "Downlink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "enable_uplink": {
                          "description": "Channel can be used by device for uplink.",
                          "type": "boolean"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_frequency": {
                          "description": "Uplink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "downlink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "max_duty_cycle": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "max_eirp": {
                    "description": "Maximum EIRP (dBm).",
                    "format": "float",
                    "type": "number"
                  },
                  "ping_slot_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "ping_slot_data_rate_index_value": {
                    "properties": {
                      "value": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "ping_slot_frequency": {
                    "description": "Frequency of the class B ping slot (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "rejoin_count_periodicity": {
                    "default": "REJOIN_COUNT_16",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rejoin_time_periodicity": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "relay": {
                    "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                    "properties": {
                      "served": {
                        "properties": {
                          "always": {
                            "type": "object"
                          },
                          "backoff": {
                            "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "dynamic": {
                            "properties": {
                              "smart_enable_level": {
                                "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                "enum": [
                                  "RELAY_SMART_ENABLE_LEVEL_8",
                                  "RELAY_SMART_ENABLE_LEVEL_16",
                                  "RELAY_SMART_ENABLE_LEVEL_32",
                                  "RELAY_SMART_ENABLE_LEVEL_64"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "end_device_controlled": {
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "serving_device_id": {
                            "description": "End device identifier of the serving end device.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving": {
                        "properties": {
                          "cad_periodicity": {
                            "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                            "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"
                            ],
                            "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                            "type": "string"
                          },
                          "default_channel_index": {
                            "description": "Index of the default wake on radio channel.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "limits": {
                            "properties": {
                              "join_requests": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "notifications": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "overall": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "reset_behavior": {
                                "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                "enum": [
                                  "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                  "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                  "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                  "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                                ],
                                "type": "string"
                              },
                              "uplink_messages": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "uplink_forwarding_rules": {
                            "description": "Configured uplink forwarding rules.",
                            "items": {
                              "properties": {
                                "device_id": {
                                  "description": "End device identifier of the served end device.",
                                  "type": "string"
                                },
                                "last_w_f_cnt": {
                                  "description": "Last wake on radio frame counter used by the served end device.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "limits": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "session_key_id": {
                                  "description": "Session key ID of the session keys used to derive the root relay session key.",
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "rx1_data_rate_offset": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx1_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_frequency": {
                    "description": "Frequency for Rx2 (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "uplink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "device_class": {
                "default": "CLASS_A",
                "enum": [
                  "CLASS_A",
                  "CLASS_B",
                  "CLASS_C"
                ],
                "type": "string"
              },
              "last_adr_change_f_cnt_up": {
                "description": "Frame counter of uplink, which confirmed the last ADR parameter change.",
                "format": "int64",
                "type": "integer"
              },
              "last_confirmed_downlink_at": {
                "description": "Time when the last confirmed downlink message or MAC command was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "last_dev_status_f_cnt_up": {
                "description": "Frame counter value of last uplink containing DevStatusAns.",
                "format": "int64",
                "type": "integer"
              },
              "last_downlink_at": {
                "description": "Time when the last downlink message was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "last_network_initiated_downlink_at": {
                "description": "Time when the last network-initiated downlink message was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "lorawan_version": {
                "default": "MAC_UNKNOWN",
                "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"
                ],
                "type": "string"
              },
              "pending_application_downlink": {
                "properties": {
                  "attributes": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "Attributes for devices, set by the Application Server while handling the message.",
                    "type": "object"
                  },
                  "class_b_c": {
                    "properties": {
                      "absolute_time": {
                        "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                        "format": "date-time",
                        "type": "string"
                      },
                      "gateways": {
                        "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                        "items": {
                          "properties": {
                            "antenna_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "gateway_ids": {
                              "properties": {
                                "eui": {
                                  "description": "Secondary identifier, which can only be used in specific requests.",
                                  "example": "70B3D57ED000ABCD",
                                  "format": "string",
                                  "type": "string"
                                },
                                "gateway_id": {
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "group_index": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  },
                  "confirmed": {
                    "type": "boolean"
                  },
                  "confirmed_retry": {
                    "properties": {
                      "attempt": {
                        "description": "The number of attempted confirmed downlink acknowledgements.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_attempts": {
                        "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "correlation_ids": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "decoded_payload": {
                    "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                    "type": "object"
                  },
                  "decoded_payload_warnings": {
                    "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "f_cnt": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "f_port": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "frm_payload": {
                    "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                    "format": "byte",
                    "type": "string"
                  },
                  "locations": {
                    "additionalProperties": {
                      "properties": {
                        "accuracy": {
                          "description": "The accuracy of the location (meters).",
                          "format": "int32",
                          "type": "integer"
                        },
                        "altitude": {
                          "description": "The altitude (meters), where 0 is the mean sea level.",
                          "format": "int32",
                          "type": "integer"
                        },
                        "latitude": {
                          "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                          "format": "double",
                          "type": "number"
                        },
                        "longitude": {
                          "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                          "format": "double",
                          "type": "number"
                        },
                        "source": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "description": "End device location metadata, set by the Application Server while handling the message.",
                    "type": "object"
                  },
                  "network_ids": {
                    "description": "Identifies a Network Server.",
                    "properties": {
                      "cluster_address": {
                        "description": "Cluster address of the Network Server.",
                        "type": "string"
                      },
                      "cluster_id": {
                        "description": "Cluster identifier of the Network Server.",
                        "type": "string"
                      },
                      "net_id": {
                        "description": "LoRa Alliance NetID.",
                        "example": "000013",
                        "format": "string",
                        "type": "string"
                      },
                      "ns_id": {
                        "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                        "example": "70B3D57ED000ABCD",
                        "format": "string",
                        "type": "string"
                      },
                      "tenant_address": {
                        "description": "Optional tenant address for multi-tenant deployments.",
                        "type": "string"
                      },
                      "tenant_id": {
                        "description": "Optional tenant identifier for multi-tenant deployments.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "priority": {
                    "default": "LOWEST",
                    "enum": [
                      "LOWEST",
                      "LOW",
                      "BELOW_NORMAL",
                      "NORMAL",
                      "ABOVE_NORMAL",
                      "HIGH",
                      "HIGHEST"
                    ],
                    "type": "string"
                  },
                  "session_key_id": {
                    "description": "Join Server issued identifier for the session keys used by this downlink.",
                    "format": "byte",
                    "type": "string"
                  },
                  "version_ids": {
                    "description": "Identifies an end device model with version information.",
                    "properties": {
                      "band_id": {
                        "type": "string"
                      },
                      "brand_id": {
                        "type": "string"
                      },
                      "firmware_version": {
                        "type": "string"
                      },
                      "hardware_version": {
                        "type": "string"
                      },
                      "model_id": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "pending_join_request": {
                "properties": {
                  "cf_list": {
                    "properties": {
                      "ch_masks": {
                        "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                        "items": {
                          "type": "boolean"
                        },
                        "type": "array"
                      },
                      "freq": {
                        "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                        "items": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "type": "array"
                      },
                      "type": {
                        "default": "FREQUENCIES",
                        "enum": [
                          "FREQUENCIES",
                          "CHANNEL_MASKS"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "downlink_settings": {
                    "properties": {
                      "opt_neg": {
                        "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                        "type": "boolean"
                      },
                      "rx1_dr_offset": {
                        "default": "DATA_RATE_OFFSET_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "rx2_dr": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "rx_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "pending_relay_downlink": {
                "properties": {
                  "raw_payload": {
                    "format": "byte",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "pending_requests": {
                "description": "Pending MAC requests(i.e. sent requests, for which no response has been received yet).\nRegenerated on each downlink.",
                "items": {
                  "properties": {
                    "adr_param_setup_req": {
                      "properties": {
                        "adr_ack_delay_exponent": {
                          "default": "ADR_ACK_DELAY_1",
                          "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"
                          ],
                          "type": "string"
                        },
                        "adr_ack_limit_exponent": {
                          "default": "ADR_ACK_LIMIT_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_ans": {
                      "properties": {
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_req": {
                      "properties": {
                        "frequency": {
                          "description": "Frequency of the Class B beacons (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_timing_ans": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "delay": {
                          "description": "(uint16) See LoRaWAN specification.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "cid": {
                      "default": "CID_RFU_0",
                      "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"
                      ],
                      "title": "- CID_BEACON_TIMING: Deprecated",
                      "type": "string"
                    },
                    "dev_status_ans": {
                      "properties": {
                        "battery": {
                          "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "SNR of the last downlink (dB; [-32, +31]).",
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_conf": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_ind": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_time_ans": {
                      "properties": {
                        "time": {
                          "format": "date-time",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_ans": {
                      "properties": {
                        "channel_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Downlink channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "duty_cycle_req": {
                      "properties": {
                        "max_duty_cycle": {
                          "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%.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "force_rejoin_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_retries": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "period_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rejoin_type": {
                          "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.",
                          "enum": [
                            "CONTEXT",
                            "SESSION",
                            "KEYS"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_ans": {
                      "properties": {
                        "channel_mask_ack": {
                          "type": "boolean"
                        },
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "tx_power_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_req": {
                      "properties": {
                        "channel_mask": {
                          "items": {
                            "type": "boolean"
                          },
                          "type": "array"
                        },
                        "channel_mask_control": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "nb_trans": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "tx_power_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "link_check_ans": {
                      "properties": {
                        "gateway_count": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_ans": {
                      "properties": {
                        "data_rate_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_ans": {
                      "properties": {
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "frequency": {
                          "description": "Ping slot channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_info_req": {
                      "properties": {
                        "period": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "raw_payload": {
                      "format": "byte",
                      "type": "string"
                    },
                    "rejoin_param_setup_ans": {
                      "properties": {
                        "max_time_exponent_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rejoin_param_setup_req": {
                      "properties": {
                        "max_count_exponent": {
                          "default": "REJOIN_COUNT_16",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_time_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_ans": {
                      "properties": {
                        "cad_periodicity_ack": {
                          "type": "boolean"
                        },
                        "default_channel_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_ack_offset_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "cad_periodicity": {
                              "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                              "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"
                              ],
                              "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                              "type": "string"
                            },
                            "default_channel_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_ans": {
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_req": {
                      "properties": {
                        "global_uplink_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "notify_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "overall_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "reset_limit_counter": {
                          "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                          "enum": [
                            "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                            "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                            "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_ans": {
                      "properties": {
                        "rule_index_ack": {
                          "type": "boolean"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_req": {
                      "properties": {
                        "action": {
                          "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                          "enum": [
                            "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                            "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                          ],
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_ans": {
                      "properties": {
                        "backoff_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "always": {
                              "type": "object"
                            },
                            "backoff": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "dynamic": {
                              "properties": {
                                "smart_enable_level": {
                                  "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                  "enum": [
                                    "RELAY_SMART_ENABLE_LEVEL_8",
                                    "RELAY_SMART_ENABLE_LEVEL_16",
                                    "RELAY_SMART_ENABLE_LEVEL_32",
                                    "RELAY_SMART_ENABLE_LEVEL_64"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "end_device_controlled": {
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "serving_device_id": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_notify_new_end_device_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "rssi": {
                          "format": "int32",
                          "type": "integer"
                        },
                        "snr": {
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_update_uplink_list_ans": {
                      "type": "object"
                    },
                    "relay_update_uplink_list_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "device_id": {
                          "type": "string"
                        },
                        "forward_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "root_wor_s_key": {
                          "example": "0123456789ABCDEF0123456789ABCDEF",
                          "format": "string",
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "session_key_id": {
                          "format": "byte",
                          "type": "string"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "reset_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "reset_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_ans": {
                      "properties": {
                        "rx1_data_rate_offset_ack": {
                          "type": "boolean"
                        },
                        "rx2_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "rx2_frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_req": {
                      "properties": {
                        "rx1_data_rate_offset": {
                          "default": "DATA_RATE_OFFSET_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_frequency": {
                          "description": "Rx2 frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_timing_setup_req": {
                      "properties": {
                        "delay": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "tx_param_setup_req": {
                      "properties": {
                        "downlink_dwell_time": {
                          "type": "boolean"
                        },
                        "max_eirp_index": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_dwell_time": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "ping_slot_periodicity": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "queued_join_accept": {
                "properties": {
                  "correlation_ids": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "dev_addr": {
                    "example": "2600ABCD",
                    "format": "string",
                    "type": "string"
                  },
                  "keys": {
                    "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
                    "properties": {
                      "app_s_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "f_nwk_s_int_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "nwk_s_enc_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "s_nwk_s_int_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "session_key_id": {
                        "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                        "format": "byte",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "net_id": {
                    "example": "000013",
                    "format": "string",
                    "type": "string"
                  },
                  "payload": {
                    "description": "Payload of the join-accept received from Join Server.",
                    "format": "byte",
                    "type": "string"
                  },
                  "request": {
                    "properties": {
                      "cf_list": {
                        "properties": {
                          "ch_masks": {
                            "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                            "items": {
                              "type": "boolean"
                            },
                            "type": "array"
                          },
                          "freq": {
                            "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                            "items": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "type": "array"
                          },
                          "type": {
                            "default": "FREQUENCIES",
                            "enum": [
                              "FREQUENCIES",
                              "CHANNEL_MASKS"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "downlink_settings": {
                        "properties": {
                          "opt_neg": {
                            "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                            "type": "boolean"
                          },
                          "rx1_dr_offset": {
                            "default": "DATA_RATE_OFFSET_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "rx2_dr": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rx_delay": {
                        "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.",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "queued_responses": {
                "description": "Queued MAC responses.\nRegenerated on each uplink.",
                "items": {
                  "properties": {
                    "adr_param_setup_req": {
                      "properties": {
                        "adr_ack_delay_exponent": {
                          "default": "ADR_ACK_DELAY_1",
                          "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"
                          ],
                          "type": "string"
                        },
                        "adr_ack_limit_exponent": {
                          "default": "ADR_ACK_LIMIT_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_ans": {
                      "properties": {
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_req": {
                      "properties": {
                        "frequency": {
                          "description": "Frequency of the Class B beacons (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_timing_ans": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "delay": {
                          "description": "(uint16) See LoRaWAN specification.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "cid": {
                      "default": "CID_RFU_0",
                      "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"
                      ],
                      "title": "- CID_BEACON_TIMING: Deprecated",
                      "type": "string"
                    },
                    "dev_status_ans": {
                      "properties": {
                        "battery": {
                          "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "SNR of the last downlink (dB; [-32, +31]).",
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_conf": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_ind": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_time_ans": {
                      "properties": {
                        "time": {
                          "format": "date-time",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_ans": {
                      "properties": {
                        "channel_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Downlink channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "duty_cycle_req": {
                      "properties": {
                        "max_duty_cycle": {
                          "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%.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "force_rejoin_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_retries": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "period_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rejoin_type": {
                          "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.",
                          "enum": [
                            "CONTEXT",
                            "SESSION",
                            "KEYS"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_ans": {
                      "properties": {
                        "channel_mask_ack": {
                          "type": "boolean"
                        },
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "tx_power_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_req": {
                      "properties": {
                        "channel_mask": {
                          "items": {
                            "type": "boolean"
                          },
                          "type": "array"
                        },
                        "channel_mask_control": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "nb_trans": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "tx_power_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "link_check_ans": {
                      "properties": {
                        "gateway_count": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_ans": {
                      "properties": {
                        "data_rate_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_ans": {
                      "properties": {
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "frequency": {
                          "description": "Ping slot channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_info_req": {
                      "properties": {
                        "period": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "raw_payload": {
                      "format": "byte",
                      "type": "string"
                    },
                    "rejoin_param_setup_ans": {
                      "properties": {
                        "max_time_exponent_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rejoin_param_setup_req": {
                      "properties": {
                        "max_count_exponent": {
                          "default": "REJOIN_COUNT_16",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_time_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_ans": {
                      "properties": {
                        "cad_periodicity_ack": {
                          "type": "boolean"
                        },
                        "default_channel_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_ack_offset_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "cad_periodicity": {
                              "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                              "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"
                              ],
                              "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                              "type": "string"
                            },
                            "default_channel_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_ans": {
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_req": {
                      "properties": {
                        "global_uplink_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "notify_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "overall_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "reset_limit_counter": {
                          "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                          "enum": [
                            "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                            "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                            "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_ans": {
                      "properties": {
                        "rule_index_ack": {
                          "type": "boolean"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_req": {
                      "properties": {
                        "action": {
                          "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                          "enum": [
                            "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                            "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                          ],
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_ans": {
                      "properties": {
                        "backoff_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "always": {
                              "type": "object"
                            },
                            "backoff": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "dynamic": {
                              "properties": {
                                "smart_enable_level": {
                                  "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                  "enum": [
                                    "RELAY_SMART_ENABLE_LEVEL_8",
                                    "RELAY_SMART_ENABLE_LEVEL_16",
                                    "RELAY_SMART_ENABLE_LEVEL_32",
                                    "RELAY_SMART_ENABLE_LEVEL_64"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "end_device_controlled": {
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "serving_device_id": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_notify_new_end_device_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "rssi": {
                          "format": "int32",
                          "type": "integer"
                        },
                        "snr": {
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_update_uplink_list_ans": {
                      "type": "object"
                    },
                    "relay_update_uplink_list_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "device_id": {
                          "type": "string"
                        },
                        "forward_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "root_wor_s_key": {
                          "example": "0123456789ABCDEF0123456789ABCDEF",
                          "format": "string",
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "session_key_id": {
                          "format": "byte",
                          "type": "string"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "reset_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "reset_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_ans": {
                      "properties": {
                        "rx1_data_rate_offset_ack": {
                          "type": "boolean"
                        },
                        "rx2_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "rx2_frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_req": {
                      "properties": {
                        "rx1_data_rate_offset": {
                          "default": "DATA_RATE_OFFSET_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_frequency": {
                          "description": "Rx2 frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_timing_setup_req": {
                      "properties": {
                        "delay": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "tx_param_setup_req": {
                      "properties": {
                        "downlink_dwell_time": {
                          "type": "boolean"
                        },
                        "max_eirp_index": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_dwell_time": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "recent_downlinks": {
                "description": "Recent data downlink messages sorted by time.\nThe number of messages stored may depend on configuration.",
                "items": {
                  "description": "A minimal DownlinkMessage definition which is binary compatible with the top level DownlinkMessage message.\nUsed for type safe recent downlink storage.",
                  "properties": {
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "payload": {
                      "properties": {
                        "m_hdr": {
                          "properties": {
                            "m_type": {
                              "default": "JOIN_REQUEST",
                              "enum": [
                                "JOIN_REQUEST",
                                "JOIN_ACCEPT",
                                "UNCONFIRMED_UP",
                                "UNCONFIRMED_DOWN",
                                "CONFIRMED_UP",
                                "CONFIRMED_DOWN",
                                "REJOIN_REQUEST",
                                "PROPRIETARY"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "mac_payload": {
                          "properties": {
                            "f_port": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "full_f_cnt": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "recent_mac_command_identifiers": {
                "description": "MAC command identifiers sent by the end device in the last received uplink.\nThe Network Server may choose to store only certain types of MAC\ncommand identifiers in the underlying implementation.",
                "items": {
                  "default": "CID_RFU_0",
                  "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"
                  ],
                  "title": "- CID_BEACON_TIMING: Deprecated",
                  "type": "string"
                },
                "type": "array"
              },
              "recent_uplinks": {
                "description": "Recent data uplink messages sorted by time.\nThe number of messages stored may depend on configuration.",
                "items": {
                  "description": "A minimal UplinkMessage definition which is binary compatible with the top level UplinkMessage message.\nUsed for type safe recent uplink storage.",
                  "properties": {
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "device_channel_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "payload": {
                      "properties": {
                        "join_accept_payload": {
                          "properties": {
                            "cf_list": {
                              "properties": {
                                "ch_masks": {
                                  "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                                  "items": {
                                    "type": "boolean"
                                  },
                                  "type": "array"
                                },
                                "freq": {
                                  "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                                  "items": {
                                    "format": "int64",
                                    "type": "integer"
                                  },
                                  "type": "array"
                                },
                                "type": {
                                  "default": "FREQUENCIES",
                                  "enum": [
                                    "FREQUENCIES",
                                    "CHANNEL_MASKS"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "dev_addr": {
                              "example": "2600ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "dl_settings": {
                              "properties": {
                                "opt_neg": {
                                  "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                                  "type": "boolean"
                                },
                                "rx1_dr_offset": {
                                  "default": "DATA_RATE_OFFSET_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "rx2_dr": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "encrypted": {
                              "format": "byte",
                              "type": "string"
                            },
                            "join_nonce": {
                              "example": "ABCDEF",
                              "format": "string",
                              "type": "string"
                            },
                            "net_id": {
                              "example": "000013",
                              "format": "string",
                              "type": "string"
                            },
                            "rx_delay": {
                              "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.",
                              "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"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_payload": {
                          "properties": {
                            "dev_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "dev_nonce": {
                              "example": "ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "join_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "m_hdr": {
                          "properties": {
                            "m_type": {
                              "default": "JOIN_REQUEST",
                              "enum": [
                                "JOIN_REQUEST",
                                "JOIN_ACCEPT",
                                "UNCONFIRMED_UP",
                                "UNCONFIRMED_DOWN",
                                "CONFIRMED_UP",
                                "CONFIRMED_DOWN",
                                "REJOIN_REQUEST",
                                "PROPRIETARY"
                              ],
                              "type": "string"
                            },
                            "major": {
                              "default": "LORAWAN_R1",
                              "enum": [
                                "LORAWAN_R1"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "mac_payload": {
                          "properties": {
                            "decoded_payload": {
                              "type": "object"
                            },
                            "f_hdr": {
                              "properties": {
                                "dev_addr": {
                                  "example": "2600ABCD",
                                  "format": "string",
                                  "type": "string"
                                },
                                "f_cnt": {
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "f_ctrl": {
                                  "properties": {
                                    "ack": {
                                      "type": "boolean"
                                    },
                                    "adr": {
                                      "type": "boolean"
                                    },
                                    "adr_ack_req": {
                                      "description": "Only on uplink.",
                                      "type": "boolean"
                                    },
                                    "class_b": {
                                      "description": "Only on uplink.",
                                      "type": "boolean"
                                    },
                                    "f_pending": {
                                      "description": "Only on downlink.",
                                      "type": "boolean"
                                    }
                                  },
                                  "type": "object"
                                },
                                "f_opts": {
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "f_port": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "frm_payload": {
                              "format": "byte",
                              "type": "string"
                            },
                            "full_f_cnt": {
                              "description": "Full 32-bit FCnt value. Used internally by Network Server.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "mic": {
                          "format": "byte",
                          "type": "string"
                        },
                        "rejoin_request_payload": {
                          "properties": {
                            "dev_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "join_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "net_id": {
                              "example": "000013",
                              "format": "string",
                              "type": "string"
                            },
                            "rejoin_cnt": {
                              "description": "Contains RJCount0 or RJCount1 depending on rejoin_type.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "rejoin_type": {
                              "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.",
                              "enum": [
                                "CONTEXT",
                                "SESSION",
                                "KEYS"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "title": "Message represents a LoRaWAN message",
                      "type": "object"
                    },
                    "received_at": {
                      "format": "date-time",
                      "type": "string"
                    },
                    "rx_metadata": {
                      "items": {
                        "properties": {
                          "channel_rssi": {
                            "format": "float",
                            "type": "number"
                          },
                          "downlink_path_constraint": {
                            "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.",
                            "enum": [
                              "DOWNLINK_PATH_CONSTRAINT_NONE",
                              "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
                              "DOWNLINK_PATH_CONSTRAINT_NEVER"
                            ],
                            "type": "string"
                          },
                          "gateway_ids": {
                            "properties": {
                              "eui": {
                                "description": "Secondary identifier, which can only be used in specific requests.",
                                "example": "70B3D57ED000ABCD",
                                "format": "string",
                                "type": "string"
                              },
                              "gateway_id": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "packet_broker": {
                            "type": "object"
                          },
                          "relay": {
                            "type": "object"
                          },
                          "snr": {
                            "format": "float",
                            "type": "number"
                          },
                          "uplink_token": {
                            "format": "byte",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "settings": {
                      "properties": {
                        "data_rate": {
                          "properties": {
                            "fsk": {
                              "properties": {
                                "bit_rate": {
                                  "description": "Bit rate (bps).",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "lora": {
                              "properties": {
                                "bandwidth": {
                                  "description": "Bandwidth (Hz).",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "coding_rate": {
                                  "type": "string"
                                },
                                "spreading_factor": {
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "lrfhss": {
                              "properties": {
                                "coding_rate": {
                                  "type": "string"
                                },
                                "modulation_type": {
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "operating_channel_width": {
                                  "description": "Operating Channel Width (Hz).",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "rejected_adr_data_rate_indexes": {
                "description": "ADR Data rate index values rejected by the device.\nReset each time `current_parameters.channels` change.\nElements are sorted in ascending order.",
                "items": {
                  "default": "DATA_RATE_0",
                  "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"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              "rejected_adr_tx_power_indexes": {
                "description": "ADR TX output power index values rejected by the device.\nElements are sorted in ascending order.",
                "items": {
                  "format": "int64",
                  "type": "integer"
                },
                "type": "array"
              },
              "rejected_data_rate_ranges": {
                "additionalProperties": {
                  "properties": {
                    "ranges": {
                      "items": {
                        "properties": {
                          "max_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "min_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "description": "Data rate ranges rejected by the device per frequency.",
                "type": "object"
              },
              "rejected_frequencies": {
                "description": "Frequencies rejected by the device.",
                "items": {
                  "format": "uint64",
                  "type": "string"
                },
                "type": "array"
              },
              "rx_windows_available": {
                "description": "Whether or not Rx windows are expected to be open.\nSet to true every time an uplink is received.\nSet to false every time a successful downlink scheduling attempt is made.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "max_frequency": {
            "description": "Maximum frequency the device is capable of using (Hz). Stored in Network Server.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "format": "uint64",
            "type": "string"
          },
          "min_frequency": {
            "description": "Minimum frequency the device is capable of using (Hz). Stored in Network Server.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "format": "uint64",
            "type": "string"
          },
          "multicast": {
            "description": "Indicates whether this device represents a multicast group.",
            "type": "boolean"
          },
          "name": {
            "description": "Friendly name of the device. Stored in Entity Registry.",
            "type": "string"
          },
          "net_id": {
            "description": "Home NetID. Stored in Join Server.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "network_server_address": {
            "description": "The address of the Network Server where this device is supposed to be registered.\nStored in Entity Registry and Join Server.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
            "type": "string"
          },
          "network_server_kek_label": {
            "description": "The KEK label of the Network Server to use for wrapping network session keys.\nStored in Join Server.",
            "type": "string"
          },
          "pending_mac_state": {
            "description": "MACState represents the state of MAC layer of the device.\nMACState is reset on each join for OTAA or ResetInd for ABP devices.\nThis is used internally by the Network Server.",
            "properties": {
              "current_parameters": {
                "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
                "properties": {
                  "adr_ack_delay": {
                    "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_delay_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_DELAY_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_ack_limit": {
                    "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_limit_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_LIMIT_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "adr_nb_trans": {
                    "description": "ADR: number of retransmissions.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_tx_power_index": {
                    "description": "ADR: transmission power index to use.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "beacon_frequency": {
                    "description": "Frequency of the class B beacon (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "channels": {
                    "description": "Configured uplink channels and optionally Rx1 frequency.",
                    "items": {
                      "properties": {
                        "downlink_frequency": {
                          "description": "Downlink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "enable_uplink": {
                          "description": "Channel can be used by device for uplink.",
                          "type": "boolean"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_frequency": {
                          "description": "Uplink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "downlink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "max_duty_cycle": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "max_eirp": {
                    "description": "Maximum EIRP (dBm).",
                    "format": "float",
                    "type": "number"
                  },
                  "ping_slot_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "ping_slot_data_rate_index_value": {
                    "properties": {
                      "value": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "ping_slot_frequency": {
                    "description": "Frequency of the class B ping slot (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "rejoin_count_periodicity": {
                    "default": "REJOIN_COUNT_16",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rejoin_time_periodicity": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "relay": {
                    "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                    "properties": {
                      "served": {
                        "properties": {
                          "always": {
                            "type": "object"
                          },
                          "backoff": {
                            "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "dynamic": {
                            "properties": {
                              "smart_enable_level": {
                                "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                "enum": [
                                  "RELAY_SMART_ENABLE_LEVEL_8",
                                  "RELAY_SMART_ENABLE_LEVEL_16",
                                  "RELAY_SMART_ENABLE_LEVEL_32",
                                  "RELAY_SMART_ENABLE_LEVEL_64"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "end_device_controlled": {
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "serving_device_id": {
                            "description": "End device identifier of the serving end device.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving": {
                        "properties": {
                          "cad_periodicity": {
                            "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                            "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"
                            ],
                            "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                            "type": "string"
                          },
                          "default_channel_index": {
                            "description": "Index of the default wake on radio channel.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "limits": {
                            "properties": {
                              "join_requests": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "notifications": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "overall": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "reset_behavior": {
                                "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                "enum": [
                                  "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                  "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                  "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                  "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                                ],
                                "type": "string"
                              },
                              "uplink_messages": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "uplink_forwarding_rules": {
                            "description": "Configured uplink forwarding rules.",
                            "items": {
                              "properties": {
                                "device_id": {
                                  "description": "End device identifier of the served end device.",
                                  "type": "string"
                                },
                                "last_w_f_cnt": {
                                  "description": "Last wake on radio frame counter used by the served end device.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "limits": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "session_key_id": {
                                  "description": "Session key ID of the session keys used to derive the root relay session key.",
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "rx1_data_rate_offset": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx1_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_frequency": {
                    "description": "Frequency for Rx2 (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "uplink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "desired_parameters": {
                "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
                "properties": {
                  "adr_ack_delay": {
                    "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_delay_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_DELAY_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_ack_limit": {
                    "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_limit_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_LIMIT_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "adr_nb_trans": {
                    "description": "ADR: number of retransmissions.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_tx_power_index": {
                    "description": "ADR: transmission power index to use.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "beacon_frequency": {
                    "description": "Frequency of the class B beacon (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "channels": {
                    "description": "Configured uplink channels and optionally Rx1 frequency.",
                    "items": {
                      "properties": {
                        "downlink_frequency": {
                          "description": "Downlink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "enable_uplink": {
                          "description": "Channel can be used by device for uplink.",
                          "type": "boolean"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_frequency": {
                          "description": "Uplink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "downlink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "max_duty_cycle": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "max_eirp": {
                    "description": "Maximum EIRP (dBm).",
                    "format": "float",
                    "type": "number"
                  },
                  "ping_slot_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "ping_slot_data_rate_index_value": {
                    "properties": {
                      "value": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "ping_slot_frequency": {
                    "description": "Frequency of the class B ping slot (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "rejoin_count_periodicity": {
                    "default": "REJOIN_COUNT_16",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rejoin_time_periodicity": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "relay": {
                    "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                    "properties": {
                      "served": {
                        "properties": {
                          "always": {
                            "type": "object"
                          },
                          "backoff": {
                            "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "dynamic": {
                            "properties": {
                              "smart_enable_level": {
                                "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                "enum": [
                                  "RELAY_SMART_ENABLE_LEVEL_8",
                                  "RELAY_SMART_ENABLE_LEVEL_16",
                                  "RELAY_SMART_ENABLE_LEVEL_32",
                                  "RELAY_SMART_ENABLE_LEVEL_64"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "end_device_controlled": {
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "serving_device_id": {
                            "description": "End device identifier of the serving end device.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving": {
                        "properties": {
                          "cad_periodicity": {
                            "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                            "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"
                            ],
                            "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                            "type": "string"
                          },
                          "default_channel_index": {
                            "description": "Index of the default wake on radio channel.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "limits": {
                            "properties": {
                              "join_requests": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "notifications": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "overall": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "reset_behavior": {
                                "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                "enum": [
                                  "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                  "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                  "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                  "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                                ],
                                "type": "string"
                              },
                              "uplink_messages": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "uplink_forwarding_rules": {
                            "description": "Configured uplink forwarding rules.",
                            "items": {
                              "properties": {
                                "device_id": {
                                  "description": "End device identifier of the served end device.",
                                  "type": "string"
                                },
                                "last_w_f_cnt": {
                                  "description": "Last wake on radio frame counter used by the served end device.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "limits": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "session_key_id": {
                                  "description": "Session key ID of the session keys used to derive the root relay session key.",
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "rx1_data_rate_offset": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx1_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_frequency": {
                    "description": "Frequency for Rx2 (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "uplink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "device_class": {
                "default": "CLASS_A",
                "enum": [
                  "CLASS_A",
                  "CLASS_B",
                  "CLASS_C"
                ],
                "type": "string"
              },
              "last_adr_change_f_cnt_up": {
                "description": "Frame counter of uplink, which confirmed the last ADR parameter change.",
                "format": "int64",
                "type": "integer"
              },
              "last_confirmed_downlink_at": {
                "description": "Time when the last confirmed downlink message or MAC command was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "last_dev_status_f_cnt_up": {
                "description": "Frame counter value of last uplink containing DevStatusAns.",
                "format": "int64",
                "type": "integer"
              },
              "last_downlink_at": {
                "description": "Time when the last downlink message was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "last_network_initiated_downlink_at": {
                "description": "Time when the last network-initiated downlink message was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "lorawan_version": {
                "default": "MAC_UNKNOWN",
                "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"
                ],
                "type": "string"
              },
              "pending_application_downlink": {
                "properties": {
                  "attributes": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "Attributes for devices, set by the Application Server while handling the message.",
                    "type": "object"
                  },
                  "class_b_c": {
                    "properties": {
                      "absolute_time": {
                        "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                        "format": "date-time",
                        "type": "string"
                      },
                      "gateways": {
                        "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                        "items": {
                          "properties": {
                            "antenna_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "gateway_ids": {
                              "properties": {
                                "eui": {
                                  "description": "Secondary identifier, which can only be used in specific requests.",
                                  "example": "70B3D57ED000ABCD",
                                  "format": "string",
                                  "type": "string"
                                },
                                "gateway_id": {
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "group_index": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  },
                  "confirmed": {
                    "type": "boolean"
                  },
                  "confirmed_retry": {
                    "properties": {
                      "attempt": {
                        "description": "The number of attempted confirmed downlink acknowledgements.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_attempts": {
                        "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "correlation_ids": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "decoded_payload": {
                    "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                    "type": "object"
                  },
                  "decoded_payload_warnings": {
                    "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "f_cnt": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "f_port": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "frm_payload": {
                    "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                    "format": "byte",
                    "type": "string"
                  },
                  "locations": {
                    "additionalProperties": {
                      "properties": {
                        "accuracy": {
                          "description": "The accuracy of the location (meters).",
                          "format": "int32",
                          "type": "integer"
                        },
                        "altitude": {
                          "description": "The altitude (meters), where 0 is the mean sea level.",
                          "format": "int32",
                          "type": "integer"
                        },
                        "latitude": {
                          "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                          "format": "double",
                          "type": "number"
                        },
                        "longitude": {
                          "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                          "format": "double",
                          "type": "number"
                        },
                        "source": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "description": "End device location metadata, set by the Application Server while handling the message.",
                    "type": "object"
                  },
                  "network_ids": {
                    "description": "Identifies a Network Server.",
                    "properties": {
                      "cluster_address": {
                        "description": "Cluster address of the Network Server.",
                        "type": "string"
                      },
                      "cluster_id": {
                        "description": "Cluster identifier of the Network Server.",
                        "type": "string"
                      },
                      "net_id": {
                        "description": "LoRa Alliance NetID.",
                        "example": "000013",
                        "format": "string",
                        "type": "string"
                      },
                      "ns_id": {
                        "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                        "example": "70B3D57ED000ABCD",
                        "format": "string",
                        "type": "string"
                      },
                      "tenant_address": {
                        "description": "Optional tenant address for multi-tenant deployments.",
                        "type": "string"
                      },
                      "tenant_id": {
                        "description": "Optional tenant identifier for multi-tenant deployments.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "priority": {
                    "default": "LOWEST",
                    "enum": [
                      "LOWEST",
                      "LOW",
                      "BELOW_NORMAL",
                      "NORMAL",
                      "ABOVE_NORMAL",
                      "HIGH",
                      "HIGHEST"
                    ],
                    "type": "string"
                  },
                  "session_key_id": {
                    "description": "Join Server issued identifier for the session keys used by this downlink.",
                    "format": "byte",
                    "type": "string"
                  },
                  "version_ids": {
                    "description": "Identifies an end device model with version information.",
                    "properties": {
                      "band_id": {
                        "type": "string"
                      },
                      "brand_id": {
                        "type": "string"
                      },
                      "firmware_version": {
                        "type": "string"
                      },
                      "hardware_version": {
                        "type": "string"
                      },
                      "model_id": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "pending_join_request": {
                "properties": {
                  "cf_list": {
                    "properties": {
                      "ch_masks": {
                        "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                        "items": {
                          "type": "boolean"
                        },
                        "type": "array"
                      },
                      "freq": {
                        "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                        "items": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "type": "array"
                      },
                      "type": {
                        "default": "FREQUENCIES",
                        "enum": [
                          "FREQUENCIES",
                          "CHANNEL_MASKS"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "downlink_settings": {
                    "properties": {
                      "opt_neg": {
                        "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                        "type": "boolean"
                      },
                      "rx1_dr_offset": {
                        "default": "DATA_RATE_OFFSET_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "rx2_dr": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "rx_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "pending_relay_downlink": {
                "properties": {
                  "raw_payload": {
                    "format": "byte",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "pending_requests": {
                "description": "Pending MAC requests(i.e. sent requests, for which no response has been received yet).\nRegenerated on each downlink.",
                "items": {
                  "properties": {
                    "adr_param_setup_req": {
                      "properties": {
                        "adr_ack_delay_exponent": {
                          "default": "ADR_ACK_DELAY_1",
                          "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"
                          ],
                          "type": "string"
                        },
                        "adr_ack_limit_exponent": {
                          "default": "ADR_ACK_LIMIT_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_ans": {
                      "properties": {
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_req": {
                      "properties": {
                        "frequency": {
                          "description": "Frequency of the Class B beacons (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_timing_ans": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "delay": {
                          "description": "(uint16) See LoRaWAN specification.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "cid": {
                      "default": "CID_RFU_0",
                      "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"
                      ],
                      "title": "- CID_BEACON_TIMING: Deprecated",
                      "type": "string"
                    },
                    "dev_status_ans": {
                      "properties": {
                        "battery": {
                          "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "SNR of the last downlink (dB; [-32, +31]).",
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_conf": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_ind": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_time_ans": {
                      "properties": {
                        "time": {
                          "format": "date-time",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_ans": {
                      "properties": {
                        "channel_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Downlink channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "duty_cycle_req": {
                      "properties": {
                        "max_duty_cycle": {
                          "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%.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "force_rejoin_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_retries": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "period_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rejoin_type": {
                          "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.",
                          "enum": [
                            "CONTEXT",
                            "SESSION",
                            "KEYS"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_ans": {
                      "properties": {
                        "channel_mask_ack": {
                          "type": "boolean"
                        },
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "tx_power_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_req": {
                      "properties": {
                        "channel_mask": {
                          "items": {
                            "type": "boolean"
                          },
                          "type": "array"
                        },
                        "channel_mask_control": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "nb_trans": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "tx_power_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "link_check_ans": {
                      "properties": {
                        "gateway_count": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_ans": {
                      "properties": {
                        "data_rate_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_ans": {
                      "properties": {
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "frequency": {
                          "description": "Ping slot channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_info_req": {
                      "properties": {
                        "period": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "raw_payload": {
                      "format": "byte",
                      "type": "string"
                    },
                    "rejoin_param_setup_ans": {
                      "properties": {
                        "max_time_exponent_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rejoin_param_setup_req": {
                      "properties": {
                        "max_count_exponent": {
                          "default": "REJOIN_COUNT_16",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_time_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_ans": {
                      "properties": {
                        "cad_periodicity_ack": {
                          "type": "boolean"
                        },
                        "default_channel_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_ack_offset_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "cad_periodicity": {
                              "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                              "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"
                              ],
                              "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                              "type": "string"
                            },
                            "default_channel_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_ans": {
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_req": {
                      "properties": {
                        "global_uplink_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "notify_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "overall_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "reset_limit_counter": {
                          "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                          "enum": [
                            "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                            "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                            "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_ans": {
                      "properties": {
                        "rule_index_ack": {
                          "type": "boolean"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_req": {
                      "properties": {
                        "action": {
                          "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                          "enum": [
                            "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                            "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                          ],
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_ans": {
                      "properties": {
                        "backoff_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "always": {
                              "type": "object"
                            },
                            "backoff": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "dynamic": {
                              "properties": {
                                "smart_enable_level": {
                                  "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                  "enum": [
                                    "RELAY_SMART_ENABLE_LEVEL_8",
                                    "RELAY_SMART_ENABLE_LEVEL_16",
                                    "RELAY_SMART_ENABLE_LEVEL_32",
                                    "RELAY_SMART_ENABLE_LEVEL_64"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "end_device_controlled": {
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "serving_device_id": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_notify_new_end_device_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "rssi": {
                          "format": "int32",
                          "type": "integer"
                        },
                        "snr": {
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_update_uplink_list_ans": {
                      "type": "object"
                    },
                    "relay_update_uplink_list_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "device_id": {
                          "type": "string"
                        },
                        "forward_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "root_wor_s_key": {
                          "example": "0123456789ABCDEF0123456789ABCDEF",
                          "format": "string",
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "session_key_id": {
                          "format": "byte",
                          "type": "string"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "reset_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "reset_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_ans": {
                      "properties": {
                        "rx1_data_rate_offset_ack": {
                          "type": "boolean"
                        },
                        "rx2_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "rx2_frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_req": {
                      "properties": {
                        "rx1_data_rate_offset": {
                          "default": "DATA_RATE_OFFSET_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_frequency": {
                          "description": "Rx2 frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_timing_setup_req": {
                      "properties": {
                        "delay": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "tx_param_setup_req": {
                      "properties": {
                        "downlink_dwell_time": {
                          "type": "boolean"
                        },
                        "max_eirp_index": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_dwell_time": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "ping_slot_periodicity": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "queued_join_accept": {
                "properties": {
                  "correlation_ids": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "dev_addr": {
                    "example": "2600ABCD",
                    "format": "string",
                    "type": "string"
                  },
                  "keys": {
                    "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
                    "properties": {
                      "app_s_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "f_nwk_s_int_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "nwk_s_enc_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "s_nwk_s_int_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "session_key_id": {
                        "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                        "format": "byte",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "net_id": {
                    "example": "000013",
                    "format": "string",
                    "type": "string"
                  },
                  "payload": {
                    "description": "Payload of the join-accept received from Join Server.",
                    "format": "byte",
                    "type": "string"
                  },
                  "request": {
                    "properties": {
                      "cf_list": {
                        "properties": {
                          "ch_masks": {
                            "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                            "items": {
                              "type": "boolean"
                            },
                            "type": "array"
                          },
                          "freq": {
                            "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                            "items": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "type": "array"
                          },
                          "type": {
                            "default": "FREQUENCIES",
                            "enum": [
                              "FREQUENCIES",
                              "CHANNEL_MASKS"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "downlink_settings": {
                        "properties": {
                          "opt_neg": {
                            "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                            "type": "boolean"
                          },
                          "rx1_dr_offset": {
                            "default": "DATA_RATE_OFFSET_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "rx2_dr": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rx_delay": {
                        "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.",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "queued_responses": {
                "description": "Queued MAC responses.\nRegenerated on each uplink.",
                "items": {
                  "properties": {
                    "adr_param_setup_req": {
                      "properties": {
                        "adr_ack_delay_exponent": {
                          "default": "ADR_ACK_DELAY_1",
                          "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"
                          ],
                          "type": "string"
                        },
                        "adr_ack_limit_exponent": {
                          "default": "ADR_ACK_LIMIT_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_ans": {
                      "properties": {
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_req": {
                      "properties": {
                        "frequency": {
                          "description": "Frequency of the Class B beacons (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_timing_ans": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "delay": {
                          "description": "(uint16) See LoRaWAN specification.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "cid": {
                      "default": "CID_RFU_0",
                      "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"
                      ],
                      "title": "- CID_BEACON_TIMING: Deprecated",
                      "type": "string"
                    },
                    "dev_status_ans": {
                      "properties": {
                        "battery": {
                          "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "SNR of the last downlink (dB; [-32, +31]).",
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_conf": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_ind": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_time_ans": {
                      "properties": {
                        "time": {
                          "format": "date-time",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_ans": {
                      "properties": {
                        "channel_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Downlink channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "duty_cycle_req": {
                      "properties": {
                        "max_duty_cycle": {
                          "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%.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "force_rejoin_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_retries": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "period_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rejoin_type": {
                          "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.",
                          "enum": [
                            "CONTEXT",
                            "SESSION",
                            "KEYS"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_ans": {
                      "properties": {
                        "channel_mask_ack": {
                          "type": "boolean"
                        },
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "tx_power_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_req": {
                      "properties": {
                        "channel_mask": {
                          "items": {
                            "type": "boolean"
                          },
                          "type": "array"
                        },
                        "channel_mask_control": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "nb_trans": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "tx_power_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "link_check_ans": {
                      "properties": {
                        "gateway_count": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_ans": {
                      "properties": {
                        "data_rate_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_ans": {
                      "properties": {
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "frequency": {
                          "description": "Ping slot channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_info_req": {
                      "properties": {
                        "period": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "raw_payload": {
                      "format": "byte",
                      "type": "string"
                    },
                    "rejoin_param_setup_ans": {
                      "properties": {
                        "max_time_exponent_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rejoin_param_setup_req": {
                      "properties": {
                        "max_count_exponent": {
                          "default": "REJOIN_COUNT_16",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_time_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_ans": {
                      "properties": {
                        "cad_periodicity_ack": {
                          "type": "boolean"
                        },
                        "default_channel_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_ack_offset_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "cad_periodicity": {
                              "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                              "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"
                              ],
                              "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                              "type": "string"
                            },
                            "default_channel_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_ans": {
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_req": {
                      "properties": {
                        "global_uplink_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "notify_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "overall_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "reset_limit_counter": {
                          "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                          "enum": [
                            "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                            "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                            "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_ans": {
                      "properties": {
                        "rule_index_ack": {
                          "type": "boolean"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_req": {
                      "properties": {
                        "action": {
                          "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                          "enum": [
                            "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                            "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                          ],
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_ans": {
                      "properties": {
                        "backoff_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "always": {
                              "type": "object"
                            },
                            "backoff": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "dynamic": {
                              "properties": {
                                "smart_enable_level": {
                                  "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                  "enum": [
                                    "RELAY_SMART_ENABLE_LEVEL_8",
                                    "RELAY_SMART_ENABLE_LEVEL_16",
                                    "RELAY_SMART_ENABLE_LEVEL_32",
                                    "RELAY_SMART_ENABLE_LEVEL_64"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "end_device_controlled": {
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "serving_device_id": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_notify_new_end_device_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "rssi": {
                          "format": "int32",
                          "type": "integer"
                        },
                        "snr": {
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_update_uplink_list_ans": {
                      "type": "object"
                    },
                    "relay_update_uplink_list_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "device_id": {
                          "type": "string"
                        },
                        "forward_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "root_wor_s_key": {
                          "example": "0123456789ABCDEF0123456789ABCDEF",
                          "format": "string",
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "session_key_id": {
                          "format": "byte",
                          "type": "string"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "reset_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "reset_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_ans": {
                      "properties": {
                        "rx1_data_rate_offset_ack": {
                          "type": "boolean"
                        },
                        "rx2_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "rx2_frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_req": {
                      "properties": {
                        "rx1_data_rate_offset": {
                          "default": "DATA_RATE_OFFSET_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_frequency": {
                          "description": "Rx2 frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_timing_setup_req": {
                      "properties": {
                        "delay": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "tx_param_setup_req": {
                      "properties": {
                        "downlink_dwell_time": {
                          "type": "boolean"
                        },
                        "max_eirp_index": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_dwell_time": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "recent_downlinks": {
                "description": "Recent data downlink messages sorted by time.\nThe number of messages stored may depend on configuration.",
                "items": {
                  "description": "A minimal DownlinkMessage definition which is binary compatible with the top level DownlinkMessage message.\nUsed for type safe recent downlink storage.",
                  "properties": {
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "payload": {
                      "properties": {
                        "m_hdr": {
                          "properties": {
                            "m_type": {
                              "default": "JOIN_REQUEST",
                              "enum": [
                                "JOIN_REQUEST",
                                "JOIN_ACCEPT",
                                "UNCONFIRMED_UP",
                                "UNCONFIRMED_DOWN",
                                "CONFIRMED_UP",
                                "CONFIRMED_DOWN",
                                "REJOIN_REQUEST",
                                "PROPRIETARY"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "mac_payload": {
                          "properties": {
                            "f_port": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "full_f_cnt": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "recent_mac_command_identifiers": {
                "description": "MAC command identifiers sent by the end device in the last received uplink.\nThe Network Server may choose to store only certain types of MAC\ncommand identifiers in the underlying implementation.",
                "items": {
                  "default": "CID_RFU_0",
                  "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"
                  ],
                  "title": "- CID_BEACON_TIMING: Deprecated",
                  "type": "string"
                },
                "type": "array"
              },
              "recent_uplinks": {
                "description": "Recent data uplink messages sorted by time.\nThe number of messages stored may depend on configuration.",
                "items": {
                  "description": "A minimal UplinkMessage definition which is binary compatible with the top level UplinkMessage message.\nUsed for type safe recent uplink storage.",
                  "properties": {
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "device_channel_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "payload": {
                      "properties": {
                        "join_accept_payload": {
                          "properties": {
                            "cf_list": {
                              "properties": {
                                "ch_masks": {
                                  "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                                  "items": {
                                    "type": "boolean"
                                  },
                                  "type": "array"
                                },
                                "freq": {
                                  "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                                  "items": {
                                    "format": "int64",
                                    "type": "integer"
                                  },
                                  "type": "array"
                                },
                                "type": {
                                  "default": "FREQUENCIES",
                                  "enum": [
                                    "FREQUENCIES",
                                    "CHANNEL_MASKS"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "dev_addr": {
                              "example": "2600ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "dl_settings": {
                              "properties": {
                                "opt_neg": {
                                  "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                                  "type": "boolean"
                                },
                                "rx1_dr_offset": {
                                  "default": "DATA_RATE_OFFSET_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "rx2_dr": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "encrypted": {
                              "format": "byte",
                              "type": "string"
                            },
                            "join_nonce": {
                              "example": "ABCDEF",
                              "format": "string",
                              "type": "string"
                            },
                            "net_id": {
                              "example": "000013",
                              "format": "string",
                              "type": "string"
                            },
                            "rx_delay": {
                              "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.",
                              "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"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_payload": {
                          "properties": {
                            "dev_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "dev_nonce": {
                              "example": "ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "join_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "m_hdr": {
                          "properties": {
                            "m_type": {
                              "default": "JOIN_REQUEST",
                              "enum": [
                                "JOIN_REQUEST",
                                "JOIN_ACCEPT",
                                "UNCONFIRMED_UP",
                                "UNCONFIRMED_DOWN",
                                "CONFIRMED_UP",
                                "CONFIRMED_DOWN",
                                "REJOIN_REQUEST",
                                "PROPRIETARY"
                              ],
                              "type": "string"
                            },
                            "major": {
                              "default": "LORAWAN_R1",
                              "enum": [
                                "LORAWAN_R1"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "mac_payload": {
                          "properties": {
                            "decoded_payload": {
                              "type": "object"
                            },
                            "f_hdr": {
                              "properties": {
                                "dev_addr": {
                                  "example": "2600ABCD",
                                  "format": "string",
                                  "type": "string"
                                },
                                "f_cnt": {
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "f_ctrl": {
                                  "properties": {
                                    "ack": {
                                      "type": "boolean"
                                    },
                                    "adr": {
                                      "type": "boolean"
                                    },
                                    "adr_ack_req": {
                                      "description": "Only on uplink.",
                                      "type": "boolean"
                                    },
                                    "class_b": {
                                      "description": "Only on uplink.",
                                      "type": "boolean"
                                    },
                                    "f_pending": {
                                      "description": "Only on downlink.",
                                      "type": "boolean"
                                    }
                                  },
                                  "type": "object"
                                },
                                "f_opts": {
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "f_port": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "frm_payload": {
                              "format": "byte",
                              "type": "string"
                            },
                            "full_f_cnt": {
                              "description": "Full 32-bit FCnt value. Used internally by Network Server.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "mic": {
                          "format": "byte",
                          "type": "string"
                        },
                        "rejoin_request_payload": {
                          "properties": {
                            "dev_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "join_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "net_id": {
                              "example": "000013",
                              "format": "string",
                              "type": "string"
                            },
                            "rejoin_cnt": {
                              "description": "Contains RJCount0 or RJCount1 depending on rejoin_type.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "rejoin_type": {
                              "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.",
                              "enum": [
                                "CONTEXT",
                                "SESSION",
                                "KEYS"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "title": "Message represents a LoRaWAN message",
                      "type": "object"
                    },
                    "received_at": {
                      "format": "date-time",
                      "type": "string"
                    },
                    "rx_metadata": {
                      "items": {
                        "properties": {
                          "channel_rssi": {
                            "format": "float",
                            "type": "number"
                          },
                          "downlink_path_constraint": {
                            "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.",
                            "enum": [
                              "DOWNLINK_PATH_CONSTRAINT_NONE",
                              "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
                              "DOWNLINK_PATH_CONSTRAINT_NEVER"
                            ],
                            "type": "string"
                          },
                          "gateway_ids": {
                            "properties": {
                              "eui": {
                                "description": "Secondary identifier, which can only be used in specific requests.",
                                "example": "70B3D57ED000ABCD",
                                "format": "string",
                                "type": "string"
                              },
                              "gateway_id": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "packet_broker": {
                            "type": "object"
                          },
                          "relay": {
                            "type": "object"
                          },
                          "snr": {
                            "format": "float",
                            "type": "number"
                          },
                          "uplink_token": {
                            "format": "byte",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "settings": {
                      "properties": {
                        "data_rate": {
                          "properties": {
                            "fsk": {
                              "properties": {
                                "bit_rate": {
                                  "description": "Bit rate (bps).",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "lora": {
                              "properties": {
                                "bandwidth": {
                                  "description": "Bandwidth (Hz).",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "coding_rate": {
                                  "type": "string"
                                },
                                "spreading_factor": {
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "lrfhss": {
                              "properties": {
                                "coding_rate": {
                                  "type": "string"
                                },
                                "modulation_type": {
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "operating_channel_width": {
                                  "description": "Operating Channel Width (Hz).",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "rejected_adr_data_rate_indexes": {
                "description": "ADR Data rate index values rejected by the device.\nReset each time `current_parameters.channels` change.\nElements are sorted in ascending order.",
                "items": {
                  "default": "DATA_RATE_0",
                  "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"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              "rejected_adr_tx_power_indexes": {
                "description": "ADR TX output power index values rejected by the device.\nElements are sorted in ascending order.",
                "items": {
                  "format": "int64",
                  "type": "integer"
                },
                "type": "array"
              },
              "rejected_data_rate_ranges": {
                "additionalProperties": {
                  "properties": {
                    "ranges": {
                      "items": {
                        "properties": {
                          "max_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "min_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "description": "Data rate ranges rejected by the device per frequency.",
                "type": "object"
              },
              "rejected_frequencies": {
                "description": "Frequencies rejected by the device.",
                "items": {
                  "format": "uint64",
                  "type": "string"
                },
                "type": "array"
              },
              "rx_windows_available": {
                "description": "Whether or not Rx windows are expected to be open.\nSet to true every time an uplink is received.\nSet to false every time a successful downlink scheduling attempt is made.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "pending_session": {
            "properties": {
              "dev_addr": {
                "description": "Device Address, issued by the Network Server or chosen by device manufacturer in case of testing range (beginning with 00-03).\nKnown by Network Server, Application Server and Join Server. Owned by Network Server.",
                "example": "2600ABCD",
                "format": "string",
                "type": "string"
              },
              "keys": {
                "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
                "properties": {
                  "app_s_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "f_nwk_s_int_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "nwk_s_enc_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "s_nwk_s_int_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "session_key_id": {
                    "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                    "format": "byte",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "last_a_f_cnt_down": {
                "description": "Last application downlink frame counter value used. Application Server only.",
                "format": "int64",
                "type": "integer"
              },
              "last_conf_f_cnt_down": {
                "description": "Frame counter of the last confirmed downlink message sent. Network Server only.",
                "format": "int64",
                "type": "integer"
              },
              "last_f_cnt_up": {
                "description": "Last uplink frame counter value used. Network Server only. Application Server assumes the Network Server checked it.",
                "format": "int64",
                "type": "integer"
              },
              "last_n_f_cnt_down": {
                "description": "Last network downlink frame counter value used. Network Server only.",
                "format": "int64",
                "type": "integer"
              },
              "queued_application_downlinks": {
                "description": "Queued Application downlink messages. Stored in Application Server and Network Server.",
                "items": {
                  "properties": {
                    "attributes": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Attributes for devices, set by the Application Server while handling the message.",
                      "type": "object"
                    },
                    "class_b_c": {
                      "properties": {
                        "absolute_time": {
                          "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                          "format": "date-time",
                          "type": "string"
                        },
                        "gateways": {
                          "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                          "items": {
                            "properties": {
                              "antenna_index": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "gateway_ids": {
                                "properties": {
                                  "eui": {
                                    "description": "Secondary identifier, which can only be used in specific requests.",
                                    "example": "70B3D57ED000ABCD",
                                    "format": "string",
                                    "type": "string"
                                  },
                                  "gateway_id": {
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "group_index": {
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "confirmed": {
                      "type": "boolean"
                    },
                    "confirmed_retry": {
                      "properties": {
                        "attempt": {
                          "description": "The number of attempted confirmed downlink acknowledgements.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "max_attempts": {
                          "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "decoded_payload": {
                      "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                      "type": "object"
                    },
                    "decoded_payload_warnings": {
                      "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "f_cnt": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "f_port": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "frm_payload": {
                      "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                      "format": "byte",
                      "type": "string"
                    },
                    "locations": {
                      "additionalProperties": {
                        "properties": {
                          "accuracy": {
                            "description": "The accuracy of the location (meters).",
                            "format": "int32",
                            "type": "integer"
                          },
                          "altitude": {
                            "description": "The altitude (meters), where 0 is the mean sea level.",
                            "format": "int32",
                            "type": "integer"
                          },
                          "latitude": {
                            "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                            "format": "double",
                            "type": "number"
                          },
                          "longitude": {
                            "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                            "format": "double",
                            "type": "number"
                          },
                          "source": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "description": "End device location metadata, set by the Application Server while handling the message.",
                      "type": "object"
                    },
                    "network_ids": {
                      "description": "Identifies a Network Server.",
                      "properties": {
                        "cluster_address": {
                          "description": "Cluster address of the Network Server.",
                          "type": "string"
                        },
                        "cluster_id": {
                          "description": "Cluster identifier of the Network Server.",
                          "type": "string"
                        },
                        "net_id": {
                          "description": "LoRa Alliance NetID.",
                          "example": "000013",
                          "format": "string",
                          "type": "string"
                        },
                        "ns_id": {
                          "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "tenant_address": {
                          "description": "Optional tenant address for multi-tenant deployments.",
                          "type": "string"
                        },
                        "tenant_id": {
                          "description": "Optional tenant identifier for multi-tenant deployments.",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "priority": {
                      "default": "LOWEST",
                      "enum": [
                        "LOWEST",
                        "LOW",
                        "BELOW_NORMAL",
                        "NORMAL",
                        "ABOVE_NORMAL",
                        "HIGH",
                        "HIGHEST"
                      ],
                      "type": "string"
                    },
                    "session_key_id": {
                      "description": "Join Server issued identifier for the session keys used by this downlink.",
                      "format": "byte",
                      "type": "string"
                    },
                    "version_ids": {
                      "description": "Identifies an end device model with version information.",
                      "properties": {
                        "band_id": {
                          "type": "string"
                        },
                        "brand_id": {
                          "type": "string"
                        },
                        "firmware_version": {
                          "type": "string"
                        },
                        "hardware_version": {
                          "type": "string"
                        },
                        "model_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "started_at": {
                "description": "Time when the session started. Network Server only.",
                "format": "date-time",
                "type": "string"
              }
            },
            "type": "object"
          },
          "picture": {
            "properties": {
              "embedded": {
                "properties": {
                  "data": {
                    "description": "Picture data. A data URI can be constructed as follows:\n`data:\u003cmime_type\u003e;base64,\u003cdata\u003e`.",
                    "format": "byte",
                    "type": "string"
                  },
                  "mime_type": {
                    "description": "MIME type of the picture.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "sizes": {
                "additionalProperties": {
                  "type": "string"
                },
                "description": "URLs of the picture for different sizes, if available on a CDN.",
                "type": "object"
              }
            },
            "type": "object"
          },
          "power_state": {
            "default": "POWER_UNKNOWN",
            "description": "Power state of the device.",
            "enum": [
              "POWER_UNKNOWN",
              "POWER_BATTERY",
              "POWER_EXTERNAL"
            ],
            "type": "string"
          },
          "provisioner_id": {
            "description": "ID of the provisioner. Stored in Join Server.",
            "type": "string"
          },
          "provisioning_data": {
            "description": "Vendor-specific provisioning data. Stored in Join Server.",
            "type": "object"
          },
          "queued_application_downlinks": {
            "description": "Queued Application downlink messages. Stored in Application Server,\nwhich sets them on the Network Server.\nThis field is deprecated and is always set equal to session.queued_application_downlinks.",
            "items": {
              "properties": {
                "attributes": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Attributes for devices, set by the Application Server while handling the message.",
                  "type": "object"
                },
                "class_b_c": {
                  "properties": {
                    "absolute_time": {
                      "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                      "format": "date-time",
                      "type": "string"
                    },
                    "gateways": {
                      "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                      "items": {
                        "properties": {
                          "antenna_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "gateway_ids": {
                            "properties": {
                              "eui": {
                                "description": "Secondary identifier, which can only be used in specific requests.",
                                "example": "70B3D57ED000ABCD",
                                "format": "string",
                                "type": "string"
                              },
                              "gateway_id": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "group_index": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "confirmed": {
                  "type": "boolean"
                },
                "confirmed_retry": {
                  "properties": {
                    "attempt": {
                      "description": "The number of attempted confirmed downlink acknowledgements.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "max_attempts": {
                      "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "correlation_ids": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "decoded_payload": {
                  "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                  "type": "object"
                },
                "decoded_payload_warnings": {
                  "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "f_cnt": {
                  "format": "int64",
                  "type": "integer"
                },
                "f_port": {
                  "format": "int64",
                  "type": "integer"
                },
                "frm_payload": {
                  "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                  "format": "byte",
                  "type": "string"
                },
                "locations": {
                  "additionalProperties": {
                    "properties": {
                      "accuracy": {
                        "description": "The accuracy of the location (meters).",
                        "format": "int32",
                        "type": "integer"
                      },
                      "altitude": {
                        "description": "The altitude (meters), where 0 is the mean sea level.",
                        "format": "int32",
                        "type": "integer"
                      },
                      "latitude": {
                        "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                        "format": "double",
                        "type": "number"
                      },
                      "longitude": {
                        "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                        "format": "double",
                        "type": "number"
                      },
                      "source": {
                        "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.",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "description": "End device location metadata, set by the Application Server while handling the message.",
                  "type": "object"
                },
                "network_ids": {
                  "description": "Identifies a Network Server.",
                  "properties": {
                    "cluster_address": {
                      "description": "Cluster address of the Network Server.",
                      "type": "string"
                    },
                    "cluster_id": {
                      "description": "Cluster identifier of the Network Server.",
                      "type": "string"
                    },
                    "net_id": {
                      "description": "LoRa Alliance NetID.",
                      "example": "000013",
                      "format": "string",
                      "type": "string"
                    },
                    "ns_id": {
                      "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "tenant_address": {
                      "description": "Optional tenant address for multi-tenant deployments.",
                      "type": "string"
                    },
                    "tenant_id": {
                      "description": "Optional tenant identifier for multi-tenant deployments.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "priority": {
                  "default": "LOWEST",
                  "enum": [
                    "LOWEST",
                    "LOW",
                    "BELOW_NORMAL",
                    "NORMAL",
                    "ABOVE_NORMAL",
                    "HIGH",
                    "HIGHEST"
                  ],
                  "type": "string"
                },
                "session_key_id": {
                  "description": "Join Server issued identifier for the session keys used by this downlink.",
                  "format": "byte",
                  "type": "string"
                },
                "version_ids": {
                  "description": "Identifies an end device model with version information.",
                  "properties": {
                    "band_id": {
                      "type": "string"
                    },
                    "brand_id": {
                      "type": "string"
                    },
                    "firmware_version": {
                      "type": "string"
                    },
                    "hardware_version": {
                      "type": "string"
                    },
                    "model_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "resets_join_nonces": {
            "description": "Whether the device resets the join and dev nonces (not LoRaWAN compliant). Stored in Join Server.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "type": "boolean"
          },
          "root_keys": {
            "description": "Root keys for a LoRaWAN device.\nThese are stored on the Join Server.",
            "properties": {
              "app_key": {
                "properties": {
                  "encrypted_key": {
                    "format": "byte",
                    "type": "string"
                  },
                  "kek_label": {
                    "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "The unencrypted AES key.",
                    "example": "0123456789ABCDEF0123456789ABCDEF",
                    "format": "string",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "nwk_key": {
                "properties": {
                  "encrypted_key": {
                    "format": "byte",
                    "type": "string"
                  },
                  "kek_label": {
                    "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "The unencrypted AES key.",
                    "example": "0123456789ABCDEF0123456789ABCDEF",
                    "format": "string",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "root_key_id": {
                "description": "Join Server issued identifier for the root keys.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "serial_number": {
            "type": "string"
          },
          "service_profile_id": {
            "description": "Default service profile. Stored in Entity Registry.",
            "type": "string"
          },
          "session": {
            "properties": {
              "dev_addr": {
                "description": "Device Address, issued by the Network Server or chosen by device manufacturer in case of testing range (beginning with 00-03).\nKnown by Network Server, Application Server and Join Server. Owned by Network Server.",
                "example": "2600ABCD",
                "format": "string",
                "type": "string"
              },
              "keys": {
                "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
                "properties": {
                  "app_s_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "f_nwk_s_int_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "nwk_s_enc_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "s_nwk_s_int_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "session_key_id": {
                    "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                    "format": "byte",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "last_a_f_cnt_down": {
                "description": "Last application downlink frame counter value used. Application Server only.",
                "format": "int64",
                "type": "integer"
              },
              "last_conf_f_cnt_down": {
                "description": "Frame counter of the last confirmed downlink message sent. Network Server only.",
                "format": "int64",
                "type": "integer"
              },
              "last_f_cnt_up": {
                "description": "Last uplink frame counter value used. Network Server only. Application Server assumes the Network Server checked it.",
                "format": "int64",
                "type": "integer"
              },
              "last_n_f_cnt_down": {
                "description": "Last network downlink frame counter value used. Network Server only.",
                "format": "int64",
                "type": "integer"
              },
              "queued_application_downlinks": {
                "description": "Queued Application downlink messages. Stored in Application Server and Network Server.",
                "items": {
                  "properties": {
                    "attributes": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Attributes for devices, set by the Application Server while handling the message.",
                      "type": "object"
                    },
                    "class_b_c": {
                      "properties": {
                        "absolute_time": {
                          "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                          "format": "date-time",
                          "type": "string"
                        },
                        "gateways": {
                          "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                          "items": {
                            "properties": {
                              "antenna_index": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "gateway_ids": {
                                "properties": {
                                  "eui": {
                                    "description": "Secondary identifier, which can only be used in specific requests.",
                                    "example": "70B3D57ED000ABCD",
                                    "format": "string",
                                    "type": "string"
                                  },
                                  "gateway_id": {
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "group_index": {
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "confirmed": {
                      "type": "boolean"
                    },
                    "confirmed_retry": {
                      "properties": {
                        "attempt": {
                          "description": "The number of attempted confirmed downlink acknowledgements.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "max_attempts": {
                          "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "decoded_payload": {
                      "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                      "type": "object"
                    },
                    "decoded_payload_warnings": {
                      "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "f_cnt": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "f_port": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "frm_payload": {
                      "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                      "format": "byte",
                      "type": "string"
                    },
                    "locations": {
                      "additionalProperties": {
                        "properties": {
                          "accuracy": {
                            "description": "The accuracy of the location (meters).",
                            "format": "int32",
                            "type": "integer"
                          },
                          "altitude": {
                            "description": "The altitude (meters), where 0 is the mean sea level.",
                            "format": "int32",
                            "type": "integer"
                          },
                          "latitude": {
                            "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                            "format": "double",
                            "type": "number"
                          },
                          "longitude": {
                            "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                            "format": "double",
                            "type": "number"
                          },
                          "source": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "description": "End device location metadata, set by the Application Server while handling the message.",
                      "type": "object"
                    },
                    "network_ids": {
                      "description": "Identifies a Network Server.",
                      "properties": {
                        "cluster_address": {
                          "description": "Cluster address of the Network Server.",
                          "type": "string"
                        },
                        "cluster_id": {
                          "description": "Cluster identifier of the Network Server.",
                          "type": "string"
                        },
                        "net_id": {
                          "description": "LoRa Alliance NetID.",
                          "example": "000013",
                          "format": "string",
                          "type": "string"
                        },
                        "ns_id": {
                          "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "tenant_address": {
                          "description": "Optional tenant address for multi-tenant deployments.",
                          "type": "string"
                        },
                        "tenant_id": {
                          "description": "Optional tenant identifier for multi-tenant deployments.",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "priority": {
                      "default": "LOWEST",
                      "enum": [
                        "LOWEST",
                        "LOW",
                        "BELOW_NORMAL",
                        "NORMAL",
                        "ABOVE_NORMAL",
                        "HIGH",
                        "HIGHEST"
                      ],
                      "type": "string"
                    },
                    "session_key_id": {
                      "description": "Join Server issued identifier for the session keys used by this downlink.",
                      "format": "byte",
                      "type": "string"
                    },
                    "version_ids": {
                      "description": "Identifies an end device model with version information.",
                      "properties": {
                        "band_id": {
                          "type": "string"
                        },
                        "brand_id": {
                          "type": "string"
                        },
                        "firmware_version": {
                          "type": "string"
                        },
                        "hardware_version": {
                          "type": "string"
                        },
                        "model_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "started_at": {
                "description": "Time when the session started. Network Server only.",
                "format": "date-time",
                "type": "string"
              }
            },
            "type": "object"
          },
          "skip_payload_crypto": {
            "description": "Skip decryption of uplink payloads and encryption of downlink payloads.\nThis field is deprecated, use skip_payload_crypto_override instead.",
            "type": "boolean"
          },
          "skip_payload_crypto_override": {
            "description": "Skip decryption of uplink payloads and encryption of downlink payloads.\nThis field overrides the application-level setting.",
            "type": "boolean"
          },
          "supports_class_b": {
            "description": "Whether the device supports class B.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "type": "boolean"
          },
          "supports_class_c": {
            "description": "Whether the device supports class C.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "type": "boolean"
          },
          "supports_join": {
            "description": "The device supports join (it's OTAA).\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "type": "boolean"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          },
          "used_dev_nonces": {
            "description": "Used DevNonces sorted in ascending order.\nThis field is only used for devices using LoRaWAN versions preceding 1.1.\nStored in Join Server.",
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": "array"
          },
          "version_ids": {
            "description": "Identifies an end device model with version information.",
            "properties": {
              "band_id": {
                "type": "string"
              },
              "brand_id": {
                "type": "string"
              },
              "firmware_version": {
                "type": "string"
              },
              "hardware_version": {
                "type": "string"
              },
              "model_id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "field_mask": {
        "description": "The names of the end device fields that should be updated.\nSee the API reference for which fields can be set on the different services.",
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    EndDeviceTemplate

    Fields
    Name Type Description
    end_device object 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 string
    mapping_key string
    Schema
    {
      "end_device": {
        "description": "Defines an End Device registration and its state on the network.\nThe persistence of the EndDevice is divided between the Network Server, Application Server and Join Server.\nSDKs are responsible for combining (if desired) the three.",
        "properties": {
          "activated_at": {
            "description": "Timestamp when the device has been activated. Stored in the Entity Registry.\nThis field is set by the Application Server when an end device sends\nits first uplink.\nThe Application Server will use the field in order to avoid repeated\ncalls to the Entity Registry.\nThe field cannot be unset once set.",
            "format": "date-time",
            "type": "string"
          },
          "application_server_address": {
            "description": "The address of the Application Server where this device is supposed to be registered.\nStored in Entity Registry and Join Server.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
            "type": "string"
          },
          "application_server_id": {
            "description": "The AS-ID of the Application Server to use.\nStored in Join Server.",
            "type": "string"
          },
          "application_server_kek_label": {
            "description": "The KEK label of the Application Server to use for wrapping the application session key.\nStored in Join Server.",
            "type": "string"
          },
          "attributes": {
            "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.",
            "type": "object"
          },
          "battery_percentage": {
            "description": "Latest-known battery percentage of the device.\nReceived via the DevStatus MAC command at last_dev_status_received_at or earlier.\nStored in Network Server.",
            "format": "float",
            "type": "number"
          },
          "claim_authentication_code": {
            "description": "Authentication code for end devices.",
            "properties": {
              "valid_from": {
                "format": "date-time",
                "type": "string"
              },
              "valid_to": {
                "format": "date-time",
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "Description of the device. Stored in Entity Registry.",
            "type": "string"
          },
          "downlink_margin": {
            "description": "Demodulation signal-to-noise ratio (dB).\nReceived via the DevStatus MAC command at last_dev_status_received_at.\nStored in Network Server.",
            "format": "int32",
            "type": "integer"
          },
          "formatters": {
            "properties": {
              "down_formatter": {
                "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.",
                "enum": [
                  "FORMATTER_NONE",
                  "FORMATTER_REPOSITORY",
                  "FORMATTER_GRPC_SERVICE",
                  "FORMATTER_JAVASCRIPT",
                  "FORMATTER_CAYENNELPP"
                ],
                "type": "string"
              },
              "down_formatter_parameter": {
                "description": "Parameter for the down_formatter, must be set together. The API enforces a maximum length of 16KB, but the size may be restricted further by deployment configuration.",
                "type": "string"
              },
              "up_formatter": {
                "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.",
                "enum": [
                  "FORMATTER_NONE",
                  "FORMATTER_REPOSITORY",
                  "FORMATTER_GRPC_SERVICE",
                  "FORMATTER_JAVASCRIPT",
                  "FORMATTER_CAYENNELPP"
                ],
                "type": "string"
              },
              "up_formatter_parameter": {
                "description": "Parameter for the up_formatter, must be set together. The API enforces a maximum length of 16KB, but the size may be restricted further by deployment configuration.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "frequency_plan_id": {
            "description": "ID of the frequency plan used by this device.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "type": "string"
          },
          "ids": {
            "properties": {
              "application_ids": {
                "properties": {
                  "application_id": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "dev_addr": {
                "description": "The LoRaWAN DevAddr.",
                "example": "2600ABCD",
                "format": "string",
                "type": "string"
              },
              "dev_eui": {
                "description": "The LoRaWAN DevEUI.",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              },
              "device_id": {
                "type": "string"
              },
              "join_eui": {
                "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
                "example": "70B3D57ED000ABCD",
                "format": "string",
                "type": "string"
              }
            },
            "type": "object"
          },
          "join_server_address": {
            "description": "The address of the Join Server where this device is supposed to be registered.\nStored in Entity Registry.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
            "type": "string"
          },
          "label_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "last_dev_nonce": {
            "description": "Last DevNonce used.\nThis field is only used for devices using LoRaWAN version 1.1 and later.\nStored in Join Server.",
            "format": "int64",
            "type": "integer"
          },
          "last_dev_status_received_at": {
            "description": "Time when last DevStatus MAC command was received.\nStored in Network Server.",
            "format": "date-time",
            "type": "string"
          },
          "last_join_nonce": {
            "description": "Last JoinNonce/AppNonce(for devices using LoRaWAN versions preceding 1.1) used.\nStored in Join Server.",
            "format": "int64",
            "type": "integer"
          },
          "last_rj_count_0": {
            "description": "Last Rejoin counter value used (type 0/2).\nStored in Join Server.",
            "format": "int64",
            "type": "integer"
          },
          "last_rj_count_1": {
            "description": "Last Rejoin counter value used (type 1).\nStored in Join Server.",
            "format": "int64",
            "type": "integer"
          },
          "last_seen_at": {
            "description": "Timestamp when a device uplink has been last observed.\nThis field is set by the Application Server and stored in the Identity Server.",
            "format": "date-time",
            "type": "string"
          },
          "locations": {
            "additionalProperties": {
              "properties": {
                "accuracy": {
                  "description": "The accuracy of the location (meters).",
                  "format": "int32",
                  "type": "integer"
                },
                "altitude": {
                  "description": "The altitude (meters), where 0 is the mean sea level.",
                  "format": "int32",
                  "type": "integer"
                },
                "latitude": {
                  "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                  "format": "double",
                  "type": "number"
                },
                "longitude": {
                  "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                  "format": "double",
                  "type": "number"
                },
                "source": {
                  "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.",
                  "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"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "description": "Location of the device. Stored in Entity Registry.",
            "type": "object"
          },
          "lora_alliance_profile_ids": {
            "properties": {
              "vendor_id": {
                "description": "VendorID managed by the LoRa Alliance, as defined in TR005.",
                "format": "int64",
                "type": "integer"
              },
              "vendor_profile_id": {
                "description": "ID of the LoRaWAN end device profile assigned by the vendor.",
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "lorawan_phy_version": {
            "default": "PHY_UNKNOWN",
            "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"
            ],
            "type": "string"
          },
          "lorawan_version": {
            "default": "MAC_UNKNOWN",
            "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"
            ],
            "type": "string"
          },
          "mac_settings": {
            "properties": {
              "adr": {
                "description": "Adaptive Data Rate settings.",
                "properties": {
                  "disabled": {
                    "description": "Configuration options for cases in which ADR is to be disabled\ncompletely.",
                    "type": "object"
                  },
                  "dynamic": {
                    "description": "Configuration options for dynamic ADR.",
                    "properties": {
                      "channel_steering": {
                        "description": "EXPERIMENTAL: Channel steering settings.",
                        "properties": {
                          "disabled": {
                            "description": "Configuration options for cases in which ADR is not supposed to steer the end device\nto another set of channels.",
                            "type": "object"
                          },
                          "lora_narrow": {
                            "description": "Configuration options for LoRa narrow channels steering.\nThe narrow mode attempts to steer the end device towards\nusing the LoRa modulated, 125kHz bandwidth channels.",
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "margin": {
                        "description": "The ADR margin (dB) tells the network server how much margin it should add in ADR requests.\nA bigger margin is less efficient, but gives a better chance of successful reception.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "float",
                        "type": "number"
                      },
                      "max_data_rate_index": {
                        "properties": {
                          "value": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "max_nb_trans": {
                        "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_tx_power_index": {
                        "description": "Maximum transmission power index.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "min_data_rate_index": {
                        "properties": {
                          "value": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "min_nb_trans": {
                        "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "min_tx_power_index": {
                        "description": "Minimum transmission power index.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "overrides": {
                        "description": "EXPERIMENTAL: Configuration overrides.",
                        "properties": {
                          "data_rate_0": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_1": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_10": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_11": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_12": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_13": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_14": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_15": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_2": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_3": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_4": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_5": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_6": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_7": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_8": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "data_rate_9": {
                            "description": "EXPERIMENTAL: Data rate index override settings.",
                            "properties": {
                              "max_nb_trans": {
                                "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "min_nb_trans": {
                                "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "static": {
                    "description": "Configuration options for static ADR.",
                    "properties": {
                      "data_rate_index": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "nb_trans": {
                        "description": "Number of retransmissions.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "tx_power_index": {
                        "description": "Transmission power index to use.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "adr_margin": {
                "description": "The ADR margin (dB) tells the network server how much margin it should add in ADR requests.\nA bigger margin is less efficient, but gives a better chance of successful reception.\nThis field is deprecated, use adr_settings.dynamic.margin instead.",
                "format": "float",
                "type": "number"
              },
              "beacon_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "class_b_c_downlink_interval": {
                "description": "The minimum duration passed before a network-initiated(e.g. Class B or C) downlink following an arbitrary downlink.",
                "type": "string"
              },
              "class_b_timeout": {
                "description": "Maximum delay for the device to answer a MAC request or a confirmed downlink frame.\nIf unset, the default value from Network Server configuration will be used.",
                "type": "string"
              },
              "class_c_timeout": {
                "description": "Maximum delay for the device to answer a MAC request or a confirmed downlink frame.\nIf unset, the default value from Network Server configuration will be used.",
                "type": "string"
              },
              "desired_adr_ack_delay_exponent": {
                "properties": {
                  "value": {
                    "default": "ADR_ACK_DELAY_1",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_adr_ack_limit_exponent": {
                "properties": {
                  "value": {
                    "default": "ADR_ACK_LIMIT_1",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_beacon_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_max_duty_cycle": {
                "properties": {
                  "value": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_max_eirp": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_ping_slot_data_rate_index": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_ping_slot_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_relay": {
                "description": "RelaySettings represent the settings of a relay.\nThis is used internally by the Network Server.",
                "properties": {
                  "served": {
                    "properties": {
                      "always": {
                        "type": "object"
                      },
                      "backoff": {
                        "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "dynamic": {
                        "properties": {
                          "smart_enable_level": {
                            "default": "RELAY_SMART_ENABLE_LEVEL_8",
                            "enum": [
                              "RELAY_SMART_ENABLE_LEVEL_8",
                              "RELAY_SMART_ENABLE_LEVEL_16",
                              "RELAY_SMART_ENABLE_LEVEL_32",
                              "RELAY_SMART_ENABLE_LEVEL_64"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "end_device_controlled": {
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving_device_id": {
                        "description": "End device identifier of the serving end device.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "serving": {
                    "properties": {
                      "cad_periodicity": {
                        "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                        "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"
                        ],
                        "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                        "type": "string"
                      },
                      "default_channel_index": {
                        "description": "Index of the default wake on radio channel.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "limits": {
                        "properties": {
                          "join_requests": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "notifications": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "overall": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "reset_behavior": {
                            "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "enum": [
                              "RELAY_RESET_LIMIT_COUNTER_ZERO",
                              "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                              "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                              "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                            ],
                            "type": "string"
                          },
                          "uplink_messages": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "uplink_forwarding_rules": {
                        "description": "Configured uplink forwarding rules.",
                        "items": {
                          "properties": {
                            "device_id": {
                              "description": "End device identifier of the served end device.",
                              "type": "string"
                            },
                            "last_w_f_cnt": {
                              "description": "Last wake on radio frame counter used by the served end device.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "limits": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "session_key_id": {
                              "description": "Session key ID of the session keys used to derive the root relay session key.",
                              "format": "byte",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "desired_rx1_data_rate_offset": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_rx1_delay": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_rx2_data_rate_index": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "desired_rx2_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "downlink_dwell_time": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "factory_preset_frequencies": {
                "description": "List of factory-preset frequencies.\nIf unset, the default value from Network Server configuration or regional parameters specification will be used.",
                "items": {
                  "format": "uint64",
                  "type": "string"
                },
                "type": "array"
              },
              "max_duty_cycle": {
                "properties": {
                  "value": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "ping_slot_data_rate_index": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "ping_slot_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "ping_slot_periodicity": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "relay": {
                "description": "RelaySettings represent the settings of a relay.\nThis is used internally by the Network Server.",
                "properties": {
                  "served": {
                    "properties": {
                      "always": {
                        "type": "object"
                      },
                      "backoff": {
                        "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "dynamic": {
                        "properties": {
                          "smart_enable_level": {
                            "default": "RELAY_SMART_ENABLE_LEVEL_8",
                            "enum": [
                              "RELAY_SMART_ENABLE_LEVEL_8",
                              "RELAY_SMART_ENABLE_LEVEL_16",
                              "RELAY_SMART_ENABLE_LEVEL_32",
                              "RELAY_SMART_ENABLE_LEVEL_64"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "end_device_controlled": {
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving_device_id": {
                        "description": "End device identifier of the serving end device.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "serving": {
                    "properties": {
                      "cad_periodicity": {
                        "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                        "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"
                        ],
                        "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                        "type": "string"
                      },
                      "default_channel_index": {
                        "description": "Index of the default wake on radio channel.\nIf unset, the default value from Network Server configuration will be used.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "limits": {
                        "properties": {
                          "join_requests": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "notifications": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "overall": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "reset_behavior": {
                            "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "enum": [
                              "RELAY_RESET_LIMIT_COUNTER_ZERO",
                              "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                              "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                              "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                            ],
                            "type": "string"
                          },
                          "uplink_messages": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "second_channel": {
                        "properties": {
                          "ack_offset": {
                            "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                            "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"
                            ],
                            "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",
                            "type": "string"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "The frequency (Hz) used by the wake on radio message.",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "uplink_forwarding_rules": {
                        "description": "Configured uplink forwarding rules.",
                        "items": {
                          "properties": {
                            "device_id": {
                              "description": "End device identifier of the served end device.",
                              "type": "string"
                            },
                            "last_w_f_cnt": {
                              "description": "Last wake on radio frame counter used by the served end device.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "limits": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "session_key_id": {
                              "description": "Session key ID of the session keys used to derive the root relay session key.",
                              "format": "byte",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "resets_f_cnt": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "rx1_data_rate_offset": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "rx1_delay": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "rx2_data_rate_index": {
                "properties": {
                  "value": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "rx2_frequency": {
                "properties": {
                  "value": {
                    "format": "uint64",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "schedule_downlinks": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "status_count_periodicity": {
                "description": "Number of uplink messages after which a DevStatusReq MACCommand shall be sent.\nIf unset, the default value from Network Server configuration will be used.",
                "format": "int64",
                "type": "integer"
              },
              "status_time_periodicity": {
                "description": "The interval after which a DevStatusReq MACCommand shall be sent.\nIf unset, the default value from Network Server configuration will be used.",
                "type": "string"
              },
              "supports_32_bit_f_cnt": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "uplink_dwell_time": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "use_adr": {
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "mac_settings_profile_ids": {
            "properties": {
              "application_ids": {
                "properties": {
                  "application_id": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "profile_id": {
                "description": "Profile ID.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "mac_state": {
            "description": "MACState represents the state of MAC layer of the device.\nMACState is reset on each join for OTAA or ResetInd for ABP devices.\nThis is used internally by the Network Server.",
            "properties": {
              "current_parameters": {
                "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
                "properties": {
                  "adr_ack_delay": {
                    "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_delay_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_DELAY_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_ack_limit": {
                    "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_limit_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_LIMIT_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "adr_nb_trans": {
                    "description": "ADR: number of retransmissions.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_tx_power_index": {
                    "description": "ADR: transmission power index to use.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "beacon_frequency": {
                    "description": "Frequency of the class B beacon (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "channels": {
                    "description": "Configured uplink channels and optionally Rx1 frequency.",
                    "items": {
                      "properties": {
                        "downlink_frequency": {
                          "description": "Downlink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "enable_uplink": {
                          "description": "Channel can be used by device for uplink.",
                          "type": "boolean"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_frequency": {
                          "description": "Uplink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "downlink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "max_duty_cycle": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "max_eirp": {
                    "description": "Maximum EIRP (dBm).",
                    "format": "float",
                    "type": "number"
                  },
                  "ping_slot_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "ping_slot_data_rate_index_value": {
                    "properties": {
                      "value": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "ping_slot_frequency": {
                    "description": "Frequency of the class B ping slot (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "rejoin_count_periodicity": {
                    "default": "REJOIN_COUNT_16",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rejoin_time_periodicity": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "relay": {
                    "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                    "properties": {
                      "served": {
                        "properties": {
                          "always": {
                            "type": "object"
                          },
                          "backoff": {
                            "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "dynamic": {
                            "properties": {
                              "smart_enable_level": {
                                "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                "enum": [
                                  "RELAY_SMART_ENABLE_LEVEL_8",
                                  "RELAY_SMART_ENABLE_LEVEL_16",
                                  "RELAY_SMART_ENABLE_LEVEL_32",
                                  "RELAY_SMART_ENABLE_LEVEL_64"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "end_device_controlled": {
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "serving_device_id": {
                            "description": "End device identifier of the serving end device.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving": {
                        "properties": {
                          "cad_periodicity": {
                            "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                            "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"
                            ],
                            "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                            "type": "string"
                          },
                          "default_channel_index": {
                            "description": "Index of the default wake on radio channel.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "limits": {
                            "properties": {
                              "join_requests": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "notifications": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "overall": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "reset_behavior": {
                                "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                "enum": [
                                  "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                  "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                  "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                  "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                                ],
                                "type": "string"
                              },
                              "uplink_messages": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "uplink_forwarding_rules": {
                            "description": "Configured uplink forwarding rules.",
                            "items": {
                              "properties": {
                                "device_id": {
                                  "description": "End device identifier of the served end device.",
                                  "type": "string"
                                },
                                "last_w_f_cnt": {
                                  "description": "Last wake on radio frame counter used by the served end device.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "limits": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "session_key_id": {
                                  "description": "Session key ID of the session keys used to derive the root relay session key.",
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "rx1_data_rate_offset": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx1_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_frequency": {
                    "description": "Frequency for Rx2 (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "uplink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "desired_parameters": {
                "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
                "properties": {
                  "adr_ack_delay": {
                    "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_delay_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_DELAY_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_ack_limit": {
                    "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_limit_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_LIMIT_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "adr_nb_trans": {
                    "description": "ADR: number of retransmissions.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_tx_power_index": {
                    "description": "ADR: transmission power index to use.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "beacon_frequency": {
                    "description": "Frequency of the class B beacon (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "channels": {
                    "description": "Configured uplink channels and optionally Rx1 frequency.",
                    "items": {
                      "properties": {
                        "downlink_frequency": {
                          "description": "Downlink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "enable_uplink": {
                          "description": "Channel can be used by device for uplink.",
                          "type": "boolean"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_frequency": {
                          "description": "Uplink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "downlink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "max_duty_cycle": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "max_eirp": {
                    "description": "Maximum EIRP (dBm).",
                    "format": "float",
                    "type": "number"
                  },
                  "ping_slot_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "ping_slot_data_rate_index_value": {
                    "properties": {
                      "value": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "ping_slot_frequency": {
                    "description": "Frequency of the class B ping slot (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "rejoin_count_periodicity": {
                    "default": "REJOIN_COUNT_16",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rejoin_time_periodicity": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "relay": {
                    "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                    "properties": {
                      "served": {
                        "properties": {
                          "always": {
                            "type": "object"
                          },
                          "backoff": {
                            "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "dynamic": {
                            "properties": {
                              "smart_enable_level": {
                                "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                "enum": [
                                  "RELAY_SMART_ENABLE_LEVEL_8",
                                  "RELAY_SMART_ENABLE_LEVEL_16",
                                  "RELAY_SMART_ENABLE_LEVEL_32",
                                  "RELAY_SMART_ENABLE_LEVEL_64"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "end_device_controlled": {
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "serving_device_id": {
                            "description": "End device identifier of the serving end device.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving": {
                        "properties": {
                          "cad_periodicity": {
                            "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                            "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"
                            ],
                            "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                            "type": "string"
                          },
                          "default_channel_index": {
                            "description": "Index of the default wake on radio channel.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "limits": {
                            "properties": {
                              "join_requests": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "notifications": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "overall": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "reset_behavior": {
                                "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                "enum": [
                                  "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                  "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                  "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                  "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                                ],
                                "type": "string"
                              },
                              "uplink_messages": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "uplink_forwarding_rules": {
                            "description": "Configured uplink forwarding rules.",
                            "items": {
                              "properties": {
                                "device_id": {
                                  "description": "End device identifier of the served end device.",
                                  "type": "string"
                                },
                                "last_w_f_cnt": {
                                  "description": "Last wake on radio frame counter used by the served end device.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "limits": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "session_key_id": {
                                  "description": "Session key ID of the session keys used to derive the root relay session key.",
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "rx1_data_rate_offset": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx1_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_frequency": {
                    "description": "Frequency for Rx2 (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "uplink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "device_class": {
                "default": "CLASS_A",
                "enum": [
                  "CLASS_A",
                  "CLASS_B",
                  "CLASS_C"
                ],
                "type": "string"
              },
              "last_adr_change_f_cnt_up": {
                "description": "Frame counter of uplink, which confirmed the last ADR parameter change.",
                "format": "int64",
                "type": "integer"
              },
              "last_confirmed_downlink_at": {
                "description": "Time when the last confirmed downlink message or MAC command was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "last_dev_status_f_cnt_up": {
                "description": "Frame counter value of last uplink containing DevStatusAns.",
                "format": "int64",
                "type": "integer"
              },
              "last_downlink_at": {
                "description": "Time when the last downlink message was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "last_network_initiated_downlink_at": {
                "description": "Time when the last network-initiated downlink message was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "lorawan_version": {
                "default": "MAC_UNKNOWN",
                "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"
                ],
                "type": "string"
              },
              "pending_application_downlink": {
                "properties": {
                  "attributes": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "Attributes for devices, set by the Application Server while handling the message.",
                    "type": "object"
                  },
                  "class_b_c": {
                    "properties": {
                      "absolute_time": {
                        "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                        "format": "date-time",
                        "type": "string"
                      },
                      "gateways": {
                        "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                        "items": {
                          "properties": {
                            "antenna_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "gateway_ids": {
                              "properties": {
                                "eui": {
                                  "description": "Secondary identifier, which can only be used in specific requests.",
                                  "example": "70B3D57ED000ABCD",
                                  "format": "string",
                                  "type": "string"
                                },
                                "gateway_id": {
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "group_index": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  },
                  "confirmed": {
                    "type": "boolean"
                  },
                  "confirmed_retry": {
                    "properties": {
                      "attempt": {
                        "description": "The number of attempted confirmed downlink acknowledgements.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_attempts": {
                        "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "correlation_ids": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "decoded_payload": {
                    "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                    "type": "object"
                  },
                  "decoded_payload_warnings": {
                    "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "f_cnt": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "f_port": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "frm_payload": {
                    "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                    "format": "byte",
                    "type": "string"
                  },
                  "locations": {
                    "additionalProperties": {
                      "properties": {
                        "accuracy": {
                          "description": "The accuracy of the location (meters).",
                          "format": "int32",
                          "type": "integer"
                        },
                        "altitude": {
                          "description": "The altitude (meters), where 0 is the mean sea level.",
                          "format": "int32",
                          "type": "integer"
                        },
                        "latitude": {
                          "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                          "format": "double",
                          "type": "number"
                        },
                        "longitude": {
                          "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                          "format": "double",
                          "type": "number"
                        },
                        "source": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "description": "End device location metadata, set by the Application Server while handling the message.",
                    "type": "object"
                  },
                  "network_ids": {
                    "description": "Identifies a Network Server.",
                    "properties": {
                      "cluster_address": {
                        "description": "Cluster address of the Network Server.",
                        "type": "string"
                      },
                      "cluster_id": {
                        "description": "Cluster identifier of the Network Server.",
                        "type": "string"
                      },
                      "net_id": {
                        "description": "LoRa Alliance NetID.",
                        "example": "000013",
                        "format": "string",
                        "type": "string"
                      },
                      "ns_id": {
                        "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                        "example": "70B3D57ED000ABCD",
                        "format": "string",
                        "type": "string"
                      },
                      "tenant_address": {
                        "description": "Optional tenant address for multi-tenant deployments.",
                        "type": "string"
                      },
                      "tenant_id": {
                        "description": "Optional tenant identifier for multi-tenant deployments.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "priority": {
                    "default": "LOWEST",
                    "enum": [
                      "LOWEST",
                      "LOW",
                      "BELOW_NORMAL",
                      "NORMAL",
                      "ABOVE_NORMAL",
                      "HIGH",
                      "HIGHEST"
                    ],
                    "type": "string"
                  },
                  "session_key_id": {
                    "description": "Join Server issued identifier for the session keys used by this downlink.",
                    "format": "byte",
                    "type": "string"
                  },
                  "version_ids": {
                    "description": "Identifies an end device model with version information.",
                    "properties": {
                      "band_id": {
                        "type": "string"
                      },
                      "brand_id": {
                        "type": "string"
                      },
                      "firmware_version": {
                        "type": "string"
                      },
                      "hardware_version": {
                        "type": "string"
                      },
                      "model_id": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "pending_join_request": {
                "properties": {
                  "cf_list": {
                    "properties": {
                      "ch_masks": {
                        "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                        "items": {
                          "type": "boolean"
                        },
                        "type": "array"
                      },
                      "freq": {
                        "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                        "items": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "type": "array"
                      },
                      "type": {
                        "default": "FREQUENCIES",
                        "enum": [
                          "FREQUENCIES",
                          "CHANNEL_MASKS"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "downlink_settings": {
                    "properties": {
                      "opt_neg": {
                        "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                        "type": "boolean"
                      },
                      "rx1_dr_offset": {
                        "default": "DATA_RATE_OFFSET_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "rx2_dr": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "rx_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "pending_relay_downlink": {
                "properties": {
                  "raw_payload": {
                    "format": "byte",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "pending_requests": {
                "description": "Pending MAC requests(i.e. sent requests, for which no response has been received yet).\nRegenerated on each downlink.",
                "items": {
                  "properties": {
                    "adr_param_setup_req": {
                      "properties": {
                        "adr_ack_delay_exponent": {
                          "default": "ADR_ACK_DELAY_1",
                          "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"
                          ],
                          "type": "string"
                        },
                        "adr_ack_limit_exponent": {
                          "default": "ADR_ACK_LIMIT_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_ans": {
                      "properties": {
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_req": {
                      "properties": {
                        "frequency": {
                          "description": "Frequency of the Class B beacons (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_timing_ans": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "delay": {
                          "description": "(uint16) See LoRaWAN specification.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "cid": {
                      "default": "CID_RFU_0",
                      "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"
                      ],
                      "title": "- CID_BEACON_TIMING: Deprecated",
                      "type": "string"
                    },
                    "dev_status_ans": {
                      "properties": {
                        "battery": {
                          "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "SNR of the last downlink (dB; [-32, +31]).",
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_conf": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_ind": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_time_ans": {
                      "properties": {
                        "time": {
                          "format": "date-time",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_ans": {
                      "properties": {
                        "channel_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Downlink channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "duty_cycle_req": {
                      "properties": {
                        "max_duty_cycle": {
                          "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%.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "force_rejoin_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_retries": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "period_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rejoin_type": {
                          "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.",
                          "enum": [
                            "CONTEXT",
                            "SESSION",
                            "KEYS"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_ans": {
                      "properties": {
                        "channel_mask_ack": {
                          "type": "boolean"
                        },
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "tx_power_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_req": {
                      "properties": {
                        "channel_mask": {
                          "items": {
                            "type": "boolean"
                          },
                          "type": "array"
                        },
                        "channel_mask_control": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "nb_trans": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "tx_power_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "link_check_ans": {
                      "properties": {
                        "gateway_count": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_ans": {
                      "properties": {
                        "data_rate_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_ans": {
                      "properties": {
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "frequency": {
                          "description": "Ping slot channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_info_req": {
                      "properties": {
                        "period": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "raw_payload": {
                      "format": "byte",
                      "type": "string"
                    },
                    "rejoin_param_setup_ans": {
                      "properties": {
                        "max_time_exponent_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rejoin_param_setup_req": {
                      "properties": {
                        "max_count_exponent": {
                          "default": "REJOIN_COUNT_16",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_time_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_ans": {
                      "properties": {
                        "cad_periodicity_ack": {
                          "type": "boolean"
                        },
                        "default_channel_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_ack_offset_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "cad_periodicity": {
                              "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                              "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"
                              ],
                              "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                              "type": "string"
                            },
                            "default_channel_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_ans": {
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_req": {
                      "properties": {
                        "global_uplink_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "notify_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "overall_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "reset_limit_counter": {
                          "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                          "enum": [
                            "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                            "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                            "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_ans": {
                      "properties": {
                        "rule_index_ack": {
                          "type": "boolean"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_req": {
                      "properties": {
                        "action": {
                          "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                          "enum": [
                            "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                            "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                          ],
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_ans": {
                      "properties": {
                        "backoff_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "always": {
                              "type": "object"
                            },
                            "backoff": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "dynamic": {
                              "properties": {
                                "smart_enable_level": {
                                  "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                  "enum": [
                                    "RELAY_SMART_ENABLE_LEVEL_8",
                                    "RELAY_SMART_ENABLE_LEVEL_16",
                                    "RELAY_SMART_ENABLE_LEVEL_32",
                                    "RELAY_SMART_ENABLE_LEVEL_64"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "end_device_controlled": {
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "serving_device_id": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_notify_new_end_device_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "rssi": {
                          "format": "int32",
                          "type": "integer"
                        },
                        "snr": {
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_update_uplink_list_ans": {
                      "type": "object"
                    },
                    "relay_update_uplink_list_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "device_id": {
                          "type": "string"
                        },
                        "forward_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "root_wor_s_key": {
                          "example": "0123456789ABCDEF0123456789ABCDEF",
                          "format": "string",
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "session_key_id": {
                          "format": "byte",
                          "type": "string"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "reset_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "reset_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_ans": {
                      "properties": {
                        "rx1_data_rate_offset_ack": {
                          "type": "boolean"
                        },
                        "rx2_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "rx2_frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_req": {
                      "properties": {
                        "rx1_data_rate_offset": {
                          "default": "DATA_RATE_OFFSET_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_frequency": {
                          "description": "Rx2 frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_timing_setup_req": {
                      "properties": {
                        "delay": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "tx_param_setup_req": {
                      "properties": {
                        "downlink_dwell_time": {
                          "type": "boolean"
                        },
                        "max_eirp_index": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_dwell_time": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "ping_slot_periodicity": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "queued_join_accept": {
                "properties": {
                  "correlation_ids": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "dev_addr": {
                    "example": "2600ABCD",
                    "format": "string",
                    "type": "string"
                  },
                  "keys": {
                    "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
                    "properties": {
                      "app_s_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "f_nwk_s_int_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "nwk_s_enc_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "s_nwk_s_int_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "session_key_id": {
                        "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                        "format": "byte",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "net_id": {
                    "example": "000013",
                    "format": "string",
                    "type": "string"
                  },
                  "payload": {
                    "description": "Payload of the join-accept received from Join Server.",
                    "format": "byte",
                    "type": "string"
                  },
                  "request": {
                    "properties": {
                      "cf_list": {
                        "properties": {
                          "ch_masks": {
                            "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                            "items": {
                              "type": "boolean"
                            },
                            "type": "array"
                          },
                          "freq": {
                            "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                            "items": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "type": "array"
                          },
                          "type": {
                            "default": "FREQUENCIES",
                            "enum": [
                              "FREQUENCIES",
                              "CHANNEL_MASKS"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "downlink_settings": {
                        "properties": {
                          "opt_neg": {
                            "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                            "type": "boolean"
                          },
                          "rx1_dr_offset": {
                            "default": "DATA_RATE_OFFSET_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "rx2_dr": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rx_delay": {
                        "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.",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "queued_responses": {
                "description": "Queued MAC responses.\nRegenerated on each uplink.",
                "items": {
                  "properties": {
                    "adr_param_setup_req": {
                      "properties": {
                        "adr_ack_delay_exponent": {
                          "default": "ADR_ACK_DELAY_1",
                          "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"
                          ],
                          "type": "string"
                        },
                        "adr_ack_limit_exponent": {
                          "default": "ADR_ACK_LIMIT_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_ans": {
                      "properties": {
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_req": {
                      "properties": {
                        "frequency": {
                          "description": "Frequency of the Class B beacons (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_timing_ans": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "delay": {
                          "description": "(uint16) See LoRaWAN specification.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "cid": {
                      "default": "CID_RFU_0",
                      "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"
                      ],
                      "title": "- CID_BEACON_TIMING: Deprecated",
                      "type": "string"
                    },
                    "dev_status_ans": {
                      "properties": {
                        "battery": {
                          "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "SNR of the last downlink (dB; [-32, +31]).",
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_conf": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_ind": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_time_ans": {
                      "properties": {
                        "time": {
                          "format": "date-time",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_ans": {
                      "properties": {
                        "channel_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Downlink channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "duty_cycle_req": {
                      "properties": {
                        "max_duty_cycle": {
                          "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%.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "force_rejoin_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_retries": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "period_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rejoin_type": {
                          "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.",
                          "enum": [
                            "CONTEXT",
                            "SESSION",
                            "KEYS"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_ans": {
                      "properties": {
                        "channel_mask_ack": {
                          "type": "boolean"
                        },
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "tx_power_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_req": {
                      "properties": {
                        "channel_mask": {
                          "items": {
                            "type": "boolean"
                          },
                          "type": "array"
                        },
                        "channel_mask_control": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "nb_trans": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "tx_power_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "link_check_ans": {
                      "properties": {
                        "gateway_count": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_ans": {
                      "properties": {
                        "data_rate_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_ans": {
                      "properties": {
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "frequency": {
                          "description": "Ping slot channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_info_req": {
                      "properties": {
                        "period": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "raw_payload": {
                      "format": "byte",
                      "type": "string"
                    },
                    "rejoin_param_setup_ans": {
                      "properties": {
                        "max_time_exponent_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rejoin_param_setup_req": {
                      "properties": {
                        "max_count_exponent": {
                          "default": "REJOIN_COUNT_16",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_time_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_ans": {
                      "properties": {
                        "cad_periodicity_ack": {
                          "type": "boolean"
                        },
                        "default_channel_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_ack_offset_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "cad_periodicity": {
                              "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                              "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"
                              ],
                              "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                              "type": "string"
                            },
                            "default_channel_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_ans": {
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_req": {
                      "properties": {
                        "global_uplink_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "notify_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "overall_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "reset_limit_counter": {
                          "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                          "enum": [
                            "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                            "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                            "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_ans": {
                      "properties": {
                        "rule_index_ack": {
                          "type": "boolean"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_req": {
                      "properties": {
                        "action": {
                          "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                          "enum": [
                            "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                            "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                          ],
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_ans": {
                      "properties": {
                        "backoff_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "always": {
                              "type": "object"
                            },
                            "backoff": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "dynamic": {
                              "properties": {
                                "smart_enable_level": {
                                  "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                  "enum": [
                                    "RELAY_SMART_ENABLE_LEVEL_8",
                                    "RELAY_SMART_ENABLE_LEVEL_16",
                                    "RELAY_SMART_ENABLE_LEVEL_32",
                                    "RELAY_SMART_ENABLE_LEVEL_64"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "end_device_controlled": {
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "serving_device_id": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_notify_new_end_device_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "rssi": {
                          "format": "int32",
                          "type": "integer"
                        },
                        "snr": {
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_update_uplink_list_ans": {
                      "type": "object"
                    },
                    "relay_update_uplink_list_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "device_id": {
                          "type": "string"
                        },
                        "forward_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "root_wor_s_key": {
                          "example": "0123456789ABCDEF0123456789ABCDEF",
                          "format": "string",
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "session_key_id": {
                          "format": "byte",
                          "type": "string"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "reset_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "reset_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_ans": {
                      "properties": {
                        "rx1_data_rate_offset_ack": {
                          "type": "boolean"
                        },
                        "rx2_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "rx2_frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_req": {
                      "properties": {
                        "rx1_data_rate_offset": {
                          "default": "DATA_RATE_OFFSET_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_frequency": {
                          "description": "Rx2 frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_timing_setup_req": {
                      "properties": {
                        "delay": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "tx_param_setup_req": {
                      "properties": {
                        "downlink_dwell_time": {
                          "type": "boolean"
                        },
                        "max_eirp_index": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_dwell_time": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "recent_downlinks": {
                "description": "Recent data downlink messages sorted by time.\nThe number of messages stored may depend on configuration.",
                "items": {
                  "description": "A minimal DownlinkMessage definition which is binary compatible with the top level DownlinkMessage message.\nUsed for type safe recent downlink storage.",
                  "properties": {
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "payload": {
                      "properties": {
                        "m_hdr": {
                          "properties": {
                            "m_type": {
                              "default": "JOIN_REQUEST",
                              "enum": [
                                "JOIN_REQUEST",
                                "JOIN_ACCEPT",
                                "UNCONFIRMED_UP",
                                "UNCONFIRMED_DOWN",
                                "CONFIRMED_UP",
                                "CONFIRMED_DOWN",
                                "REJOIN_REQUEST",
                                "PROPRIETARY"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "mac_payload": {
                          "properties": {
                            "f_port": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "full_f_cnt": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "recent_mac_command_identifiers": {
                "description": "MAC command identifiers sent by the end device in the last received uplink.\nThe Network Server may choose to store only certain types of MAC\ncommand identifiers in the underlying implementation.",
                "items": {
                  "default": "CID_RFU_0",
                  "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"
                  ],
                  "title": "- CID_BEACON_TIMING: Deprecated",
                  "type": "string"
                },
                "type": "array"
              },
              "recent_uplinks": {
                "description": "Recent data uplink messages sorted by time.\nThe number of messages stored may depend on configuration.",
                "items": {
                  "description": "A minimal UplinkMessage definition which is binary compatible with the top level UplinkMessage message.\nUsed for type safe recent uplink storage.",
                  "properties": {
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "device_channel_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "payload": {
                      "properties": {
                        "join_accept_payload": {
                          "properties": {
                            "cf_list": {
                              "properties": {
                                "ch_masks": {
                                  "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                                  "items": {
                                    "type": "boolean"
                                  },
                                  "type": "array"
                                },
                                "freq": {
                                  "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                                  "items": {
                                    "format": "int64",
                                    "type": "integer"
                                  },
                                  "type": "array"
                                },
                                "type": {
                                  "default": "FREQUENCIES",
                                  "enum": [
                                    "FREQUENCIES",
                                    "CHANNEL_MASKS"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "dev_addr": {
                              "example": "2600ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "dl_settings": {
                              "properties": {
                                "opt_neg": {
                                  "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                                  "type": "boolean"
                                },
                                "rx1_dr_offset": {
                                  "default": "DATA_RATE_OFFSET_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "rx2_dr": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "encrypted": {
                              "format": "byte",
                              "type": "string"
                            },
                            "join_nonce": {
                              "example": "ABCDEF",
                              "format": "string",
                              "type": "string"
                            },
                            "net_id": {
                              "example": "000013",
                              "format": "string",
                              "type": "string"
                            },
                            "rx_delay": {
                              "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.",
                              "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"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_payload": {
                          "properties": {
                            "dev_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "dev_nonce": {
                              "example": "ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "join_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "m_hdr": {
                          "properties": {
                            "m_type": {
                              "default": "JOIN_REQUEST",
                              "enum": [
                                "JOIN_REQUEST",
                                "JOIN_ACCEPT",
                                "UNCONFIRMED_UP",
                                "UNCONFIRMED_DOWN",
                                "CONFIRMED_UP",
                                "CONFIRMED_DOWN",
                                "REJOIN_REQUEST",
                                "PROPRIETARY"
                              ],
                              "type": "string"
                            },
                            "major": {
                              "default": "LORAWAN_R1",
                              "enum": [
                                "LORAWAN_R1"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "mac_payload": {
                          "properties": {
                            "decoded_payload": {
                              "type": "object"
                            },
                            "f_hdr": {
                              "properties": {
                                "dev_addr": {
                                  "example": "2600ABCD",
                                  "format": "string",
                                  "type": "string"
                                },
                                "f_cnt": {
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "f_ctrl": {
                                  "properties": {
                                    "ack": {
                                      "type": "boolean"
                                    },
                                    "adr": {
                                      "type": "boolean"
                                    },
                                    "adr_ack_req": {
                                      "description": "Only on uplink.",
                                      "type": "boolean"
                                    },
                                    "class_b": {
                                      "description": "Only on uplink.",
                                      "type": "boolean"
                                    },
                                    "f_pending": {
                                      "description": "Only on downlink.",
                                      "type": "boolean"
                                    }
                                  },
                                  "type": "object"
                                },
                                "f_opts": {
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "f_port": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "frm_payload": {
                              "format": "byte",
                              "type": "string"
                            },
                            "full_f_cnt": {
                              "description": "Full 32-bit FCnt value. Used internally by Network Server.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "mic": {
                          "format": "byte",
                          "type": "string"
                        },
                        "rejoin_request_payload": {
                          "properties": {
                            "dev_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "join_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "net_id": {
                              "example": "000013",
                              "format": "string",
                              "type": "string"
                            },
                            "rejoin_cnt": {
                              "description": "Contains RJCount0 or RJCount1 depending on rejoin_type.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "rejoin_type": {
                              "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.",
                              "enum": [
                                "CONTEXT",
                                "SESSION",
                                "KEYS"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "title": "Message represents a LoRaWAN message",
                      "type": "object"
                    },
                    "received_at": {
                      "format": "date-time",
                      "type": "string"
                    },
                    "rx_metadata": {
                      "items": {
                        "properties": {
                          "channel_rssi": {
                            "format": "float",
                            "type": "number"
                          },
                          "downlink_path_constraint": {
                            "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.",
                            "enum": [
                              "DOWNLINK_PATH_CONSTRAINT_NONE",
                              "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
                              "DOWNLINK_PATH_CONSTRAINT_NEVER"
                            ],
                            "type": "string"
                          },
                          "gateway_ids": {
                            "properties": {
                              "eui": {
                                "description": "Secondary identifier, which can only be used in specific requests.",
                                "example": "70B3D57ED000ABCD",
                                "format": "string",
                                "type": "string"
                              },
                              "gateway_id": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "packet_broker": {
                            "type": "object"
                          },
                          "relay": {
                            "type": "object"
                          },
                          "snr": {
                            "format": "float",
                            "type": "number"
                          },
                          "uplink_token": {
                            "format": "byte",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "settings": {
                      "properties": {
                        "data_rate": {
                          "properties": {
                            "fsk": {
                              "properties": {
                                "bit_rate": {
                                  "description": "Bit rate (bps).",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "lora": {
                              "properties": {
                                "bandwidth": {
                                  "description": "Bandwidth (Hz).",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "coding_rate": {
                                  "type": "string"
                                },
                                "spreading_factor": {
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "lrfhss": {
                              "properties": {
                                "coding_rate": {
                                  "type": "string"
                                },
                                "modulation_type": {
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "operating_channel_width": {
                                  "description": "Operating Channel Width (Hz).",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "rejected_adr_data_rate_indexes": {
                "description": "ADR Data rate index values rejected by the device.\nReset each time `current_parameters.channels` change.\nElements are sorted in ascending order.",
                "items": {
                  "default": "DATA_RATE_0",
                  "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"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              "rejected_adr_tx_power_indexes": {
                "description": "ADR TX output power index values rejected by the device.\nElements are sorted in ascending order.",
                "items": {
                  "format": "int64",
                  "type": "integer"
                },
                "type": "array"
              },
              "rejected_data_rate_ranges": {
                "additionalProperties": {
                  "properties": {
                    "ranges": {
                      "items": {
                        "properties": {
                          "max_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "min_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "description": "Data rate ranges rejected by the device per frequency.",
                "type": "object"
              },
              "rejected_frequencies": {
                "description": "Frequencies rejected by the device.",
                "items": {
                  "format": "uint64",
                  "type": "string"
                },
                "type": "array"
              },
              "rx_windows_available": {
                "description": "Whether or not Rx windows are expected to be open.\nSet to true every time an uplink is received.\nSet to false every time a successful downlink scheduling attempt is made.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "max_frequency": {
            "description": "Maximum frequency the device is capable of using (Hz). Stored in Network Server.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "format": "uint64",
            "type": "string"
          },
          "min_frequency": {
            "description": "Minimum frequency the device is capable of using (Hz). Stored in Network Server.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "format": "uint64",
            "type": "string"
          },
          "multicast": {
            "description": "Indicates whether this device represents a multicast group.",
            "type": "boolean"
          },
          "name": {
            "description": "Friendly name of the device. Stored in Entity Registry.",
            "type": "string"
          },
          "net_id": {
            "description": "Home NetID. Stored in Join Server.",
            "example": "000013",
            "format": "string",
            "type": "string"
          },
          "network_server_address": {
            "description": "The address of the Network Server where this device is supposed to be registered.\nStored in Entity Registry and Join Server.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
            "type": "string"
          },
          "network_server_kek_label": {
            "description": "The KEK label of the Network Server to use for wrapping network session keys.\nStored in Join Server.",
            "type": "string"
          },
          "pending_mac_state": {
            "description": "MACState represents the state of MAC layer of the device.\nMACState is reset on each join for OTAA or ResetInd for ABP devices.\nThis is used internally by the Network Server.",
            "properties": {
              "current_parameters": {
                "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
                "properties": {
                  "adr_ack_delay": {
                    "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_delay_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_DELAY_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_ack_limit": {
                    "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_limit_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_LIMIT_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "adr_nb_trans": {
                    "description": "ADR: number of retransmissions.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_tx_power_index": {
                    "description": "ADR: transmission power index to use.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "beacon_frequency": {
                    "description": "Frequency of the class B beacon (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "channels": {
                    "description": "Configured uplink channels and optionally Rx1 frequency.",
                    "items": {
                      "properties": {
                        "downlink_frequency": {
                          "description": "Downlink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "enable_uplink": {
                          "description": "Channel can be used by device for uplink.",
                          "type": "boolean"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_frequency": {
                          "description": "Uplink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "downlink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "max_duty_cycle": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "max_eirp": {
                    "description": "Maximum EIRP (dBm).",
                    "format": "float",
                    "type": "number"
                  },
                  "ping_slot_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "ping_slot_data_rate_index_value": {
                    "properties": {
                      "value": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "ping_slot_frequency": {
                    "description": "Frequency of the class B ping slot (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "rejoin_count_periodicity": {
                    "default": "REJOIN_COUNT_16",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rejoin_time_periodicity": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "relay": {
                    "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                    "properties": {
                      "served": {
                        "properties": {
                          "always": {
                            "type": "object"
                          },
                          "backoff": {
                            "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "dynamic": {
                            "properties": {
                              "smart_enable_level": {
                                "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                "enum": [
                                  "RELAY_SMART_ENABLE_LEVEL_8",
                                  "RELAY_SMART_ENABLE_LEVEL_16",
                                  "RELAY_SMART_ENABLE_LEVEL_32",
                                  "RELAY_SMART_ENABLE_LEVEL_64"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "end_device_controlled": {
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "serving_device_id": {
                            "description": "End device identifier of the serving end device.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving": {
                        "properties": {
                          "cad_periodicity": {
                            "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                            "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"
                            ],
                            "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                            "type": "string"
                          },
                          "default_channel_index": {
                            "description": "Index of the default wake on radio channel.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "limits": {
                            "properties": {
                              "join_requests": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "notifications": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "overall": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "reset_behavior": {
                                "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                "enum": [
                                  "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                  "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                  "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                  "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                                ],
                                "type": "string"
                              },
                              "uplink_messages": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "uplink_forwarding_rules": {
                            "description": "Configured uplink forwarding rules.",
                            "items": {
                              "properties": {
                                "device_id": {
                                  "description": "End device identifier of the served end device.",
                                  "type": "string"
                                },
                                "last_w_f_cnt": {
                                  "description": "Last wake on radio frame counter used by the served end device.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "limits": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "session_key_id": {
                                  "description": "Session key ID of the session keys used to derive the root relay session key.",
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "rx1_data_rate_offset": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx1_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_frequency": {
                    "description": "Frequency for Rx2 (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "uplink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "desired_parameters": {
                "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
                "properties": {
                  "adr_ack_delay": {
                    "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_delay_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_DELAY_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_ack_limit": {
                    "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_ack_limit_exponent": {
                    "properties": {
                      "value": {
                        "default": "ADR_ACK_LIMIT_1",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "adr_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "adr_nb_trans": {
                    "description": "ADR: number of retransmissions.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "adr_tx_power_index": {
                    "description": "ADR: transmission power index to use.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "beacon_frequency": {
                    "description": "Frequency of the class B beacon (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "channels": {
                    "description": "Configured uplink channels and optionally Rx1 frequency.",
                    "items": {
                      "properties": {
                        "downlink_frequency": {
                          "description": "Downlink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "enable_uplink": {
                          "description": "Channel can be used by device for uplink.",
                          "type": "boolean"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_frequency": {
                          "description": "Uplink frequency of the channel (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "downlink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "max_duty_cycle": {
                    "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%.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "max_eirp": {
                    "description": "Maximum EIRP (dBm).",
                    "format": "float",
                    "type": "number"
                  },
                  "ping_slot_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "ping_slot_data_rate_index_value": {
                    "properties": {
                      "value": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "ping_slot_frequency": {
                    "description": "Frequency of the class B ping slot (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "rejoin_count_periodicity": {
                    "default": "REJOIN_COUNT_16",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rejoin_time_periodicity": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "relay": {
                    "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                    "properties": {
                      "served": {
                        "properties": {
                          "always": {
                            "type": "object"
                          },
                          "backoff": {
                            "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "dynamic": {
                            "properties": {
                              "smart_enable_level": {
                                "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                "enum": [
                                  "RELAY_SMART_ENABLE_LEVEL_8",
                                  "RELAY_SMART_ENABLE_LEVEL_16",
                                  "RELAY_SMART_ENABLE_LEVEL_32",
                                  "RELAY_SMART_ENABLE_LEVEL_64"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "end_device_controlled": {
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "serving_device_id": {
                            "description": "End device identifier of the serving end device.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "serving": {
                        "properties": {
                          "cad_periodicity": {
                            "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                            "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"
                            ],
                            "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                            "type": "string"
                          },
                          "default_channel_index": {
                            "description": "Index of the default wake on radio channel.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "limits": {
                            "properties": {
                              "join_requests": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "notifications": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "overall": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "reset_behavior": {
                                "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                "enum": [
                                  "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                  "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                  "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                  "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                                ],
                                "type": "string"
                              },
                              "uplink_messages": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          },
                          "second_channel": {
                            "properties": {
                              "ack_offset": {
                                "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                "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"
                                ],
                                "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",
                                "type": "string"
                              },
                              "data_rate_index": {
                                "default": "DATA_RATE_0",
                                "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"
                                ],
                                "type": "string"
                              },
                              "frequency": {
                                "description": "The frequency (Hz) used by the wake on radio message.",
                                "format": "uint64",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "uplink_forwarding_rules": {
                            "description": "Configured uplink forwarding rules.",
                            "items": {
                              "properties": {
                                "device_id": {
                                  "description": "End device identifier of the served end device.",
                                  "type": "string"
                                },
                                "last_w_f_cnt": {
                                  "description": "Last wake on radio frame counter used by the served end device.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "limits": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "session_key_id": {
                                  "description": "Session key ID of the session keys used to derive the root relay session key.",
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "rx1_data_rate_offset": {
                    "default": "DATA_RATE_OFFSET_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx1_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_data_rate_index": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "rx2_frequency": {
                    "description": "Frequency for Rx2 (Hz).",
                    "format": "uint64",
                    "type": "string"
                  },
                  "uplink_dwell_time": {
                    "properties": {
                      "value": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "device_class": {
                "default": "CLASS_A",
                "enum": [
                  "CLASS_A",
                  "CLASS_B",
                  "CLASS_C"
                ],
                "type": "string"
              },
              "last_adr_change_f_cnt_up": {
                "description": "Frame counter of uplink, which confirmed the last ADR parameter change.",
                "format": "int64",
                "type": "integer"
              },
              "last_confirmed_downlink_at": {
                "description": "Time when the last confirmed downlink message or MAC command was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "last_dev_status_f_cnt_up": {
                "description": "Frame counter value of last uplink containing DevStatusAns.",
                "format": "int64",
                "type": "integer"
              },
              "last_downlink_at": {
                "description": "Time when the last downlink message was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "last_network_initiated_downlink_at": {
                "description": "Time when the last network-initiated downlink message was scheduled.",
                "format": "date-time",
                "type": "string"
              },
              "lorawan_version": {
                "default": "MAC_UNKNOWN",
                "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"
                ],
                "type": "string"
              },
              "pending_application_downlink": {
                "properties": {
                  "attributes": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "Attributes for devices, set by the Application Server while handling the message.",
                    "type": "object"
                  },
                  "class_b_c": {
                    "properties": {
                      "absolute_time": {
                        "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                        "format": "date-time",
                        "type": "string"
                      },
                      "gateways": {
                        "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                        "items": {
                          "properties": {
                            "antenna_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "gateway_ids": {
                              "properties": {
                                "eui": {
                                  "description": "Secondary identifier, which can only be used in specific requests.",
                                  "example": "70B3D57ED000ABCD",
                                  "format": "string",
                                  "type": "string"
                                },
                                "gateway_id": {
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "group_index": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  },
                  "confirmed": {
                    "type": "boolean"
                  },
                  "confirmed_retry": {
                    "properties": {
                      "attempt": {
                        "description": "The number of attempted confirmed downlink acknowledgements.",
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_attempts": {
                        "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "correlation_ids": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "decoded_payload": {
                    "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                    "type": "object"
                  },
                  "decoded_payload_warnings": {
                    "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "f_cnt": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "f_port": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "frm_payload": {
                    "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                    "format": "byte",
                    "type": "string"
                  },
                  "locations": {
                    "additionalProperties": {
                      "properties": {
                        "accuracy": {
                          "description": "The accuracy of the location (meters).",
                          "format": "int32",
                          "type": "integer"
                        },
                        "altitude": {
                          "description": "The altitude (meters), where 0 is the mean sea level.",
                          "format": "int32",
                          "type": "integer"
                        },
                        "latitude": {
                          "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                          "format": "double",
                          "type": "number"
                        },
                        "longitude": {
                          "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                          "format": "double",
                          "type": "number"
                        },
                        "source": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "description": "End device location metadata, set by the Application Server while handling the message.",
                    "type": "object"
                  },
                  "network_ids": {
                    "description": "Identifies a Network Server.",
                    "properties": {
                      "cluster_address": {
                        "description": "Cluster address of the Network Server.",
                        "type": "string"
                      },
                      "cluster_id": {
                        "description": "Cluster identifier of the Network Server.",
                        "type": "string"
                      },
                      "net_id": {
                        "description": "LoRa Alliance NetID.",
                        "example": "000013",
                        "format": "string",
                        "type": "string"
                      },
                      "ns_id": {
                        "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                        "example": "70B3D57ED000ABCD",
                        "format": "string",
                        "type": "string"
                      },
                      "tenant_address": {
                        "description": "Optional tenant address for multi-tenant deployments.",
                        "type": "string"
                      },
                      "tenant_id": {
                        "description": "Optional tenant identifier for multi-tenant deployments.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "priority": {
                    "default": "LOWEST",
                    "enum": [
                      "LOWEST",
                      "LOW",
                      "BELOW_NORMAL",
                      "NORMAL",
                      "ABOVE_NORMAL",
                      "HIGH",
                      "HIGHEST"
                    ],
                    "type": "string"
                  },
                  "session_key_id": {
                    "description": "Join Server issued identifier for the session keys used by this downlink.",
                    "format": "byte",
                    "type": "string"
                  },
                  "version_ids": {
                    "description": "Identifies an end device model with version information.",
                    "properties": {
                      "band_id": {
                        "type": "string"
                      },
                      "brand_id": {
                        "type": "string"
                      },
                      "firmware_version": {
                        "type": "string"
                      },
                      "hardware_version": {
                        "type": "string"
                      },
                      "model_id": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "pending_join_request": {
                "properties": {
                  "cf_list": {
                    "properties": {
                      "ch_masks": {
                        "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                        "items": {
                          "type": "boolean"
                        },
                        "type": "array"
                      },
                      "freq": {
                        "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                        "items": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "type": "array"
                      },
                      "type": {
                        "default": "FREQUENCIES",
                        "enum": [
                          "FREQUENCIES",
                          "CHANNEL_MASKS"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "downlink_settings": {
                    "properties": {
                      "opt_neg": {
                        "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                        "type": "boolean"
                      },
                      "rx1_dr_offset": {
                        "default": "DATA_RATE_OFFSET_0",
                        "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"
                        ],
                        "type": "string"
                      },
                      "rx2_dr": {
                        "default": "DATA_RATE_0",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "rx_delay": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "pending_relay_downlink": {
                "properties": {
                  "raw_payload": {
                    "format": "byte",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "pending_requests": {
                "description": "Pending MAC requests(i.e. sent requests, for which no response has been received yet).\nRegenerated on each downlink.",
                "items": {
                  "properties": {
                    "adr_param_setup_req": {
                      "properties": {
                        "adr_ack_delay_exponent": {
                          "default": "ADR_ACK_DELAY_1",
                          "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"
                          ],
                          "type": "string"
                        },
                        "adr_ack_limit_exponent": {
                          "default": "ADR_ACK_LIMIT_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_ans": {
                      "properties": {
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_req": {
                      "properties": {
                        "frequency": {
                          "description": "Frequency of the Class B beacons (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_timing_ans": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "delay": {
                          "description": "(uint16) See LoRaWAN specification.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "cid": {
                      "default": "CID_RFU_0",
                      "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"
                      ],
                      "title": "- CID_BEACON_TIMING: Deprecated",
                      "type": "string"
                    },
                    "dev_status_ans": {
                      "properties": {
                        "battery": {
                          "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "SNR of the last downlink (dB; [-32, +31]).",
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_conf": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_ind": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_time_ans": {
                      "properties": {
                        "time": {
                          "format": "date-time",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_ans": {
                      "properties": {
                        "channel_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Downlink channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "duty_cycle_req": {
                      "properties": {
                        "max_duty_cycle": {
                          "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%.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "force_rejoin_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_retries": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "period_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rejoin_type": {
                          "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.",
                          "enum": [
                            "CONTEXT",
                            "SESSION",
                            "KEYS"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_ans": {
                      "properties": {
                        "channel_mask_ack": {
                          "type": "boolean"
                        },
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "tx_power_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_req": {
                      "properties": {
                        "channel_mask": {
                          "items": {
                            "type": "boolean"
                          },
                          "type": "array"
                        },
                        "channel_mask_control": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "nb_trans": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "tx_power_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "link_check_ans": {
                      "properties": {
                        "gateway_count": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_ans": {
                      "properties": {
                        "data_rate_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_ans": {
                      "properties": {
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "frequency": {
                          "description": "Ping slot channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_info_req": {
                      "properties": {
                        "period": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "raw_payload": {
                      "format": "byte",
                      "type": "string"
                    },
                    "rejoin_param_setup_ans": {
                      "properties": {
                        "max_time_exponent_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rejoin_param_setup_req": {
                      "properties": {
                        "max_count_exponent": {
                          "default": "REJOIN_COUNT_16",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_time_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_ans": {
                      "properties": {
                        "cad_periodicity_ack": {
                          "type": "boolean"
                        },
                        "default_channel_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_ack_offset_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "cad_periodicity": {
                              "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                              "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"
                              ],
                              "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                              "type": "string"
                            },
                            "default_channel_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_ans": {
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_req": {
                      "properties": {
                        "global_uplink_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "notify_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "overall_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "reset_limit_counter": {
                          "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                          "enum": [
                            "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                            "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                            "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_ans": {
                      "properties": {
                        "rule_index_ack": {
                          "type": "boolean"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_req": {
                      "properties": {
                        "action": {
                          "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                          "enum": [
                            "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                            "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                          ],
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_ans": {
                      "properties": {
                        "backoff_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "always": {
                              "type": "object"
                            },
                            "backoff": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "dynamic": {
                              "properties": {
                                "smart_enable_level": {
                                  "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                  "enum": [
                                    "RELAY_SMART_ENABLE_LEVEL_8",
                                    "RELAY_SMART_ENABLE_LEVEL_16",
                                    "RELAY_SMART_ENABLE_LEVEL_32",
                                    "RELAY_SMART_ENABLE_LEVEL_64"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "end_device_controlled": {
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "serving_device_id": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_notify_new_end_device_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "rssi": {
                          "format": "int32",
                          "type": "integer"
                        },
                        "snr": {
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_update_uplink_list_ans": {
                      "type": "object"
                    },
                    "relay_update_uplink_list_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "device_id": {
                          "type": "string"
                        },
                        "forward_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "root_wor_s_key": {
                          "example": "0123456789ABCDEF0123456789ABCDEF",
                          "format": "string",
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "session_key_id": {
                          "format": "byte",
                          "type": "string"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "reset_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "reset_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_ans": {
                      "properties": {
                        "rx1_data_rate_offset_ack": {
                          "type": "boolean"
                        },
                        "rx2_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "rx2_frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_req": {
                      "properties": {
                        "rx1_data_rate_offset": {
                          "default": "DATA_RATE_OFFSET_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_frequency": {
                          "description": "Rx2 frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_timing_setup_req": {
                      "properties": {
                        "delay": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "tx_param_setup_req": {
                      "properties": {
                        "downlink_dwell_time": {
                          "type": "boolean"
                        },
                        "max_eirp_index": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_dwell_time": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "ping_slot_periodicity": {
                "properties": {
                  "value": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "queued_join_accept": {
                "properties": {
                  "correlation_ids": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "dev_addr": {
                    "example": "2600ABCD",
                    "format": "string",
                    "type": "string"
                  },
                  "keys": {
                    "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
                    "properties": {
                      "app_s_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "f_nwk_s_int_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "nwk_s_enc_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "s_nwk_s_int_key": {
                        "properties": {
                          "encrypted_key": {
                            "format": "byte",
                            "type": "string"
                          },
                          "kek_label": {
                            "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                            "type": "string"
                          },
                          "key": {
                            "description": "The unencrypted AES key.",
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "session_key_id": {
                        "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                        "format": "byte",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "net_id": {
                    "example": "000013",
                    "format": "string",
                    "type": "string"
                  },
                  "payload": {
                    "description": "Payload of the join-accept received from Join Server.",
                    "format": "byte",
                    "type": "string"
                  },
                  "request": {
                    "properties": {
                      "cf_list": {
                        "properties": {
                          "ch_masks": {
                            "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                            "items": {
                              "type": "boolean"
                            },
                            "type": "array"
                          },
                          "freq": {
                            "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                            "items": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "type": "array"
                          },
                          "type": {
                            "default": "FREQUENCIES",
                            "enum": [
                              "FREQUENCIES",
                              "CHANNEL_MASKS"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "downlink_settings": {
                        "properties": {
                          "opt_neg": {
                            "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                            "type": "boolean"
                          },
                          "rx1_dr_offset": {
                            "default": "DATA_RATE_OFFSET_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "rx2_dr": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rx_delay": {
                        "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.",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "queued_responses": {
                "description": "Queued MAC responses.\nRegenerated on each uplink.",
                "items": {
                  "properties": {
                    "adr_param_setup_req": {
                      "properties": {
                        "adr_ack_delay_exponent": {
                          "default": "ADR_ACK_DELAY_1",
                          "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"
                          ],
                          "type": "string"
                        },
                        "adr_ack_limit_exponent": {
                          "default": "ADR_ACK_LIMIT_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_ans": {
                      "properties": {
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_freq_req": {
                      "properties": {
                        "frequency": {
                          "description": "Frequency of the Class B beacons (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "beacon_timing_ans": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "delay": {
                          "description": "(uint16) See LoRaWAN specification.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "cid": {
                      "default": "CID_RFU_0",
                      "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"
                      ],
                      "title": "- CID_BEACON_TIMING: Deprecated",
                      "type": "string"
                    },
                    "dev_status_ans": {
                      "properties": {
                        "battery": {
                          "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "SNR of the last downlink (dB; [-32, +31]).",
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_conf": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_mode_ind": {
                      "properties": {
                        "class": {
                          "default": "CLASS_A",
                          "enum": [
                            "CLASS_A",
                            "CLASS_B",
                            "CLASS_C"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "device_time_ans": {
                      "properties": {
                        "time": {
                          "format": "date-time",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_ans": {
                      "properties": {
                        "channel_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "dl_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Downlink channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "duty_cycle_req": {
                      "properties": {
                        "max_duty_cycle": {
                          "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%.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "force_rejoin_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_retries": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "period_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rejoin_type": {
                          "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.",
                          "enum": [
                            "CONTEXT",
                            "SESSION",
                            "KEYS"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_ans": {
                      "properties": {
                        "channel_mask_ack": {
                          "type": "boolean"
                        },
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "tx_power_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "link_adr_req": {
                      "properties": {
                        "channel_mask": {
                          "items": {
                            "type": "boolean"
                          },
                          "type": "array"
                        },
                        "channel_mask_control": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "nb_trans": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "tx_power_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "link_check_ans": {
                      "properties": {
                        "gateway_count": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "margin": {
                          "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_ans": {
                      "properties": {
                        "data_rate_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "new_channel_req": {
                      "properties": {
                        "channel_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "frequency": {
                          "description": "Channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        },
                        "max_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "min_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_ans": {
                      "properties": {
                        "data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_channel_req": {
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "frequency": {
                          "description": "Ping slot channel frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_info_req": {
                      "properties": {
                        "period": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "raw_payload": {
                      "format": "byte",
                      "type": "string"
                    },
                    "rejoin_param_setup_ans": {
                      "properties": {
                        "max_time_exponent_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rejoin_param_setup_req": {
                      "properties": {
                        "max_count_exponent": {
                          "default": "REJOIN_COUNT_16",
                          "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"
                          ],
                          "type": "string"
                        },
                        "max_time_exponent": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rekey_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_ans": {
                      "properties": {
                        "cad_periodicity_ack": {
                          "type": "boolean"
                        },
                        "default_channel_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_ack_offset_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "cad_periodicity": {
                              "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                              "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"
                              ],
                              "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                              "type": "string"
                            },
                            "default_channel_index": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_ans": {
                      "type": "object"
                    },
                    "relay_configure_fwd_limit_req": {
                      "properties": {
                        "global_uplink_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "notify_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "overall_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "reset_limit_counter": {
                          "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                          "enum": [
                            "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                            "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                            "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_ans": {
                      "properties": {
                        "rule_index_ack": {
                          "type": "boolean"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_ctrl_uplink_list_req": {
                      "properties": {
                        "action": {
                          "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                          "enum": [
                            "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                            "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                          ],
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_ans": {
                      "properties": {
                        "backoff_ack": {
                          "type": "boolean"
                        },
                        "second_channel_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "second_channel_frequency_ack": {
                          "type": "boolean"
                        },
                        "second_channel_index_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "relay_end_device_conf_req": {
                      "properties": {
                        "configuration": {
                          "properties": {
                            "always": {
                              "type": "object"
                            },
                            "backoff": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "dynamic": {
                              "properties": {
                                "smart_enable_level": {
                                  "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                  "enum": [
                                    "RELAY_SMART_ENABLE_LEVEL_8",
                                    "RELAY_SMART_ENABLE_LEVEL_16",
                                    "RELAY_SMART_ENABLE_LEVEL_32",
                                    "RELAY_SMART_ENABLE_LEVEL_64"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "end_device_controlled": {
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "serving_device_id": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "relay_notify_new_end_device_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "rssi": {
                          "format": "int32",
                          "type": "integer"
                        },
                        "snr": {
                          "format": "int32",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "relay_update_uplink_list_ans": {
                      "type": "object"
                    },
                    "relay_update_uplink_list_req": {
                      "properties": {
                        "dev_addr": {
                          "example": "2600ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "device_id": {
                          "type": "string"
                        },
                        "forward_limits": {
                          "properties": {
                            "bucket_size": {
                              "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                              "enum": [
                                "RELAY_LIMIT_BUCKET_SIZE_1",
                                "RELAY_LIMIT_BUCKET_SIZE_2",
                                "RELAY_LIMIT_BUCKET_SIZE_4",
                                "RELAY_LIMIT_BUCKET_SIZE_12"
                              ],
                              "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                              "type": "string"
                            },
                            "reload_rate": {
                              "description": "The number of tokens which are replenished in the bucket every hour.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "root_wor_s_key": {
                          "example": "0123456789ABCDEF0123456789ABCDEF",
                          "format": "string",
                          "type": "string"
                        },
                        "rule_index": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "session_key_id": {
                          "format": "byte",
                          "type": "string"
                        },
                        "w_f_cnt": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "reset_conf": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "reset_ind": {
                      "properties": {
                        "minor_version": {
                          "default": "MINOR_RFU_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_ans": {
                      "properties": {
                        "rx1_data_rate_offset_ack": {
                          "type": "boolean"
                        },
                        "rx2_data_rate_index_ack": {
                          "type": "boolean"
                        },
                        "rx2_frequency_ack": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "rx_param_setup_req": {
                      "properties": {
                        "rx1_data_rate_offset": {
                          "default": "DATA_RATE_OFFSET_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_frequency": {
                          "description": "Rx2 frequency (Hz).",
                          "format": "uint64",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_timing_setup_req": {
                      "properties": {
                        "delay": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "tx_param_setup_req": {
                      "properties": {
                        "downlink_dwell_time": {
                          "type": "boolean"
                        },
                        "max_eirp_index": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        },
                        "uplink_dwell_time": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "recent_downlinks": {
                "description": "Recent data downlink messages sorted by time.\nThe number of messages stored may depend on configuration.",
                "items": {
                  "description": "A minimal DownlinkMessage definition which is binary compatible with the top level DownlinkMessage message.\nUsed for type safe recent downlink storage.",
                  "properties": {
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "payload": {
                      "properties": {
                        "m_hdr": {
                          "properties": {
                            "m_type": {
                              "default": "JOIN_REQUEST",
                              "enum": [
                                "JOIN_REQUEST",
                                "JOIN_ACCEPT",
                                "UNCONFIRMED_UP",
                                "UNCONFIRMED_DOWN",
                                "CONFIRMED_UP",
                                "CONFIRMED_DOWN",
                                "REJOIN_REQUEST",
                                "PROPRIETARY"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "mac_payload": {
                          "properties": {
                            "f_port": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "full_f_cnt": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "recent_mac_command_identifiers": {
                "description": "MAC command identifiers sent by the end device in the last received uplink.\nThe Network Server may choose to store only certain types of MAC\ncommand identifiers in the underlying implementation.",
                "items": {
                  "default": "CID_RFU_0",
                  "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"
                  ],
                  "title": "- CID_BEACON_TIMING: Deprecated",
                  "type": "string"
                },
                "type": "array"
              },
              "recent_uplinks": {
                "description": "Recent data uplink messages sorted by time.\nThe number of messages stored may depend on configuration.",
                "items": {
                  "description": "A minimal UplinkMessage definition which is binary compatible with the top level UplinkMessage message.\nUsed for type safe recent uplink storage.",
                  "properties": {
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "device_channel_index": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "payload": {
                      "properties": {
                        "join_accept_payload": {
                          "properties": {
                            "cf_list": {
                              "properties": {
                                "ch_masks": {
                                  "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                                  "items": {
                                    "type": "boolean"
                                  },
                                  "type": "array"
                                },
                                "freq": {
                                  "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                                  "items": {
                                    "format": "int64",
                                    "type": "integer"
                                  },
                                  "type": "array"
                                },
                                "type": {
                                  "default": "FREQUENCIES",
                                  "enum": [
                                    "FREQUENCIES",
                                    "CHANNEL_MASKS"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "dev_addr": {
                              "example": "2600ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "dl_settings": {
                              "properties": {
                                "opt_neg": {
                                  "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                                  "type": "boolean"
                                },
                                "rx1_dr_offset": {
                                  "default": "DATA_RATE_OFFSET_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "rx2_dr": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "encrypted": {
                              "format": "byte",
                              "type": "string"
                            },
                            "join_nonce": {
                              "example": "ABCDEF",
                              "format": "string",
                              "type": "string"
                            },
                            "net_id": {
                              "example": "000013",
                              "format": "string",
                              "type": "string"
                            },
                            "rx_delay": {
                              "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.",
                              "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"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "join_request_payload": {
                          "properties": {
                            "dev_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "dev_nonce": {
                              "example": "ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "join_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "m_hdr": {
                          "properties": {
                            "m_type": {
                              "default": "JOIN_REQUEST",
                              "enum": [
                                "JOIN_REQUEST",
                                "JOIN_ACCEPT",
                                "UNCONFIRMED_UP",
                                "UNCONFIRMED_DOWN",
                                "CONFIRMED_UP",
                                "CONFIRMED_DOWN",
                                "REJOIN_REQUEST",
                                "PROPRIETARY"
                              ],
                              "type": "string"
                            },
                            "major": {
                              "default": "LORAWAN_R1",
                              "enum": [
                                "LORAWAN_R1"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "mac_payload": {
                          "properties": {
                            "decoded_payload": {
                              "type": "object"
                            },
                            "f_hdr": {
                              "properties": {
                                "dev_addr": {
                                  "example": "2600ABCD",
                                  "format": "string",
                                  "type": "string"
                                },
                                "f_cnt": {
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "f_ctrl": {
                                  "properties": {
                                    "ack": {
                                      "type": "boolean"
                                    },
                                    "adr": {
                                      "type": "boolean"
                                    },
                                    "adr_ack_req": {
                                      "description": "Only on uplink.",
                                      "type": "boolean"
                                    },
                                    "class_b": {
                                      "description": "Only on uplink.",
                                      "type": "boolean"
                                    },
                                    "f_pending": {
                                      "description": "Only on downlink.",
                                      "type": "boolean"
                                    }
                                  },
                                  "type": "object"
                                },
                                "f_opts": {
                                  "format": "byte",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "f_port": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "frm_payload": {
                              "format": "byte",
                              "type": "string"
                            },
                            "full_f_cnt": {
                              "description": "Full 32-bit FCnt value. Used internally by Network Server.",
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "mic": {
                          "format": "byte",
                          "type": "string"
                        },
                        "rejoin_request_payload": {
                          "properties": {
                            "dev_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "join_eui": {
                              "example": "70B3D57ED000ABCD",
                              "format": "string",
                              "type": "string"
                            },
                            "net_id": {
                              "example": "000013",
                              "format": "string",
                              "type": "string"
                            },
                            "rejoin_cnt": {
                              "description": "Contains RJCount0 or RJCount1 depending on rejoin_type.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "rejoin_type": {
                              "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.",
                              "enum": [
                                "CONTEXT",
                                "SESSION",
                                "KEYS"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "title": "Message represents a LoRaWAN message",
                      "type": "object"
                    },
                    "received_at": {
                      "format": "date-time",
                      "type": "string"
                    },
                    "rx_metadata": {
                      "items": {
                        "properties": {
                          "channel_rssi": {
                            "format": "float",
                            "type": "number"
                          },
                          "downlink_path_constraint": {
                            "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.",
                            "enum": [
                              "DOWNLINK_PATH_CONSTRAINT_NONE",
                              "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
                              "DOWNLINK_PATH_CONSTRAINT_NEVER"
                            ],
                            "type": "string"
                          },
                          "gateway_ids": {
                            "properties": {
                              "eui": {
                                "description": "Secondary identifier, which can only be used in specific requests.",
                                "example": "70B3D57ED000ABCD",
                                "format": "string",
                                "type": "string"
                              },
                              "gateway_id": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "packet_broker": {
                            "type": "object"
                          },
                          "relay": {
                            "type": "object"
                          },
                          "snr": {
                            "format": "float",
                            "type": "number"
                          },
                          "uplink_token": {
                            "format": "byte",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "settings": {
                      "properties": {
                        "data_rate": {
                          "properties": {
                            "fsk": {
                              "properties": {
                                "bit_rate": {
                                  "description": "Bit rate (bps).",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "lora": {
                              "properties": {
                                "bandwidth": {
                                  "description": "Bandwidth (Hz).",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "coding_rate": {
                                  "type": "string"
                                },
                                "spreading_factor": {
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "lrfhss": {
                              "properties": {
                                "coding_rate": {
                                  "type": "string"
                                },
                                "modulation_type": {
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "operating_channel_width": {
                                  "description": "Operating Channel Width (Hz).",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "rejected_adr_data_rate_indexes": {
                "description": "ADR Data rate index values rejected by the device.\nReset each time `current_parameters.channels` change.\nElements are sorted in ascending order.",
                "items": {
                  "default": "DATA_RATE_0",
                  "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"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              "rejected_adr_tx_power_indexes": {
                "description": "ADR TX output power index values rejected by the device.\nElements are sorted in ascending order.",
                "items": {
                  "format": "int64",
                  "type": "integer"
                },
                "type": "array"
              },
              "rejected_data_rate_ranges": {
                "additionalProperties": {
                  "properties": {
                    "ranges": {
                      "items": {
                        "properties": {
                          "max_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "min_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "description": "Data rate ranges rejected by the device per frequency.",
                "type": "object"
              },
              "rejected_frequencies": {
                "description": "Frequencies rejected by the device.",
                "items": {
                  "format": "uint64",
                  "type": "string"
                },
                "type": "array"
              },
              "rx_windows_available": {
                "description": "Whether or not Rx windows are expected to be open.\nSet to true every time an uplink is received.\nSet to false every time a successful downlink scheduling attempt is made.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "pending_session": {
            "properties": {
              "dev_addr": {
                "description": "Device Address, issued by the Network Server or chosen by device manufacturer in case of testing range (beginning with 00-03).\nKnown by Network Server, Application Server and Join Server. Owned by Network Server.",
                "example": "2600ABCD",
                "format": "string",
                "type": "string"
              },
              "keys": {
                "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
                "properties": {
                  "app_s_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "f_nwk_s_int_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "nwk_s_enc_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "s_nwk_s_int_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "session_key_id": {
                    "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                    "format": "byte",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "last_a_f_cnt_down": {
                "description": "Last application downlink frame counter value used. Application Server only.",
                "format": "int64",
                "type": "integer"
              },
              "last_conf_f_cnt_down": {
                "description": "Frame counter of the last confirmed downlink message sent. Network Server only.",
                "format": "int64",
                "type": "integer"
              },
              "last_f_cnt_up": {
                "description": "Last uplink frame counter value used. Network Server only. Application Server assumes the Network Server checked it.",
                "format": "int64",
                "type": "integer"
              },
              "last_n_f_cnt_down": {
                "description": "Last network downlink frame counter value used. Network Server only.",
                "format": "int64",
                "type": "integer"
              },
              "queued_application_downlinks": {
                "description": "Queued Application downlink messages. Stored in Application Server and Network Server.",
                "items": {
                  "properties": {
                    "attributes": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Attributes for devices, set by the Application Server while handling the message.",
                      "type": "object"
                    },
                    "class_b_c": {
                      "properties": {
                        "absolute_time": {
                          "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                          "format": "date-time",
                          "type": "string"
                        },
                        "gateways": {
                          "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                          "items": {
                            "properties": {
                              "antenna_index": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "gateway_ids": {
                                "properties": {
                                  "eui": {
                                    "description": "Secondary identifier, which can only be used in specific requests.",
                                    "example": "70B3D57ED000ABCD",
                                    "format": "string",
                                    "type": "string"
                                  },
                                  "gateway_id": {
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "group_index": {
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "confirmed": {
                      "type": "boolean"
                    },
                    "confirmed_retry": {
                      "properties": {
                        "attempt": {
                          "description": "The number of attempted confirmed downlink acknowledgements.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "max_attempts": {
                          "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "decoded_payload": {
                      "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                      "type": "object"
                    },
                    "decoded_payload_warnings": {
                      "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "f_cnt": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "f_port": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "frm_payload": {
                      "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                      "format": "byte",
                      "type": "string"
                    },
                    "locations": {
                      "additionalProperties": {
                        "properties": {
                          "accuracy": {
                            "description": "The accuracy of the location (meters).",
                            "format": "int32",
                            "type": "integer"
                          },
                          "altitude": {
                            "description": "The altitude (meters), where 0 is the mean sea level.",
                            "format": "int32",
                            "type": "integer"
                          },
                          "latitude": {
                            "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                            "format": "double",
                            "type": "number"
                          },
                          "longitude": {
                            "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                            "format": "double",
                            "type": "number"
                          },
                          "source": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "description": "End device location metadata, set by the Application Server while handling the message.",
                      "type": "object"
                    },
                    "network_ids": {
                      "description": "Identifies a Network Server.",
                      "properties": {
                        "cluster_address": {
                          "description": "Cluster address of the Network Server.",
                          "type": "string"
                        },
                        "cluster_id": {
                          "description": "Cluster identifier of the Network Server.",
                          "type": "string"
                        },
                        "net_id": {
                          "description": "LoRa Alliance NetID.",
                          "example": "000013",
                          "format": "string",
                          "type": "string"
                        },
                        "ns_id": {
                          "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "tenant_address": {
                          "description": "Optional tenant address for multi-tenant deployments.",
                          "type": "string"
                        },
                        "tenant_id": {
                          "description": "Optional tenant identifier for multi-tenant deployments.",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "priority": {
                      "default": "LOWEST",
                      "enum": [
                        "LOWEST",
                        "LOW",
                        "BELOW_NORMAL",
                        "NORMAL",
                        "ABOVE_NORMAL",
                        "HIGH",
                        "HIGHEST"
                      ],
                      "type": "string"
                    },
                    "session_key_id": {
                      "description": "Join Server issued identifier for the session keys used by this downlink.",
                      "format": "byte",
                      "type": "string"
                    },
                    "version_ids": {
                      "description": "Identifies an end device model with version information.",
                      "properties": {
                        "band_id": {
                          "type": "string"
                        },
                        "brand_id": {
                          "type": "string"
                        },
                        "firmware_version": {
                          "type": "string"
                        },
                        "hardware_version": {
                          "type": "string"
                        },
                        "model_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "started_at": {
                "description": "Time when the session started. Network Server only.",
                "format": "date-time",
                "type": "string"
              }
            },
            "type": "object"
          },
          "picture": {
            "properties": {
              "embedded": {
                "properties": {
                  "data": {
                    "description": "Picture data. A data URI can be constructed as follows:\n`data:\u003cmime_type\u003e;base64,\u003cdata\u003e`.",
                    "format": "byte",
                    "type": "string"
                  },
                  "mime_type": {
                    "description": "MIME type of the picture.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "sizes": {
                "additionalProperties": {
                  "type": "string"
                },
                "description": "URLs of the picture for different sizes, if available on a CDN.",
                "type": "object"
              }
            },
            "type": "object"
          },
          "power_state": {
            "default": "POWER_UNKNOWN",
            "description": "Power state of the device.",
            "enum": [
              "POWER_UNKNOWN",
              "POWER_BATTERY",
              "POWER_EXTERNAL"
            ],
            "type": "string"
          },
          "provisioner_id": {
            "description": "ID of the provisioner. Stored in Join Server.",
            "type": "string"
          },
          "provisioning_data": {
            "description": "Vendor-specific provisioning data. Stored in Join Server.",
            "type": "object"
          },
          "queued_application_downlinks": {
            "description": "Queued Application downlink messages. Stored in Application Server,\nwhich sets them on the Network Server.\nThis field is deprecated and is always set equal to session.queued_application_downlinks.",
            "items": {
              "properties": {
                "attributes": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Attributes for devices, set by the Application Server while handling the message.",
                  "type": "object"
                },
                "class_b_c": {
                  "properties": {
                    "absolute_time": {
                      "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                      "format": "date-time",
                      "type": "string"
                    },
                    "gateways": {
                      "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                      "items": {
                        "properties": {
                          "antenna_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "gateway_ids": {
                            "properties": {
                              "eui": {
                                "description": "Secondary identifier, which can only be used in specific requests.",
                                "example": "70B3D57ED000ABCD",
                                "format": "string",
                                "type": "string"
                              },
                              "gateway_id": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "group_index": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "confirmed": {
                  "type": "boolean"
                },
                "confirmed_retry": {
                  "properties": {
                    "attempt": {
                      "description": "The number of attempted confirmed downlink acknowledgements.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "max_attempts": {
                      "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "correlation_ids": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "decoded_payload": {
                  "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                  "type": "object"
                },
                "decoded_payload_warnings": {
                  "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "f_cnt": {
                  "format": "int64",
                  "type": "integer"
                },
                "f_port": {
                  "format": "int64",
                  "type": "integer"
                },
                "frm_payload": {
                  "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                  "format": "byte",
                  "type": "string"
                },
                "locations": {
                  "additionalProperties": {
                    "properties": {
                      "accuracy": {
                        "description": "The accuracy of the location (meters).",
                        "format": "int32",
                        "type": "integer"
                      },
                      "altitude": {
                        "description": "The altitude (meters), where 0 is the mean sea level.",
                        "format": "int32",
                        "type": "integer"
                      },
                      "latitude": {
                        "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                        "format": "double",
                        "type": "number"
                      },
                      "longitude": {
                        "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                        "format": "double",
                        "type": "number"
                      },
                      "source": {
                        "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.",
                        "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"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "description": "End device location metadata, set by the Application Server while handling the message.",
                  "type": "object"
                },
                "network_ids": {
                  "description": "Identifies a Network Server.",
                  "properties": {
                    "cluster_address": {
                      "description": "Cluster address of the Network Server.",
                      "type": "string"
                    },
                    "cluster_id": {
                      "description": "Cluster identifier of the Network Server.",
                      "type": "string"
                    },
                    "net_id": {
                      "description": "LoRa Alliance NetID.",
                      "example": "000013",
                      "format": "string",
                      "type": "string"
                    },
                    "ns_id": {
                      "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                      "example": "70B3D57ED000ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "tenant_address": {
                      "description": "Optional tenant address for multi-tenant deployments.",
                      "type": "string"
                    },
                    "tenant_id": {
                      "description": "Optional tenant identifier for multi-tenant deployments.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "priority": {
                  "default": "LOWEST",
                  "enum": [
                    "LOWEST",
                    "LOW",
                    "BELOW_NORMAL",
                    "NORMAL",
                    "ABOVE_NORMAL",
                    "HIGH",
                    "HIGHEST"
                  ],
                  "type": "string"
                },
                "session_key_id": {
                  "description": "Join Server issued identifier for the session keys used by this downlink.",
                  "format": "byte",
                  "type": "string"
                },
                "version_ids": {
                  "description": "Identifies an end device model with version information.",
                  "properties": {
                    "band_id": {
                      "type": "string"
                    },
                    "brand_id": {
                      "type": "string"
                    },
                    "firmware_version": {
                      "type": "string"
                    },
                    "hardware_version": {
                      "type": "string"
                    },
                    "model_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "resets_join_nonces": {
            "description": "Whether the device resets the join and dev nonces (not LoRaWAN compliant). Stored in Join Server.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "type": "boolean"
          },
          "root_keys": {
            "description": "Root keys for a LoRaWAN device.\nThese are stored on the Join Server.",
            "properties": {
              "app_key": {
                "properties": {
                  "encrypted_key": {
                    "format": "byte",
                    "type": "string"
                  },
                  "kek_label": {
                    "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "The unencrypted AES key.",
                    "example": "0123456789ABCDEF0123456789ABCDEF",
                    "format": "string",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "nwk_key": {
                "properties": {
                  "encrypted_key": {
                    "format": "byte",
                    "type": "string"
                  },
                  "kek_label": {
                    "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                    "type": "string"
                  },
                  "key": {
                    "description": "The unencrypted AES key.",
                    "example": "0123456789ABCDEF0123456789ABCDEF",
                    "format": "string",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "root_key_id": {
                "description": "Join Server issued identifier for the root keys.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "serial_number": {
            "type": "string"
          },
          "service_profile_id": {
            "description": "Default service profile. Stored in Entity Registry.",
            "type": "string"
          },
          "session": {
            "properties": {
              "dev_addr": {
                "description": "Device Address, issued by the Network Server or chosen by device manufacturer in case of testing range (beginning with 00-03).\nKnown by Network Server, Application Server and Join Server. Owned by Network Server.",
                "example": "2600ABCD",
                "format": "string",
                "type": "string"
              },
              "keys": {
                "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
                "properties": {
                  "app_s_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "f_nwk_s_int_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "nwk_s_enc_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "s_nwk_s_int_key": {
                    "properties": {
                      "encrypted_key": {
                        "format": "byte",
                        "type": "string"
                      },
                      "kek_label": {
                        "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                        "type": "string"
                      },
                      "key": {
                        "description": "The unencrypted AES key.",
                        "example": "0123456789ABCDEF0123456789ABCDEF",
                        "format": "string",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "session_key_id": {
                    "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                    "format": "byte",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "last_a_f_cnt_down": {
                "description": "Last application downlink frame counter value used. Application Server only.",
                "format": "int64",
                "type": "integer"
              },
              "last_conf_f_cnt_down": {
                "description": "Frame counter of the last confirmed downlink message sent. Network Server only.",
                "format": "int64",
                "type": "integer"
              },
              "last_f_cnt_up": {
                "description": "Last uplink frame counter value used. Network Server only. Application Server assumes the Network Server checked it.",
                "format": "int64",
                "type": "integer"
              },
              "last_n_f_cnt_down": {
                "description": "Last network downlink frame counter value used. Network Server only.",
                "format": "int64",
                "type": "integer"
              },
              "queued_application_downlinks": {
                "description": "Queued Application downlink messages. Stored in Application Server and Network Server.",
                "items": {
                  "properties": {
                    "attributes": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Attributes for devices, set by the Application Server while handling the message.",
                      "type": "object"
                    },
                    "class_b_c": {
                      "properties": {
                        "absolute_time": {
                          "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                          "format": "date-time",
                          "type": "string"
                        },
                        "gateways": {
                          "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                          "items": {
                            "properties": {
                              "antenna_index": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "gateway_ids": {
                                "properties": {
                                  "eui": {
                                    "description": "Secondary identifier, which can only be used in specific requests.",
                                    "example": "70B3D57ED000ABCD",
                                    "format": "string",
                                    "type": "string"
                                  },
                                  "gateway_id": {
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "group_index": {
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "confirmed": {
                      "type": "boolean"
                    },
                    "confirmed_retry": {
                      "properties": {
                        "attempt": {
                          "description": "The number of attempted confirmed downlink acknowledgements.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "max_attempts": {
                          "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "decoded_payload": {
                      "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                      "type": "object"
                    },
                    "decoded_payload_warnings": {
                      "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "f_cnt": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "f_port": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "frm_payload": {
                      "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                      "format": "byte",
                      "type": "string"
                    },
                    "locations": {
                      "additionalProperties": {
                        "properties": {
                          "accuracy": {
                            "description": "The accuracy of the location (meters).",
                            "format": "int32",
                            "type": "integer"
                          },
                          "altitude": {
                            "description": "The altitude (meters), where 0 is the mean sea level.",
                            "format": "int32",
                            "type": "integer"
                          },
                          "latitude": {
                            "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                            "format": "double",
                            "type": "number"
                          },
                          "longitude": {
                            "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                            "format": "double",
                            "type": "number"
                          },
                          "source": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "description": "End device location metadata, set by the Application Server while handling the message.",
                      "type": "object"
                    },
                    "network_ids": {
                      "description": "Identifies a Network Server.",
                      "properties": {
                        "cluster_address": {
                          "description": "Cluster address of the Network Server.",
                          "type": "string"
                        },
                        "cluster_id": {
                          "description": "Cluster identifier of the Network Server.",
                          "type": "string"
                        },
                        "net_id": {
                          "description": "LoRa Alliance NetID.",
                          "example": "000013",
                          "format": "string",
                          "type": "string"
                        },
                        "ns_id": {
                          "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "tenant_address": {
                          "description": "Optional tenant address for multi-tenant deployments.",
                          "type": "string"
                        },
                        "tenant_id": {
                          "description": "Optional tenant identifier for multi-tenant deployments.",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "priority": {
                      "default": "LOWEST",
                      "enum": [
                        "LOWEST",
                        "LOW",
                        "BELOW_NORMAL",
                        "NORMAL",
                        "ABOVE_NORMAL",
                        "HIGH",
                        "HIGHEST"
                      ],
                      "type": "string"
                    },
                    "session_key_id": {
                      "description": "Join Server issued identifier for the session keys used by this downlink.",
                      "format": "byte",
                      "type": "string"
                    },
                    "version_ids": {
                      "description": "Identifies an end device model with version information.",
                      "properties": {
                        "band_id": {
                          "type": "string"
                        },
                        "brand_id": {
                          "type": "string"
                        },
                        "firmware_version": {
                          "type": "string"
                        },
                        "hardware_version": {
                          "type": "string"
                        },
                        "model_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "started_at": {
                "description": "Time when the session started. Network Server only.",
                "format": "date-time",
                "type": "string"
              }
            },
            "type": "object"
          },
          "skip_payload_crypto": {
            "description": "Skip decryption of uplink payloads and encryption of downlink payloads.\nThis field is deprecated, use skip_payload_crypto_override instead.",
            "type": "boolean"
          },
          "skip_payload_crypto_override": {
            "description": "Skip decryption of uplink payloads and encryption of downlink payloads.\nThis field overrides the application-level setting.",
            "type": "boolean"
          },
          "supports_class_b": {
            "description": "Whether the device supports class B.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "type": "boolean"
          },
          "supports_class_c": {
            "description": "Whether the device supports class C.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "type": "boolean"
          },
          "supports_join": {
            "description": "The device supports join (it's OTAA).\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
            "type": "boolean"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          },
          "used_dev_nonces": {
            "description": "Used DevNonces sorted in ascending order.\nThis field is only used for devices using LoRaWAN versions preceding 1.1.\nStored in Join Server.",
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": "array"
          },
          "version_ids": {
            "description": "Identifies an end device model with version information.",
            "properties": {
              "band_id": {
                "type": "string"
              },
              "brand_id": {
                "type": "string"
              },
              "firmware_version": {
                "type": "string"
              },
              "hardware_version": {
                "type": "string"
              },
              "model_id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "field_mask": {
        "type": "string"
      },
      "mapping_key": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    EndDeviceTemplateFormat

    Fields
    Name Type Description
    description string
    file_extensions string
    name string
    Schema
    {
      "description": {
        "type": "string"
      },
      "file_extensions": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "name": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    EndDeviceTemplateFormats

    Fields
    Name Type Description
    formats object
    Schema
    {
      "formats": {
        "additionalProperties": {
          "properties": {
            "description": {
              "type": "string"
            },
            "file_extensions": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "name": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "object"
      }
    }
    Show the schema of the message in JSON format.

    EndDeviceVersionIdentifiers

    Identifies an end device model with version information.
    Fields
    Name Type Description
    band_id string
    brand_id string
    firmware_version string
    hardware_version string
    model_id string
    Schema
    {
      "band_id": {
        "type": "string"
      },
      "brand_id": {
        "type": "string"
      },
      "firmware_version": {
        "type": "string"
      },
      "hardware_version": {
        "type": "string"
      },
      "model_id": {
        "type": "string"
      }
    }
    Show the schema of the message in JSON format.

    EndDevices

    Fields
    Name Type Description
    end_devices object
    Schema
    {
      "end_devices": {
        "items": {
          "description": "Defines an End Device registration and its state on the network.\nThe persistence of the EndDevice is divided between the Network Server, Application Server and Join Server.\nSDKs are responsible for combining (if desired) the three.",
          "properties": {
            "activated_at": {
              "description": "Timestamp when the device has been activated. Stored in the Entity Registry.\nThis field is set by the Application Server when an end device sends\nits first uplink.\nThe Application Server will use the field in order to avoid repeated\ncalls to the Entity Registry.\nThe field cannot be unset once set.",
              "format": "date-time",
              "type": "string"
            },
            "application_server_address": {
              "description": "The address of the Application Server where this device is supposed to be registered.\nStored in Entity Registry and Join Server.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
              "type": "string"
            },
            "application_server_id": {
              "description": "The AS-ID of the Application Server to use.\nStored in Join Server.",
              "type": "string"
            },
            "application_server_kek_label": {
              "description": "The KEK label of the Application Server to use for wrapping the application session key.\nStored in Join Server.",
              "type": "string"
            },
            "attributes": {
              "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.",
              "type": "object"
            },
            "battery_percentage": {
              "description": "Latest-known battery percentage of the device.\nReceived via the DevStatus MAC command at last_dev_status_received_at or earlier.\nStored in Network Server.",
              "format": "float",
              "type": "number"
            },
            "claim_authentication_code": {
              "description": "Authentication code for end devices.",
              "properties": {
                "valid_from": {
                  "format": "date-time",
                  "type": "string"
                },
                "valid_to": {
                  "format": "date-time",
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "created_at": {
              "format": "date-time",
              "type": "string"
            },
            "description": {
              "description": "Description of the device. Stored in Entity Registry.",
              "type": "string"
            },
            "downlink_margin": {
              "description": "Demodulation signal-to-noise ratio (dB).\nReceived via the DevStatus MAC command at last_dev_status_received_at.\nStored in Network Server.",
              "format": "int32",
              "type": "integer"
            },
            "formatters": {
              "properties": {
                "down_formatter": {
                  "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.",
                  "enum": [
                    "FORMATTER_NONE",
                    "FORMATTER_REPOSITORY",
                    "FORMATTER_GRPC_SERVICE",
                    "FORMATTER_JAVASCRIPT",
                    "FORMATTER_CAYENNELPP"
                  ],
                  "type": "string"
                },
                "down_formatter_parameter": {
                  "description": "Parameter for the down_formatter, must be set together. The API enforces a maximum length of 16KB, but the size may be restricted further by deployment configuration.",
                  "type": "string"
                },
                "up_formatter": {
                  "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.",
                  "enum": [
                    "FORMATTER_NONE",
                    "FORMATTER_REPOSITORY",
                    "FORMATTER_GRPC_SERVICE",
                    "FORMATTER_JAVASCRIPT",
                    "FORMATTER_CAYENNELPP"
                  ],
                  "type": "string"
                },
                "up_formatter_parameter": {
                  "description": "Parameter for the up_formatter, must be set together. The API enforces a maximum length of 16KB, but the size may be restricted further by deployment configuration.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "frequency_plan_id": {
              "description": "ID of the frequency plan used by this device.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
              "type": "string"
            },
            "ids": {
              "properties": {
                "application_ids": {
                  "properties": {
                    "application_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "dev_addr": {
                  "description": "The LoRaWAN DevAddr.",
                  "example": "2600ABCD",
                  "format": "string",
                  "type": "string"
                },
                "dev_eui": {
                  "description": "The LoRaWAN DevEUI.",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                },
                "device_id": {
                  "type": "string"
                },
                "join_eui": {
                  "description": "The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).",
                  "example": "70B3D57ED000ABCD",
                  "format": "string",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "join_server_address": {
              "description": "The address of the Join Server where this device is supposed to be registered.\nStored in Entity Registry.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
              "type": "string"
            },
            "label_ids": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "last_dev_nonce": {
              "description": "Last DevNonce used.\nThis field is only used for devices using LoRaWAN version 1.1 and later.\nStored in Join Server.",
              "format": "int64",
              "type": "integer"
            },
            "last_dev_status_received_at": {
              "description": "Time when last DevStatus MAC command was received.\nStored in Network Server.",
              "format": "date-time",
              "type": "string"
            },
            "last_join_nonce": {
              "description": "Last JoinNonce/AppNonce(for devices using LoRaWAN versions preceding 1.1) used.\nStored in Join Server.",
              "format": "int64",
              "type": "integer"
            },
            "last_rj_count_0": {
              "description": "Last Rejoin counter value used (type 0/2).\nStored in Join Server.",
              "format": "int64",
              "type": "integer"
            },
            "last_rj_count_1": {
              "description": "Last Rejoin counter value used (type 1).\nStored in Join Server.",
              "format": "int64",
              "type": "integer"
            },
            "last_seen_at": {
              "description": "Timestamp when a device uplink has been last observed.\nThis field is set by the Application Server and stored in the Identity Server.",
              "format": "date-time",
              "type": "string"
            },
            "locations": {
              "additionalProperties": {
                "properties": {
                  "accuracy": {
                    "description": "The accuracy of the location (meters).",
                    "format": "int32",
                    "type": "integer"
                  },
                  "altitude": {
                    "description": "The altitude (meters), where 0 is the mean sea level.",
                    "format": "int32",
                    "type": "integer"
                  },
                  "latitude": {
                    "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                    "format": "double",
                    "type": "number"
                  },
                  "longitude": {
                    "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                    "format": "double",
                    "type": "number"
                  },
                  "source": {
                    "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.",
                    "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"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "description": "Location of the device. Stored in Entity Registry.",
              "type": "object"
            },
            "lora_alliance_profile_ids": {
              "properties": {
                "vendor_id": {
                  "description": "VendorID managed by the LoRa Alliance, as defined in TR005.",
                  "format": "int64",
                  "type": "integer"
                },
                "vendor_profile_id": {
                  "description": "ID of the LoRaWAN end device profile assigned by the vendor.",
                  "format": "int64",
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "lorawan_phy_version": {
              "default": "PHY_UNKNOWN",
              "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"
              ],
              "type": "string"
            },
            "lorawan_version": {
              "default": "MAC_UNKNOWN",
              "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"
              ],
              "type": "string"
            },
            "mac_settings": {
              "properties": {
                "adr": {
                  "description": "Adaptive Data Rate settings.",
                  "properties": {
                    "disabled": {
                      "description": "Configuration options for cases in which ADR is to be disabled\ncompletely.",
                      "type": "object"
                    },
                    "dynamic": {
                      "description": "Configuration options for dynamic ADR.",
                      "properties": {
                        "channel_steering": {
                          "description": "EXPERIMENTAL: Channel steering settings.",
                          "properties": {
                            "disabled": {
                              "description": "Configuration options for cases in which ADR is not supposed to steer the end device\nto another set of channels.",
                              "type": "object"
                            },
                            "lora_narrow": {
                              "description": "Configuration options for LoRa narrow channels steering.\nThe narrow mode attempts to steer the end device towards\nusing the LoRa modulated, 125kHz bandwidth channels.",
                              "type": "object"
                            }
                          },
                          "type": "object"
                        },
                        "margin": {
                          "description": "The ADR margin (dB) tells the network server how much margin it should add in ADR requests.\nA bigger margin is less efficient, but gives a better chance of successful reception.\nIf unset, the default value from Network Server configuration will be used.",
                          "format": "float",
                          "type": "number"
                        },
                        "max_data_rate_index": {
                          "properties": {
                            "value": {
                              "default": "DATA_RATE_0",
                              "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"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "max_nb_trans": {
                          "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "max_tx_power_index": {
                          "description": "Maximum transmission power index.\nIf unset, the default value from Network Server configuration will be used.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "min_data_rate_index": {
                          "properties": {
                            "value": {
                              "default": "DATA_RATE_0",
                              "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"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "min_nb_trans": {
                          "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "min_tx_power_index": {
                          "description": "Minimum transmission power index.\nIf unset, the default value from Network Server configuration will be used.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "overrides": {
                          "description": "EXPERIMENTAL: Configuration overrides.",
                          "properties": {
                            "data_rate_0": {
                              "description": "EXPERIMENTAL: Data rate index override settings.",
                              "properties": {
                                "max_nb_trans": {
                                  "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "min_nb_trans": {
                                  "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "data_rate_1": {
                              "description": "EXPERIMENTAL: Data rate index override settings.",
                              "properties": {
                                "max_nb_trans": {
                                  "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "min_nb_trans": {
                                  "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "data_rate_10": {
                              "description": "EXPERIMENTAL: Data rate index override settings.",
                              "properties": {
                                "max_nb_trans": {
                                  "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "min_nb_trans": {
                                  "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "data_rate_11": {
                              "description": "EXPERIMENTAL: Data rate index override settings.",
                              "properties": {
                                "max_nb_trans": {
                                  "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "min_nb_trans": {
                                  "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "data_rate_12": {
                              "description": "EXPERIMENTAL: Data rate index override settings.",
                              "properties": {
                                "max_nb_trans": {
                                  "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "min_nb_trans": {
                                  "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "data_rate_13": {
                              "description": "EXPERIMENTAL: Data rate index override settings.",
                              "properties": {
                                "max_nb_trans": {
                                  "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "min_nb_trans": {
                                  "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "data_rate_14": {
                              "description": "EXPERIMENTAL: Data rate index override settings.",
                              "properties": {
                                "max_nb_trans": {
                                  "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "min_nb_trans": {
                                  "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "data_rate_15": {
                              "description": "EXPERIMENTAL: Data rate index override settings.",
                              "properties": {
                                "max_nb_trans": {
                                  "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "min_nb_trans": {
                                  "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "data_rate_2": {
                              "description": "EXPERIMENTAL: Data rate index override settings.",
                              "properties": {
                                "max_nb_trans": {
                                  "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "min_nb_trans": {
                                  "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "data_rate_3": {
                              "description": "EXPERIMENTAL: Data rate index override settings.",
                              "properties": {
                                "max_nb_trans": {
                                  "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "min_nb_trans": {
                                  "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "data_rate_4": {
                              "description": "EXPERIMENTAL: Data rate index override settings.",
                              "properties": {
                                "max_nb_trans": {
                                  "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "min_nb_trans": {
                                  "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "data_rate_5": {
                              "description": "EXPERIMENTAL: Data rate index override settings.",
                              "properties": {
                                "max_nb_trans": {
                                  "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "min_nb_trans": {
                                  "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "data_rate_6": {
                              "description": "EXPERIMENTAL: Data rate index override settings.",
                              "properties": {
                                "max_nb_trans": {
                                  "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "min_nb_trans": {
                                  "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "data_rate_7": {
                              "description": "EXPERIMENTAL: Data rate index override settings.",
                              "properties": {
                                "max_nb_trans": {
                                  "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "min_nb_trans": {
                                  "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "data_rate_8": {
                              "description": "EXPERIMENTAL: Data rate index override settings.",
                              "properties": {
                                "max_nb_trans": {
                                  "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "min_nb_trans": {
                                  "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "data_rate_9": {
                              "description": "EXPERIMENTAL: Data rate index override settings.",
                              "properties": {
                                "max_nb_trans": {
                                  "description": "Maximum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                },
                                "min_nb_trans": {
                                  "description": "Minimum number of retransmissions.\nIf unset, the default value from Network Server configuration will be used.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "static": {
                      "description": "Configuration options for static ADR.",
                      "properties": {
                        "data_rate_index": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "nb_trans": {
                          "description": "Number of retransmissions.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "tx_power_index": {
                          "description": "Transmission power index to use.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "adr_margin": {
                  "description": "The ADR margin (dB) tells the network server how much margin it should add in ADR requests.\nA bigger margin is less efficient, but gives a better chance of successful reception.\nThis field is deprecated, use adr_settings.dynamic.margin instead.",
                  "format": "float",
                  "type": "number"
                },
                "beacon_frequency": {
                  "properties": {
                    "value": {
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "class_b_c_downlink_interval": {
                  "description": "The minimum duration passed before a network-initiated(e.g. Class B or C) downlink following an arbitrary downlink.",
                  "type": "string"
                },
                "class_b_timeout": {
                  "description": "Maximum delay for the device to answer a MAC request or a confirmed downlink frame.\nIf unset, the default value from Network Server configuration will be used.",
                  "type": "string"
                },
                "class_c_timeout": {
                  "description": "Maximum delay for the device to answer a MAC request or a confirmed downlink frame.\nIf unset, the default value from Network Server configuration will be used.",
                  "type": "string"
                },
                "desired_adr_ack_delay_exponent": {
                  "properties": {
                    "value": {
                      "default": "ADR_ACK_DELAY_1",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "desired_adr_ack_limit_exponent": {
                  "properties": {
                    "value": {
                      "default": "ADR_ACK_LIMIT_1",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "desired_beacon_frequency": {
                  "properties": {
                    "value": {
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "desired_max_duty_cycle": {
                  "properties": {
                    "value": {
                      "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%.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "desired_max_eirp": {
                  "properties": {
                    "value": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "desired_ping_slot_data_rate_index": {
                  "properties": {
                    "value": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "desired_ping_slot_frequency": {
                  "properties": {
                    "value": {
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "desired_relay": {
                  "description": "RelaySettings represent the settings of a relay.\nThis is used internally by the Network Server.",
                  "properties": {
                    "served": {
                      "properties": {
                        "always": {
                          "type": "object"
                        },
                        "backoff": {
                          "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.\nIf unset, the default value from Network Server configuration will be used.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "dynamic": {
                          "properties": {
                            "smart_enable_level": {
                              "default": "RELAY_SMART_ENABLE_LEVEL_8",
                              "enum": [
                                "RELAY_SMART_ENABLE_LEVEL_8",
                                "RELAY_SMART_ENABLE_LEVEL_16",
                                "RELAY_SMART_ENABLE_LEVEL_32",
                                "RELAY_SMART_ENABLE_LEVEL_64"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "end_device_controlled": {
                          "type": "object"
                        },
                        "second_channel": {
                          "properties": {
                            "ack_offset": {
                              "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                              "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"
                              ],
                              "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",
                              "type": "string"
                            },
                            "data_rate_index": {
                              "default": "DATA_RATE_0",
                              "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"
                              ],
                              "type": "string"
                            },
                            "frequency": {
                              "description": "The frequency (Hz) used by the wake on radio message.",
                              "format": "uint64",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "serving_device_id": {
                          "description": "End device identifier of the serving end device.",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "serving": {
                      "properties": {
                        "cad_periodicity": {
                          "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                          "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"
                          ],
                          "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                          "type": "string"
                        },
                        "default_channel_index": {
                          "description": "Index of the default wake on radio channel.\nIf unset, the default value from Network Server configuration will be used.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "limits": {
                          "properties": {
                            "join_requests": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "notifications": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "overall": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "reset_behavior": {
                              "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                              "enum": [
                                "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                              ],
                              "type": "string"
                            },
                            "uplink_messages": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        },
                        "second_channel": {
                          "properties": {
                            "ack_offset": {
                              "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                              "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"
                              ],
                              "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",
                              "type": "string"
                            },
                            "data_rate_index": {
                              "default": "DATA_RATE_0",
                              "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"
                              ],
                              "type": "string"
                            },
                            "frequency": {
                              "description": "The frequency (Hz) used by the wake on radio message.",
                              "format": "uint64",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "uplink_forwarding_rules": {
                          "description": "Configured uplink forwarding rules.",
                          "items": {
                            "properties": {
                              "device_id": {
                                "description": "End device identifier of the served end device.",
                                "type": "string"
                              },
                              "last_w_f_cnt": {
                                "description": "Last wake on radio frame counter used by the served end device.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "limits": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "session_key_id": {
                                "description": "Session key ID of the session keys used to derive the root relay session key.",
                                "format": "byte",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "desired_rx1_data_rate_offset": {
                  "properties": {
                    "value": {
                      "default": "DATA_RATE_OFFSET_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "desired_rx1_delay": {
                  "properties": {
                    "value": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "desired_rx2_data_rate_index": {
                  "properties": {
                    "value": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "desired_rx2_frequency": {
                  "properties": {
                    "value": {
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "downlink_dwell_time": {
                  "properties": {
                    "value": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "factory_preset_frequencies": {
                  "description": "List of factory-preset frequencies.\nIf unset, the default value from Network Server configuration or regional parameters specification will be used.",
                  "items": {
                    "format": "uint64",
                    "type": "string"
                  },
                  "type": "array"
                },
                "max_duty_cycle": {
                  "properties": {
                    "value": {
                      "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%.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "ping_slot_data_rate_index": {
                  "properties": {
                    "value": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "ping_slot_frequency": {
                  "properties": {
                    "value": {
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "ping_slot_periodicity": {
                  "properties": {
                    "value": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "relay": {
                  "description": "RelaySettings represent the settings of a relay.\nThis is used internally by the Network Server.",
                  "properties": {
                    "served": {
                      "properties": {
                        "always": {
                          "type": "object"
                        },
                        "backoff": {
                          "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.\nIf unset, the default value from Network Server configuration will be used.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "dynamic": {
                          "properties": {
                            "smart_enable_level": {
                              "default": "RELAY_SMART_ENABLE_LEVEL_8",
                              "enum": [
                                "RELAY_SMART_ENABLE_LEVEL_8",
                                "RELAY_SMART_ENABLE_LEVEL_16",
                                "RELAY_SMART_ENABLE_LEVEL_32",
                                "RELAY_SMART_ENABLE_LEVEL_64"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "end_device_controlled": {
                          "type": "object"
                        },
                        "second_channel": {
                          "properties": {
                            "ack_offset": {
                              "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                              "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"
                              ],
                              "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",
                              "type": "string"
                            },
                            "data_rate_index": {
                              "default": "DATA_RATE_0",
                              "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"
                              ],
                              "type": "string"
                            },
                            "frequency": {
                              "description": "The frequency (Hz) used by the wake on radio message.",
                              "format": "uint64",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "serving_device_id": {
                          "description": "End device identifier of the serving end device.",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "serving": {
                      "properties": {
                        "cad_periodicity": {
                          "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                          "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"
                          ],
                          "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                          "type": "string"
                        },
                        "default_channel_index": {
                          "description": "Index of the default wake on radio channel.\nIf unset, the default value from Network Server configuration will be used.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "limits": {
                          "properties": {
                            "join_requests": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "notifications": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "overall": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "reset_behavior": {
                              "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                              "enum": [
                                "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                              ],
                              "type": "string"
                            },
                            "uplink_messages": {
                              "properties": {
                                "bucket_size": {
                                  "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "enum": [
                                    "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "RELAY_LIMIT_BUCKET_SIZE_2",
                                    "RELAY_LIMIT_BUCKET_SIZE_4",
                                    "RELAY_LIMIT_BUCKET_SIZE_12"
                                  ],
                                  "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                  "type": "string"
                                },
                                "reload_rate": {
                                  "description": "The number of tokens which are replenished in the bucket every hour.",
                                  "format": "int64",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        },
                        "second_channel": {
                          "properties": {
                            "ack_offset": {
                              "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                              "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"
                              ],
                              "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",
                              "type": "string"
                            },
                            "data_rate_index": {
                              "default": "DATA_RATE_0",
                              "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"
                              ],
                              "type": "string"
                            },
                            "frequency": {
                              "description": "The frequency (Hz) used by the wake on radio message.",
                              "format": "uint64",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "uplink_forwarding_rules": {
                          "description": "Configured uplink forwarding rules.",
                          "items": {
                            "properties": {
                              "device_id": {
                                "description": "End device identifier of the served end device.",
                                "type": "string"
                              },
                              "last_w_f_cnt": {
                                "description": "Last wake on radio frame counter used by the served end device.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "limits": {
                                "properties": {
                                  "bucket_size": {
                                    "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                    "enum": [
                                      "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "RELAY_LIMIT_BUCKET_SIZE_2",
                                      "RELAY_LIMIT_BUCKET_SIZE_4",
                                      "RELAY_LIMIT_BUCKET_SIZE_12"
                                    ],
                                    "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                    "type": "string"
                                  },
                                  "reload_rate": {
                                    "description": "The number of tokens which are replenished in the bucket every hour.",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "session_key_id": {
                                "description": "Session key ID of the session keys used to derive the root relay session key.",
                                "format": "byte",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "resets_f_cnt": {
                  "properties": {
                    "value": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "rx1_data_rate_offset": {
                  "properties": {
                    "value": {
                      "default": "DATA_RATE_OFFSET_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rx1_delay": {
                  "properties": {
                    "value": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rx2_data_rate_index": {
                  "properties": {
                    "value": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "rx2_frequency": {
                  "properties": {
                    "value": {
                      "format": "uint64",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "schedule_downlinks": {
                  "properties": {
                    "value": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "status_count_periodicity": {
                  "description": "Number of uplink messages after which a DevStatusReq MACCommand shall be sent.\nIf unset, the default value from Network Server configuration will be used.",
                  "format": "int64",
                  "type": "integer"
                },
                "status_time_periodicity": {
                  "description": "The interval after which a DevStatusReq MACCommand shall be sent.\nIf unset, the default value from Network Server configuration will be used.",
                  "type": "string"
                },
                "supports_32_bit_f_cnt": {
                  "properties": {
                    "value": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "uplink_dwell_time": {
                  "properties": {
                    "value": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "use_adr": {
                  "properties": {
                    "value": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "mac_settings_profile_ids": {
              "properties": {
                "application_ids": {
                  "properties": {
                    "application_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "profile_id": {
                  "description": "Profile ID.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "mac_state": {
              "description": "MACState represents the state of MAC layer of the device.\nMACState is reset on each join for OTAA or ResetInd for ABP devices.\nThis is used internally by the Network Server.",
              "properties": {
                "current_parameters": {
                  "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
                  "properties": {
                    "adr_ack_delay": {
                      "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "adr_ack_delay_exponent": {
                      "properties": {
                        "value": {
                          "default": "ADR_ACK_DELAY_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "adr_ack_limit": {
                      "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "adr_ack_limit_exponent": {
                      "properties": {
                        "value": {
                          "default": "ADR_ACK_LIMIT_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "adr_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "adr_nb_trans": {
                      "description": "ADR: number of retransmissions.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "adr_tx_power_index": {
                      "description": "ADR: transmission power index to use.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "beacon_frequency": {
                      "description": "Frequency of the class B beacon (Hz).",
                      "format": "uint64",
                      "type": "string"
                    },
                    "channels": {
                      "description": "Configured uplink channels and optionally Rx1 frequency.",
                      "items": {
                        "properties": {
                          "downlink_frequency": {
                            "description": "Downlink frequency of the channel (Hz).",
                            "format": "uint64",
                            "type": "string"
                          },
                          "enable_uplink": {
                            "description": "Channel can be used by device for uplink.",
                            "type": "boolean"
                          },
                          "max_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "min_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "uplink_frequency": {
                            "description": "Uplink frequency of the channel (Hz).",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "downlink_dwell_time": {
                      "properties": {
                        "value": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "max_duty_cycle": {
                      "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%.",
                      "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"
                      ],
                      "type": "string"
                    },
                    "max_eirp": {
                      "description": "Maximum EIRP (dBm).",
                      "format": "float",
                      "type": "number"
                    },
                    "ping_slot_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "ping_slot_data_rate_index_value": {
                      "properties": {
                        "value": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_frequency": {
                      "description": "Frequency of the class B ping slot (Hz).",
                      "format": "uint64",
                      "type": "string"
                    },
                    "rejoin_count_periodicity": {
                      "default": "REJOIN_COUNT_16",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rejoin_time_periodicity": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    },
                    "relay": {
                      "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                      "properties": {
                        "served": {
                          "properties": {
                            "always": {
                              "type": "object"
                            },
                            "backoff": {
                              "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "dynamic": {
                              "properties": {
                                "smart_enable_level": {
                                  "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                  "enum": [
                                    "RELAY_SMART_ENABLE_LEVEL_8",
                                    "RELAY_SMART_ENABLE_LEVEL_16",
                                    "RELAY_SMART_ENABLE_LEVEL_32",
                                    "RELAY_SMART_ENABLE_LEVEL_64"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "end_device_controlled": {
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "serving_device_id": {
                              "description": "End device identifier of the serving end device.",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "serving": {
                          "properties": {
                            "cad_periodicity": {
                              "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                              "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"
                              ],
                              "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                              "type": "string"
                            },
                            "default_channel_index": {
                              "description": "Index of the default wake on radio channel.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "limits": {
                              "properties": {
                                "join_requests": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "notifications": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "overall": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "reset_behavior": {
                                  "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                  "enum": [
                                    "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                    "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                    "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                    "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                                  ],
                                  "type": "string"
                                },
                                "uplink_messages": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                }
                              },
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "uplink_forwarding_rules": {
                              "description": "Configured uplink forwarding rules.",
                              "items": {
                                "properties": {
                                  "device_id": {
                                    "description": "End device identifier of the served end device.",
                                    "type": "string"
                                  },
                                  "last_w_f_cnt": {
                                    "description": "Last wake on radio frame counter used by the served end device.",
                                    "format": "int64",
                                    "type": "integer"
                                  },
                                  "limits": {
                                    "properties": {
                                      "bucket_size": {
                                        "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "enum": [
                                          "RELAY_LIMIT_BUCKET_SIZE_1",
                                          "RELAY_LIMIT_BUCKET_SIZE_2",
                                          "RELAY_LIMIT_BUCKET_SIZE_4",
                                          "RELAY_LIMIT_BUCKET_SIZE_12"
                                        ],
                                        "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                        "type": "string"
                                      },
                                      "reload_rate": {
                                        "description": "The number of tokens which are replenished in the bucket every hour.",
                                        "format": "int64",
                                        "type": "integer"
                                      }
                                    },
                                    "type": "object"
                                  },
                                  "session_key_id": {
                                    "description": "Session key ID of the session keys used to derive the root relay session key.",
                                    "format": "byte",
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "type": "array"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "rx1_data_rate_offset": {
                      "default": "DATA_RATE_OFFSET_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rx1_delay": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rx2_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rx2_frequency": {
                      "description": "Frequency for Rx2 (Hz).",
                      "format": "uint64",
                      "type": "string"
                    },
                    "uplink_dwell_time": {
                      "properties": {
                        "value": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "desired_parameters": {
                  "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
                  "properties": {
                    "adr_ack_delay": {
                      "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "adr_ack_delay_exponent": {
                      "properties": {
                        "value": {
                          "default": "ADR_ACK_DELAY_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "adr_ack_limit": {
                      "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "adr_ack_limit_exponent": {
                      "properties": {
                        "value": {
                          "default": "ADR_ACK_LIMIT_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "adr_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "adr_nb_trans": {
                      "description": "ADR: number of retransmissions.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "adr_tx_power_index": {
                      "description": "ADR: transmission power index to use.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "beacon_frequency": {
                      "description": "Frequency of the class B beacon (Hz).",
                      "format": "uint64",
                      "type": "string"
                    },
                    "channels": {
                      "description": "Configured uplink channels and optionally Rx1 frequency.",
                      "items": {
                        "properties": {
                          "downlink_frequency": {
                            "description": "Downlink frequency of the channel (Hz).",
                            "format": "uint64",
                            "type": "string"
                          },
                          "enable_uplink": {
                            "description": "Channel can be used by device for uplink.",
                            "type": "boolean"
                          },
                          "max_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "min_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "uplink_frequency": {
                            "description": "Uplink frequency of the channel (Hz).",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "downlink_dwell_time": {
                      "properties": {
                        "value": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "max_duty_cycle": {
                      "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%.",
                      "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"
                      ],
                      "type": "string"
                    },
                    "max_eirp": {
                      "description": "Maximum EIRP (dBm).",
                      "format": "float",
                      "type": "number"
                    },
                    "ping_slot_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "ping_slot_data_rate_index_value": {
                      "properties": {
                        "value": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_frequency": {
                      "description": "Frequency of the class B ping slot (Hz).",
                      "format": "uint64",
                      "type": "string"
                    },
                    "rejoin_count_periodicity": {
                      "default": "REJOIN_COUNT_16",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rejoin_time_periodicity": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    },
                    "relay": {
                      "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                      "properties": {
                        "served": {
                          "properties": {
                            "always": {
                              "type": "object"
                            },
                            "backoff": {
                              "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "dynamic": {
                              "properties": {
                                "smart_enable_level": {
                                  "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                  "enum": [
                                    "RELAY_SMART_ENABLE_LEVEL_8",
                                    "RELAY_SMART_ENABLE_LEVEL_16",
                                    "RELAY_SMART_ENABLE_LEVEL_32",
                                    "RELAY_SMART_ENABLE_LEVEL_64"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "end_device_controlled": {
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "serving_device_id": {
                              "description": "End device identifier of the serving end device.",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "serving": {
                          "properties": {
                            "cad_periodicity": {
                              "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                              "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"
                              ],
                              "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                              "type": "string"
                            },
                            "default_channel_index": {
                              "description": "Index of the default wake on radio channel.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "limits": {
                              "properties": {
                                "join_requests": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "notifications": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "overall": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "reset_behavior": {
                                  "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                  "enum": [
                                    "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                    "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                    "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                    "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                                  ],
                                  "type": "string"
                                },
                                "uplink_messages": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                }
                              },
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "uplink_forwarding_rules": {
                              "description": "Configured uplink forwarding rules.",
                              "items": {
                                "properties": {
                                  "device_id": {
                                    "description": "End device identifier of the served end device.",
                                    "type": "string"
                                  },
                                  "last_w_f_cnt": {
                                    "description": "Last wake on radio frame counter used by the served end device.",
                                    "format": "int64",
                                    "type": "integer"
                                  },
                                  "limits": {
                                    "properties": {
                                      "bucket_size": {
                                        "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "enum": [
                                          "RELAY_LIMIT_BUCKET_SIZE_1",
                                          "RELAY_LIMIT_BUCKET_SIZE_2",
                                          "RELAY_LIMIT_BUCKET_SIZE_4",
                                          "RELAY_LIMIT_BUCKET_SIZE_12"
                                        ],
                                        "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                        "type": "string"
                                      },
                                      "reload_rate": {
                                        "description": "The number of tokens which are replenished in the bucket every hour.",
                                        "format": "int64",
                                        "type": "integer"
                                      }
                                    },
                                    "type": "object"
                                  },
                                  "session_key_id": {
                                    "description": "Session key ID of the session keys used to derive the root relay session key.",
                                    "format": "byte",
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "type": "array"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "rx1_data_rate_offset": {
                      "default": "DATA_RATE_OFFSET_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rx1_delay": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rx2_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rx2_frequency": {
                      "description": "Frequency for Rx2 (Hz).",
                      "format": "uint64",
                      "type": "string"
                    },
                    "uplink_dwell_time": {
                      "properties": {
                        "value": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "device_class": {
                  "default": "CLASS_A",
                  "enum": [
                    "CLASS_A",
                    "CLASS_B",
                    "CLASS_C"
                  ],
                  "type": "string"
                },
                "last_adr_change_f_cnt_up": {
                  "description": "Frame counter of uplink, which confirmed the last ADR parameter change.",
                  "format": "int64",
                  "type": "integer"
                },
                "last_confirmed_downlink_at": {
                  "description": "Time when the last confirmed downlink message or MAC command was scheduled.",
                  "format": "date-time",
                  "type": "string"
                },
                "last_dev_status_f_cnt_up": {
                  "description": "Frame counter value of last uplink containing DevStatusAns.",
                  "format": "int64",
                  "type": "integer"
                },
                "last_downlink_at": {
                  "description": "Time when the last downlink message was scheduled.",
                  "format": "date-time",
                  "type": "string"
                },
                "last_network_initiated_downlink_at": {
                  "description": "Time when the last network-initiated downlink message was scheduled.",
                  "format": "date-time",
                  "type": "string"
                },
                "lorawan_version": {
                  "default": "MAC_UNKNOWN",
                  "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"
                  ],
                  "type": "string"
                },
                "pending_application_downlink": {
                  "properties": {
                    "attributes": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Attributes for devices, set by the Application Server while handling the message.",
                      "type": "object"
                    },
                    "class_b_c": {
                      "properties": {
                        "absolute_time": {
                          "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                          "format": "date-time",
                          "type": "string"
                        },
                        "gateways": {
                          "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                          "items": {
                            "properties": {
                              "antenna_index": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "gateway_ids": {
                                "properties": {
                                  "eui": {
                                    "description": "Secondary identifier, which can only be used in specific requests.",
                                    "example": "70B3D57ED000ABCD",
                                    "format": "string",
                                    "type": "string"
                                  },
                                  "gateway_id": {
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "group_index": {
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "confirmed": {
                      "type": "boolean"
                    },
                    "confirmed_retry": {
                      "properties": {
                        "attempt": {
                          "description": "The number of attempted confirmed downlink acknowledgements.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "max_attempts": {
                          "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "decoded_payload": {
                      "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                      "type": "object"
                    },
                    "decoded_payload_warnings": {
                      "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "f_cnt": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "f_port": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "frm_payload": {
                      "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                      "format": "byte",
                      "type": "string"
                    },
                    "locations": {
                      "additionalProperties": {
                        "properties": {
                          "accuracy": {
                            "description": "The accuracy of the location (meters).",
                            "format": "int32",
                            "type": "integer"
                          },
                          "altitude": {
                            "description": "The altitude (meters), where 0 is the mean sea level.",
                            "format": "int32",
                            "type": "integer"
                          },
                          "latitude": {
                            "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                            "format": "double",
                            "type": "number"
                          },
                          "longitude": {
                            "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                            "format": "double",
                            "type": "number"
                          },
                          "source": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "description": "End device location metadata, set by the Application Server while handling the message.",
                      "type": "object"
                    },
                    "network_ids": {
                      "description": "Identifies a Network Server.",
                      "properties": {
                        "cluster_address": {
                          "description": "Cluster address of the Network Server.",
                          "type": "string"
                        },
                        "cluster_id": {
                          "description": "Cluster identifier of the Network Server.",
                          "type": "string"
                        },
                        "net_id": {
                          "description": "LoRa Alliance NetID.",
                          "example": "000013",
                          "format": "string",
                          "type": "string"
                        },
                        "ns_id": {
                          "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "tenant_address": {
                          "description": "Optional tenant address for multi-tenant deployments.",
                          "type": "string"
                        },
                        "tenant_id": {
                          "description": "Optional tenant identifier for multi-tenant deployments.",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "priority": {
                      "default": "LOWEST",
                      "enum": [
                        "LOWEST",
                        "LOW",
                        "BELOW_NORMAL",
                        "NORMAL",
                        "ABOVE_NORMAL",
                        "HIGH",
                        "HIGHEST"
                      ],
                      "type": "string"
                    },
                    "session_key_id": {
                      "description": "Join Server issued identifier for the session keys used by this downlink.",
                      "format": "byte",
                      "type": "string"
                    },
                    "version_ids": {
                      "description": "Identifies an end device model with version information.",
                      "properties": {
                        "band_id": {
                          "type": "string"
                        },
                        "brand_id": {
                          "type": "string"
                        },
                        "firmware_version": {
                          "type": "string"
                        },
                        "hardware_version": {
                          "type": "string"
                        },
                        "model_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "pending_join_request": {
                  "properties": {
                    "cf_list": {
                      "properties": {
                        "ch_masks": {
                          "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                          "items": {
                            "type": "boolean"
                          },
                          "type": "array"
                        },
                        "freq": {
                          "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                          "items": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "type": "array"
                        },
                        "type": {
                          "default": "FREQUENCIES",
                          "enum": [
                            "FREQUENCIES",
                            "CHANNEL_MASKS"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "downlink_settings": {
                      "properties": {
                        "opt_neg": {
                          "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                          "type": "boolean"
                        },
                        "rx1_dr_offset": {
                          "default": "DATA_RATE_OFFSET_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_dr": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_delay": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "pending_relay_downlink": {
                  "properties": {
                    "raw_payload": {
                      "format": "byte",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "pending_requests": {
                  "description": "Pending MAC requests(i.e. sent requests, for which no response has been received yet).\nRegenerated on each downlink.",
                  "items": {
                    "properties": {
                      "adr_param_setup_req": {
                        "properties": {
                          "adr_ack_delay_exponent": {
                            "default": "ADR_ACK_DELAY_1",
                            "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"
                            ],
                            "type": "string"
                          },
                          "adr_ack_limit_exponent": {
                            "default": "ADR_ACK_LIMIT_1",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "beacon_freq_ans": {
                        "properties": {
                          "frequency_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "beacon_freq_req": {
                        "properties": {
                          "frequency": {
                            "description": "Frequency of the Class B beacons (Hz).",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "beacon_timing_ans": {
                        "properties": {
                          "channel_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "delay": {
                            "description": "(uint16) See LoRaWAN specification.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "cid": {
                        "default": "CID_RFU_0",
                        "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"
                        ],
                        "title": "- CID_BEACON_TIMING: Deprecated",
                        "type": "string"
                      },
                      "dev_status_ans": {
                        "properties": {
                          "battery": {
                            "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "margin": {
                            "description": "SNR of the last downlink (dB; [-32, +31]).",
                            "format": "int32",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "device_mode_conf": {
                        "properties": {
                          "class": {
                            "default": "CLASS_A",
                            "enum": [
                              "CLASS_A",
                              "CLASS_B",
                              "CLASS_C"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "device_mode_ind": {
                        "properties": {
                          "class": {
                            "default": "CLASS_A",
                            "enum": [
                              "CLASS_A",
                              "CLASS_B",
                              "CLASS_C"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "device_time_ans": {
                        "properties": {
                          "time": {
                            "format": "date-time",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "dl_channel_ans": {
                        "properties": {
                          "channel_index_ack": {
                            "type": "boolean"
                          },
                          "frequency_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "dl_channel_req": {
                        "properties": {
                          "channel_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "frequency": {
                            "description": "Downlink channel frequency (Hz).",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "duty_cycle_req": {
                        "properties": {
                          "max_duty_cycle": {
                            "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%.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "force_rejoin_req": {
                        "properties": {
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "max_retries": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "period_exponent": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          },
                          "rejoin_type": {
                            "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.",
                            "enum": [
                              "CONTEXT",
                              "SESSION",
                              "KEYS"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "link_adr_ans": {
                        "properties": {
                          "channel_mask_ack": {
                            "type": "boolean"
                          },
                          "data_rate_index_ack": {
                            "type": "boolean"
                          },
                          "tx_power_index_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "link_adr_req": {
                        "properties": {
                          "channel_mask": {
                            "items": {
                              "type": "boolean"
                            },
                            "type": "array"
                          },
                          "channel_mask_control": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "nb_trans": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "tx_power_index": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "link_check_ans": {
                        "properties": {
                          "gateway_count": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "margin": {
                            "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "new_channel_ans": {
                        "properties": {
                          "data_rate_ack": {
                            "type": "boolean"
                          },
                          "frequency_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "new_channel_req": {
                        "properties": {
                          "channel_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "frequency": {
                            "description": "Channel frequency (Hz).",
                            "format": "uint64",
                            "type": "string"
                          },
                          "max_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "min_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "ping_slot_channel_ans": {
                        "properties": {
                          "data_rate_index_ack": {
                            "type": "boolean"
                          },
                          "frequency_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "ping_slot_channel_req": {
                        "properties": {
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "Ping slot channel frequency (Hz).",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "ping_slot_info_req": {
                        "properties": {
                          "period": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "raw_payload": {
                        "format": "byte",
                        "type": "string"
                      },
                      "rejoin_param_setup_ans": {
                        "properties": {
                          "max_time_exponent_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "rejoin_param_setup_req": {
                        "properties": {
                          "max_count_exponent": {
                            "default": "REJOIN_COUNT_16",
                            "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"
                            ],
                            "type": "string"
                          },
                          "max_time_exponent": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rekey_conf": {
                        "properties": {
                          "minor_version": {
                            "default": "MINOR_RFU_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rekey_ind": {
                        "properties": {
                          "minor_version": {
                            "default": "MINOR_RFU_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "relay_conf_ans": {
                        "properties": {
                          "cad_periodicity_ack": {
                            "type": "boolean"
                          },
                          "default_channel_index_ack": {
                            "type": "boolean"
                          },
                          "second_channel_ack_offset_ack": {
                            "type": "boolean"
                          },
                          "second_channel_data_rate_index_ack": {
                            "type": "boolean"
                          },
                          "second_channel_frequency_ack": {
                            "type": "boolean"
                          },
                          "second_channel_index_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "relay_conf_req": {
                        "properties": {
                          "configuration": {
                            "properties": {
                              "cad_periodicity": {
                                "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                                "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"
                                ],
                                "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                                "type": "string"
                              },
                              "default_channel_index": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "second_channel": {
                                "properties": {
                                  "ack_offset": {
                                    "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                    "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"
                                    ],
                                    "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",
                                    "type": "string"
                                  },
                                  "data_rate_index": {
                                    "default": "DATA_RATE_0",
                                    "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"
                                    ],
                                    "type": "string"
                                  },
                                  "frequency": {
                                    "description": "The frequency (Hz) used by the wake on radio message.",
                                    "format": "uint64",
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "relay_configure_fwd_limit_ans": {
                        "type": "object"
                      },
                      "relay_configure_fwd_limit_req": {
                        "properties": {
                          "global_uplink_limits": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "join_request_limits": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "notify_limits": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "overall_limits": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "reset_limit_counter": {
                            "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "enum": [
                              "RELAY_RESET_LIMIT_COUNTER_ZERO",
                              "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                              "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                              "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "relay_ctrl_uplink_list_ans": {
                        "properties": {
                          "rule_index_ack": {
                            "type": "boolean"
                          },
                          "w_f_cnt": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "relay_ctrl_uplink_list_req": {
                        "properties": {
                          "action": {
                            "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                            "enum": [
                              "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                              "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                            ],
                            "type": "string"
                          },
                          "rule_index": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "relay_end_device_conf_ans": {
                        "properties": {
                          "backoff_ack": {
                            "type": "boolean"
                          },
                          "second_channel_data_rate_index_ack": {
                            "type": "boolean"
                          },
                          "second_channel_frequency_ack": {
                            "type": "boolean"
                          },
                          "second_channel_index_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "relay_end_device_conf_req": {
                        "properties": {
                          "configuration": {
                            "properties": {
                              "always": {
                                "type": "object"
                              },
                              "backoff": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "dynamic": {
                                "properties": {
                                  "smart_enable_level": {
                                    "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                    "enum": [
                                      "RELAY_SMART_ENABLE_LEVEL_8",
                                      "RELAY_SMART_ENABLE_LEVEL_16",
                                      "RELAY_SMART_ENABLE_LEVEL_32",
                                      "RELAY_SMART_ENABLE_LEVEL_64"
                                    ],
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "end_device_controlled": {
                                "type": "object"
                              },
                              "second_channel": {
                                "properties": {
                                  "ack_offset": {
                                    "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                    "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"
                                    ],
                                    "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",
                                    "type": "string"
                                  },
                                  "data_rate_index": {
                                    "default": "DATA_RATE_0",
                                    "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"
                                    ],
                                    "type": "string"
                                  },
                                  "frequency": {
                                    "description": "The frequency (Hz) used by the wake on radio message.",
                                    "format": "uint64",
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "serving_device_id": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "relay_notify_new_end_device_req": {
                        "properties": {
                          "dev_addr": {
                            "example": "2600ABCD",
                            "format": "string",
                            "type": "string"
                          },
                          "rssi": {
                            "format": "int32",
                            "type": "integer"
                          },
                          "snr": {
                            "format": "int32",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "relay_update_uplink_list_ans": {
                        "type": "object"
                      },
                      "relay_update_uplink_list_req": {
                        "properties": {
                          "dev_addr": {
                            "example": "2600ABCD",
                            "format": "string",
                            "type": "string"
                          },
                          "device_id": {
                            "type": "string"
                          },
                          "forward_limits": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "root_wor_s_key": {
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          },
                          "rule_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "session_key_id": {
                            "format": "byte",
                            "type": "string"
                          },
                          "w_f_cnt": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "reset_conf": {
                        "properties": {
                          "minor_version": {
                            "default": "MINOR_RFU_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "reset_ind": {
                        "properties": {
                          "minor_version": {
                            "default": "MINOR_RFU_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rx_param_setup_ans": {
                        "properties": {
                          "rx1_data_rate_offset_ack": {
                            "type": "boolean"
                          },
                          "rx2_data_rate_index_ack": {
                            "type": "boolean"
                          },
                          "rx2_frequency_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "rx_param_setup_req": {
                        "properties": {
                          "rx1_data_rate_offset": {
                            "default": "DATA_RATE_OFFSET_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "rx2_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "rx2_frequency": {
                            "description": "Rx2 frequency (Hz).",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rx_timing_setup_req": {
                        "properties": {
                          "delay": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "tx_param_setup_req": {
                        "properties": {
                          "downlink_dwell_time": {
                            "type": "boolean"
                          },
                          "max_eirp_index": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          },
                          "uplink_dwell_time": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "ping_slot_periodicity": {
                  "properties": {
                    "value": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "queued_join_accept": {
                  "properties": {
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "dev_addr": {
                      "example": "2600ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "keys": {
                      "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
                      "properties": {
                        "app_s_key": {
                          "properties": {
                            "encrypted_key": {
                              "format": "byte",
                              "type": "string"
                            },
                            "kek_label": {
                              "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                              "type": "string"
                            },
                            "key": {
                              "description": "The unencrypted AES key.",
                              "example": "0123456789ABCDEF0123456789ABCDEF",
                              "format": "string",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "f_nwk_s_int_key": {
                          "properties": {
                            "encrypted_key": {
                              "format": "byte",
                              "type": "string"
                            },
                            "kek_label": {
                              "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                              "type": "string"
                            },
                            "key": {
                              "description": "The unencrypted AES key.",
                              "example": "0123456789ABCDEF0123456789ABCDEF",
                              "format": "string",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "nwk_s_enc_key": {
                          "properties": {
                            "encrypted_key": {
                              "format": "byte",
                              "type": "string"
                            },
                            "kek_label": {
                              "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                              "type": "string"
                            },
                            "key": {
                              "description": "The unencrypted AES key.",
                              "example": "0123456789ABCDEF0123456789ABCDEF",
                              "format": "string",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "s_nwk_s_int_key": {
                          "properties": {
                            "encrypted_key": {
                              "format": "byte",
                              "type": "string"
                            },
                            "kek_label": {
                              "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                              "type": "string"
                            },
                            "key": {
                              "description": "The unencrypted AES key.",
                              "example": "0123456789ABCDEF0123456789ABCDEF",
                              "format": "string",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "session_key_id": {
                          "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                          "format": "byte",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "net_id": {
                      "example": "000013",
                      "format": "string",
                      "type": "string"
                    },
                    "payload": {
                      "description": "Payload of the join-accept received from Join Server.",
                      "format": "byte",
                      "type": "string"
                    },
                    "request": {
                      "properties": {
                        "cf_list": {
                          "properties": {
                            "ch_masks": {
                              "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                              "items": {
                                "type": "boolean"
                              },
                              "type": "array"
                            },
                            "freq": {
                              "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                              "items": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "type": "array"
                            },
                            "type": {
                              "default": "FREQUENCIES",
                              "enum": [
                                "FREQUENCIES",
                                "CHANNEL_MASKS"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "downlink_settings": {
                          "properties": {
                            "opt_neg": {
                              "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                              "type": "boolean"
                            },
                            "rx1_dr_offset": {
                              "default": "DATA_RATE_OFFSET_0",
                              "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"
                              ],
                              "type": "string"
                            },
                            "rx2_dr": {
                              "default": "DATA_RATE_0",
                              "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"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "rx_delay": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "queued_responses": {
                  "description": "Queued MAC responses.\nRegenerated on each uplink.",
                  "items": {
                    "properties": {
                      "adr_param_setup_req": {
                        "properties": {
                          "adr_ack_delay_exponent": {
                            "default": "ADR_ACK_DELAY_1",
                            "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"
                            ],
                            "type": "string"
                          },
                          "adr_ack_limit_exponent": {
                            "default": "ADR_ACK_LIMIT_1",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "beacon_freq_ans": {
                        "properties": {
                          "frequency_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "beacon_freq_req": {
                        "properties": {
                          "frequency": {
                            "description": "Frequency of the Class B beacons (Hz).",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "beacon_timing_ans": {
                        "properties": {
                          "channel_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "delay": {
                            "description": "(uint16) See LoRaWAN specification.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "cid": {
                        "default": "CID_RFU_0",
                        "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"
                        ],
                        "title": "- CID_BEACON_TIMING: Deprecated",
                        "type": "string"
                      },
                      "dev_status_ans": {
                        "properties": {
                          "battery": {
                            "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "margin": {
                            "description": "SNR of the last downlink (dB; [-32, +31]).",
                            "format": "int32",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "device_mode_conf": {
                        "properties": {
                          "class": {
                            "default": "CLASS_A",
                            "enum": [
                              "CLASS_A",
                              "CLASS_B",
                              "CLASS_C"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "device_mode_ind": {
                        "properties": {
                          "class": {
                            "default": "CLASS_A",
                            "enum": [
                              "CLASS_A",
                              "CLASS_B",
                              "CLASS_C"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "device_time_ans": {
                        "properties": {
                          "time": {
                            "format": "date-time",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "dl_channel_ans": {
                        "properties": {
                          "channel_index_ack": {
                            "type": "boolean"
                          },
                          "frequency_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "dl_channel_req": {
                        "properties": {
                          "channel_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "frequency": {
                            "description": "Downlink channel frequency (Hz).",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "duty_cycle_req": {
                        "properties": {
                          "max_duty_cycle": {
                            "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%.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "force_rejoin_req": {
                        "properties": {
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "max_retries": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "period_exponent": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          },
                          "rejoin_type": {
                            "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.",
                            "enum": [
                              "CONTEXT",
                              "SESSION",
                              "KEYS"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "link_adr_ans": {
                        "properties": {
                          "channel_mask_ack": {
                            "type": "boolean"
                          },
                          "data_rate_index_ack": {
                            "type": "boolean"
                          },
                          "tx_power_index_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "link_adr_req": {
                        "properties": {
                          "channel_mask": {
                            "items": {
                              "type": "boolean"
                            },
                            "type": "array"
                          },
                          "channel_mask_control": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "nb_trans": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "tx_power_index": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "link_check_ans": {
                        "properties": {
                          "gateway_count": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "margin": {
                            "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "new_channel_ans": {
                        "properties": {
                          "data_rate_ack": {
                            "type": "boolean"
                          },
                          "frequency_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "new_channel_req": {
                        "properties": {
                          "channel_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "frequency": {
                            "description": "Channel frequency (Hz).",
                            "format": "uint64",
                            "type": "string"
                          },
                          "max_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "min_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "ping_slot_channel_ans": {
                        "properties": {
                          "data_rate_index_ack": {
                            "type": "boolean"
                          },
                          "frequency_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "ping_slot_channel_req": {
                        "properties": {
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "Ping slot channel frequency (Hz).",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "ping_slot_info_req": {
                        "properties": {
                          "period": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "raw_payload": {
                        "format": "byte",
                        "type": "string"
                      },
                      "rejoin_param_setup_ans": {
                        "properties": {
                          "max_time_exponent_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "rejoin_param_setup_req": {
                        "properties": {
                          "max_count_exponent": {
                            "default": "REJOIN_COUNT_16",
                            "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"
                            ],
                            "type": "string"
                          },
                          "max_time_exponent": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rekey_conf": {
                        "properties": {
                          "minor_version": {
                            "default": "MINOR_RFU_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rekey_ind": {
                        "properties": {
                          "minor_version": {
                            "default": "MINOR_RFU_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "relay_conf_ans": {
                        "properties": {
                          "cad_periodicity_ack": {
                            "type": "boolean"
                          },
                          "default_channel_index_ack": {
                            "type": "boolean"
                          },
                          "second_channel_ack_offset_ack": {
                            "type": "boolean"
                          },
                          "second_channel_data_rate_index_ack": {
                            "type": "boolean"
                          },
                          "second_channel_frequency_ack": {
                            "type": "boolean"
                          },
                          "second_channel_index_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "relay_conf_req": {
                        "properties": {
                          "configuration": {
                            "properties": {
                              "cad_periodicity": {
                                "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                                "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"
                                ],
                                "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                                "type": "string"
                              },
                              "default_channel_index": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "second_channel": {
                                "properties": {
                                  "ack_offset": {
                                    "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                    "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"
                                    ],
                                    "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",
                                    "type": "string"
                                  },
                                  "data_rate_index": {
                                    "default": "DATA_RATE_0",
                                    "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"
                                    ],
                                    "type": "string"
                                  },
                                  "frequency": {
                                    "description": "The frequency (Hz) used by the wake on radio message.",
                                    "format": "uint64",
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "relay_configure_fwd_limit_ans": {
                        "type": "object"
                      },
                      "relay_configure_fwd_limit_req": {
                        "properties": {
                          "global_uplink_limits": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "join_request_limits": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "notify_limits": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "overall_limits": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "reset_limit_counter": {
                            "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "enum": [
                              "RELAY_RESET_LIMIT_COUNTER_ZERO",
                              "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                              "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                              "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "relay_ctrl_uplink_list_ans": {
                        "properties": {
                          "rule_index_ack": {
                            "type": "boolean"
                          },
                          "w_f_cnt": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "relay_ctrl_uplink_list_req": {
                        "properties": {
                          "action": {
                            "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                            "enum": [
                              "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                              "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                            ],
                            "type": "string"
                          },
                          "rule_index": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "relay_end_device_conf_ans": {
                        "properties": {
                          "backoff_ack": {
                            "type": "boolean"
                          },
                          "second_channel_data_rate_index_ack": {
                            "type": "boolean"
                          },
                          "second_channel_frequency_ack": {
                            "type": "boolean"
                          },
                          "second_channel_index_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "relay_end_device_conf_req": {
                        "properties": {
                          "configuration": {
                            "properties": {
                              "always": {
                                "type": "object"
                              },
                              "backoff": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "dynamic": {
                                "properties": {
                                  "smart_enable_level": {
                                    "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                    "enum": [
                                      "RELAY_SMART_ENABLE_LEVEL_8",
                                      "RELAY_SMART_ENABLE_LEVEL_16",
                                      "RELAY_SMART_ENABLE_LEVEL_32",
                                      "RELAY_SMART_ENABLE_LEVEL_64"
                                    ],
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "end_device_controlled": {
                                "type": "object"
                              },
                              "second_channel": {
                                "properties": {
                                  "ack_offset": {
                                    "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                    "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"
                                    ],
                                    "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",
                                    "type": "string"
                                  },
                                  "data_rate_index": {
                                    "default": "DATA_RATE_0",
                                    "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"
                                    ],
                                    "type": "string"
                                  },
                                  "frequency": {
                                    "description": "The frequency (Hz) used by the wake on radio message.",
                                    "format": "uint64",
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "serving_device_id": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "relay_notify_new_end_device_req": {
                        "properties": {
                          "dev_addr": {
                            "example": "2600ABCD",
                            "format": "string",
                            "type": "string"
                          },
                          "rssi": {
                            "format": "int32",
                            "type": "integer"
                          },
                          "snr": {
                            "format": "int32",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "relay_update_uplink_list_ans": {
                        "type": "object"
                      },
                      "relay_update_uplink_list_req": {
                        "properties": {
                          "dev_addr": {
                            "example": "2600ABCD",
                            "format": "string",
                            "type": "string"
                          },
                          "device_id": {
                            "type": "string"
                          },
                          "forward_limits": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "root_wor_s_key": {
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          },
                          "rule_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "session_key_id": {
                            "format": "byte",
                            "type": "string"
                          },
                          "w_f_cnt": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "reset_conf": {
                        "properties": {
                          "minor_version": {
                            "default": "MINOR_RFU_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "reset_ind": {
                        "properties": {
                          "minor_version": {
                            "default": "MINOR_RFU_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rx_param_setup_ans": {
                        "properties": {
                          "rx1_data_rate_offset_ack": {
                            "type": "boolean"
                          },
                          "rx2_data_rate_index_ack": {
                            "type": "boolean"
                          },
                          "rx2_frequency_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "rx_param_setup_req": {
                        "properties": {
                          "rx1_data_rate_offset": {
                            "default": "DATA_RATE_OFFSET_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "rx2_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "rx2_frequency": {
                            "description": "Rx2 frequency (Hz).",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rx_timing_setup_req": {
                        "properties": {
                          "delay": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "tx_param_setup_req": {
                        "properties": {
                          "downlink_dwell_time": {
                            "type": "boolean"
                          },
                          "max_eirp_index": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          },
                          "uplink_dwell_time": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "recent_downlinks": {
                  "description": "Recent data downlink messages sorted by time.\nThe number of messages stored may depend on configuration.",
                  "items": {
                    "description": "A minimal DownlinkMessage definition which is binary compatible with the top level DownlinkMessage message.\nUsed for type safe recent downlink storage.",
                    "properties": {
                      "correlation_ids": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "payload": {
                        "properties": {
                          "m_hdr": {
                            "properties": {
                              "m_type": {
                                "default": "JOIN_REQUEST",
                                "enum": [
                                  "JOIN_REQUEST",
                                  "JOIN_ACCEPT",
                                  "UNCONFIRMED_UP",
                                  "UNCONFIRMED_DOWN",
                                  "CONFIRMED_UP",
                                  "CONFIRMED_DOWN",
                                  "REJOIN_REQUEST",
                                  "PROPRIETARY"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "mac_payload": {
                            "properties": {
                              "f_port": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "full_f_cnt": {
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "recent_mac_command_identifiers": {
                  "description": "MAC command identifiers sent by the end device in the last received uplink.\nThe Network Server may choose to store only certain types of MAC\ncommand identifiers in the underlying implementation.",
                  "items": {
                    "default": "CID_RFU_0",
                    "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"
                    ],
                    "title": "- CID_BEACON_TIMING: Deprecated",
                    "type": "string"
                  },
                  "type": "array"
                },
                "recent_uplinks": {
                  "description": "Recent data uplink messages sorted by time.\nThe number of messages stored may depend on configuration.",
                  "items": {
                    "description": "A minimal UplinkMessage definition which is binary compatible with the top level UplinkMessage message.\nUsed for type safe recent uplink storage.",
                    "properties": {
                      "correlation_ids": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "device_channel_index": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "payload": {
                        "properties": {
                          "join_accept_payload": {
                            "properties": {
                              "cf_list": {
                                "properties": {
                                  "ch_masks": {
                                    "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                                    "items": {
                                      "type": "boolean"
                                    },
                                    "type": "array"
                                  },
                                  "freq": {
                                    "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                                    "items": {
                                      "format": "int64",
                                      "type": "integer"
                                    },
                                    "type": "array"
                                  },
                                  "type": {
                                    "default": "FREQUENCIES",
                                    "enum": [
                                      "FREQUENCIES",
                                      "CHANNEL_MASKS"
                                    ],
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "dev_addr": {
                                "example": "2600ABCD",
                                "format": "string",
                                "type": "string"
                              },
                              "dl_settings": {
                                "properties": {
                                  "opt_neg": {
                                    "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                                    "type": "boolean"
                                  },
                                  "rx1_dr_offset": {
                                    "default": "DATA_RATE_OFFSET_0",
                                    "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"
                                    ],
                                    "type": "string"
                                  },
                                  "rx2_dr": {
                                    "default": "DATA_RATE_0",
                                    "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"
                                    ],
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "encrypted": {
                                "format": "byte",
                                "type": "string"
                              },
                              "join_nonce": {
                                "example": "ABCDEF",
                                "format": "string",
                                "type": "string"
                              },
                              "net_id": {
                                "example": "000013",
                                "format": "string",
                                "type": "string"
                              },
                              "rx_delay": {
                                "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.",
                                "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"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "join_request_payload": {
                            "properties": {
                              "dev_eui": {
                                "example": "70B3D57ED000ABCD",
                                "format": "string",
                                "type": "string"
                              },
                              "dev_nonce": {
                                "example": "ABCD",
                                "format": "string",
                                "type": "string"
                              },
                              "join_eui": {
                                "example": "70B3D57ED000ABCD",
                                "format": "string",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "m_hdr": {
                            "properties": {
                              "m_type": {
                                "default": "JOIN_REQUEST",
                                "enum": [
                                  "JOIN_REQUEST",
                                  "JOIN_ACCEPT",
                                  "UNCONFIRMED_UP",
                                  "UNCONFIRMED_DOWN",
                                  "CONFIRMED_UP",
                                  "CONFIRMED_DOWN",
                                  "REJOIN_REQUEST",
                                  "PROPRIETARY"
                                ],
                                "type": "string"
                              },
                              "major": {
                                "default": "LORAWAN_R1",
                                "enum": [
                                  "LORAWAN_R1"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "mac_payload": {
                            "properties": {
                              "decoded_payload": {
                                "type": "object"
                              },
                              "f_hdr": {
                                "properties": {
                                  "dev_addr": {
                                    "example": "2600ABCD",
                                    "format": "string",
                                    "type": "string"
                                  },
                                  "f_cnt": {
                                    "format": "int64",
                                    "type": "integer"
                                  },
                                  "f_ctrl": {
                                    "properties": {
                                      "ack": {
                                        "type": "boolean"
                                      },
                                      "adr": {
                                        "type": "boolean"
                                      },
                                      "adr_ack_req": {
                                        "description": "Only on uplink.",
                                        "type": "boolean"
                                      },
                                      "class_b": {
                                        "description": "Only on uplink.",
                                        "type": "boolean"
                                      },
                                      "f_pending": {
                                        "description": "Only on downlink.",
                                        "type": "boolean"
                                      }
                                    },
                                    "type": "object"
                                  },
                                  "f_opts": {
                                    "format": "byte",
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "f_port": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "frm_payload": {
                                "format": "byte",
                                "type": "string"
                              },
                              "full_f_cnt": {
                                "description": "Full 32-bit FCnt value. Used internally by Network Server.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "mic": {
                            "format": "byte",
                            "type": "string"
                          },
                          "rejoin_request_payload": {
                            "properties": {
                              "dev_eui": {
                                "example": "70B3D57ED000ABCD",
                                "format": "string",
                                "type": "string"
                              },
                              "join_eui": {
                                "example": "70B3D57ED000ABCD",
                                "format": "string",
                                "type": "string"
                              },
                              "net_id": {
                                "example": "000013",
                                "format": "string",
                                "type": "string"
                              },
                              "rejoin_cnt": {
                                "description": "Contains RJCount0 or RJCount1 depending on rejoin_type.",
                                "format": "int64",
                                "type": "integer"
                              },
                              "rejoin_type": {
                                "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.",
                                "enum": [
                                  "CONTEXT",
                                  "SESSION",
                                  "KEYS"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "title": "Message represents a LoRaWAN message",
                        "type": "object"
                      },
                      "received_at": {
                        "format": "date-time",
                        "type": "string"
                      },
                      "rx_metadata": {
                        "items": {
                          "properties": {
                            "channel_rssi": {
                              "format": "float",
                              "type": "number"
                            },
                            "downlink_path_constraint": {
                              "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.",
                              "enum": [
                                "DOWNLINK_PATH_CONSTRAINT_NONE",
                                "DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER",
                                "DOWNLINK_PATH_CONSTRAINT_NEVER"
                              ],
                              "type": "string"
                            },
                            "gateway_ids": {
                              "properties": {
                                "eui": {
                                  "description": "Secondary identifier, which can only be used in specific requests.",
                                  "example": "70B3D57ED000ABCD",
                                  "format": "string",
                                  "type": "string"
                                },
                                "gateway_id": {
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "packet_broker": {
                              "type": "object"
                            },
                            "relay": {
                              "type": "object"
                            },
                            "snr": {
                              "format": "float",
                              "type": "number"
                            },
                            "uplink_token": {
                              "format": "byte",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "settings": {
                        "properties": {
                          "data_rate": {
                            "properties": {
                              "fsk": {
                                "properties": {
                                  "bit_rate": {
                                    "description": "Bit rate (bps).",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "lora": {
                                "properties": {
                                  "bandwidth": {
                                    "description": "Bandwidth (Hz).",
                                    "format": "int64",
                                    "type": "integer"
                                  },
                                  "coding_rate": {
                                    "type": "string"
                                  },
                                  "spreading_factor": {
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              },
                              "lrfhss": {
                                "properties": {
                                  "coding_rate": {
                                    "type": "string"
                                  },
                                  "modulation_type": {
                                    "format": "int64",
                                    "type": "integer"
                                  },
                                  "operating_channel_width": {
                                    "description": "Operating Channel Width (Hz).",
                                    "format": "int64",
                                    "type": "integer"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "rejected_adr_data_rate_indexes": {
                  "description": "ADR Data rate index values rejected by the device.\nReset each time `current_parameters.channels` change.\nElements are sorted in ascending order.",
                  "items": {
                    "default": "DATA_RATE_0",
                    "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"
                    ],
                    "type": "string"
                  },
                  "type": "array"
                },
                "rejected_adr_tx_power_indexes": {
                  "description": "ADR TX output power index values rejected by the device.\nElements are sorted in ascending order.",
                  "items": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "type": "array"
                },
                "rejected_data_rate_ranges": {
                  "additionalProperties": {
                    "properties": {
                      "ranges": {
                        "items": {
                          "properties": {
                            "max_data_rate_index": {
                              "default": "DATA_RATE_0",
                              "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"
                              ],
                              "type": "string"
                            },
                            "min_data_rate_index": {
                              "default": "DATA_RATE_0",
                              "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"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  },
                  "description": "Data rate ranges rejected by the device per frequency.",
                  "type": "object"
                },
                "rejected_frequencies": {
                  "description": "Frequencies rejected by the device.",
                  "items": {
                    "format": "uint64",
                    "type": "string"
                  },
                  "type": "array"
                },
                "rx_windows_available": {
                  "description": "Whether or not Rx windows are expected to be open.\nSet to true every time an uplink is received.\nSet to false every time a successful downlink scheduling attempt is made.",
                  "type": "boolean"
                }
              },
              "type": "object"
            },
            "max_frequency": {
              "description": "Maximum frequency the device is capable of using (Hz). Stored in Network Server.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
              "format": "uint64",
              "type": "string"
            },
            "min_frequency": {
              "description": "Minimum frequency the device is capable of using (Hz). Stored in Network Server.\nCopied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.",
              "format": "uint64",
              "type": "string"
            },
            "multicast": {
              "description": "Indicates whether this device represents a multicast group.",
              "type": "boolean"
            },
            "name": {
              "description": "Friendly name of the device. Stored in Entity Registry.",
              "type": "string"
            },
            "net_id": {
              "description": "Home NetID. Stored in Join Server.",
              "example": "000013",
              "format": "string",
              "type": "string"
            },
            "network_server_address": {
              "description": "The address of the Network Server where this device is supposed to be registered.\nStored in Entity Registry and Join Server.\nThe typical format of the address is \"host:port\". If the port is omitted,\nthe normal port inference (with DNS lookup, otherwise defaults) is used.\nThe connection shall be established with transport layer security (TLS).\nCustom certificate authorities may be configured out-of-band.",
              "type": "string"
            },
            "network_server_kek_label": {
              "description": "The KEK label of the Network Server to use for wrapping network session keys.\nStored in Join Server.",
              "type": "string"
            },
            "pending_mac_state": {
              "description": "MACState represents the state of MAC layer of the device.\nMACState is reset on each join for OTAA or ResetInd for ABP devices.\nThis is used internally by the Network Server.",
              "properties": {
                "current_parameters": {
                  "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
                  "properties": {
                    "adr_ack_delay": {
                      "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "adr_ack_delay_exponent": {
                      "properties": {
                        "value": {
                          "default": "ADR_ACK_DELAY_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "adr_ack_limit": {
                      "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "adr_ack_limit_exponent": {
                      "properties": {
                        "value": {
                          "default": "ADR_ACK_LIMIT_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "adr_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "adr_nb_trans": {
                      "description": "ADR: number of retransmissions.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "adr_tx_power_index": {
                      "description": "ADR: transmission power index to use.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "beacon_frequency": {
                      "description": "Frequency of the class B beacon (Hz).",
                      "format": "uint64",
                      "type": "string"
                    },
                    "channels": {
                      "description": "Configured uplink channels and optionally Rx1 frequency.",
                      "items": {
                        "properties": {
                          "downlink_frequency": {
                            "description": "Downlink frequency of the channel (Hz).",
                            "format": "uint64",
                            "type": "string"
                          },
                          "enable_uplink": {
                            "description": "Channel can be used by device for uplink.",
                            "type": "boolean"
                          },
                          "max_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "min_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "uplink_frequency": {
                            "description": "Uplink frequency of the channel (Hz).",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "downlink_dwell_time": {
                      "properties": {
                        "value": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "max_duty_cycle": {
                      "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%.",
                      "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"
                      ],
                      "type": "string"
                    },
                    "max_eirp": {
                      "description": "Maximum EIRP (dBm).",
                      "format": "float",
                      "type": "number"
                    },
                    "ping_slot_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "ping_slot_data_rate_index_value": {
                      "properties": {
                        "value": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_frequency": {
                      "description": "Frequency of the class B ping slot (Hz).",
                      "format": "uint64",
                      "type": "string"
                    },
                    "rejoin_count_periodicity": {
                      "default": "REJOIN_COUNT_16",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rejoin_time_periodicity": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    },
                    "relay": {
                      "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                      "properties": {
                        "served": {
                          "properties": {
                            "always": {
                              "type": "object"
                            },
                            "backoff": {
                              "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "dynamic": {
                              "properties": {
                                "smart_enable_level": {
                                  "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                  "enum": [
                                    "RELAY_SMART_ENABLE_LEVEL_8",
                                    "RELAY_SMART_ENABLE_LEVEL_16",
                                    "RELAY_SMART_ENABLE_LEVEL_32",
                                    "RELAY_SMART_ENABLE_LEVEL_64"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "end_device_controlled": {
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "serving_device_id": {
                              "description": "End device identifier of the serving end device.",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "serving": {
                          "properties": {
                            "cad_periodicity": {
                              "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                              "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"
                              ],
                              "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                              "type": "string"
                            },
                            "default_channel_index": {
                              "description": "Index of the default wake on radio channel.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "limits": {
                              "properties": {
                                "join_requests": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "notifications": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "overall": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "reset_behavior": {
                                  "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                  "enum": [
                                    "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                    "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                    "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                    "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                                  ],
                                  "type": "string"
                                },
                                "uplink_messages": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                }
                              },
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "uplink_forwarding_rules": {
                              "description": "Configured uplink forwarding rules.",
                              "items": {
                                "properties": {
                                  "device_id": {
                                    "description": "End device identifier of the served end device.",
                                    "type": "string"
                                  },
                                  "last_w_f_cnt": {
                                    "description": "Last wake on radio frame counter used by the served end device.",
                                    "format": "int64",
                                    "type": "integer"
                                  },
                                  "limits": {
                                    "properties": {
                                      "bucket_size": {
                                        "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "enum": [
                                          "RELAY_LIMIT_BUCKET_SIZE_1",
                                          "RELAY_LIMIT_BUCKET_SIZE_2",
                                          "RELAY_LIMIT_BUCKET_SIZE_4",
                                          "RELAY_LIMIT_BUCKET_SIZE_12"
                                        ],
                                        "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                        "type": "string"
                                      },
                                      "reload_rate": {
                                        "description": "The number of tokens which are replenished in the bucket every hour.",
                                        "format": "int64",
                                        "type": "integer"
                                      }
                                    },
                                    "type": "object"
                                  },
                                  "session_key_id": {
                                    "description": "Session key ID of the session keys used to derive the root relay session key.",
                                    "format": "byte",
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "type": "array"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "rx1_data_rate_offset": {
                      "default": "DATA_RATE_OFFSET_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rx1_delay": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rx2_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rx2_frequency": {
                      "description": "Frequency for Rx2 (Hz).",
                      "format": "uint64",
                      "type": "string"
                    },
                    "uplink_dwell_time": {
                      "properties": {
                        "value": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "desired_parameters": {
                  "description": "MACParameters represent the parameters of the device's MAC layer (active or desired).\nThis is used internally by the Network Server.",
                  "properties": {
                    "adr_ack_delay": {
                      "description": "ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.\nThis field is deprecated, use adr_ack_delay_exponent instead.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "adr_ack_delay_exponent": {
                      "properties": {
                        "value": {
                          "default": "ADR_ACK_DELAY_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "adr_ack_limit": {
                      "description": "ADR: number of messages to wait before setting ADRAckReq.\nThis field is deprecated, use adr_ack_limit_exponent instead.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "adr_ack_limit_exponent": {
                      "properties": {
                        "value": {
                          "default": "ADR_ACK_LIMIT_1",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "adr_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "adr_nb_trans": {
                      "description": "ADR: number of retransmissions.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "adr_tx_power_index": {
                      "description": "ADR: transmission power index to use.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "beacon_frequency": {
                      "description": "Frequency of the class B beacon (Hz).",
                      "format": "uint64",
                      "type": "string"
                    },
                    "channels": {
                      "description": "Configured uplink channels and optionally Rx1 frequency.",
                      "items": {
                        "properties": {
                          "downlink_frequency": {
                            "description": "Downlink frequency of the channel (Hz).",
                            "format": "uint64",
                            "type": "string"
                          },
                          "enable_uplink": {
                            "description": "Channel can be used by device for uplink.",
                            "type": "boolean"
                          },
                          "max_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "min_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "uplink_frequency": {
                            "description": "Uplink frequency of the channel (Hz).",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "downlink_dwell_time": {
                      "properties": {
                        "value": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "max_duty_cycle": {
                      "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%.",
                      "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"
                      ],
                      "type": "string"
                    },
                    "max_eirp": {
                      "description": "Maximum EIRP (dBm).",
                      "format": "float",
                      "type": "number"
                    },
                    "ping_slot_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "ping_slot_data_rate_index_value": {
                      "properties": {
                        "value": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ping_slot_frequency": {
                      "description": "Frequency of the class B ping slot (Hz).",
                      "format": "uint64",
                      "type": "string"
                    },
                    "rejoin_count_periodicity": {
                      "default": "REJOIN_COUNT_16",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rejoin_time_periodicity": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    },
                    "relay": {
                      "description": "RelayParameters represent the parameters of a relay.\nThis is used internally by the Network Server.",
                      "properties": {
                        "served": {
                          "properties": {
                            "always": {
                              "type": "object"
                            },
                            "backoff": {
                              "description": "Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "dynamic": {
                              "properties": {
                                "smart_enable_level": {
                                  "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                  "enum": [
                                    "RELAY_SMART_ENABLE_LEVEL_8",
                                    "RELAY_SMART_ENABLE_LEVEL_16",
                                    "RELAY_SMART_ENABLE_LEVEL_32",
                                    "RELAY_SMART_ENABLE_LEVEL_64"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "end_device_controlled": {
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "serving_device_id": {
                              "description": "End device identifier of the serving end device.",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "serving": {
                          "properties": {
                            "cad_periodicity": {
                              "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                              "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"
                              ],
                              "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                              "type": "string"
                            },
                            "default_channel_index": {
                              "description": "Index of the default wake on radio channel.",
                              "format": "int64",
                              "type": "integer"
                            },
                            "limits": {
                              "properties": {
                                "join_requests": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "notifications": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "overall": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                },
                                "reset_behavior": {
                                  "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                  "enum": [
                                    "RELAY_RESET_LIMIT_COUNTER_ZERO",
                                    "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                                    "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                                    "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                                  ],
                                  "type": "string"
                                },
                                "uplink_messages": {
                                  "properties": {
                                    "bucket_size": {
                                      "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                      "enum": [
                                        "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "RELAY_LIMIT_BUCKET_SIZE_2",
                                        "RELAY_LIMIT_BUCKET_SIZE_4",
                                        "RELAY_LIMIT_BUCKET_SIZE_12"
                                      ],
                                      "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                      "type": "string"
                                    },
                                    "reload_rate": {
                                      "description": "The number of tokens which are replenished in the bucket every hour.",
                                      "format": "int64",
                                      "type": "integer"
                                    }
                                  },
                                  "type": "object"
                                }
                              },
                              "type": "object"
                            },
                            "second_channel": {
                              "properties": {
                                "ack_offset": {
                                  "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                  "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"
                                  ],
                                  "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",
                                  "type": "string"
                                },
                                "data_rate_index": {
                                  "default": "DATA_RATE_0",
                                  "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"
                                  ],
                                  "type": "string"
                                },
                                "frequency": {
                                  "description": "The frequency (Hz) used by the wake on radio message.",
                                  "format": "uint64",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "uplink_forwarding_rules": {
                              "description": "Configured uplink forwarding rules.",
                              "items": {
                                "properties": {
                                  "device_id": {
                                    "description": "End device identifier of the served end device.",
                                    "type": "string"
                                  },
                                  "last_w_f_cnt": {
                                    "description": "Last wake on radio frame counter used by the served end device.",
                                    "format": "int64",
                                    "type": "integer"
                                  },
                                  "limits": {
                                    "properties": {
                                      "bucket_size": {
                                        "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                        "enum": [
                                          "RELAY_LIMIT_BUCKET_SIZE_1",
                                          "RELAY_LIMIT_BUCKET_SIZE_2",
                                          "RELAY_LIMIT_BUCKET_SIZE_4",
                                          "RELAY_LIMIT_BUCKET_SIZE_12"
                                        ],
                                        "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                        "type": "string"
                                      },
                                      "reload_rate": {
                                        "description": "The number of tokens which are replenished in the bucket every hour.",
                                        "format": "int64",
                                        "type": "integer"
                                      }
                                    },
                                    "type": "object"
                                  },
                                  "session_key_id": {
                                    "description": "Session key ID of the session keys used to derive the root relay session key.",
                                    "format": "byte",
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "type": "array"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "rx1_data_rate_offset": {
                      "default": "DATA_RATE_OFFSET_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rx1_delay": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rx2_data_rate_index": {
                      "default": "DATA_RATE_0",
                      "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"
                      ],
                      "type": "string"
                    },
                    "rx2_frequency": {
                      "description": "Frequency for Rx2 (Hz).",
                      "format": "uint64",
                      "type": "string"
                    },
                    "uplink_dwell_time": {
                      "properties": {
                        "value": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "device_class": {
                  "default": "CLASS_A",
                  "enum": [
                    "CLASS_A",
                    "CLASS_B",
                    "CLASS_C"
                  ],
                  "type": "string"
                },
                "last_adr_change_f_cnt_up": {
                  "description": "Frame counter of uplink, which confirmed the last ADR parameter change.",
                  "format": "int64",
                  "type": "integer"
                },
                "last_confirmed_downlink_at": {
                  "description": "Time when the last confirmed downlink message or MAC command was scheduled.",
                  "format": "date-time",
                  "type": "string"
                },
                "last_dev_status_f_cnt_up": {
                  "description": "Frame counter value of last uplink containing DevStatusAns.",
                  "format": "int64",
                  "type": "integer"
                },
                "last_downlink_at": {
                  "description": "Time when the last downlink message was scheduled.",
                  "format": "date-time",
                  "type": "string"
                },
                "last_network_initiated_downlink_at": {
                  "description": "Time when the last network-initiated downlink message was scheduled.",
                  "format": "date-time",
                  "type": "string"
                },
                "lorawan_version": {
                  "default": "MAC_UNKNOWN",
                  "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"
                  ],
                  "type": "string"
                },
                "pending_application_downlink": {
                  "properties": {
                    "attributes": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Attributes for devices, set by the Application Server while handling the message.",
                      "type": "object"
                    },
                    "class_b_c": {
                      "properties": {
                        "absolute_time": {
                          "description": "Absolute time when the downlink message should be transmitted.\nThis requires the gateway to have GPS time synchronization.\nIf the time is in the past or if there is a scheduling conflict, the downlink message fails.\nIf null, the time is selected based on slot availability. This is recommended in class B mode.",
                          "format": "date-time",
                          "type": "string"
                        },
                        "gateways": {
                          "description": "Possible gateway identifiers, antenna index, and group index to use for this downlink message.\nThe Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot.\nIf none of the gateways can be selected, the downlink message fails.\nIf empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks.\nIf group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.",
                          "items": {
                            "properties": {
                              "antenna_index": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "gateway_ids": {
                                "properties": {
                                  "eui": {
                                    "description": "Secondary identifier, which can only be used in specific requests.",
                                    "example": "70B3D57ED000ABCD",
                                    "format": "string",
                                    "type": "string"
                                  },
                                  "gateway_id": {
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "group_index": {
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "confirmed": {
                      "type": "boolean"
                    },
                    "confirmed_retry": {
                      "properties": {
                        "attempt": {
                          "description": "The number of attempted confirmed downlink acknowledgements.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "max_attempts": {
                          "description": "The maximum number of confirmed downlink acknowledgement attempts.\nIf null, the Application Server configuration is used instead.",
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "decoded_payload": {
                      "description": "The decoded frame payload of the downlink message.\nWhen scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters),\nthis fields acts as input for the downlink encoder, and the output is set to frm_payload.\nWhen reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.",
                      "type": "object"
                    },
                    "decoded_payload_warnings": {
                      "description": "Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink).",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "f_cnt": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "f_port": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "frm_payload": {
                      "description": "The frame payload of the downlink message.\nThe payload is encrypted if the skip_payload_crypto field of the EndDevice\nis true.",
                      "format": "byte",
                      "type": "string"
                    },
                    "locations": {
                      "additionalProperties": {
                        "properties": {
                          "accuracy": {
                            "description": "The accuracy of the location (meters).",
                            "format": "int32",
                            "type": "integer"
                          },
                          "altitude": {
                            "description": "The altitude (meters), where 0 is the mean sea level.",
                            "format": "int32",
                            "type": "integer"
                          },
                          "latitude": {
                            "description": "The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative.",
                            "format": "double",
                            "type": "number"
                          },
                          "longitude": {
                            "description": "The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative.",
                            "format": "double",
                            "type": "number"
                          },
                          "source": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "description": "End device location metadata, set by the Application Server while handling the message.",
                      "type": "object"
                    },
                    "network_ids": {
                      "description": "Identifies a Network Server.",
                      "properties": {
                        "cluster_address": {
                          "description": "Cluster address of the Network Server.",
                          "type": "string"
                        },
                        "cluster_id": {
                          "description": "Cluster identifier of the Network Server.",
                          "type": "string"
                        },
                        "net_id": {
                          "description": "LoRa Alliance NetID.",
                          "example": "000013",
                          "format": "string",
                          "type": "string"
                        },
                        "ns_id": {
                          "description": "LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance.",
                          "example": "70B3D57ED000ABCD",
                          "format": "string",
                          "type": "string"
                        },
                        "tenant_address": {
                          "description": "Optional tenant address for multi-tenant deployments.",
                          "type": "string"
                        },
                        "tenant_id": {
                          "description": "Optional tenant identifier for multi-tenant deployments.",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "priority": {
                      "default": "LOWEST",
                      "enum": [
                        "LOWEST",
                        "LOW",
                        "BELOW_NORMAL",
                        "NORMAL",
                        "ABOVE_NORMAL",
                        "HIGH",
                        "HIGHEST"
                      ],
                      "type": "string"
                    },
                    "session_key_id": {
                      "description": "Join Server issued identifier for the session keys used by this downlink.",
                      "format": "byte",
                      "type": "string"
                    },
                    "version_ids": {
                      "description": "Identifies an end device model with version information.",
                      "properties": {
                        "band_id": {
                          "type": "string"
                        },
                        "brand_id": {
                          "type": "string"
                        },
                        "firmware_version": {
                          "type": "string"
                        },
                        "hardware_version": {
                          "type": "string"
                        },
                        "model_id": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "pending_join_request": {
                  "properties": {
                    "cf_list": {
                      "properties": {
                        "ch_masks": {
                          "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                          "items": {
                            "type": "boolean"
                          },
                          "type": "array"
                        },
                        "freq": {
                          "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                          "items": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "type": "array"
                        },
                        "type": {
                          "default": "FREQUENCIES",
                          "enum": [
                            "FREQUENCIES",
                            "CHANNEL_MASKS"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "downlink_settings": {
                      "properties": {
                        "opt_neg": {
                          "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                          "type": "boolean"
                        },
                        "rx1_dr_offset": {
                          "default": "DATA_RATE_OFFSET_0",
                          "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"
                          ],
                          "type": "string"
                        },
                        "rx2_dr": {
                          "default": "DATA_RATE_0",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "rx_delay": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "pending_relay_downlink": {
                  "properties": {
                    "raw_payload": {
                      "format": "byte",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "pending_requests": {
                  "description": "Pending MAC requests(i.e. sent requests, for which no response has been received yet).\nRegenerated on each downlink.",
                  "items": {
                    "properties": {
                      "adr_param_setup_req": {
                        "properties": {
                          "adr_ack_delay_exponent": {
                            "default": "ADR_ACK_DELAY_1",
                            "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"
                            ],
                            "type": "string"
                          },
                          "adr_ack_limit_exponent": {
                            "default": "ADR_ACK_LIMIT_1",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "beacon_freq_ans": {
                        "properties": {
                          "frequency_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "beacon_freq_req": {
                        "properties": {
                          "frequency": {
                            "description": "Frequency of the Class B beacons (Hz).",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "beacon_timing_ans": {
                        "properties": {
                          "channel_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "delay": {
                            "description": "(uint16) See LoRaWAN specification.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "cid": {
                        "default": "CID_RFU_0",
                        "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"
                        ],
                        "title": "- CID_BEACON_TIMING: Deprecated",
                        "type": "string"
                      },
                      "dev_status_ans": {
                        "properties": {
                          "battery": {
                            "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "margin": {
                            "description": "SNR of the last downlink (dB; [-32, +31]).",
                            "format": "int32",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "device_mode_conf": {
                        "properties": {
                          "class": {
                            "default": "CLASS_A",
                            "enum": [
                              "CLASS_A",
                              "CLASS_B",
                              "CLASS_C"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "device_mode_ind": {
                        "properties": {
                          "class": {
                            "default": "CLASS_A",
                            "enum": [
                              "CLASS_A",
                              "CLASS_B",
                              "CLASS_C"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "device_time_ans": {
                        "properties": {
                          "time": {
                            "format": "date-time",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "dl_channel_ans": {
                        "properties": {
                          "channel_index_ack": {
                            "type": "boolean"
                          },
                          "frequency_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "dl_channel_req": {
                        "properties": {
                          "channel_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "frequency": {
                            "description": "Downlink channel frequency (Hz).",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "duty_cycle_req": {
                        "properties": {
                          "max_duty_cycle": {
                            "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%.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "force_rejoin_req": {
                        "properties": {
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "max_retries": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "period_exponent": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          },
                          "rejoin_type": {
                            "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.",
                            "enum": [
                              "CONTEXT",
                              "SESSION",
                              "KEYS"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "link_adr_ans": {
                        "properties": {
                          "channel_mask_ack": {
                            "type": "boolean"
                          },
                          "data_rate_index_ack": {
                            "type": "boolean"
                          },
                          "tx_power_index_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "link_adr_req": {
                        "properties": {
                          "channel_mask": {
                            "items": {
                              "type": "boolean"
                            },
                            "type": "array"
                          },
                          "channel_mask_control": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "nb_trans": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "tx_power_index": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "link_check_ans": {
                        "properties": {
                          "gateway_count": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "margin": {
                            "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "new_channel_ans": {
                        "properties": {
                          "data_rate_ack": {
                            "type": "boolean"
                          },
                          "frequency_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "new_channel_req": {
                        "properties": {
                          "channel_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "frequency": {
                            "description": "Channel frequency (Hz).",
                            "format": "uint64",
                            "type": "string"
                          },
                          "max_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "min_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "ping_slot_channel_ans": {
                        "properties": {
                          "data_rate_index_ack": {
                            "type": "boolean"
                          },
                          "frequency_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "ping_slot_channel_req": {
                        "properties": {
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "Ping slot channel frequency (Hz).",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "ping_slot_info_req": {
                        "properties": {
                          "period": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "raw_payload": {
                        "format": "byte",
                        "type": "string"
                      },
                      "rejoin_param_setup_ans": {
                        "properties": {
                          "max_time_exponent_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "rejoin_param_setup_req": {
                        "properties": {
                          "max_count_exponent": {
                            "default": "REJOIN_COUNT_16",
                            "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"
                            ],
                            "type": "string"
                          },
                          "max_time_exponent": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rekey_conf": {
                        "properties": {
                          "minor_version": {
                            "default": "MINOR_RFU_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rekey_ind": {
                        "properties": {
                          "minor_version": {
                            "default": "MINOR_RFU_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "relay_conf_ans": {
                        "properties": {
                          "cad_periodicity_ack": {
                            "type": "boolean"
                          },
                          "default_channel_index_ack": {
                            "type": "boolean"
                          },
                          "second_channel_ack_offset_ack": {
                            "type": "boolean"
                          },
                          "second_channel_data_rate_index_ack": {
                            "type": "boolean"
                          },
                          "second_channel_frequency_ack": {
                            "type": "boolean"
                          },
                          "second_channel_index_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "relay_conf_req": {
                        "properties": {
                          "configuration": {
                            "properties": {
                              "cad_periodicity": {
                                "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                                "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"
                                ],
                                "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                                "type": "string"
                              },
                              "default_channel_index": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "second_channel": {
                                "properties": {
                                  "ack_offset": {
                                    "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                    "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"
                                    ],
                                    "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",
                                    "type": "string"
                                  },
                                  "data_rate_index": {
                                    "default": "DATA_RATE_0",
                                    "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"
                                    ],
                                    "type": "string"
                                  },
                                  "frequency": {
                                    "description": "The frequency (Hz) used by the wake on radio message.",
                                    "format": "uint64",
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "relay_configure_fwd_limit_ans": {
                        "type": "object"
                      },
                      "relay_configure_fwd_limit_req": {
                        "properties": {
                          "global_uplink_limits": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "join_request_limits": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "notify_limits": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "overall_limits": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "reset_limit_counter": {
                            "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "enum": [
                              "RELAY_RESET_LIMIT_COUNTER_ZERO",
                              "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                              "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                              "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "relay_ctrl_uplink_list_ans": {
                        "properties": {
                          "rule_index_ack": {
                            "type": "boolean"
                          },
                          "w_f_cnt": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "relay_ctrl_uplink_list_req": {
                        "properties": {
                          "action": {
                            "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                            "enum": [
                              "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                              "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                            ],
                            "type": "string"
                          },
                          "rule_index": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "relay_end_device_conf_ans": {
                        "properties": {
                          "backoff_ack": {
                            "type": "boolean"
                          },
                          "second_channel_data_rate_index_ack": {
                            "type": "boolean"
                          },
                          "second_channel_frequency_ack": {
                            "type": "boolean"
                          },
                          "second_channel_index_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "relay_end_device_conf_req": {
                        "properties": {
                          "configuration": {
                            "properties": {
                              "always": {
                                "type": "object"
                              },
                              "backoff": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "dynamic": {
                                "properties": {
                                  "smart_enable_level": {
                                    "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                    "enum": [
                                      "RELAY_SMART_ENABLE_LEVEL_8",
                                      "RELAY_SMART_ENABLE_LEVEL_16",
                                      "RELAY_SMART_ENABLE_LEVEL_32",
                                      "RELAY_SMART_ENABLE_LEVEL_64"
                                    ],
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "end_device_controlled": {
                                "type": "object"
                              },
                              "second_channel": {
                                "properties": {
                                  "ack_offset": {
                                    "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                    "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"
                                    ],
                                    "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",
                                    "type": "string"
                                  },
                                  "data_rate_index": {
                                    "default": "DATA_RATE_0",
                                    "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"
                                    ],
                                    "type": "string"
                                  },
                                  "frequency": {
                                    "description": "The frequency (Hz) used by the wake on radio message.",
                                    "format": "uint64",
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "serving_device_id": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "relay_notify_new_end_device_req": {
                        "properties": {
                          "dev_addr": {
                            "example": "2600ABCD",
                            "format": "string",
                            "type": "string"
                          },
                          "rssi": {
                            "format": "int32",
                            "type": "integer"
                          },
                          "snr": {
                            "format": "int32",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "relay_update_uplink_list_ans": {
                        "type": "object"
                      },
                      "relay_update_uplink_list_req": {
                        "properties": {
                          "dev_addr": {
                            "example": "2600ABCD",
                            "format": "string",
                            "type": "string"
                          },
                          "device_id": {
                            "type": "string"
                          },
                          "forward_limits": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "root_wor_s_key": {
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          },
                          "rule_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "session_key_id": {
                            "format": "byte",
                            "type": "string"
                          },
                          "w_f_cnt": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "reset_conf": {
                        "properties": {
                          "minor_version": {
                            "default": "MINOR_RFU_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "reset_ind": {
                        "properties": {
                          "minor_version": {
                            "default": "MINOR_RFU_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rx_param_setup_ans": {
                        "properties": {
                          "rx1_data_rate_offset_ack": {
                            "type": "boolean"
                          },
                          "rx2_data_rate_index_ack": {
                            "type": "boolean"
                          },
                          "rx2_frequency_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "rx_param_setup_req": {
                        "properties": {
                          "rx1_data_rate_offset": {
                            "default": "DATA_RATE_OFFSET_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "rx2_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "rx2_frequency": {
                            "description": "Rx2 frequency (Hz).",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rx_timing_setup_req": {
                        "properties": {
                          "delay": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "tx_param_setup_req": {
                        "properties": {
                          "downlink_dwell_time": {
                            "type": "boolean"
                          },
                          "max_eirp_index": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          },
                          "uplink_dwell_time": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "ping_slot_periodicity": {
                  "properties": {
                    "value": {
                      "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.",
                      "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"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "queued_join_accept": {
                  "properties": {
                    "correlation_ids": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "dev_addr": {
                      "example": "2600ABCD",
                      "format": "string",
                      "type": "string"
                    },
                    "keys": {
                      "description": "Session keys for a LoRaWAN session.\nOnly the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.",
                      "properties": {
                        "app_s_key": {
                          "properties": {
                            "encrypted_key": {
                              "format": "byte",
                              "type": "string"
                            },
                            "kek_label": {
                              "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                              "type": "string"
                            },
                            "key": {
                              "description": "The unencrypted AES key.",
                              "example": "0123456789ABCDEF0123456789ABCDEF",
                              "format": "string",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "f_nwk_s_int_key": {
                          "properties": {
                            "encrypted_key": {
                              "format": "byte",
                              "type": "string"
                            },
                            "kek_label": {
                              "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                              "type": "string"
                            },
                            "key": {
                              "description": "The unencrypted AES key.",
                              "example": "0123456789ABCDEF0123456789ABCDEF",
                              "format": "string",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "nwk_s_enc_key": {
                          "properties": {
                            "encrypted_key": {
                              "format": "byte",
                              "type": "string"
                            },
                            "kek_label": {
                              "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                              "type": "string"
                            },
                            "key": {
                              "description": "The unencrypted AES key.",
                              "example": "0123456789ABCDEF0123456789ABCDEF",
                              "format": "string",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "s_nwk_s_int_key": {
                          "properties": {
                            "encrypted_key": {
                              "format": "byte",
                              "type": "string"
                            },
                            "kek_label": {
                              "description": "The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.",
                              "type": "string"
                            },
                            "key": {
                              "description": "The unencrypted AES key.",
                              "example": "0123456789ABCDEF0123456789ABCDEF",
                              "format": "string",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "session_key_id": {
                          "description": "Join Server issued identifier for the session keys.\nThis ID can be used to request the keys from the Join Server in case the are lost.",
                          "format": "byte",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "net_id": {
                      "example": "000013",
                      "format": "string",
                      "type": "string"
                    },
                    "payload": {
                      "description": "Payload of the join-accept received from Join Server.",
                      "format": "byte",
                      "type": "string"
                    },
                    "request": {
                      "properties": {
                        "cf_list": {
                          "properties": {
                            "ch_masks": {
                              "description": "ChMasks controlling the channels to be used.\nLength of this field must be equal to the amount of uplink channels\ndefined by the selected frequency plan.",
                              "items": {
                                "type": "boolean"
                              },
                              "type": "array"
                            },
                            "freq": {
                              "description": "Frequencies to be broadcasted, in hecto-Hz.\nThese values are broadcasted as 24 bits unsigned integers.\nThis field should not contain default values.",
                              "items": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "type": "array"
                            },
                            "type": {
                              "default": "FREQUENCIES",
                              "enum": [
                                "FREQUENCIES",
                                "CHANNEL_MASKS"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "downlink_settings": {
                          "properties": {
                            "opt_neg": {
                              "description": "OptNeg is set if Network Server implements LoRaWAN 1.1 or greater.",
                              "type": "boolean"
                            },
                            "rx1_dr_offset": {
                              "default": "DATA_RATE_OFFSET_0",
                              "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"
                              ],
                              "type": "string"
                            },
                            "rx2_dr": {
                              "default": "DATA_RATE_0",
                              "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"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "rx_delay": {
                          "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.",
                          "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"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "queued_responses": {
                  "description": "Queued MAC responses.\nRegenerated on each uplink.",
                  "items": {
                    "properties": {
                      "adr_param_setup_req": {
                        "properties": {
                          "adr_ack_delay_exponent": {
                            "default": "ADR_ACK_DELAY_1",
                            "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"
                            ],
                            "type": "string"
                          },
                          "adr_ack_limit_exponent": {
                            "default": "ADR_ACK_LIMIT_1",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "beacon_freq_ans": {
                        "properties": {
                          "frequency_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "beacon_freq_req": {
                        "properties": {
                          "frequency": {
                            "description": "Frequency of the Class B beacons (Hz).",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "beacon_timing_ans": {
                        "properties": {
                          "channel_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "delay": {
                            "description": "(uint16) See LoRaWAN specification.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "cid": {
                        "default": "CID_RFU_0",
                        "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"
                        ],
                        "title": "- CID_BEACON_TIMING: Deprecated",
                        "type": "string"
                      },
                      "dev_status_ans": {
                        "properties": {
                          "battery": {
                            "description": "Device battery status.\n0 indicates that the device is connected to an external power source.\n1..254 indicates a battery level.\n255 indicates that the device was not able to measure the battery level.",
                            "format": "int64",
                            "type": "integer"
                          },
                          "margin": {
                            "description": "SNR of the last downlink (dB; [-32, +31]).",
                            "format": "int32",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "device_mode_conf": {
                        "properties": {
                          "class": {
                            "default": "CLASS_A",
                            "enum": [
                              "CLASS_A",
                              "CLASS_B",
                              "CLASS_C"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "device_mode_ind": {
                        "properties": {
                          "class": {
                            "default": "CLASS_A",
                            "enum": [
                              "CLASS_A",
                              "CLASS_B",
                              "CLASS_C"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "device_time_ans": {
                        "properties": {
                          "time": {
                            "format": "date-time",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "dl_channel_ans": {
                        "properties": {
                          "channel_index_ack": {
                            "type": "boolean"
                          },
                          "frequency_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "dl_channel_req": {
                        "properties": {
                          "channel_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "frequency": {
                            "description": "Downlink channel frequency (Hz).",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "duty_cycle_req": {
                        "properties": {
                          "max_duty_cycle": {
                            "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%.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "force_rejoin_req": {
                        "properties": {
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "max_retries": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "period_exponent": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          },
                          "rejoin_type": {
                            "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.",
                            "enum": [
                              "CONTEXT",
                              "SESSION",
                              "KEYS"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "link_adr_ans": {
                        "properties": {
                          "channel_mask_ack": {
                            "type": "boolean"
                          },
                          "data_rate_index_ack": {
                            "type": "boolean"
                          },
                          "tx_power_index_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "link_adr_req": {
                        "properties": {
                          "channel_mask": {
                            "items": {
                              "type": "boolean"
                            },
                            "type": "array"
                          },
                          "channel_mask_control": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "nb_trans": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "tx_power_index": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "link_check_ans": {
                        "properties": {
                          "gateway_count": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "margin": {
                            "description": "Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor.",
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "new_channel_ans": {
                        "properties": {
                          "data_rate_ack": {
                            "type": "boolean"
                          },
                          "frequency_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "new_channel_req": {
                        "properties": {
                          "channel_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "frequency": {
                            "description": "Channel frequency (Hz).",
                            "format": "uint64",
                            "type": "string"
                          },
                          "max_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "min_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "ping_slot_channel_ans": {
                        "properties": {
                          "data_rate_index_ack": {
                            "type": "boolean"
                          },
                          "frequency_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "ping_slot_channel_req": {
                        "properties": {
                          "data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "frequency": {
                            "description": "Ping slot channel frequency (Hz).",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "ping_slot_info_req": {
                        "properties": {
                          "period": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "raw_payload": {
                        "format": "byte",
                        "type": "string"
                      },
                      "rejoin_param_setup_ans": {
                        "properties": {
                          "max_time_exponent_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "rejoin_param_setup_req": {
                        "properties": {
                          "max_count_exponent": {
                            "default": "REJOIN_COUNT_16",
                            "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"
                            ],
                            "type": "string"
                          },
                          "max_time_exponent": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rekey_conf": {
                        "properties": {
                          "minor_version": {
                            "default": "MINOR_RFU_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rekey_ind": {
                        "properties": {
                          "minor_version": {
                            "default": "MINOR_RFU_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "relay_conf_ans": {
                        "properties": {
                          "cad_periodicity_ack": {
                            "type": "boolean"
                          },
                          "default_channel_index_ack": {
                            "type": "boolean"
                          },
                          "second_channel_ack_offset_ack": {
                            "type": "boolean"
                          },
                          "second_channel_data_rate_index_ack": {
                            "type": "boolean"
                          },
                          "second_channel_frequency_ack": {
                            "type": "boolean"
                          },
                          "second_channel_index_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "relay_conf_req": {
                        "properties": {
                          "configuration": {
                            "properties": {
                              "cad_periodicity": {
                                "default": "RELAY_CAD_PERIODICITY_1_SECOND",
                                "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"
                                ],
                                "title": "- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic",
                                "type": "string"
                              },
                              "default_channel_index": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "second_channel": {
                                "properties": {
                                  "ack_offset": {
                                    "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                    "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"
                                    ],
                                    "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",
                                    "type": "string"
                                  },
                                  "data_rate_index": {
                                    "default": "DATA_RATE_0",
                                    "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"
                                    ],
                                    "type": "string"
                                  },
                                  "frequency": {
                                    "description": "The frequency (Hz) used by the wake on radio message.",
                                    "format": "uint64",
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "relay_configure_fwd_limit_ans": {
                        "type": "object"
                      },
                      "relay_configure_fwd_limit_req": {
                        "properties": {
                          "global_uplink_limits": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "join_request_limits": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "notify_limits": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "overall_limits": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "reset_limit_counter": {
                            "default": "RELAY_RESET_LIMIT_COUNTER_ZERO",
                            "enum": [
                              "RELAY_RESET_LIMIT_COUNTER_ZERO",
                              "RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE",
                              "RELAY_RESET_LIMIT_COUNTER_MAX_VALUE",
                              "RELAY_RESET_LIMIT_COUNTER_NO_RESET"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "relay_ctrl_uplink_list_ans": {
                        "properties": {
                          "rule_index_ack": {
                            "type": "boolean"
                          },
                          "w_f_cnt": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "relay_ctrl_uplink_list_req": {
                        "properties": {
                          "action": {
                            "default": "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                            "enum": [
                              "RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT",
                              "RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE"
                            ],
                            "type": "string"
                          },
                          "rule_index": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "relay_end_device_conf_ans": {
                        "properties": {
                          "backoff_ack": {
                            "type": "boolean"
                          },
                          "second_channel_data_rate_index_ack": {
                            "type": "boolean"
                          },
                          "second_channel_frequency_ack": {
                            "type": "boolean"
                          },
                          "second_channel_index_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "relay_end_device_conf_req": {
                        "properties": {
                          "configuration": {
                            "properties": {
                              "always": {
                                "type": "object"
                              },
                              "backoff": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "dynamic": {
                                "properties": {
                                  "smart_enable_level": {
                                    "default": "RELAY_SMART_ENABLE_LEVEL_8",
                                    "enum": [
                                      "RELAY_SMART_ENABLE_LEVEL_8",
                                      "RELAY_SMART_ENABLE_LEVEL_16",
                                      "RELAY_SMART_ENABLE_LEVEL_32",
                                      "RELAY_SMART_ENABLE_LEVEL_64"
                                    ],
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "end_device_controlled": {
                                "type": "object"
                              },
                              "second_channel": {
                                "properties": {
                                  "ack_offset": {
                                    "default": "RELAY_SECOND_CH_ACK_OFFSET_0",
                                    "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"
                                    ],
                                    "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",
                                    "type": "string"
                                  },
                                  "data_rate_index": {
                                    "default": "DATA_RATE_0",
                                    "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"
                                    ],
                                    "type": "string"
                                  },
                                  "frequency": {
                                    "description": "The frequency (Hz) used by the wake on radio message.",
                                    "format": "uint64",
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              },
                              "serving_device_id": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "relay_notify_new_end_device_req": {
                        "properties": {
                          "dev_addr": {
                            "example": "2600ABCD",
                            "format": "string",
                            "type": "string"
                          },
                          "rssi": {
                            "format": "int32",
                            "type": "integer"
                          },
                          "snr": {
                            "format": "int32",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "relay_update_uplink_list_ans": {
                        "type": "object"
                      },
                      "relay_update_uplink_list_req": {
                        "properties": {
                          "dev_addr": {
                            "example": "2600ABCD",
                            "format": "string",
                            "type": "string"
                          },
                          "device_id": {
                            "type": "string"
                          },
                          "forward_limits": {
                            "properties": {
                              "bucket_size": {
                                "default": "RELAY_LIMIT_BUCKET_SIZE_1",
                                "enum": [
                                  "RELAY_LIMIT_BUCKET_SIZE_1",
                                  "RELAY_LIMIT_BUCKET_SIZE_2",
                                  "RELAY_LIMIT_BUCKET_SIZE_4",
                                  "RELAY_LIMIT_BUCKET_SIZE_12"
                                ],
                                "title": "- RELAY_LIMIT_BUCKET_SIZE_12: sic",
                                "type": "string"
                              },
                              "reload_rate": {
                                "description": "The number of tokens which are replenished in the bucket every hour.",
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "root_wor_s_key": {
                            "example": "0123456789ABCDEF0123456789ABCDEF",
                            "format": "string",
                            "type": "string"
                          },
                          "rule_index": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "session_key_id": {
                            "format": "byte",
                            "type": "string"
                          },
                          "w_f_cnt": {
                            "format": "int64",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "reset_conf": {
                        "properties": {
                          "minor_version": {
                            "default": "MINOR_RFU_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "reset_ind": {
                        "properties": {
                          "minor_version": {
                            "default": "MINOR_RFU_0",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rx_param_setup_ans": {
                        "properties": {
                          "rx1_data_rate_offset_ack": {
                            "type": "boolean"
                          },
                          "rx2_data_rate_index_ack": {
                            "type": "boolean"
                          },
                          "rx2_frequency_ack": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "rx_param_setup_req": {
                        "properties": {
                          "rx1_data_rate_offset": {
                            "default": "DATA_RATE_OFFSET_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "rx2_data_rate_index": {
                            "default": "DATA_RATE_0",
                            "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"
                            ],
                            "type": "string"
                          },
                          "rx2_frequency": {
                            "description": "Rx2 frequency (Hz).",
                            "format": "uint64",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "rx_timing_setup_req": {
                        "properties": {
                          "delay": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "tx_param_setup_req": {
                        "properties": {
                          "downlink_dwell_time": {
                            "type": "boolean"
                          },
                          "max_eirp_index": {
                            "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.",
                            "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"
                            ],
                            "type": "string"
                          },
                          "uplink_dwell_time": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "recent_downlinks": {
                  "description": "Recent data downlink messages sorted by time.\nThe number of messages stored may depend on configuration.",
                  "items": {
                    "description": "A minimal DownlinkMessage definition which is binary compatible with the top level DownlinkMessage message.\nUsed for type safe recent downlink storage.",
                    "properties": {
                      "correlation_ids": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "payload": {
                        "properties": {
                          "m_hdr": {
                            "properties": {
                              "m_type": {
                                "default": "JOIN_REQUEST",
                                "enum": [
                                  "JOIN_REQUEST",
                                  "JOIN_ACCEPT",
                                  "UNCONFIRMED_UP",
                                  "UNCONFIRMED_DOWN",
                                  "CONFIRMED_UP",
                                  "CONFIRMED_DOWN",
                                  "REJOIN_REQUEST",
                                  "PROPRIETARY"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "mac_payload": {
                            "properties": {
                              "f_port": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "full_f_cnt": {
                                "format": "int64",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "recent_mac_command_identifiers": {
                  "description": "MAC command identifiers sent by the end device in the last received uplink.\nThe Network Server may choose to store only certain types of MAC\ncommand identifiers in the underlying implementation.",
                  "items": {
                    "default": "CID_RFU_0",
                    "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",