openapi: 3.0.1 info: title: uCentral gateway API description: A process to manage configuration for devices. version: 2.11.0 license: name: BSD3 url: https://github.com/Telecominfraproject/wlan-cloud-ucentralgw/blob/master/LICENSE contact: name: Arilia Support email: ucentralsupport@arilia.com url: https://www.ucentral.info/support servers: - url: 'https://localhost:16002/api/v1' security: - bearerAuth: [] - ApiKeyAuth: [] components: securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-API-KEY bearerAuth: type: http scheme: bearer bearerFormat: JWT responses: NotFound: $ref: 'https://github.com/Telecominfraproject/wlan-cloud-ucentralsec/blob/main/openpapi/owsec.yaml#/components/responses/NotFound' Unauthorized: $ref: 'https://github.com/Telecominfraproject/wlan-cloud-ucentralsec/blob/main/openpapi/owsec.yaml#/components/responses/Unauthorized' Success: $ref: 'https://github.com/Telecominfraproject/wlan-cloud-ucentralsec/blob/main/openpapi/owsec.yaml#/components/responses/Success' BadRequest: $ref: 'https://github.com/Telecominfraproject/wlan-cloud-ucentralsec/blob/main/openpapi/owsec.yaml#/components/responses/BadRequest' schemas: DeviceType: type: string default: ap enum: - ap - switch DeviceRestrictionsKeyInfo: type: object properties: vendor: type: string algo: type: string DeviceRestrictions: type: object properties: dfs: type: boolean ssh: type: boolean rtty: type: boolean tty: type: boolean developer: type: boolean upgrade: type: boolean commands: type: boolean country: type: array items: type: string key_info: $ref: '#/components/schemas/DeviceRestrictionsKeyInfo' Device: type: object description: Definition of uCentral device required: - deviceType properties: owner: type: string format: uuid location: type: string format: uuid venue: type: string format: uuid serialNumber: type: string deviceType: $ref: '#/components/schemas/DeviceType' macAddress: type: string manufacturer: type: string UUID: type: integer format: int64 configuration: type: string notes: type: array items: $ref: '#/components/schemas/NoteInfo' createdTimestamp: type: integer format: int64 lastConfigurationChange: type: integer format: int64 lastConfigurationDownload: type: integer format: int64 firmware: type: string devicePassword: type: string subscriber: type: string format: uuid entity: type: string format: uuid modified: type: integer format: int64 locale: type: string minLength: 2 maxLength: 2 restrictedDevice: type: boolean default: false certificateExpiryDate: type: integer format: int64 pendingConfiguration: type: string pendingConfigurationCmd: type: string format: uuid restrictionDetails: $ref: '#/components/schemas/DeviceRestrictions' simulated: type: boolean lastRecordedContact: type: integer format: int64 blackListed: type: boolean readOnly: true DeviceWithStatus: type: object description: Definition of uCentral device required: - deviceType properties: owner: type: string format: uuid location: type: string format: uuid venue: type: string format: uuid serialNumber: type: string deviceType: $ref: '#/components/schemas/DeviceType' macAddress: type: string manufacturer: type: string UUID: type: integer format: int64 configuration: type: string compatible: type: string fwUpdatePolicy: type: string notes: type: string createdTimestamp: type: integer format: int64 lastConfigurationChange: type: integer format: int64 lastConfigurationDownload: type: integer format: int64 lastFWUpdate: type: integer format: int64 firmware: type: string connected: type: boolean ipAddress: type: string txBytes: type: integer format: int64 rxBytes: type: integer format: int64 associations_2G: type: integer format: int64 associations_5G: type: integer format: int64 devicePassword: type: string lastContact: type: integer format: int64 subscriber: type: string format: uuid entity: type: string format: uuid modified: type: integer format: int64 locale: type: string minLength: 2 maxLength: 2 started: type: integer format: int64 sessionId: type: integer format: int64 connectionCompletionTime: type: number format: double totalConnectionTime: type: integer format: int64 restrictedDevice: type: boolean default: false certificateDate: type: integer format: int64 pendingConfiguration: type: string pendingConfigurationCmd: type: string format: uuid restrictionDetails: $ref: '#/components/schemas/DeviceRestrictions' hasGPS: type: boolean sanity: type: integer format: int64 memoryUsed: type: number format: float load: type: number format: float temperature: type: number format: float connectReason: type: string blackListed: type: boolean readOnly: true DeviceList: type: object description: Definition of uCentral device list properties: devices: type: array items: $ref : '#/components/schemas/Device' DeviceListWithStatus: type: object description: Definition of uCentral device list including device status. properties: devicesWithStatus: type: array items: $ref : '#/components/schemas/DeviceWithStatus' SerialNumberList: type: object description: List of serial numbers. properties: serialNumbers: type: array items: type: string DeviceCount: type: object description: The number of devices in the DB. properties: count: type: integer format: int64 DeviceStatus: type: object description: Current device status. properties: serialNumber: type: string ipAddress: type: string txBytes: type: integer format: int64 rxBytes: type: integer format: int64 messageCount: type: integer format: int64 UUID: type: integer format: int64 connected: type: boolean lastContact: type: integer format: int64 firmware: type: string associations_2G: type: integer format: int64 associations_5G: type: integer format: int64 associations_6G: type: integer format: int64 verifiedCertificate: type: string enum: - NO_CERTIFICATE, - VALID_CERTIFICATE, - MISMATCH_SERIAL, - VERIFIED - SIMULATED DeviceCapabilities: type: object description: Describes the capabilities a device can support. properties: serialNumber: type: string capabilities: type: string lastUpdate: type: integer format: int64 firstUpdate: type: integer format: int64 DeviceConnectionStatistics: type: object description: Return some basic device statistics. properties: connectedDevices: type: integer format: int64 averageConnectionTime: type: integer format: int64 StatisticsDetails: type: object properties: serialNumber: type: string recorded: type: integer format: int64 UUID: type: integer format: int64 data: type: string StatisticsRecords: type: object properties: serialNumber: type: string values: type: array items: $ref: '#/components/schemas/StatisticsDetails' NameValuePair: type: object properties: name: type: string value: type: integer format: int64 InterfaceStatistics: type: object properties: name: type: string values: type: array items: $ref: '#/components/schemas/NameValuePair' CommandDetails: type: object properties: command: type: string payload: type: string when: type: integer format: int64 serialNumber: type: string CommandSubmitSuccess: description: The command was submitted successfully. properties: serialNumber: type: string UUID: type: string format: uuid DeviceConfigureRequest: type: object properties: serialNumber: type: string UUID: type: integer format: int64 configuration: type: string when: type: integer format: int64 DeviceLog: type: object properties: log: type: string recorded: type: integer format: int64 severity: type: integer format: int64 data: type: string logType: type: integer format: int64 example: - 0 normal logs - 1 crash logs - 2 reboot logs UUID: type: integer format: int64 DeviceLogList: type: object properties: serialNumber: type: string values: type: array items: $ref: '#/components/schemas/DeviceLog' HealthCheck: type: object properties: UUID: type: integer format: int64 sanity: type: integer format: int64 data: type: string recorded: type: integer format: int64 HealthCheckList: type: object properties: serialNumber: type: string values: type: array items: $ref: '#/components/schemas/HealthCheck' DefaultConfiguration: type: object properties: name: type: string modelIds: type: array items: type: string description: type: string configuration: type: string created: type: integer format: int64 lastModified: type: integer format: int64 platform: type: string enum: - ap - switch default: ap DefaultConfigurationList: properties: configurations: type: array items: $ref : '#/components/schemas/DefaultConfiguration' DefaultFirmware: type: object properties: deviceType: type: string description: type: string uri: type: string revision: type: string imageCreationDate: type: integer format: int64 created: type: integer format: int64 lastModified: type: integer format: int64 DefaultFirmwareList: type: object properties: firmwares: type: array items: $ref: '#/components/schemas/DefaultFirmware' UpgradeRequest: type: object properties: uri: type: string serialNumber: type: string when: type: integer format: int64 keepRedirector: type: boolean RebootRequest: type: object properties: serialNumber: type: string when: type: integer format: int64 ScriptRequest: type: object properties: serialNumber: type: string timeout: type: integer format: int64 default: 30 type: type: string enum: - shell - bundle - diagnostic script: type: string description: This is the content of the script and must be encoded with base64. This is only for a ScriptRequest scriptId: type: string when: type: integer format: int64 default: 0 signature: type: string deferred: type: boolean uri: type: string ScriptEntry: type: object properties: id: type: string name: type: string description: type: string uri: type: string content: type: string version: type: string type: enum: - shell - bundle created: type: integer modified: type: integer author: type: string restricted: type: array items: type: string deferred: type: boolean default: false timeout: type: integer default: 30 defaultUploadURI: type: string ScriptEntryList: type: object properties: scripts: type: array items: $ref: '#/components/schemas/ScriptEntry' FactoryRequest: type: object properties: serialNumber: type: string when: type: integer format: int64 keepRedirector: type: boolean LEDsRequest: type: object properties: serialNumber: type: string when: type: integer format: int64 duration: description: only applies to the blink pattern type: integer format: int64 pattern: type: string enum: - on - off - blink MessageRequest: type: object properties: serialNumber: type: string when: type: integer format: int64 message: type: string enum: - state - healthcheck TraceRequest: type: object properties: serialNumber: type: string when: type: integer format: int64 duration: type: integer format: int64 numberOfPackets: type: integer format: int64 network: type: string interface: type: string CommandInfo: type: object properties: UUID: type: string format: uuid command: type: string details: type: string serialNumber: type: string submitted: type: integer format: int64 executed: type: integer format: int64 completed: type: integer format: int64 when: type: integer format: int64 errorText: type: string results: type: string errorCode: type: integer format: int64 submittedBy: type: string status: type: string custom: type: integer format: int64 waitingForFile: type: integer format: int64 attachFile: type: integer format: int64 attachSize: type: integer format: int64 attachType: type: string CommandInfoList: type: object properties: commands: type: array items: $ref: '#/components/schemas/CommandInfo' DeviceDashboard: type: object properties: snapshot: type: integer format: int64 numberOfDevices: type: integer format: int64 commands: $ref: '#/components/schemas/TagIntPairList' upTimes: $ref: '#/components/schemas/TagIntPairList' memoryUsed: $ref: '#/components/schemas/TagIntPairList' load1: $ref: '#/components/schemas/TagIntPairList' load5: $ref: '#/components/schemas/TagIntPairList' load15: $ref: '#/components/schemas/TagIntPairList' vendors: $ref: '#/components/schemas/TagIntPairList' status: $ref: '#/components/schemas/TagIntPairList' type: $ref: '#/components/schemas/TagIntPairList' deviceType: $ref: '#/components/schemas/TagIntPairList' healths: $ref: '#/components/schemas/TagIntPairList' certificates: $ref: '#/components/schemas/TagIntPairList' lastContact: $ref: '#/components/schemas/TagIntPairList' associations: $ref: '#/components/schemas/TagIntPairList' TelemetryStreamRequest: type: object properties: serialNumber: type: string interval: type: integer description: 0 - means to stop streaming, values 1-120 in seconds. lifetime: type: integer format: int64 description: how long should the telemetry run kafka: type: boolean default: false description: set to true to start kafka telemetry, false to start websocket telemetry types: type: array items: type: string enum: - dhcp-snooping - wire-frames - state uuid: type: string format: uuid description: only valid when terminating a stream TelemetryStreamResponse: type: object properties: serialNumber: type: string uuid: type: string format: uuid uri: type: string format: uri example: wss://host.domain:port/endpoint action: type: string description: what action resulted from running the command status: type: object properties: running: type: boolean interval: type: integer websocketTimer: type: integer kafkaTimer: type: integer websocketClients: type: integer kafkaClients: type: integer RRM_Kick: type: object properties: action: type: string enum: - kick addr: type: string format: mac reason: type: integer default: 5 ban_time: type: integer format: int64 RRM_channel_switch: type: object properties: action: type: string enum: - channel_switch bssid: type: string format: mac channel: type: integer RRM_tx_power: type: object properties: action: type: string enum: - tx_power bssid: type: string format: mac level: type: integer RRM_beacon_request: type: object properties: action: type: string enum: - beacon_request addr: type: string format: mac ssid: type: string channel: type: integer RRM_bss_transition: type: object properties: action: type: string enum: - bss_transition addr: type: string format: mac neighbors: type: array items: type: string format: mac RRM_neighbors: type: object properties: action: type: string enum: - neighbors bssid: type: string format: mac neighbors: type: array items: type: string format: mac RRM_action: type: object oneOf: - $ref: '#/components/schemas/RRM_Kick' - $ref: '#/components/schemas/RRM_channel_switch' - $ref: '#/components/schemas/RRM_tx_power' - $ref: '#/components/schemas/RRM_beacon_request' - $ref: '#/components/schemas/RRM_bss_transition' - $ref: '#/components/schemas/RRM_neighbors' RRM_actions: type: object properties: actions: type: array items: $ref: '#/components/schemas/RRM_action' ######################################################################################### ## ## These are endpoints that all services in the uCentral stack must provide ## ######################################################################################### AnyPayload: type: object properties: Document: type: string StringList: type: object properties: list: type: array items: type: string TagValuePair: type: object properties: tag: type: string value: type: string TagValuePairList: type: object properties: tagList: type: array items: $ref: '#/components/schemas/TagValuePair' TagIntPair: type: object properties: tag: type: string value: type: integer format: int64 TagIntPairList: type: object properties: tagList: type: array items: $ref: '#/components/schemas/TagIntPair' SystemCommandDetails: type: object properties: command: type: string enum: - setloglevels - getloglevels - getSubSystemNames - getLogLevelNames - stats parameters: oneOf: - $ref: '#/components/schemas/StringList' - $ref: '#/components/schemas/TagValuePairList' NoteInfo: type: object properties: created: type: integer format: int64 createdBy: type: string note: type: string SystemInfoResults: type: object properties: version: type: string uptime: type: integer format: integer64 start: type: integer format: integer64 os: type: string processors: type: integer hostname: type: string certificates: type: array items: type: object properties: filename: type: string expires: type: integer format: int64 SystemResources: type: object properties: numberOfFileDescriptors: type: integer format: int64 currRealMem: type: integer format: int64 peakRealMem: type: integer format: int64 currVirtMem: type: integer format: int64 peakVirtMem: type: integer format: int64 SystemCommandResults: type: object oneOf: - $ref: '#/components/schemas/SystemResources' - $ref: '#/components/schemas/SystemInfoResults' - $ref: '#/components/schemas/StringList' - $ref: '#/components/schemas/TagValuePairList' SystemCommandSetLogLevel: type: object properties: command: type: string enum: - setloglevel subsystems: type: array items: $ref: '#/components/schemas/TagValuePair' SystemCommandReload: type: object properties: command: type: string enum: - reload subsystems: type: array items: type: string example: these are the SubSystems names retrieve with the GetSubSystemsNamesResult. SystemCommandGetLogLevels: type: object properties: command: type: string enum: - getloglevels SystemGetLogLevelsResult: type: object properties: taglist: type: array items: $ref: '#/components/schemas/TagValuePair' SystemCommandGetLogLevelNames: type: object properties: command: type: string enum: - getloglevelnames SystemCommandGetSubsystemNames: type: object properties: command: type: string enum: - getsubsystemnames SystemCommandGetLogLevelNamesResult: type: object properties: list: type: array items: type: string SystemGetSubSystemNamesResult: type: object properties: taglist: type: array items: $ref: '#/components/schemas/TagValuePair' ExtraSystemConfiguration: type: array items: type: object properties: parameterName: type: string parameterValue: type: string ######################################################################################### ## ## End of uCentral system-wide values ## ######################################################################################### BlackDeviceInfo: type: object properties: serialNumber: type: string created: type: integer format: int64 readOnly: true author: type: string readOnly: true reason: type: string BlackDeviceList: type: object properties: devices: type: array items: $ref: '#/components/schemas/BlackDeviceInfo' WifiBands: type: object properties: bands: type: array items: type: string enum: [ "2" , "5", "5l", "5u" , "6" ] WifiChannels: type: object properties: channels: type: array items: type: integer WifiScanRequest: type: object properties: serialNumber: type: string verbose: type: boolean activeScan: type: boolean selector: oneOf: - $ref: '#/components/schemas/WifiBands' - $ref: '#/components/schemas/WifiChannels' ies: type: array items: type: integer minimum: 0 maximum: 255 required: - serialNumber EventQueueRequest: type: object properties: serialNumber: type: string types: type: array items: type: string enum: - dhcp - rrm EventQueueResponse: type: object properties: serialNumber: type: string UUID: type: string format: uuid result: type: string RttySessionDetails: type: object properties: serialNumber: type: string server: type: string port: type: integer format: int32 token: type: string timeout: type: integer format: int32 connectionId: type: string started: type: integer format: int64 commandUUID: type: string viewport: type: integer format: int32 password: type: string CapabilitiesModel: type: object properties: deviceType: type: string capabilities: type: string CapabilitiesModelList: type: object properties: device_types: type: array items: $ref: '#/components/schemas/CapabilitiesModel' RadiusProxyServerEntry: type: object properties: name: type: string ip: type: string format: ip-addr port: type: integer weight: type: integer secret: type: string certificate: type: string radsec: type: boolean default: false radsecPort: type: integer minimum: 1 maximum: 65535 radsecSecret: type: string radsecCacerts: type: array items: type: string radsecCert: type: string description: this must be the base64 encoded of the entire content of the certificate file, including the -----BEGIN lines radsecKey: type: string description: this must be the base64 encoded of the entire content of the key file, including the -----BEGIN lines radsecRealms: description: each entry must be the base64 encoded of the entire content of the ca files, including the -----BEGIN lines type: array items: type: string ignore: type: boolean default: false RadiusProxyServerConfig: type: object properties: strategy: type: string enum: - random - round_robin - weighted monitor: type: boolean default: false monitorMethod: type: string enum: - none - https - radius methodParameters: type: array items: type: string servers: type: array items: $ref: '#/components/schemas/RadiusProxyServerEntry' RadiusProxyPool: type: object properties: name: type: string description: type: string authConfig: $ref: '#/components/schemas/RadiusProxyServerConfig' acctConfig: $ref: '#/components/schemas/RadiusProxyServerConfig' coaConfig: $ref: '#/components/schemas/RadiusProxyServerConfig' radsecPoolType: type: string enum: - generic - orion - globalreach - radsec default: generic poolProxyIp: type: string description: This is the fake IP for the entire pool example: - These addresses must match the addresses in the AP configuration and must start with 0.0 - 0.0.0.1 - 0.0.1.1 radsecPoolKeepAlive: type: integer description: The keep alive value in seconds. Usually 30s or less. format: int64 default: 25 enabled: type: boolean default: true RadiusProxyPoolList: type: object properties: pools: type: array items: $ref: '#/components/schemas/RadiusProxyPool' RadiusSession: type: object properties: started: type: integer format: int64 lastTransaction: type: integer format: int64 inputPackets: type: integer format: int64 outputPackets: type: integer format: int64 inputOctets: type: integer format: int64 outputOctets: type: integer format: int64 inputGigaWords: type: integer format: int64 outputGigaWords: type: integer format: int64 sessionTime: type: integer format: int64 destination: type: string userName: type: string accountingSessionId: type: string accountingMultiSessionId: type: string callingStationId: type: string RadiusSessionList: type: object properties: sessions: type: array items: $ref: '#/components/schemas/RadiusSession' RadiusCoADMParameters: type: object properties: accountingSessionId: type: string accountingMultiSessionId: type: string callingStationId: type: string chargeableUserIdentity: type: string userName: type: string DeviceTransferRequest: type: object properties: serialNumber: type: string format: uuid server: type: string format: hostname port: type: integer format: int32 DeviceCertificateUpdateRequest: type: object properties: serialNumber: type: string encodedCertificate: type: string format: base64 description: This is a base64 encoded string of the certificate bundle (the current bundle .tar.gz file from the PKI portal) ReenrollRequest: type: object properties: serialNumber: type: string when: type: integer format: int64 PowerCycleRequest: type: object properties: serial: type: string when: type: integer format: int64 ports: type: array items: type: object properties: name: type: string example: - Ethernet0 cycle: type: integer default: 10000 minimum: 1 maximum: 60000 description: off time in milliseconds PackageGetResponse: type: object properties: serial: type: string status: type: object properties: package: type: string text: type: string uuid: type: number PackageInstallRequest: type: object properties: serialNumber: type: string packages: type: array items: type: object properties: name: type: string url: type: string PackageInstallResponse: type: object properties: serial: type: string status: type: object properties: error: type: number packages: type: array items: type: object properties: name: type: string result: type: string text: type: string uuid: type: number PackageRemoveRequest: type: object properties: serialNumber: type: string packages: type: array items: type: object properties: name: type: string paths: /devices: get: tags: - Devices summary: Returns a list of devices. description: Get a list of devices. operationId: getDeviceList parameters: - in: query description: Pagination start (starts at 1. If not specified, 1 is assumed) name: offset schema: type: integer required: false - in: query description: Maximum number of entries to return (if absent, no limit is assumed) name: limit schema: type: integer required: false - in: query description: Filter the results name: filter schema: type: string required: false - in: query description: Supply a list of devices comma separated name: select schema: type: string example: serial1,serial2,serial3 - in: query description: only serial numbers of full device details name: serialOnly schema: type: boolean - in: query description: return the number of devices name: countOnly schema: type: boolean example: countOnly=true - in: query description: Return extra information with the device information name: deviceWithStatus schema: type: boolean - in: query description: return extended information name: orderBy schema: type: string example: serialNumber:a,created:d required: false - in: query description: return extended information name: orderSpec schema: type: boolean default: false required: false - in: query description: return extended information name: connectionStatistics schema: type: boolean default: false required: false - in: query description: return devices with their health value in between lowLimit and highLimit name: health schema: type: boolean default: false required: false - in: query description: lowLimit for the health selection criteria name: lowLimit schema: type: integer default: 30 required: false - in: query description: highLimit for the health selection criteria name: highLimits schema: type: integer default: 70 required: false - in: query description: return only devices matching a certain platform of AP or SWITCH name: platform schema: type: string default: ALL enum: - all - ap - switch required: false - in: query description: only devices which are not provisioned name: includeProvisioned schema: type: boolean responses: 200: description: List devices content: application/json: schema: oneOf: - $ref: '#/components/schemas/DeviceList' - $ref: '#/components/schemas/DeviceListWithStatus' - $ref: '#/components/schemas/SerialNumberList' - $ref: '#/components/schemas/DeviceCount' - $ref: '#/components/schemas/DeviceConnectionStatistics' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' delete: tags: - Devices summary: Delete a list of devices matching a criteria description: Delete a list of devices matching a criteria operationId: deleteDeviceList parameters: - in: query description: Supply a list of devices comma separated name: select schema: type: string example: serial1,serial2,serial3 required: false - in: query description: Only simulated devices name: simulatedOnly schema: type: boolean default: false required: false - in: query description: MAC address must match this pattern. Mutually exclusive with oldestContact name: macPattern schema: type: string example: - "aabbcc*" - "*aabbcc*" - "*cccddee" required: false - in: query description: lastRecordedContact older than this value. Mutually exclusive with macPattern name: oldestContact schema: type: integer format: int64 required: false - in: query description: Filter the results name: simulatedDevices schema: type: boolean required: false responses: 200: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /commands: get: tags: - Commands summary: Returns a list of commands. description: Get a list of commands. operationId: getCommandList parameters: - in: query name: serialNumber schema: type: string required: false - in: query name: startDate schema: type: integer format: int64 required: false - in: query name: endDate schema: type: integer format: int64 - in: query name: offset schema: type: integer format: int64 - in: query name: limit schema: type: integer format: int64 - in: query description: Selecting this option means the newest record will be returned. Use limit to select how many. name: newest schema: type: boolean required: false responses: 200: description: List commands content: application/json: schema: $ref: '#/components/schemas/CommandInfoList' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' delete: tags: - Commands summary: Delete some commands operationId: deleteCommands parameters: - in: query name: serialNumber schema: type: string required: true - in: query name: startDate schema: type: integer format: int64 required: false - in: query name: endDate schema: type: integer format: int64 responses: 204: description: Successfully deleted commands for the device. content: application/json: schema: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /command/{commandUUID}: get: tags: - Commands summary: Returns a specific command. description: Returns a specific command operationId: getACommandDetails parameters: - in: path name: commandUUID schema: type: string format: uuid required: true responses: 200: description: List commands content: application/json: schema: $ref: '#/components/schemas/CommandInfo' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' delete: tags: - Commands summary: Delete a specific command. description: Delete a specific command operationId: deleteACommand parameters: - in: path name: commandUUID schema: type: string format: uuid required: true responses: 204: description: Delete command success content: application/json: schema: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /default_configurations: get: tags: - Configurations summary: Retrieve the lists of all default configurations. description: Retrieve the lists of all default configurations. operationId: getDefaultConfigurations responses: 200: description: List of defautl configurations included content: application/json: schema: $ref: '#/components/schemas/DefaultConfigurationList' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /default_configuration/{name}: get: tags: - Configurations summary: Retrieve a default configuration. description: Retrieve a default configuration. operationId: getDefaultConfiguration parameters: - in: path name: name schema: type: string required: true responses: 200: description: Default configurations included content: application/json: schema: $ref: '#/components/schemas/DefaultConfiguration' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' post: tags: - Configurations summary: Create a default configuration. description: Create a default configuration. operationId: createDefaultConfiguration parameters: - in: path name: name schema: type: string required: true requestBody: description: Information used to create the new device content: application/json: schema: $ref: '#/components/schemas/DefaultConfiguration' responses: 200: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' delete: tags: - Configurations summary: Delete a default default configuration description: Delete a default default configuration operationId: deleteDefaultConfiguration parameters: - in: path name: name schema: type: string required: true responses: 204: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' put: tags: - Configurations summary: Update a default configuration description: Update a default configuration operationId: updateDefaultConfiguration parameters: - in: path name: name schema: type: string required: true requestBody: description: Configuration details content: application/json: schema: $ref: '#/components/schemas/DefaultConfiguration' responses: 200: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /default_firmwares: get: tags: - Firmware summary: Retrieve the lists of all default firmwares. description: Retrieve the lists of all default firmwares. operationId: getDefaultFirmwares responses: 200: description: List of default firmwares content: application/json: schema: $ref: '#/components/schemas/DefaultFirmwareList' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /default_firmware/{deviceType}: get: tags: - Firmware summary: Retrieve a default firmware. description: Retrieve a default firmware. operationId: getDefaultFirmware parameters: - in: path name: deviceType schema: type: string required: true responses: 200: description: Default firmware included content: application/json: schema: $ref: '#/components/schemas/DefaultFirmware' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' post: tags: - Firmware summary: Create a default firmware. description: Create a default firmware. operationId: createDefaultFirmware parameters: - in: path name: deviceType schema: type: string required: true requestBody: description: Information used to create the new firmware entry content: application/json: schema: $ref: '#/components/schemas/DefaultFirmware' responses: 200: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' delete: tags: - Firmware summary: Delete a default default firmware description: Delete a default default firmware operationId: deleteDefaultFirmware parameters: - in: path name: deviceType schema: type: string required: true responses: 204: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' put: tags: - Firmware summary: Update a default firmware description: Update a default firmware operationId: updateDefaultFirmware parameters: - in: path name: deviceType schema: type: string required: true requestBody: description: Firmware details content: application/json: schema: $ref: '#/components/schemas/DefaultFirmware' responses: 200: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}: get: tags: - Devices summary: Retrieve information for a single device. description: Retrieve all the inforamtion about a single device operationId: getDeviceInformation parameters: - in: path name: serialNumber schema: type: string required: true responses: 200: description: Device information content: application/json: schema: $ref: '#/components/schemas/Device' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' post: tags: - Devices summary: Create a new device. operationId: createNewDevice parameters: - in: path name: serialNumber schema: type: string required: true - in: query name: validateOnly schema: type: boolean required: false requestBody: description: Information used to create the new device content: application/json: schema: $ref: '#/components/schemas/Device' responses: 200: description: Successful device creation will return the device record with the proper device ID content: application/json: schema: $ref: '#/components/schemas/Device' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' put: tags: - Devices summary: Update a device. operationId: updateNewDevice parameters: - in: path name: serialNumber schema: type: string required: true requestBody: description: Information used to create the new device content: application/json: schema: $ref: '#/components/schemas/Device' responses: 200: description: Successful device creation will return the device record with the proper device ID content: application/json: schema: $ref: '#/components/schemas/Device' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' delete: tags: - Devices summary: Delete a single device. operationId: deleteDevice parameters: - in: path name: serialNumber schema: type: string required: true responses: 204: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/logs: get: tags: - Commands summary: Get the latest logs for a given device operationId: getDeviceLogs parameters: - in: path name: serialNumber schema: type: string required: true - in: query name: startDate schema: type: integer format: int64 required: false - in: query name: endDate schema: type: integer format: int64 - in: query name: offset schema: type: integer format: int64 - in: query name: limit schema: type: integer format: int64 - in: query name: logType description: 0=any kind of logs (default) 0=normal logs, 1=crash logs, 2=reboot logs only schema: type: integer format: int64 - in: query description: Selecting this option means the newest record will be returned. Use limit to select how many. name: newest schema: type: boolean required: false responses: 200: description: Array of device logs for this device content: application/json: schema: $ref: '#/components/schemas/DeviceLogList' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' delete: tags: - Commands summary: Delete some device logs. operationId: deleteDeviceLogs parameters: - in: path name: serialNumber schema: type: string required: true - in: query name: startDate schema: type: integer format: int64 required: false - in: query name: endDate schema: type: integer format: int64 - in: query name: logType description: 0=any kind of logs (default) 1=normal logs only 2=crash logs only schema: type: integer format: int64 responses: 204: description: Successfully deleted logs for the device. content: application/json: schema: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/healthchecks: get: tags: - Commands summary: Get the latest health checks for a given device. operationId: getDeviceHealthChecks parameters: - in: path name: serialNumber schema: type: string required: true - in: query name: startDate schema: type: integer format: int64 required: false - in: query name: endDate schema: type: integer format: int64 required: false - in: query name: offset schema: type: integer format: int64 required: false - in: query name: limit schema: type: integer format: int64 required: false - in: query description: Selecting this option means the newest record will be returned. Use limit to select how many. name: newest schema: type: boolean required: false - in: query description: Selecting this option means the last healthcheck will be returned. All other parameters will be ignored. name: lastOnly schema: type: boolean required: false responses: 200: description: Array of device health checks for this device content: application/json: schema: $ref: '#/components/schemas/HealthCheckList' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' delete: tags: - Commands summary: Delete some device health checks. operationId: deleteDeviceHealthChecks parameters: - in: path name: serialNumber schema: type: string required: true - in: query name: startDate schema: type: integer format: int64 required: false - in: query name: endDate schema: type: integer format: int64 required: false responses: 204: description: Successfully deleted health checks for the device. content: application/json: schema: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/capabilities: get: tags: - Commands summary: Get the latest capabilities for a given device. operationId: getDeviceCapabilities parameters: - in: path name: serialNumber schema: type: string required: true responses: 200: description: List of logs for this device content: application/json: schema: $ref: '#/components/schemas/DeviceCapabilities' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' delete: tags: - Commands summary: Delete the capabilities for a given device. operationId: deleteDeviceCapabilities parameters: - in: path name: serialNumber schema: type: string required: true responses: 204: description: List of logs for this device content: application/json: schema: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/statistics: get: tags: - Commands summary: Get the latest statistics for a given device. operationId: getDeviceStats parameters: - in: path name: serialNumber schema: type: string required: true - in: query name: startDate schema: type: integer format: int64 required: false - in: query name: endDate schema: type: integer format: int64 required: false - in: query name: offset schema: type: integer format: int64 required: false - in: query name: limit schema: type: integer format: int64 required: false - in: query description: Selecting this option means the Last Statistics block name: lastOnly schema: type: boolean required: false - in: query description: Selecting this option means the newest record will be returned. Use limit to select how many. name: newest schema: type: boolean required: false - in: query description: Return the number of matching records. name: countOnly schema: type: boolean required: false responses: 200: description: Array of statistics for this device content: application/json: schema: oneOf: - $ref: '#/components/schemas/StatisticsRecords' - $ref: '#/components/schemas/DeviceCount' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' delete: tags: - Commands summary: Get the latest statistics for a given device. operationId: deleteDeviceStats parameters: - in: path name: serialNumber schema: type: string required: true - in: query name: startDate schema: type: integer format: int64 required: false - in: query name: endDate schema: type: integer format: int64 required: false responses: 204: description: Array of statistics for this device content: application/json: schema: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/status: get: tags: - Commands summary: Get the latest status for a given device. operationId: getDeviceStatus parameters: - in: path name: serialNumber schema: type: string required: true responses: 200: description: Status for the given device content: application/json: schema: $ref: '#/components/schemas/DeviceStatus' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/configure: post: tags: - Commands summary: Configure a device. operationId: updateConfigurationForADevice parameters: - in: path name: serialNumber schema: type: string required: true requestBody: description: Command details content: application/json: schema: $ref: '#/components/schemas/DeviceConfigureRequest' responses: 200: $ref: '#/components/schemas/CommandInfo' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/ping: post: tags: - Commands summary: Configure a device. operationId: createConfigurationForADevice parameters: - in: path name: serialNumber schema: type: string required: true requestBody: description: Command details content: application/json: schema: type: object properties: serialNumber: type: string responses: 200: description: Successfull ping os a device content: application/json: schema: type: object properties: serialNumber: type: string currentUTCTime: type: integer format: int64 deviceUTCTime: type: integer format: int64 latency: type: number configurationUUID: type: integer format: int64 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/upgrade: post: tags: - Commands summary: Upgrade a device. operationId: UpgradeDeviceFirmware parameters: - in: path name: serialNumber schema: type: string required: true - in: query name: FWsignature schema: type: string required: false requestBody: description: Command details content: application/json: schema: $ref: '#/components/schemas/UpgradeRequest' responses: 200: $ref: '#/components/schemas/CommandInfo' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/reboot: post: tags: - Commands summary: Reboot a device. operationId: rebootDevice parameters: - in: path name: serialNumber schema: type: string required: true requestBody: description: Command details content: application/json: schema: $ref: '#/components/schemas/RebootRequest' responses: 200: $ref: '#/components/schemas/CommandInfo' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/script: post: tags: - Commands summary: Debug a device. operationId: debugDevice parameters: - in: path name: serialNumber schema: type: string required: true requestBody: description: Command details content: application/json: schema: $ref: '#/components/schemas/ScriptRequest' responses: 200: $ref: '#/components/schemas/CommandInfo' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/factory: post: tags: - Commands summary: Factory reset a device. operationId: factoryReset parameters: - in: path name: serialNumber schema: type: string required: true requestBody: description: Command details content: application/json: schema: $ref: '#/components/schemas/FactoryRequest' responses: 200: $ref: '#/components/schemas/CommandInfo' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/leds: post: tags: - Commands summary: Blink the LEDs on a device. operationId: ledsRequest parameters: - in: path name: serialNumber schema: type: string required: true requestBody: description: Command details content: application/json: schema: $ref: '#/components/schemas/LEDsRequest' responses: 200: $ref: '#/components/schemas/CommandInfo' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/trace: post: tags: - Commands summary: Launch a trace for a device. operationId: traceRequest parameters: - in: path name: serialNumber schema: type: string required: true requestBody: description: Command details content: application/json: schema: $ref: '#/components/schemas/TraceRequest' responses: 200: $ref: '#/components/schemas/CommandInfo' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/wifiscan: post: tags: - Commands summary: Launch a wifi scan for a device. operationId: wifiscanRequest parameters: - in: path name: serialNumber schema: type: string required: true requestBody: description: Scan details content: application/json: schema: $ref: '#/components/schemas/WifiScanRequest' responses: 200: $ref: '#/components/schemas/CommandInfo' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/request: post: tags: - Commands summary: Request a specific message operationId: messageRequest parameters: - in: path name: serialNumber schema: type: string required: true requestBody: description: Message request details content: application/json: schema: $ref: '#/components/schemas/MessageRequest' responses: 200: $ref: '#/components/schemas/CommandSubmitSuccess' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/eventqueue: post: tags: - Commands summary: Request a list of queued events. operationId: eventQueueRequest parameters: - in: path name: serialNumber schema: type: string required: true requestBody: description: Message request details content: application/json: schema: $ref: '#/components/schemas/EventQueueRequest' responses: 200: $ref: '#/components/schemas/EventQueueResponse' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/telemetry: post: tags: - Commands summary: Request a telemetry stream. operationId: eventTelemetryStreamRequest parameters: - in: path name: serialNumber schema: type: string required: true - in: query name: statusOnly schema: type: boolean default: false required: false requestBody: description: Message request details content: application/json: schema: $ref: '#/components/schemas/TelemetryStreamRequest' responses: 200: $ref: '#/components/schemas/TelemetryStreamResponse' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/rrm: post: tags: - Commands summary: Send RRM commands to a device. operationId: sendRRMcommandsForADevice parameters: - in: path name: serialNumber schema: type: string required: true requestBody: description: Commands to send content: application/json: schema: $ref: '#/components/schemas/RRM_actions' responses: 200: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/transfer: post: tags: - Commands summary: Transfer a device to a new redirector. operationId: transferDevice parameters: - in: path name: serialNumber schema: type: string required: true requestBody: description: Transfer details content: application/json: schema: type: array items: $ref: '#/components/schemas/DeviceTransferRequest' responses: 200: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/certupdate: post: tags: - Commands summary: Update the certificates for a device. operationId: updateCertificates parameters: - in: path name: serialNumber schema: type: string required: true requestBody: description: Certificate update details content: application/json: schema: type: array items: $ref: '#/components/schemas/DeviceCertificateUpdateRequest' responses: 200: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/reenroll: post: tags: - Commands summary: Reenroll operational certificate for the device. operationId: reenrollCertificate parameters: - in: path name: serialNumber schema: type: string required: true requestBody: description: Reenroll operational certificate for the device content: application/json: schema: $ref: '#/components/schemas/ReenrollRequest' responses: 200: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/powercycle: post: tags: - Commands summary: Perform PoE power cycle for some PoE ports. operationId: performPowerCycle parameters: - in: path name: serialNumber schema: type: string required: true requestBody: description: Certificate update details content: application/json: schema: type: array items: $ref: '#/components/schemas/PowerCycleRequest' responses: 200: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/package: get: tags: - Commands summary: Get package installed on the remote device. operationId: getDevicePackages parameters: - in: path name: serialNumber schema: type: string required: true - in: query name: pkgName schema: type: string required: true description: The name or identifier of the package to retrieve. responses: 200: description: Successful command execution content: application/json: schema: $ref: '#/components/schemas/PackageGetResponse' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' post: tags: - Commands summary: Install IPK files to remote device. operationId: postDevicePackages parameters: - in: path name: serialNumber schema: type: string required: true requestBody: description: Packages to be installed content: application/json: schema: $ref: '#/components/schemas/PackageInstallRequest' responses: 200: description: Successful command execution content: application/json: schema: $ref: '#/components/schemas/PackageInstallResponse' 400: $ref: '#/components/responses/BadRequest' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' delete: tags: - Commands summary: Remove install packages from remote device. operationId: deleteDevicePackages parameters: - in: path name: serialNumber schema: type: string required: true requestBody: description: Packages to be removed content: application/json: schema: $ref: '#/components/schemas/PackageRemoveRequest' responses: 200: content: application/json: schema: $ref: '#/components/schemas/PackageInstallResponse' 400: $ref: '#/components/responses/BadRequest' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /ouis: get: tags: - OUIs operationId: getOUIs summary: Get a list of OUIs. parameters: - in: query name: macList schema: type: string required: true responses: 200: $ref: '#/components/schemas/TagValuePairList' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /device/{serialNumber}/rtty: get: tags: - Commands summary: Get the rtty parameters to initiate a session. operationId: getRttySessionInfo parameters: - in: path name: serialNumber schema: type: string required: true responses: 200: description: Session information content: application/json: schema: $ref: '#/components/schemas/RttySessionDetails' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /file/{uuid}: get: tags: - Files summary: Get a file from the upload directory. operationId: getUploadFile parameters: - in: path name: uuid schema: type: string format: uuid required: true - in: query name: serialNumber schema: type: string required: true responses: 200: description: Succesfull file retrieval content: application/octet-stream: schema: type: string format: binary 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' delete: tags: - Files summary: Delete a file from the upload directory. operationId: deleteUploadFidelete parameters: - in: path name: uuid schema: type: string format: uuid required: true - in: query name: serialNumber schema: type: string required: true responses: 204: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /scripts: get: tags: - Scripting summary: Returns a list scripts. description: Get a list of scripts. operationId: getScripts parameters: - in: query description: Pagination start (starts at 0. If not specified, 0 is assumed) name: offset schema: type: integer required: false - in: query description: Maximum number of entries to return (if absent, no limit is assumed) name: limit schema: type: integer required: false - in: query description: Filter the results name: filter schema: type: string required: false responses: 200: description: List all scripts content: application/json: schema: $ref: '#/components/schemas/ScriptEntryList' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /script/{uuid}: get: tags: - Scripting summary: Returns a script entry. description: Get a specific script entry. operationId: getScript parameters: - in: path description: The UUID of the script name: uuid schema: type: string format: uuid required: true responses: 200: description: A script entry content: application/json: schema: $ref: '#/components/schemas/ScriptEntry' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' post: tags: - Scripting summary: Create a new script. operationId: createScript parameters: - in: path description: The UUID of the script. Must be set to 0 for creation name: uuid schema: type: string format: uuid required: true requestBody: description: Complet script entry content: application/json: schema: $ref: '#/components/schemas/ScriptEntry' responses: 200: $ref: '#/components/schemas/ScriptEntry' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' put: tags: - Scripting summary: Modify a script. operationId: modifyScript parameters: - in: path description: The UUID of the script. name: uuid schema: type: string format: uuid required: true requestBody: description: Complete script entry. You may only modify the name, description, version, uri, and content content: application/json: schema: $ref: '#/components/schemas/ScriptEntry' responses: 200: $ref: '#/components/schemas/ScriptEntry' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' delete: tags: - Scripting summary: Delete a script. operationId: deleteScript parameters: - in: path name: uuid schema: type: string format: uuid required: true responses: 204: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /blacklist: get: tags: - Blacklist summary: Returns a list blacklisted devices. description: Get a list of blacklisted devices. operationId: getBlacklistDeviceList parameters: - in: query description: Pagination start (starts at 1. If not specified, 1 is assumed) name: offset schema: type: integer required: false - in: query description: Maximum number of entries to return (if absent, no limit is assumed) name: limit schema: type: integer required: false - in: query description: Filter the results name: filter schema: type: string required: false responses: 200: description: List blacklisted devices content: application/json: schema: $ref: '#/components/schemas/BlackDeviceList' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /blacklist/{serialNumber}: get: tags: - Blacklist summary: Returns a blacklist entry. description: Get a list of blacklisted devices. operationId: getBlacklistDevice parameters: - in: path description: Pagination start (starts at 1. If not specified, 1 is assumed) name: serialNumber schema: type: string required: true responses: 200: description: List blacklisted devices content: application/json: schema: $ref: '#/components/schemas/BlackDeviceInfo' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' post: tags: - Blacklist summary: Create to the blacklist. operationId: createBlackListDevice parameters: - in: path description: Pagination start (starts at 1. If not specified, 1 is assumed) name: serialNumber schema: type: string required: true requestBody: description: Add blacklisted device content: application/json: schema: $ref: '#/components/schemas/BlackDeviceInfo' responses: 200: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' put: tags: - Blacklist summary: Modify to the blacklist. operationId: modifyBlackList parameters: - in: path description: Pagination start (starts at 1. If not specified, 1 is assumed) name: serialNumber schema: type: string required: true requestBody: description: Add blacklisted devices content: application/json: schema: $ref: '#/components/schemas/BlackDeviceInfo' responses: 200: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' delete: tags: - Blacklist summary: Delete from the blacklist. operationId: deleteFromBlackList parameters: - in: path name: serialNumber schema: type: string required: true responses: 204: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /capabilities: get: tags: - Devices summary: Get the list of device types and capabilities. operationId: getCapabilitiesList responses: 200: description: Successful command execution content: application/json: schema: $ref: '#/components/schemas/CapabilitiesModelList' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /radiusProxyConfig: get: tags: - RADIUSProxy summary: Retrieve RADIUS Proxy configuration. operationId: getRadiusProxyConfig responses: 200: $ref: '#/components/schemas/RadiusProxyPoolList' 403: $ref: '#/components/responses/Unauthorized' put: tags: - RADIUSProxy summary: Modify RADIUS Proxy configuration. operationId: modifyRadiusProxyConfig requestBody: description: Change RADIUS configuration pool config content: application/json: schema: $ref: '#/components/schemas/RadiusProxyPoolList' responses: 200: $ref: '#/components/schemas/RadiusProxyPoolList' 403: $ref: '#/components/responses/Unauthorized' delete: tags: - RADIUSProxy summary: Delete RADIUS Proxy configuration. operationId: deleteRadiusProxyConfig responses: 204: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' /radiusSessions/{serialNumber}: get: tags: - Radius Sessions summary: Retrieve the RADIUS sessions for a given AP operationId: getAPRadiusSessions parameters: - in: path name: serialNumber schema: type: string example: for searches or listing only serial number, set the serialNumber to 0 required: true - in: query name: serialNumberOnly schema: type: boolean required: false - in: query name: userName schema: type: string required: false - in: query name: mac schema: type: string required: false example: aa:bb:cc:dd:ee:ff responses: 200: description: AP List content: application/json: schema: oneOf: - $ref: '#/components/schemas/RadiusSessionList' - $ref: '#/components/schemas/SerialNumberList' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' put: tags: - Radius Sessions summary: Retrieve the RADIUS sessions for a given AP operationId: putAPRadiusSessions parameters: - in: path name: serialNumber schema: type: string required: true - in: query name: operation schema: type: string enum: - coadm - disconnectUser requestBody: description: operationParameters content: application/json: schema: oneOf: - $ref: '#/components/schemas/RadiusCoADMParameters' responses: 200: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /deviceDashboard: get: tags: - Dashboards summary: Get the last version of the dashboard. operationId: getDeviceDashboard responses: 200: $ref: '#/components/schemas/DeviceDashboard' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /iptocountry: get: tags: - Utility summary: Get the country code for an IP address operationId: getIpToCountry parameters: - in: query name: iplist schema: type: string example: 10.2.2.2,10.3.4.3 required: true responses: 200: description: List of country codes. content: application/json: schema: type: object properties: enabled: type: boolean countryCodes: type: array items: type: string 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' ######################################################################################### ## ## These are endpoints that all services in the uCentral stack must provide ## ######################################################################################### /system: post: tags: - System Commands summary: Perform some system wide commands. operationId: systemCommand requestBody: description: Command details content: application/json: schema: oneOf: - $ref: '#/components/schemas/SystemCommandSetLogLevel' - $ref: '#/components/schemas/SystemCommandReload' - $ref: '#/components/schemas/SystemCommandGetLogLevels' - $ref: '#/components/schemas/SystemCommandGetLogLevelNames' - $ref: '#/components/schemas/SystemCommandGetSubsystemNames' responses: 200: description: Successful command execution content: application/json: schema: oneOf: - $ref: '#/components/schemas/SystemGetLogLevelsResult' - $ref: '#/components/schemas/SystemCommandGetLogLevelNamesResult' - $ref: '#/components/schemas/SystemGetSubSystemNamesResult' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' get: tags: - System Commands summary: Retrieve different values from the running service. operationId: getSystemCommand parameters: - in: query description: Get a value name: command schema: type: string enum: - info - extraConfiguration - resources required: true responses: 200: $ref: '#/components/schemas/SystemCommandResults' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /systemConfiguration: get: tags: - SystemConfiguration summary: Retrieve system configuration items operationId: getSystemConfiguration parameters: - in: query description: Which parameters you want to retrieve name: entries schema: type: string example: - element1 - element1,element2,element3 required: false responses: 200: description: List of configuration elements content: application/json: schema: type: array items: $ref: '#/components/schemas/ExtraSystemConfiguration' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' put: tags: - SystemConfiguration summary: Set some or all system configuration operationId: setSystemConfiguration requestBody: content: application/json: schema: $ref: '#/components/schemas/ExtraSystemConfiguration' responses: 200: $ref: '#/components/schemas/ExtraSystemConfiguration' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' delete: tags: - SystemConfiguration summary: Delete all additional system configuration operationId: deleteSystemConfiguration responses: 200: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound'