diff --git a/.gitbook/assets/owfm-v2.7.0.yaml b/.gitbook/assets/owfm-v2.7.0.yaml new file mode 100644 index 0000000..55baf96 --- /dev/null +++ b/.gitbook/assets/owfm-v2.7.0.yaml @@ -0,0 +1,897 @@ +openapi: 3.0.1 +info: + title: uCentral Firmware Service API + description: A process to manage new uCentral firmware distribution. + version: 2.5.0 + license: + name: BSD3 + url: https://github.com/Telecominfraproject/wlan-cloud-ucentralgw/blob/master/LICENSE + contact: + name: Arilia Support + url: https://www.ucentral.info/support + +servers: + - url: 'https://localhost:16003/api/v1' + +security: + - ApiKeyAuth: [] + - bearerAuth: [] + +components: + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: X-API-KEY + bearerAuth: + type: http + scheme: bearer + bearerFormat: JWT + + responses: + NotFound: + $ref: 'https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml#/components/responses/NotFound' + Unauthorized: + $ref: 'https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml#/components/responses/Unauthorized' + Success: + $ref: 'https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml#/components/responses/Success' + BadRequest: + $ref: 'https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml#/components/responses/BadRequest' + + schemas: + FirmwareDetails: + type: object + description: Definition of a firmware release + properties: + id: + type: string + format: uuid + deviceType: + type: string + description: + type: string + revision: + type: string + uri: + type: string + format: uri + image: + type: string + imageDate: + type: integer + format: int64 + size: + type: integer + format: int64 + downloadCount: + type: integer + format: int64 + firmwareHash: + type: string + owner: + type: string + location: + type: string + format: uri + uploader: + type: string + digest: + type: string + latest: + type: boolean + notes: + type: array + items: + $ref: '#/components/schemas/NoteInfo' + created: + type: integer + format: int64 + + FirmwareDetailsList: + type: object + properties: + firmwares: + type: array + items: + $ref: '#/components/schemas/FirmwareDetails' + + DeviceCurrentInfo: + type: object + properties: + serialNumber: + type: string + revision: + type: string + upgraded: + type: integer + format: int64 + + DeviceCurrentInfoList: + type: object + properties: + devices: + type: array + items: + $ref: '#/components/schemas/DeviceCurrentInfo' + + RevisionHistoryEntry: + type: object + properties: + id: + type: string + format: uuid + serialNumber: + type: string + revisionId: + type: string + format: uuid + upgraded: + type: integer + format: int64 + fromRelease: + type: string + toRelease: + type: string + commandUUID: + type: string + format: uuid + + RevisionHistoryEntryList: + type: object + properties: + history: + type: array + items: + $ref: '#/components/schemas/RevisionHistoryEntry' + + + FirmwareAgeDetails: + type: object + properties: + latestId: + type: string + image: + type: string + imageDate: + type: integer + format: uint64 + revision: + type: string + uri: + type: string + format: uri + age: + type: integer + format: int64 + example: this is in seconds. a 0 means we cannot determine the age. something like 'unknown' should be shown to the user. + latest: + type: boolean + + FirmwareAgeDetailsList: + type: object + properties: + ages: + type: array + items: + $ref: '#/components/schemas/FirmwareAgeDetails' + + DeviceConnectionInformation: + type: object + properties: + serialNumber: + type: string + revision: + type: string + deviceType: + type: string + endPoint: + type: string + format: uri + lastUpdate: + type: integer + format: uint64 + status: + type: string + enum: + - connected + - disconnected + - unknown + + DeviceConnectionInformationList: + type: object + properties: + devices: + type: array + items: + $ref: '#/components/schemas/DeviceConnectionInformation' + + DeviceReport: + type: object + properties: + snapshot: + type: integer + format: int64 + numberOfDevices: + type: integer + format: int64 + ouis: + $ref: '#/components/schemas/TagIntPairList' + revisions: + $ref: '#/components/schemas/TagIntPairList' + deviceTypes: + $ref: '#/components/schemas/TagIntPairList' + status: + $ref: '#/components/schemas/TagIntPairList' + endPoints: + $ref: '#/components/schemas/TagIntPairList' + unknownFirmwares: + $ref: '#/components/schemas/TagIntPairList' + usingLatest: + $ref: '#/components/schemas/TagIntPairList' + totalSecondsOld: + $ref: '#/components/schemas/TagIntPairList' + + DeviceInformation: + type: object + properties: + serialNumber: + type: string + history: + $ref: '#/components/schemas/RevisionHistoryEntryList' + currentFirmware: + type: string + currentFirmwareDate: + type: integer + format: int64 + latestFirmware: + type: string + latestFirmwareDate: + type: integer + format: int64 + latestFirmwareAvailable: + type: boolean + + ######################################################################################### + ## + ## 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' + + 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 + + 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 + + SystemGetSubSystemNemesResult: + type: object + properties: + taglist: + type: array + items: + $ref: '#/components/schemas/TagValuePair' + +######################################################################################### +## +## End of uCentral system-wide values +## +######################################################################################### +paths: + /firmwares: + get: + tags: + - Firmware + summary: Returns a list of firmwares. + description: Get a list of firmwares. + operationId: getFirmwareList + 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 + name: latestOnly + description: Return only the latest firmware + schema: + type: boolean + default: false + required: false + - in: query + name: deviceType + schema: + type: string + required: false + - in: query + name: revisionSet + schema: + type: boolean + default: false + required: false + - in: query + name: deviceSet + schema: + type: boolean + required: false + - in: query + name: rcOnly + schema: + type: boolean + default: false + required: false + responses: + 200: + description: List firmwares + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/FirmwareDetailsList' + - $ref: '#/components/schemas/FirmwareDetails' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /firmware/{id}: + get: + tags: + - Firmware + summary: Returns a Firmware + description: Get a Firmware. + operationId: getFirmware + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + responses: + 200: + description: A Firmware definition + content: + application/json: + schema: + $ref: '#/components/schemas/FirmwareDetails' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + post: + tags: + - Firmware + summary: Create A New firmware + operationId: createFirmware + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/FirmwareDetails' + responses: + 200: + description: Created a firmware entry. + content: + application/json: + schema: + $ref: '#/components/schemas/FirmwareDetails' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + put: + tags: + - Firmware + summary: Update A New firmware + operationId: upodateFirmware + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + requestBody: + description: Firmware details + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/FirmwareDetails' + responses: + 200: + description: Successfully updated firmware + content: + application/json: + schema: + $ref: '#/components/schemas/FirmwareDetails' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + delete: + tags: + - Firmware + summary: Delete some Firmware + operationId: deleteFirmware + parameters: + - in: path + name: id + schema: + type: string + format: uuid + required: true + responses: + 204: + description: Successfully deleted Firmware for the device. + content: + application/json: + schema: + $ref: '#/components/responses/Success' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /revisionHistory/{serialNumber}: + get: + tags: + - RevisionHistory + summary: List all the defined device revision history + operationId: getRevisionHistory + parameters: + - in: path + name: serialNumber + schema: + type: string + required: true + - 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: Return current device list and current firmware + name: currentList + schema: + type: boolean + default: false + required: false + example: You must set {serialNumber} to 000000000000 + - in: query + description: Return current device list and current firmware + name: unknownList + schema: + type: boolean + default: false + required: false + example: You must set {serialNumber} to 000000000000 + responses: + 200: + description: List of device history upgrade. + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/RevisionHistoryEntryList' + - $ref: '#/components/schemas/DeviceCurrentInfoList' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + delete: + tags: + - RevisionHistory + summary: Delete specific hostory elements for a device + operationId: deleteRevisionHistory + parameters: + - in: path + name: serialNumber + schema: + type: string + required: true + - in: query + description: Pagination start (starts at 1. If not specified, 1 is assumed) + name: id + schema: + type: string + format: uuid + required: true + responses: + 204: + description: Success. + content: + application/json: + schema: + $ref: '#/components/responses/Success' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /firmwareAge: + get: + tags: + - Firmware + summary: Calculate how old a version of firmware is. + operationId: getFirmwareAge + parameters: + - in: query + description: The exact current verion of the firmware on that device. + name: revision + schema: + type: string + required: true + - in: query + description: The exact current verion of the firmware on that device. + name: deviceType + schema: + type: string + required: true + - in: query + description: Specify lits of serial numbers to retrive age for + name: select + schema: + type: string + example: select=serial1,serial2,serial4,serial5. + required: false + responses: + 200: + description: The recommended latest version to update to. + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/FirmwareAgeDetails' + - $ref: '#/components/schemas/FirmwareAgeDetailsList' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /connectedDevices: + get: + tags: + - ConnectedDevices + summary: Get a list of connected devices and some values. + operationId: getConnectedDevices + 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 firmwares + content: + application/json: + schema: + $ref: '#/components/schemas/DeviceConnectionInformationList' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /connectedDevice/{serialNumber}: + get: + tags: + - ConnectedDevices + summary: Get status of a connected device. + operationId: getConnectedDevice + parameters: + - in: path + description: SerialNumber of the device + name: serialNumber + schema: + type: string + required: true + responses: + 200: + description: Get information about a connected device. + content: + application/json: + schema: + $ref: '#/components/schemas/DeviceConnectionInformation' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /deviceReport: + get: + tags: + - DeviceInfo + summary: get an analysis of the existing devices we know about. + responses: + 200: + description: A full analysis report + content: + application/json: + schema: + $ref: '#/components/schemas/DeviceReport' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /deviceInformation/{serialNumber}: + get: + tags: + - Device Information + summary: receive a repor on a single decide + parameters: + - in: path + name: serialNumber + schema: + type: string + example: + aabbccdd1234 + required: true + responses: + 200: + $ref: '#/components/schemas/DeviceInformation' + 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: Successfull command execution + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/SystemGetLogLevelsResult' + - $ref: '#/components/schemas/SystemCommandGetLogLevelNamesResult' + - $ref: '#/components/schemas/SystemGetSubSystemNemesResult' + 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 + required: true + + responses: + 200: + description: Successfull command execution + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/SystemInfoResults' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' diff --git a/.gitbook/assets/owgw-2.7.0.yaml b/.gitbook/assets/owgw-2.7.0.yaml new file mode 100644 index 0000000..0cfca37 --- /dev/null +++ b/.gitbook/assets/owgw-2.7.0.yaml @@ -0,0 +1,2734 @@ +openapi: 3.0.1 +info: + title: uCentral gateway API + description: A process to manage configuration for devices. + version: 2.5.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:16001/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://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml#/components/responses/NotFound' + Unauthorized: + $ref: 'https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml#/components/responses/Unauthorized' + Success: + $ref: 'https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml#/components/responses/Success' + BadRequest: + $ref: 'https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml#/components/responses/BadRequest' + + schemas: + DeviceType: + type: string + default: AP + enum: + - AP + - SWITCH + - IOT + - MESH + + 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 + + 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 + + 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 + verifiedCertificate: + type: string + enum: + - NO_CERTIFICATE, + - VALID_CERTIFICATE, + - MISMATCH_SERIAL, + - VERIFIED + + 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 succesfully. + 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 + 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 + + DefaultConfigurationList: + properties: + configurations: + type: array + items: + $ref : '#/components/schemas/DefaultConfiguration' + + 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: + - uci + - ucode + - shell + script: + type: string + scriptId: + type: string + format: uuid + when: + type: integer + format: int64 + default: 0 + + 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 + + ######################################################################################### + ## + ## 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' + + SystemCommandResults: + type: object + 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 + + 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' + + ######################################################################################### + ## + ## 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' + + RadiusProxyPoolList: + type: object + properties: + pools: + type: array + items: + $ref: '#/components/schemas/RadiusProxyPool' + +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 + 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' + + /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' + + /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 only 1=crash 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 + + responses: + 200: + description: Array of statistics for this device + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/StatisticsRecords' + 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}/command: + post: + tags: + - Commands + summary: Post a command to a device + operationId: executeCommand + parameters: + - in: path + name: serialNumber + schema: + type: string + required: true + requestBody: + description: Command details + content: + application/json: + schema: + $ref: '#/components/schemas/CommandDetails' + responses: + 200: + $ref: '#/components/schemas/CommandInfo' + 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 + 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' + + /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' + + /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' + + /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 + required: true + + responses: + 200: + description: Successful command execution + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/SystemInfoResults' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' diff --git a/.gitbook/assets/owprov-v2.7.0.yaml b/.gitbook/assets/owprov-v2.7.0.yaml new file mode 100644 index 0000000..c27256e --- /dev/null +++ b/.gitbook/assets/owprov-v2.7.0.yaml @@ -0,0 +1,4288 @@ +openapi: 3.0.1 +info: + title: OpenWiFi Provisioning Model + description: Definitions and APIs to manages an OpenWiFi network. + version: 2.5.0 + license: + name: BSD3 + url: https://github.com/Telecominfraproject/wlan-cloud-ucentralgw/blob/master/LICENSE + +servers: + - url: 'https://localhost:16005/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://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml#/components/responses/NotFound' + Unauthorized: + $ref: 'https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml#/components/responses/Unauthorized' + Success: + $ref: 'https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml#/components/responses/Success' + BadRequest: + $ref: 'https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml#/components/responses/BadRequest' + + schemas: + + ObjectInfo: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + description: + type: string + notes: + type: array + items: + $ref: '#/components/schemas/NoteInfo' + created: + type: integer + format: int64 + modified: + type: integer + format: int64 + tags: + type: array + items: + type: integer + format: int64 + + # uuids: mpe: + ManagementPolicyEntry: + type: object + properties: + users: + type: array + items: + type: string + resources: + description: this is a list of UUID and UUID Patterns to control by this policy + type: array + items: + type: string + access: + type: array + items: + type: string + enum: + - NOACCESS + - READ + - MODIFY + - DELETE + - LIST + - CREATE + - FULL + policy: + description: A JSON document describing the policy + type: string + + # uuids: mpp: + ManagementPolicy: + type: object + properties: + allOf: + $ref: '#/components/schemas/ObjectInfo' + entries: + type: array + items: + $ref: '#/components/schemas/ManagementPolicyEntry' + inUse: + type: array + items: + type: string + format: uuid + example: each uuid is preceded by ent, or ven to say that the elemenet is entity or venue + entity: + type: string + format: uuid + venue: + type: string + format: uuid + + ManagementPolicyList: + type: object + properties: + policies: + type: array + items: + $ref: '#/components/schemas/ManagementPolicy' + + DeviceRules: + type: object + properties: + rcOnly: + type: string + enum: + - yes + - no + - inherit + rrm: + type: string + enum: + - yes + - no + - inherit + firmwareUpgrade: + type: string + enum: + - yes + - no + - inherit + + # uuids: ent: + Entity: + type: object + properties: + allOf: + $ref: '#/components/schemas/ObjectInfo' + parent: + description: If empty, then this is the root entity, otherwise this points to a parent entity + type: string + format: uuid + children: + type: array + items: + type: string + format: uuid + venues: + description: The list of UUID of the venues for this entity + type: array + items: + type: string + format: uuid + contacts: + description: The list of UUID of the contacts for the entity + type: array + items: + type: string + format: uuid + locations: + description: The list of UUID of the locations associated with thit entiry + type: array + items: + type: string + format: uuid + managementPolicy: + type: string + format: uuid + deviceConfiguration: + type: string + format: uuid + devices: + type: array + items: + type: string + format: uuid + managementPolicies: + description: The list of UUID of the venues for this entity + type: array + items: + type: string + format: uuid + variables: + description: The list of UUID of the venues for this entity + type: array + items: + type: string + format: uuid + managementRoles: + description: The list of UUID of the venues for this entity + type: array + items: + type: string + format: uuid + maps: + description: The list of UUID of the venues for this entity + type: array + items: + type: string + format: uuid + configurations: + description: The list of UUID of the venues for this entity + type: array + items: + type: string + format: uuid + deviceRules: + $ref: '#/components/schemas/DeviceRules' + sourceIP: + $ref: '#/components/schemas/StringList' + defaultEntity: + type: boolean + default: false + type: + type: string + enum: + - normal + - subscriber + default: normal + + EntityList: + type: object + properties: + entities: + type: array + items: + $ref: '#/components/schemas/Entity' + + DiGraphEntry: + type: object + properties: + parent: + type: string + format: uuid + child: + type: string + format: uuid + + DiGraph: + type: array + items: + $ref: '#/components/schemas/DiGraphEntry' + + # uuids: ven: + Venue: + type: object + properties: + allOf: + $ref: '#/components/schemas/ObjectInfo' + entity: + type: string + format: uuid + parent: + type: string + format: uuid + children: + type: array + items: + type: string + format: uuid + managementPolicy: + type: string + format: uuid + devices: + type: array + items: + type: string + format: uuid + topology: + $ref: '#/components/schemas/DiGraph' + design: + type: string + deviceConfiguration: + type: string + format: uuid + contacts: + type: array + items: + type: string + format: uuid + location: + type: string + format: uuid + deviceRules: + $ref: '#/components/schemas/DeviceRules' + sourceIP: + $ref: '#/components/schemas/StringList' + managementPolicies: + description: The list of UUID of the venues for this entity + type: array + items: + type: string + format: uuid + managementRoles: + description: The list of UUID of the venues for this entity + type: array + items: + type: string + format: uuid + variables: + description: The list of UUID of the venues for this entity + type: array + items: + type: string + format: uuid + maps: + description: The list of UUID of the venues for this entity + type: array + items: + type: string + format: uuid + configurations: + description: The list of UUID of the venues for this entity + type: array + items: + type: string + format: uuid + boards: + description: The list of OWAnalytics Boards created for this venue + type: array + items: + type: string + format: uuid + + VenueList: + type: object + properties: + venues: + type: array + items: + $ref: '#/components/schemas/Venue' + + UserInfoDigest: + type: object + properties: + id: + type: string + format: uuid + loginId: + type: string + type: + type: string + + # uuids: mgg: + ManagementRole: + type: object + properties: + allOf: + $ref: '#/components/schemas/ObjectInfo' + managementPolicy: + type: string + format: uuid + users: + type: array + items: + type: string + format: uuid + inUse: + type: array + items: + type: string + format: uuid + example: each uuid is preceded by ent, or ven to say that the elemenet is entity or venue + entity: + type: string + format: uuid + venue: + type: string + format: uuid + + ManagementRoleList: + type: object + properties: + roles: + type: array + items: + $ref: '#/components/schemas/ManagementRole' + + # uuids: loc: + Location: + type: object + properties: + allOf: + $ref: '#/components/schemas/ObjectInfo' + type: + type: string + enum: + - SERVICE + - EQUIPMENT + - AUTO + - MANUAL + - SPECIAL + - UNKNOWN + - CORPORATE + buildingName: + type: string + addressLines: + type: array + items: + type: string + city: + type: string + state: + type: string + postal: + type: string + country: + type: string + phones: + type: array + items: + type: string + mobiles: + type: array + items: + type: string + inUse: + type: array + items: + type: string + format: uuid + example: each uuid is preceded by ent, or ven to say that the elemenet is entity or venue + entity: + type: string + format: uuid + managementPolicy: + type: string + format: uuid + geoCode: + type: string + + LocationList: + type: object + properties: + locations: + type: array + items: + $ref: '#/components/schemas/Location' + + OperatorLocation: + type: object + properties: + allOf: + $ref: '#/components/schemas/ObjectInfo' + type: + type: string + enum: + - SERVICE + - EQUIPMENT + - AUTO + - MANUAL + - SPECIAL + - UNKNOWN + - CORPORATE + buildingName: + type: string + addressLines: + type: array + items: + type: string + city: + type: string + state: + type: string + postal: + type: string + country: + type: string + phones: + type: array + items: + type: string + mobiles: + type: array + items: + type: string + operatorId: + type: string + format: uuid + subscriberDeviceId: + type: string + format: uuid + geoCode: + type: string + + OperatorLocationList: + type: object + properties: + locations: + type: array + items: + $ref: '#/components/schemas/OperatorLocation' + + SubLocation: + type: object + properties: + type: + type: string + enum: + - SERVICE + - EQUIPMENT + - AUTO + - MANUAL + - SPECIAL + - UNKNOWN + - CORPORATE + buildingName: + type: string + addressLines: + type: array + items: + type: string + city: + type: string + state: + type: string + postal: + type: string + country: + type: string + phones: + type: array + items: + type: string + mobiles: + type: array + items: + type: string + geoCode: + type: string + + # uuids: con: + Contact: + type: object + properties: + allOf: + $ref: '#/components/schemas/ObjectInfo' + type: + type: string + enum: + - SUBSCRIBER + - USER + - INSTALLER + - CSR + - MANAGER + - BUSINESSOWNER + - TECHNICIAN + - CORPORATE + title: + type: string + salutation: + type: string + firstname: + type: string + lastname: + type: string + initials: + type: string + visual: + type: string + phones: + type: array + items: + type: string + mobiles: + type: array + items: + type: string + primaryEmail: + type: string + secondaryEmail: + type: string + accessPIN: + type: string + inUse: + type: array + items: + type: string + format: uuid + entity: + type: string + format: uuid + managementPolicy: + type: string + format: uuid + + ContactList: + type: object + properties: + contacts: + type: array + items: + $ref: '#/components/schemas/Contact' + + OperatorContact: + type: object + properties: + allOf: + $ref: '#/components/schemas/ObjectInfo' + type: + type: string + enum: + - SUBSCRIBER + - USER + - INSTALLER + - CSR + - MANAGER + - BUSINESSOWNER + - TECHNICIAN + - CORPORATE + title: + type: string + salutation: + type: string + firstname: + type: string + lastname: + type: string + initials: + type: string + visual: + type: string + phones: + type: array + items: + type: string + mobiles: + type: array + items: + type: string + primaryEmail: + type: string + secondaryEmail: + type: string + accessPIN: + type: string + operatorId: + type: string + format: uuid + subscriberDeviceId: + type: string + format: uuid + + OperatorContactList: + type: object + properties: + contacts: + type: array + items: + $ref: '#/components/schemas/OperatorContact' + + SubContact: + type: object + properties: + type: + type: string + enum: + - SUBSCRIBER + - USER + - INSTALLER + - CSR + - MANAGER + - BUSINESSOWNER + - TECHNICIAN + - CORPORATE + title: + type: string + salutation: + type: string + firstname: + type: string + lastname: + type: string + initials: + type: string + visual: + type: string + phones: + type: array + items: + type: string + mobiles: + type: array + items: + type: string + primaryEmail: + type: string + secondaryEmail: + type: string + accessPIN: + type: string + + DeviceConfigurationElement: + type: object + properties: + name: + type: string + description: + type: string + weight: + type: integer + configuration: + type: string + + DeviceConfiguration: + type: object + properties: + allOf: + $ref: '#/components/schemas/ObjectInfo' + managementPolicy: + type: string + format: uuid + deviceTypes: + type: array + items: + type: string + configuration: + type: array + items: + $ref: '#/components/schemas/DeviceConfigurationElement' + variables: + type: array + items: + type: string + format: uuid + inUse: + type: array + items: + type: string + format: uuid + subscriberOnly: + type: boolean + default: false + deviceRules: + $ref: '#/components/schemas/DeviceRules' + venue: + type: string + format: uuid + entity: + type: string + format: uuid + subscriber: + type: string + format: uuid + + DeviceConfigurationList: + type: object + properties: + configurations: + type: array + items: + $ref: '#/components/schemas/DeviceConfiguration' + + InventoryTag: + type: object + properties: + allOf: + $ref: '#/components/schemas/ObjectInfo' + serialNumber: + type: string + deviceType: + type: string + venue: + type: string + format: uuid + entity: + type: string + format: uuid + subscriber: + type: string + format: uuid + qrCode: + type: string + geoCode: + type: string + location: + type: string + format: uuid + contact: + type: string + format: uuid + deviceConfiguration: + type: string + format: uuid + deviceRules: + $ref: '#/components/schemas/DeviceRules' + managementPolicy: + type: string + format: uuid + state: + type: string + devClass: + type: string + enum: + - any + - venue + - entity + - subscriber + locale: + type: string + minLength: 2 + maxLength: 2 + + VenueDeviceList: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + description: + type: string + devices: + type: array + items: + type: string + + InventoryTagList: + type: object + properties: + taglist: + type: array + items: + $ref: '#/components/schemas/InventoryTag' + + SerialNumberList: + type: object + properties: + serialNumbers: + type: array + items: + type: string + + CountAnswer: + type: object + properties: + count: + type: integer + format: int64 + + ExpandedUseEntry: + type: object + properties: + uuid: + type: string + format: uuid + name: + type: string + description: + type: string + + ExpandedUseEntryMap: + type: object + properties: + type: + type: string + entries: + type: array + items: + $ref: '#/components/schemas/ExpandedUseEntry' + + ExpandedUseEntryMapList: + type: object + properties: + entries: + type: array + items: + $ref: '#/components/schemas/ExpandedUseEntryMap' + + FirmwareOptions: + type: object + properties: + firmwareUpgrade: + type: string + example: auto or a time string of the format DOW-HH:MM + firmwareRCOnly: + type: boolean + from: + type: string + + InventoryConfigApplyResult: + type: object + properties: + appliedConfiguration: + type: string + errors: + type: array + items: + type: string + warnings: + type: array + items: + type: string + errorCode: + type: integer + + uuidList: + type: object + properties: + list: + type: array + items: + type: string + format: uuid + + ObjectACL: + type: object + properties: + users: + $ref: '#/components/schemas/uuidList' + roles: + $ref: '#/components/schemas/uuidList' + access: + type: string + enum: + - none + - read + - modify + - delete + - create + + ObjectACLList: + type: object + properties: + list: + type: array + items: + $ref: '#/components/schemas/ObjectACL' + + Map: + type: object + properties: + allOf: + $ref: '#/components/schemas/ObjectInfo' + entity: + type: string + format: uuid + venue: + type: string + format: uuid + managementPolicy: + type: string + format: uuid + data: + type: string + visibility: + type: string + enum: + - private + - public + - select + creator: + type: string + format: uuid + access: + $ref: '#/components/schemas/ObjectACLList' + + MapList: + type: object + properties: + list: + type: array + items: + $ref: '#/components/schemas/Map' + + + SignupEntry: + type: object + properties: + allOf: + $ref: '#/components/schemas/ObjectInfo' + email: + type: string + format: email + userId: + type: string + format: uuid + operatorId: + type: string + format: uuid + macAddress: + type: string + serialNumber: + type: string + created: + type: integer + format: int64 + completed: + type: integer + format: int64 + error: + type: integer + format: int64 + status: + type: string + statusCode: + type: integer + format: int64 + registrationId: + type: string + minLength: 4 + maxLength: 16 + + Variable: + type: object + properties: + type: + type: string + enum: + - integer + - string + - float + - boolean + - variable + - json + weight: + type: integer + format: int64 + prefix: + type: string + value: + type: string + + VariableList: + type: object + properties: + variables: + type: array + items: + $ref: '#/components/schemas/Variable' + + VariableBlock: + type: object + properties: + allOf: + $ref: '#/components/schemas/ObjectInfo' + variables: + type: array + items: + $ref: '#/components/schemas/Variable' + entity: + type: string + format: uuid + venue: + type: string + format: uuid + subscriber: + type: string + format: uuid + inventory: + type: string + format: uuid + inUse: + type: array + items: + type: string + format: uuid + + VariableBlockList: + type: object + properties: + variableBlocks: + type: array + items: + $ref: '#/components/schemas/VariableBlock' + + ServiceClass: + type: object + properties: + allOf: + $ref: '#/components/schemas/ObjectInfo' + operatorId: + type: string + format: uuid + cost: + type: number + currency: + type: string + minLength: 3 + maxLength: 3 + managementPolicy: + type: string + format: uuid + period: + type: string + enum: + - hourly + - daily + - monthly + - yearly + - quarterly + - lifetime + - custom1 + - custom2 + - custom3 + - custom4 + default: monthly + billingCode: + type: string + variables: + type: array + items: + $ref: '#/components/schemas/Variable' + defaultService: + type: boolean + default: false + + ServiceClassList: + type: object + properties: + serviceClasses: + type: array + items: + $ref: '#/components/schemas/ServiceClass' + + Operator: + type: object + properties: + allOf: + $ref: '#/components/schemas/ObjectInfo' + variables: + type: array + items: + $ref: '#/components/schemas/Variable' + defaultOperator: + type: boolean + default: false + deviceRules: + $ref: '#/components/schemas/DeviceRules' + managementPolicy: + type: string + format: uuid + managementRoles: + $ref: '#/components/schemas/ManagementRoleList' + sourceIP: + $ref: '#/components/schemas/StringList' + registrationId: + type: string + minLength: 4 + maxLength: 16 + + OperatorList: + type: object + properties: + operators: + type: array + items: + $ref: '#/components/schemas/Operator' + + SubscriberDevice: + type: object + properties: + allOf: + $ref: '#/components/schemas/ObjectInfo' + serialNumber: + type: string + realMacAddress: + type: string + operatorId: + type: string + format: uuid + deviceType: + type: string + subscriberId: + type: string + format: uuid + qrCode: + type: string + geoCode: + type: string + location: + $ref: '#/components/schemas/SubLocation' + contact: + $ref: '#/components/schemas/SubContact' + deviceRules: + $ref: '#/components/schemas/DeviceRules' + state: + type: string + locale: + type: string + minLength: 2 + maxLength: 2 + managementPolicy: + type: string + format: uuid + suspended: + type: boolean + default: false + configuration: + type: array + items: + $ref: '#/components/schemas/DeviceConfigurationElement' + serviceClass: + type: string + format: uuid + billingCode: + type: string + + SubscriberDeviceList: + type: object + properties: + subscriberDevices: + type: array + items: + $ref: '#/components/schemas/SubscriberDevice' + + ######################################################################################### + ## + ## These are endpoints that all services in the OPenWiFI 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' + + SystemCommandResults: + type: object + 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 + + Dashboard: + type: object + properties: + snapshot: + type: integer + format: int64 + tenants: + $ref: '#/components/schemas/TagIntPairList' + + 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' + +paths: + /entity: + get: + tags: + - Entities + operationId: getEntities + summary: Retrieve a list of entities. + 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 + required: false + - in: query + description: return the number of devices + name: countOnly + schema: + type: boolean + required: false + + responses: + 200: + description: Return a list of elements + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/EntityList' + - $ref: '#/components/schemas/CountAnswer' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /entity/{uuid}: + get: + tags: + - Entities + operationId: getEntity + summary: Retrieve a specific entity. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + example: When looking for the root entity, the uuid 0000-0000-0000 must be entered. + required: true + responses: + 200: + $ref: '#/components/schemas/Entity' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + post: + tags: + - Entities + operationId: createEntity + summary: Create a specific entity. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + example: When creating the root entity, the uuid 0000-0000-0000 must be entered. When creating a non-root entity, uuid must be 1 + required: true + requestBody: + description: Information used to create the new entity + content: + application/json: + schema: + $ref: '#/components/schemas/Entity' + responses: + 200: + $ref: '#/components/schemas/Entity' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + put: + tags: + - Entities + operationId: modifyEntity + summary: Modify a specific entity. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + example: When modifying the root entity, the uuid 0000-0000-0000 must be entered. + required: true + requestBody: + description: Information used to modify the new entity + content: + application/json: + schema: + $ref: '#/components/schemas/Entity' + responses: + 200: + $ref: '#/components/schemas/Entity' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + delete: + tags: + - Entities + operationId: deleteEntity + summary: Delete a specific entity. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + example: The root entity cannot be deleted. + required: true + responses: + 204: + $ref: '#/components/responses/Success' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /contact: + get: + tags: + - Contacts + operationId: getContacts + summary: Retrieve a list of contacts. + 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 contacts comma separated + name: select + schema: + type: string + example: uuid1,uuid2,uuid3 + required: false + - in: query + description: return the number of contacts + name: countOnly + schema: + type: boolean + required: false + - in: query + description: return only the UUIDs of contacts + name: uuidOnly + schema: + type: boolean + required: false + - in: query + name: venue + schema: + type: string + format: uuid + required: false + - in: query + name: entity + schema: + type: string + format: uuid + required: false + responses: + 200: + description: Return a list of contacts + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ContactList' + - $ref: '#/components/schemas/CountAnswer' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /contact/{uuid}: + get: + tags: + - Contacts + operationId: getContact + summary: Retrieve a specific contact. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + - in: query + name: expandInUse + schema: + type: boolean + required: false + + responses: + 200: + description: Success + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/Contact' + - $ref: '#/components/schemas/ExpandedUseEntryMapList' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + post: + tags: + - Contacts + operationId: createContact + summary: Create a specific entity. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + requestBody: + description: Information used to create the new entity + content: + application/json: + schema: + $ref: '#/components/schemas/Contact' + responses: + 200: + $ref: '#/components/schemas/Contact' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + put: + tags: + - Contacts + operationId: modifyContact + summary: Modify a specific contact. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + requestBody: + description: Information used to modify the new entity + content: + application/json: + schema: + $ref: '#/components/schemas/Contact' + responses: + 200: + $ref: '#/components/schemas/Contact' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + delete: + tags: + - Contacts + operationId: deleteContact + summary: Delete a specific contact. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + - in: query + name: force + schema: + type: boolean + required: true + responses: + 204: + $ref: '#/components/responses/Success' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /location: + get: + tags: + - Locations + operationId: getLocations + summary: Retrieve a list of locations. + 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 Locations comma separated + name: select + schema: + type: string + example: uuid1,uuid2,uuid3 + required: false + - in: query + description: return the number of Locations + name: countOnly + schema: + type: boolean + required: false + - in: query + description: return only the UUIDs of Locations + name: uuidOnly + schema: + type: boolean + required: false + responses: + 200: + description: Return a list of Locations + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/LocationList' + - $ref: '#/components/schemas/CountAnswer' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /location/{uuid}: + get: + tags: + - Locations + operationId: getLocation + summary: Retrieve a specific location. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + - in: query + name: expandInUse + schema: + type: boolean + required: false + responses: + 200: + description: Success + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/Location' + - $ref: '#/components/schemas/ExpandedUseEntryMapList' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + post: + tags: + - Locations + operationId: createLocation + summary: Create a specific location. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + requestBody: + description: Information used to create the new location + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + responses: + 200: + $ref: '#/components/schemas/Location' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + put: + tags: + - Locations + operationId: modifyLocation + summary: Modify a specific location. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + requestBody: + description: Information used to modify the new location + content: + application/json: + schema: + $ref: '#/components/schemas/Location' + responses: + 200: + $ref: '#/components/schemas/Location' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + delete: + tags: + - Locations + operationId: deleteLocation + summary: Delete a specific location. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + - in: query + name: force + schema: + type: boolean + required: true + responses: + 204: + $ref: '#/components/responses/Success' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /inventory: + get: + tags: + - Inventory + operationId: getInventoryTags + summary: Retrieve a list of inventory. + parameters: + - in: query + name: entity + schema: + type: string + format: uuid + required: false + - in: query + name: venue + schema: + type: string + format: uuid + required: false + - in: query + name: unassigned + schema: + type: boolean + required: false + - 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 + required: false + - in: query + description: only serial numbers of full device details + name: serialOnly + schema: + type: boolean + required: false + - in: query + description: return the number of devices + name: countOnly + schema: + type: boolean + required: false + - in: query + description: return extended information + name: withExtendedInfo + schema: + type: boolean + required: false + - 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 the list of devices under RRM + name: rrmOnly + schema: + type: boolean + default: false + required: false + - in: query + description: return the list of devices under RRM + name: subscriber + schema: + type: string + format: uuid + required: false + - in: query + description: return RRM settings for a specific device + name: rrmSettings + schema: + type: boolean + default: false + required: false + - in: query + description: return the resolved configuration for a specific device + name: resolveConfig + schema: + type: boolean + default: false + required: false + + responses: + 200: + description: Return a list of elements + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/SerialNumberList' + - $ref: '#/components/schemas/InventoryTagList' + - $ref: '#/components/schemas/CountAnswer' + - $ref: '#/components/schemas/StringList' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /inventory/{serialNumber}: + get: + tags: + - Inventory + operationId: getInventory + summary: Retrieve a specific inventory tag. + parameters: + - in: path + name: serialNumber + schema: + type: string + format: uuid + required: true + - in: query + name: config + schema: + type: boolean + required: false + - in: query + name: explain + schema: + type: boolean + required: false + - in: query + name: firmwareOptions + schema: + type: boolean + required: false + - in: query + name: applyConfiguration + schema: + type: boolean + required: false + - in: query + name: subscriberEntity + schema: + type: string + format: uuid + required: false + responses: + 200: + description: Succesful retrieve configuratiopn or part of the configuration + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/InventoryTag' + - $ref: '#/components/schemas/FirmwareOptions' + - $ref: '#/components/schemas/InventoryConfigApplyResult' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + post: + tags: + - Inventory + operationId: createInventory + summary: Create a specific Inventory. + parameters: + - in: path + name: serialNumber + schema: + type: string + format: uuid + required: true + requestBody: + description: Information used to create the new entity + content: + application/json: + schema: + $ref: '#/components/schemas/InventoryTag' + responses: + 200: + $ref: '#/components/schemas/InventoryTag' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + put: + tags: + - Inventory + operationId: modifyInventory + summary: Modify a specific inventory. + parameters: + - in: path + name: serialNumber + schema: + type: string + format: uuid + required: true + - in: query + name: unassign + schema: + type: boolean + required: false + - in: query + name: removeSubscriber + schema: + type: string + format: uuid + required: true + + requestBody: + description: Information used to modify the new entity + content: + application/json: + schema: + $ref: '#/components/schemas/InventoryTag' + + responses: + 200: + description: success + content: + application/json: + schema: + $ref: '#/components/schemas/InventoryTag' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + delete: + tags: + - Inventory + operationId: deleteInventory + summary: Delete a specific inventory. + parameters: + - in: path + name: serialNumber + schema: + type: string + format: uuid + required: true + + responses: + 204: + $ref: '#/components/responses/Success' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /venue: + get: + tags: + - Venues + operationId: getVenues + summary: Retrieve a list of venues. + parameters: + - in: query + name: entity + schema: + type: string + format: uuid + required: false + - in: query + name: venue + schema: + type: string + format: uuid + required: false + - in: query + name: unassigned + schema: + type: boolean + required: false + - in: query + name: deviceType + schema: + type: string + required: false + - 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 Venues comma separated + name: select + schema: + type: string + example: serial1,serial2,serial3 + required: false + - in: query + description: return the number of devices + name: countOnly + schema: + type: boolean + required: false + - in: query + description: return the devices under a venue + name: getDevices + schema: + type: boolean + default: false + required: false + - in: query + description: return the devices under a venue and its children. Must select getDevices=true as well. + name: getChildren + schema: + type: boolean + default: false + required: false + responses: + 200: + description: Return a list of venues. + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/VenueList' + - $ref: '#/components/schemas/CountAnswer' + - $ref: '#/components/schemas/VenueDeviceList' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /venue/{uuid}: + get: + tags: + - Venues + operationId: getVenue + summary: Retrieve a specific venue. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + + responses: + 200: + $ref: '#/components/schemas/Venue' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + post: + tags: + - Venues + operationId: createVenue + summary: Create a specific venue. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + - in: query + name: createObjects + schema: + type: object + properties: + objects: + type: array + items: + oneOf: + - type: object + properties: + location: + $ref: '#/components/schemas/Location' + - type: object + properties: + contact: + $ref: '#/components/schemas/Contact' + required: false + requestBody: + description: Information used to create the new venue + content: + application/json: + schema: + $ref: '#/components/schemas/Venue' + + responses: + 200: + $ref: '#/components/schemas/Venue' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + put: + tags: + - Venues + operationId: modifyVenue + summary: Modify a specific venue. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + - in: query + name: updateAllDevices + schema: + type: boolean + default: false + required: false + - in: query + name: rebootAllDevices + schema: + type: boolean + default: false + required: false + - in: query + name: testUpdateOnly + schema: + type: boolean + default: false + required: false + - in: query + name: upgradeAllDevices + schema: + type: boolean + default: false + required: false + requestBody: + description: Information used to modify the new venue + content: + application/json: + schema: + $ref: '#/components/schemas/Venue' + + responses: + 200: + description: Return venue information or list of serial number updated + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/Venue' + - $ref: '#/components/schemas/SerialNumberList' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + delete: + tags: + - Venues + operationId: deleteVenue + summary: Delete a specific venue. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + example: The root entity cannot be deleted. + required: true + responses: + 204: + $ref: '#/components/responses/Success' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /map: + get: + tags: + - Maps + operationId: getMapList + summary: Retrieve the list of maps + 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: Return only maps I created + name: myMaps + schema: + type: boolean + required: false + - in: query + description: Return only maps shared with Me + name: sharedWithMe + schema: + type: boolean + required: false + responses: + 200: + description: Return a list of Venues + content: + application/json: + schema: + $ref: '#/components/schemas/MapList' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /map/{uuid}: + get: + tags: + - Maps + operationId: getMap + summary: Retrieve a specific map. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + responses: + 200: + description: Successfull retrieval of a map + content: + application/json: + schema: + $ref: '#/components/schemas/Map' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + post: + tags: + - Maps + operationId: createMap + summary: Create a specific map. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + requestBody: + description: Information used to create the new policy + content: + application/json: + schema: + $ref: '#/components/schemas/Map' + responses: + 200: + $ref: '#/components/schemas/Map' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + put: + tags: + - Maps + operationId: modifyMap + summary: Modify a specific map. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + requestBody: + description: Information used to modify a map + content: + application/json: + schema: + $ref: '#/components/schemas/Map' + responses: + 200: + $ref: '#/components/schemas/ManagementPolicy' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + delete: + tags: + - Maps + operationId: deleteMap + summary: Delete a specific map. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + responses: + 204: + $ref: '#/components/responses/Success' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /managementPolicy: + get: + tags: + - Management Policies + operationId: getPolicies + summary: Get a list of policies. + parameters: + - in: query + name: entity + schema: + type: string + format: uuid + required: false + - in: query + name: venue + schema: + type: string + format: uuid + required: false + - in: query + name: unassigned + schema: + type: boolean + required: false + - 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 policies comma separated + name: select + schema: + type: string + example: serial1,serial2,serial3 + required: false + - in: query + description: return the number of policies + name: countOnly + schema: + type: boolean + required: false + responses: + 200: + description: Return a list of Venues + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ManagementPolicyList' + - $ref: '#/components/schemas/CountAnswer' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /managementPolicy/{uuid}: + get: + tags: + - Management Policies + operationId: getManagementPolicy + summary: Retrieve a specific policy. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + - in: query + name: expandInUse + schema: + type: boolean + required: false + responses: + 200: + description: Succesful retrieve a management policy + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ManagementPolicy' + - $ref: '#/components/schemas/ExpandedUseEntryMapList' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + post: + tags: + - Management Policies + operationId: createManagementPolicy + summary: Create a specific policy. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + requestBody: + description: Information used to create the new policy + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPolicy' + responses: + 200: + $ref: '#/components/schemas/ManagementPolicy' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + put: + tags: + - Management Policies + operationId: modifyManagementPolicy + summary: Modify a specific policy. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + requestBody: + description: Information used to modify the new policy. + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPolicy' + responses: + 200: + $ref: '#/components/schemas/ManagementPolicy' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + delete: + tags: + - Management Policies + operationId: deleteManagementPolicy + summary: Delete a specific policy. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + example: The root entity cannot be deleted. + required: true + responses: + 204: + $ref: '#/components/responses/Success' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /managementRole: + get: + tags: + - Management Roles + operationId: getManagementRoles + summary: Retrieve a list of management roles. + parameters: + - in: query + name: entity + schema: + type: string + format: uuid + required: false + - 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 + required: false + - in: query + description: return the number of roles + name: countOnly + schema: + type: boolean + required: false + responses: + 200: + description: Return a list of elements + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ManagementRoleList' + - $ref: '#/components/schemas/CountAnswer' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /managementRole/{uuid}: + get: + tags: + - Management Roles + operationId: getManagementRole + summary: Retrieve a specific management role. + parameters: + - in: path + name: uuid + required: true + schema: + type: string + format: uuid + - in: query + name: expandInUse + schema: + type: boolean + required: false + responses: + 200: + description: Success + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ManagementRole' + - $ref: '#/components/schemas/ExpandedUseEntryMapList' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + post: + tags: + - Management Roles + operationId: createManagementRole + summary: Create a specific management role. + parameters: + - in: path + name: uuid + required: true + schema: + type: string + format: uuid + example: during creation, must be set to 1. The real uuid will be returned in the created object + requestBody: + description: Information used to create management role + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementRole' + + responses: + 200: + $ref: '#/components/schemas/ManagementRole' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + put: + tags: + - Management Roles + operationId: modifyManagementRole + summary: Modify a specific management role. + parameters: + - in: path + name: uuid + required: true + schema: + type: string + format: uuid + requestBody: + description: Information used to modify management role + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementRole' + responses: + 200: + $ref: '#/components/schemas/ManagementRole' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + delete: + tags: + - Management Roles + operationId: deleteManagementRole + summary: Delete a specific management role. + parameters: + - in: path + name: uuid + required: true + schema: + type: string + format: uuid + responses: + 204: + $ref: '#/components/responses/Success' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /configuration: + get: + tags: + - Configurations + operationId: getConfigurations + summary: Retrieve a list of configurations. + 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 + required: false + - in: query + description: return the number of devices + name: countOnly + schema: + type: boolean + required: false + - in: query + name: venue + schema: + type: string + format: uuid + required: false + - in: query + name: entity + schema: + type: string + format: uuid + required: false + responses: + 200: + description: Return a list of elements + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/DeviceConfigurationList' + - $ref: '#/components/schemas/CountAnswer' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /configuration/{uuid}: + get: + tags: + - Configurations + operationId: geConfiguration + summary: Retrieve a specific configuration. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + example: When looking for the root entity, the uuid 0000-0000-0000 must be entered. + required: true + - in: query + name: expandInUse + schema: + type: boolean + required: false + responses: + 200: + description: Success + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/DeviceConfiguration' + - $ref: '#/components/schemas/ExpandedUseEntryMapList' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + post: + tags: + - Configurations + operationId: createConfiguration + summary: Create a specific configuration. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + example: When creating the root entity, the uuid 0000-0000-0000 must be entered. When creating a non-root entity, uuid must be 1 + required: true + - in: query + name: validateOnly + schema: + type: boolean + required: false + requestBody: + description: Information used to create the new entity + content: + application/json: + schema: + $ref: '#/components/schemas/DeviceConfiguration' + responses: + 200: + $ref: '#/components/schemas/DeviceConfiguration' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + put: + tags: + - Configurations + operationId: modifyConfiguration + summary: Modify a specific configuration. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + example: When modifying the root entity, the uuid 0000-0000-0000 must be entered. + required: true + requestBody: + description: Information used to modify the new entity + content: + application/json: + schema: + $ref: '#/components/schemas/DeviceConfiguration' + responses: + 200: + $ref: '#/components/schemas/DeviceConfiguration' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + delete: + tags: + - Configurations + operationId: deleteConfiguration + summary: Delete a specific configuration. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + example: The root entity cannot be deleted. + required: true + responses: + 204: + $ref: '#/components/responses/Success' + 400: + $ref: '#/components/responses/BadRequest' + 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 + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /signup: + get: + tags: + - Subscriber Registration + summary: This call allows someone to get the status of a signup. + operationId: getSignup + parameters: + - in: query + name: email + schema: + type: string + format: email + required: false + - in: query + name: macAddress + schema: + type: string + required: false + - in: query + name: signupUUID + schema: + type: string + format: uuid + required: false + - in: query + name: dashboard + schema: + type: boolean + default: false + required: false + - in: query + name: deviceID + schema: + type: string + required: false + responses: + 200: + description: Successfull completion + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/SignupEntry' + - $ref: '#/components/schemas/Dashboard' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + delete: + tags: + - Subscriber Registration + summary: This call allows someone to delete a specific signUp or all signups according to serialNumber of email address + operationId: deleteSignup + parameters: + - in: query + name: email + schema: + type: string + format: email + required: false + - in: query + name: macAddress + schema: + type: string + required: false + - in: query + name: signupUUID + schema: + type: string + format: uuid + required: false + - in: query + name: deviceID + schema: + type: string + required: false + responses: + 204: + $ref: '#/components/responses/Success' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + post: + tags: + - Subscriber Registration + summary: This call allows a new subscriber to register themselves and their devices. + operationId: postSignup + parameters: + - in: query + name: email + schema: + type: string + format: email + required: true + - in: query + name: macAddress + schema: + type: string + required: true + - in: query + name: deviceID + schema: + type: string + required: false + - in: query + name: registrationId + schema: + type: string + required: true + responses: + 200: + $ref: '#/components/schemas/SignupEntry' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + put: + tags: + - Subscriber Registration + summary: modify the signup command in play + operationId: modifySignup + parameters: + - in: query + name: signupUUID + schema: + type: string + format: uuid + required: true + - in: query + name: operation + schema: + type: string + enum: + - cancel + - emailVerified + - deviceVerified + required: true + requestBody: + content: + application/json: + schema: + type: object + properties: + reason: + type: string + time: + type: integer + format: int64 + errorCode: + type: integer + format: int32 + status: + type: string + required: false + responses: + 200: + $ref: '#/components/schemas/SignupEntry' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /variable: + get: + tags: + - Variable Configuration Blocks + summary: Retrieve lists of control blocks + operationId: getVariableList + parameters: + - in: query + name: venue + schema: + type: string + format: uuid + required: false + - in: query + name: entity + schema: + type: string + format: uuid + required: false + - 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 + required: false + - in: query + description: return the number of devices + name: countOnly + schema: + type: boolean + required: false + responses: + 200: + $ref: '#/components/schemas/VariableBlockList' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /operator: + get: + operationId: getOperators + tags: + - Operators + summary: Retrieve the list of currently configured operators + 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 operators comma separated + name: select + schema: + type: string + example: serial1,serial2,serial3 + required: false + - in: query + description: return the number of operators + name: countOnly + schema: + type: boolean + required: false + responses: + 200: + description: Successfully retrieved operator list + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/OperatorList' + - $ref: '#/components/schemas/CountAnswer' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /operator/{uuid}: + get: + operationId: getOperator + tags: + - Operators + summary: Retrieve an operator + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + responses: + 200: + $ref: '#/components/schemas/Operator' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + delete: + operationId: deleteOperator + tags: + - Operators + summary: Delete an operator + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + responses: + 204: + $ref: '#/components/responses/Success' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + post: + summary: Create a new operator + operationId: createOperator + tags: + - Operators + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + example: + should be set to 0 when creating a new operator + required: true + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Operator' + responses: + 200: + $ref: '#/components/schemas/Operator' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + put: + summary: Update an existing operator + operationId: updateOperator + tags: + - Operators + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Operator' + responses: + 200: + $ref: '#/components/schemas/Operator' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /serviceClass: + get: + operationId: getServiceClasses + tags: + - ServiceClass + summary: Retrieve the list of currently configured service class + parameters: + - in: query + description: The operator + name: operatorId + schema: + type: string + format: uuid + required: true + - 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 operators comma separated + name: select + schema: + type: string + example: serial1,serial2,serial3 + required: false + - in: query + description: return the number of operators + name: countOnly + schema: + type: boolean + required: false + responses: + 200: + description: Successfully retrieved operator list + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ServiceClassList' + - $ref: '#/components/schemas/CountAnswer' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /serviceClass/{uuid}: + get: + operationId: getServiceClass + tags: + - ServiceClass + summary: Retrieve a service class + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + responses: + 200: + $ref: '#/components/schemas/ServiceClass' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + delete: + operationId: deleteServiceClass + tags: + - ServiceClass + summary: Delete a service class + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + responses: + 204: + $ref: '#/components/responses/Success' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + post: + summary: Create a service class + tags: + - ServiceClass + operationId: createServiceClass + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + example: + should be set to 0 when creating a new operator + required: true + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceClass' + responses: + 200: + $ref: '#/components/schemas/ServiceClass' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + put: + summary: Update a service class + tags: + - ServiceClass + operationId: updateServiceClass + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceClass' + responses: + 200: + $ref: '#/components/schemas/ServiceClass' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /subscriberDevice: + get: + operationId: getsubscriberDevices + tags: + - Subscriber Devices + summary: Retrieve the list of subscriber devices + parameters: + - in: query + description: The operator + name: operatorId + schema: + type: string + format: uuid + required: true + - 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 operators comma separated + name: select + schema: + type: string + example: serial1,serial2,serial3 + required: false + - in: query + description: return the number of operators + name: countOnly + schema: + type: boolean + required: false + responses: + 200: + description: list of subscriber devices + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/SubscriberDeviceList' + - $ref: '#/components/schemas/CountAnswer' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /subscriberDevice/{uuid}: + get: + operationId: getSubscriberDevice + tags: + - Subscriber Devices + summary: Retrieve a subscriber device + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + responses: + 200: + $ref: '#/components/schemas/SubscriberDevice' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + delete: + operationId: deleteSubscriberDevice + tags: + - Subscriber Devices + summary: Delete a subscriber device + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + responses: + 204: + $ref: '#/components/responses/Success' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + post: + summary: Create a subscriber device + tags: + - Subscriber Devices + operationId: createSubscriberDevice + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + example: + should be set to 0 when creating a new operator + required: true + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberDevice' + responses: + 200: + $ref: '#/components/schemas/SubscriberDevice' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + put: + summary: Update a subscriber device + tags: + - Subscriber Devices + operationId: updateSubscriberDevice + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberDevice' + responses: + 200: + $ref: '#/components/schemas/SubscriberDevice' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /operatorLocation: + get: + tags: + - Operator Locations + operationId: getOperatorLocations + summary: Retrieve a list of locations. + parameters: + - in: query + name: operatorId + schema: + type: string + format: uuid + required: true + - 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 Locations comma separated + name: select + schema: + type: string + example: uuid1,uuid2,uuid3 + required: false + - in: query + description: return the number of Locations + name: countOnly + schema: + type: boolean + required: false + - in: query + description: return only the UUIDs of Locations + name: uuidOnly + schema: + type: boolean + required: false + responses: + 200: + description: Return a list of Locations + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/OperatorLocationList' + - $ref: '#/components/schemas/CountAnswer' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /operatorLocation/{uuid}: + get: + tags: + - Operator Locations + operationId: getOperatorLocation + summary: Retrieve a specific location. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + responses: + 200: + $ref: '#/components/schemas/OperatorLocation' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + post: + tags: + - Operator Locations + operationId: createOperatorLocation + summary: Create a specific location. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + requestBody: + description: Information used to create the new location + content: + application/json: + schema: + $ref: '#/components/schemas/OperatorLocation' + responses: + 200: + $ref: '#/components/schemas/OperatorLocation' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + put: + tags: + - Operator Locations + operationId: modifyOperatorLocation + summary: Modify a specific location. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + requestBody: + description: Information used to modify the new location + content: + application/json: + schema: + $ref: '#/components/schemas/OperatorLocation' + responses: + 200: + $ref: '#/components/schemas/OperatorLocation' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + delete: + tags: + - Operator Locations + operationId: deleteOperatorLocation + summary: Delete a specific location. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + - in: query + name: force + schema: + type: boolean + required: true + responses: + 204: + $ref: '#/components/responses/Success' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /operatorContact: + get: + tags: + - Operator Contacts + operationId: getOperatorContacts + summary: Retrieve a list of operator contacts. + parameters: + - in: query + name: operatorId + schema: + type: string + format: uuid + required: true + - 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 operator contacts comma separated + name: select + schema: + type: string + example: uuid1,uuid2,uuid3 + required: false + - in: query + description: return the number of operator contacts + name: countOnly + schema: + type: boolean + required: false + - in: query + description: return only the UUIDs of operator contacts + name: uuidOnly + schema: + type: boolean + required: false + responses: + 200: + description: Return a list of operator contacts + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/OperatorContactList' + - $ref: '#/components/schemas/CountAnswer' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /operatorContact/{uuid}: + get: + tags: + - Operator Contacts + operationId: getOperatorContact + summary: Retrieve a specific operator contact. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + responses: + 200: + $ref: '#/components/schemas/OperatorContact' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + post: + tags: + - Operator Contacts + operationId: createOperatorContact + summary: Create a specific operator contact. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + requestBody: + description: Information used to create the new entity + content: + application/json: + schema: + $ref: '#/components/schemas/OperatorContact' + responses: + 200: + $ref: '#/components/schemas/OperatorContact' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + put: + tags: + - Operator Contacts + operationId: modifyOperatorContact + summary: Modify a specific operator contact. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + requestBody: + description: Information used to modify the new entity + content: + application/json: + schema: + $ref: '#/components/schemas/OperatorContact' + responses: + 200: + $ref: '#/components/schemas/OperatorContact' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + delete: + tags: + - Operator Contacts + operationId: deleteOperatorContact + summary: Delete a specific operator contact. + parameters: + - in: path + name: uuid + schema: + type: string + format: uuid + required: true + - in: query + name: force + schema: + type: boolean + required: true + responses: + 204: + $ref: '#/components/responses/Success' + 400: + $ref: '#/components/responses/BadRequest' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + + ######################################################################################### + ## + ## These are endpoints that all services in the OpenWiFi stack must provide + ## + ######################################################################################### + /dashboard: + get: + tags: + - Dashboards + summary: Get the last version of the dashboard. + operationId: getDeviceDashboard + responses: + 200: + $ref: '#/components/schemas/Dashboard' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' + + /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 + required: true + responses: + 200: + description: Successful command execution + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/SystemInfoResults' + 403: + $ref: '#/components/responses/Unauthorized' + 404: + $ref: '#/components/responses/NotFound' diff --git a/SUMMARY.md b/SUMMARY.md index 38a28e8..12def1c 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -15,17 +15,17 @@ * [Overview](openwifi-stack/openwifi-stack.md) * [SDK](openwifi-stack/about-the-sdk.md) -* [Cloud Discovery](openwifi-stack/cloud-discovery/README.md) - * [Discovery without Cloud](openwifi-stack/cloud-discovery/discovery-without-cloud.md) * [Access Points](openwifi-stack/access-points/README.md) * [Local Device Settings](openwifi-stack/access-points/local-device-settings.md) +* [Cloud Discovery](openwifi-stack/cloud-discovery/README.md) + * [Discovery without Cloud](openwifi-stack/cloud-discovery/discovery-without-cloud.md) * [Code Repositories](openwifi-stack/repositories.md) * [Artifacts](openwifi-stack/artifacts.md) ## SDK * [Getting Started](sdk/getting-started.md) -* [Release 2.6 SDK](sdk/sdk.md) +* [Architecture](sdk/sdk.md) * [Provisioning for Integrators](sdk/provisioning/README.md) * [Data Model Introduction](sdk/provisioning/data-model-introduction.md) * [Creating a Configuration](sdk/provisioning/creating-a-configuration.md) diff --git a/developer-resources/api/firmware-management-service.md b/developer-resources/api/firmware-management-service.md index d88c3b8..bb979ca 100644 --- a/developer-resources/api/firmware-management-service.md +++ b/developer-resources/api/firmware-management-service.md @@ -1,53 +1,57 @@ # Firmware Management Service -{% swagger src="../../.gitbook/assets/owfms.yaml" path="/firmwares" method="get" %} -[owfms.yaml](../../.gitbook/assets/owfms.yaml) +{% swagger src="../../.gitbook/assets/owfm-v2.7.0.yaml" path="/firmwares" method="get" %} +[owfm-v2.7.0.yaml](../../.gitbook/assets/owfm-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owfms.yaml" path="/firmware/{id}" method="get" %} -[owfms.yaml](../../.gitbook/assets/owfms.yaml) +{% swagger src="../../.gitbook/assets/owfm-v2.7.0.yaml" path="/firmware/{id}" method="get" %} +[owfm-v2.7.0.yaml](../../.gitbook/assets/owfm-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owfms.yaml" path="/firmware/{id}" method="post" %} -[owfms.yaml](../../.gitbook/assets/owfms.yaml) +{% swagger src="../../.gitbook/assets/owfm-v2.7.0.yaml" path="/firmware/{id}" method="post" %} +[owfm-v2.7.0.yaml](../../.gitbook/assets/owfm-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owfms.yaml" path="/firmware/{id}" method="put" %} -[owfms.yaml](../../.gitbook/assets/owfms.yaml) +{% swagger src="../../.gitbook/assets/owfm-v2.7.0.yaml" path="/firmware/{id}" method="put" %} +[owfm-v2.7.0.yaml](../../.gitbook/assets/owfm-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owfms.yaml" path="/firmware/{id}" method="delete" %} -[owfms.yaml](../../.gitbook/assets/owfms.yaml) +{% swagger src="../../.gitbook/assets/owfm-v2.7.0.yaml" path="/firmware/{id}" method="delete" %} +[owfm-v2.7.0.yaml](../../.gitbook/assets/owfm-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owfms.yaml" path="/revisionHistory/{serialNumber}" method="get" %} -[owfms.yaml](../../.gitbook/assets/owfms.yaml) +{% swagger src="../../.gitbook/assets/owfm-v2.7.0.yaml" path="/revisionHistory/{serialNumber}" method="get" %} +[owfm-v2.7.0.yaml](../../.gitbook/assets/owfm-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owfms.yaml" path="/revisionHistory/{serialNumber}" method="delete" %} -[owfms.yaml](../../.gitbook/assets/owfms.yaml) +{% swagger src="../../.gitbook/assets/owfm-v2.7.0.yaml" path="/revisionHistory/{serialNumber}" method="delete" %} +[owfm-v2.7.0.yaml](../../.gitbook/assets/owfm-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owfms.yaml" path="/firmwareAge" method="get" %} -[owfms.yaml](../../.gitbook/assets/owfms.yaml) +{% swagger src="../../.gitbook/assets/owfm-v2.7.0.yaml" path="/firmwareAge" method="get" %} +[owfm-v2.7.0.yaml](../../.gitbook/assets/owfm-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owfms.yaml" path="/connectedDevices" method="get" %} -[owfms.yaml](../../.gitbook/assets/owfms.yaml) +{% swagger src="../../.gitbook/assets/owfm-v2.7.0.yaml" path="/connectedDevices" method="get" %} +[owfm-v2.7.0.yaml](../../.gitbook/assets/owfm-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owfms.yaml" path="/connectedDevice/{serialNumber}" method="get" %} -[owfms.yaml](../../.gitbook/assets/owfms.yaml) +{% swagger src="../../.gitbook/assets/owfm-v2.7.0.yaml" path="/connectedDevice/{serialNumber}" method="get" %} +[owfm-v2.7.0.yaml](../../.gitbook/assets/owfm-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owfms.yaml" path="/deviceReport" method="get" %} -[owfms.yaml](../../.gitbook/assets/owfms.yaml) +{% swagger src="../../.gitbook/assets/owfm-v2.7.0.yaml" path="/deviceReport" method="get" %} +[owfm-v2.7.0.yaml](../../.gitbook/assets/owfm-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owfms.yaml" path="/system" method="get" %} -[owfms.yaml](../../.gitbook/assets/owfms.yaml) +{% swagger src="../../.gitbook/assets/owfm-v2.7.0.yaml" path="/deviceInformation/{serialNumber}" method="get" %} +[owfm-v2.7.0.yaml](../../.gitbook/assets/owfm-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owfms.yaml" path="/system" method="post" %} -[owfms.yaml](../../.gitbook/assets/owfms.yaml) +{% swagger src="../../.gitbook/assets/owfm-v2.7.0.yaml" path="/system" method="get" %} +[owfm-v2.7.0.yaml](../../.gitbook/assets/owfm-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owfm-v2.7.0.yaml" path="/system" method="post" %} +[owfm-v2.7.0.yaml](../../.gitbook/assets/owfm-v2.7.0.yaml) {% endswagger %} diff --git a/developer-resources/api/gateway-service.md b/developer-resources/api/gateway-service.md index d37337b..89a12f0 100644 --- a/developer-resources/api/gateway-service.md +++ b/developer-resources/api/gateway-service.md @@ -1,189 +1,213 @@ # Gateway Service -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/devices" method="get" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/devices" method="get" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/commands" method="get" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/commands" method="get" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/commands" method="delete" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/commands" method="delete" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/command/{commandUUID}" method="get" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/command/{commandUUID}" method="get" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/command/{commandUUID}" method="delete" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/command/{commandUUID}" method="delete" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/default_configurations" method="get" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/default_configurations" method="get" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/default_configuration/{name}" method="get" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/default_configuration/{name}" method="get" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/default_configuration/{name}" method="post" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/default_configuration/{name}" method="post" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/default_configuration/{name}" method="put" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/default_configuration/{name}" method="put" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/default_configuration/{name}" method="delete" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/default_configuration/{name}" method="delete" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}" method="get" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}" method="get" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}" method="post" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}" method="post" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}" method="put" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}" method="put" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}" method="delete" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}" method="delete" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/logs" method="get" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/logs" method="get" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/logs" method="delete" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/logs" method="delete" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/healthchecks" method="get" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/healthchecks" method="get" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/healthchecks" method="delete" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/healthchecks" method="delete" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/capabilities" method="get" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/capabilities" method="get" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/capabilities" method="delete" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/capabilities" method="delete" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/statistics" method="get" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/statistics" method="get" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/statistics" method="delete" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/statistics" method="delete" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/status" method="get" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/status" method="get" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/command" method="post" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/command" method="post" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/configure" method="post" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/configure" method="post" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/upgrade" method="post" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/ping" method="post" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/reboot" method="post" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/upgrade" method="post" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/factory" method="post" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/reboot" method="post" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/leds" method="post" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/script" method="post" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/trace" method="post" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/factory" method="post" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/wifiscan" method="post" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/leds" method="post" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/request" method="post" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/trace" method="post" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/eventqueue" method="post" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/wifiscan" method="post" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/telemetry" method="post" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/request" method="post" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/ouis" method="get" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/eventqueue" method="post" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/rtty" method="get" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/telemetry" method="post" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/file/{uuid}" method="get" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/ouis" method="get" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/file/{uuid}" method="delete" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/device/{serialNumber}/rtty" method="get" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/blacklist" method="get" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/file/{uuid}" method="get" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/blacklist/{serialNumber}" method="get" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/file/{uuid}" method="delete" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/blacklist/{serialNumber}" method="post" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/blacklist" method="get" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/blacklist/{serialNumber}" method="put" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/blacklist/{serialNumber}" method="get" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/blacklist/{serialNumber}" method="delete" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/blacklist/{serialNumber}" method="post" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/capabilities" method="get" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/blacklist/{serialNumber}" method="put" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/deviceDashboard" method="get" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/blacklist/{serialNumber}" method="delete" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/system" method="get" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/capabilities" method="get" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owgw.yaml" path="/system" method="post" %} -[owgw.yaml](../../.gitbook/assets/owgw.yaml) +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/radiusProxyConfig" method="get" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/radiusProxyConfig" method="put" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/radiusProxyConfig" method="delete" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/deviceDashboard" method="get" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/iptocountry" method="get" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/system" method="get" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owgw-2.7.0.yaml" path="/system" method="post" %} +[owgw-2.7.0.yaml](../../.gitbook/assets/owgw-2.7.0.yaml) {% endswagger %} diff --git a/developer-resources/api/provisioning-service.md b/developer-resources/api/provisioning-service.md index 5a8d2d4..0643f2f 100644 --- a/developer-resources/api/provisioning-service.md +++ b/developer-resources/api/provisioning-service.md @@ -1,209 +1,317 @@ # Provisioning Service -{% swagger src="../../.gitbook/assets/owprov.yaml" path="/entity/{uuid}" method="get" %} -[owprov.yaml](../../.gitbook/assets/owprov.yaml) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/entity" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/entity/{uuid}" method="post" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/entity/{uuid}" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/entity/{uuid}" method="put" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/entity/{uuid}" method="post" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/entity/{uuid}" method="delete" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/entity/{uuid}" method="put" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/contact" method="get" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/entity/{uuid}" method="delete" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/contact/{uuid}" method="get" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/contact" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/contact/{uuid}" method="post" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/contact/{uuid}" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/contact/{uuid}" method="put" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/contact/{uuid}" method="post" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/contact/{uuid}" method="delete" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/contact/{uuid}" method="put" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/location" method="get" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/contact/{uuid}" method="delete" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/location/{uuid}" method="get" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/location" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/location/{uuid}" method="post" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/location/{uuid}" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/location/{uuid}" method="put" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/location/{uuid}" method="post" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/location/{uuid}" method="delete" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/location/{uuid}" method="put" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/inventory" method="get" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/location/{uuid}" method="delete" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/inventory/{serialNumber}" method="get" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/inventory" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/inventory/{serialNumber}" method="post" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/inventory/{serialNumber}" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/inventory/{serialNumber}" method="put" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/inventory/{serialNumber}" method="post" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/inventory/{serialNumber}" method="delete" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/inventory/{serialNumber}" method="put" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/venue" method="get" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/inventory/{serialNumber}" method="delete" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/venue/{uuid}" method="get" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/venue" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/venue/{uuid}" method="post" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/venue/{uuid}" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/venue/{uuid}" method="put" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/venue/{uuid}" method="post" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/venue/{uuid}" method="delete" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/venue/{uuid}" method="put" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/map" method="get" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/venue/{uuid}" method="delete" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/map/{uuid}" method="get" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/map" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/map/{uuid}" method="post" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/map/{uuid}" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/map/{uuid}" method="put" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/map/{uuid}" method="post" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/map/{uuid}" method="delete" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/map/{uuid}" method="put" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/managementPolicy" method="get" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/map/{uuid}" method="delete" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/managementPolicy/{uuid}" method="get" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/managementPolicy" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/managementPolicy/{uuid}" method="post" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/managementPolicy/{uuid}" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/managementPolicy/{uuid}" method="put" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/managementPolicy/{uuid}" method="post" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/managementPolicy/{uuid}" method="delete" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/managementPolicy/{uuid}" method="put" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/managementRole" method="get" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/managementPolicy/{uuid}" method="delete" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/managementRole/{uuid}" method="post" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/managementRole" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/managementRole/{uuid}" method="put" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/managementRole/{uuid}" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/managementRole/{uuid}" method="delete" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/managementRole/{uuid}" method="post" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/configurations" method="get" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/managementRole/{uuid}" method="put" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/configurations/{uuid}" method="get" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/managementRole/{uuid}" method="delete" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/configurations/{uuid}" method="post" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/configuration" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/configurations/{uuid}" method="put" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/configuration/{uuid}" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/configurations/{uuid}" method="delete" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/configuration/{uuid}" method="post" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/iptocountry" method="get" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/configuration/{uuid}" method="put" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/signup" method="get" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/configuration/{uuid}" method="delete" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/signup" method="post" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/iptocountry" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/signup" method="put" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/signup" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/signup" method="delete" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/signup" method="post" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/variables" method="get" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/signup" method="put" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/dashboard" method="get" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/signup" method="delete" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/system" method="get" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/variable" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/system" method="post" %} -[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>) +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/operator" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/operator/{uuid}" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/operator/{uuid}" method="post" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/operator/{uuid}" method="put" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/operator/{uuid}" method="delete" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/serviceClass" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/serviceClass/{uuid}" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/serviceClass/{uuid}" method="post" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/serviceClass/{uuid}" method="put" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/serviceClass/{uuid}" method="delete" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/subscriberDevice" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/subscriberDevice/{uuid}" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/subscriberDevice/{uuid}" method="post" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/subscriberDevice/{uuid}" method="put" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/subscriberDevice/{uuid}" method="delete" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/operatorLocation" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/operatorLocation/{uuid}" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/operatorLocation/{uuid}" method="post" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/operatorLocation/{uuid}" method="put" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/operatorLocation/{uuid}" method="delete" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/operatorContact" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/operatorContact/{uuid}" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/operatorContact/{uuid}" method="post" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/operatorContact/{uuid}" method="put" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/operatorContact/{uuid}" method="delete" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/dashboard" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/system" method="get" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) +{% endswagger %} + +{% swagger src="../../.gitbook/assets/owprov-v2.7.0.yaml" path="/system" method="post" %} +[owprov-v2.7.0.yaml](../../.gitbook/assets/owprov-v2.7.0.yaml) {% endswagger %} diff --git a/developer-resources/api/security-service.md b/developer-resources/api/security-service.md index 6fee0db..bea1e8d 100644 --- a/developer-resources/api/security-service.md +++ b/developer-resources/api/security-service.md @@ -1,73 +1,137 @@ # Security Service -{% swagger src="../../.gitbook/assets/owsec.yaml" path="/oauth2" method="post" %} -[owsec.yaml](../../.gitbook/assets/owsec.yaml) +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/oauth2" method="post" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owsec.yaml" path="/oauth2/{token}" method="delete" %} -[owsec.yaml](../../.gitbook/assets/owsec.yaml) +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/suboauth2" method="post" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owsec.yaml" path="/systemEndpoints" method="get" %} -[owsec.yaml](../../.gitbook/assets/owsec.yaml) +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/oauth2/{token}" method="delete" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owsec.yaml" path="/users" method="get" %} -[owsec.yaml](../../.gitbook/assets/owsec.yaml) +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/suboauth2/{token}" method="delete" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owsec.yaml" path="/user/{id}" method="get" %} -[owsec.yaml](../../.gitbook/assets/owsec.yaml) +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/systemEndpoints" method="get" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owsec.yaml" path="/user/{id}" method="post" %} -[owsec.yaml](../../.gitbook/assets/owsec.yaml) +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/users" method="get" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owsec.yaml" path="/user/{id}" method="put" %} -[owsec.yaml](../../.gitbook/assets/owsec.yaml) +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/subusers" method="get" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owsec.yaml" path="/user/{id}" method="delete" %} -[owsec.yaml](../../.gitbook/assets/owsec.yaml) +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/user/{id}" method="get" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owsec.yaml" path="/avatar/{id}" method="get" %} -[owsec.yaml](../../.gitbook/assets/owsec.yaml) +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/user/{id}" method="post" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owsec.yaml" path="/avatar/{id}" method="post" %} -[owsec.yaml](../../.gitbook/assets/owsec.yaml) +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/user/{id}" method="put" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owsec.yaml" path="/avatar/{id}" method="delete" %} -[owsec.yaml](../../.gitbook/assets/owsec.yaml) +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/user/{id}" method="delete" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owsec.yaml" path="/email" method="post" %} -[owsec.yaml](../../.gitbook/assets/owsec.yaml) +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/subuser/{id}" method="get" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owsec.yaml" path="/sms" method="post" %} -[owsec.yaml](../../.gitbook/assets/owsec.yaml) +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/subuser/{id}" method="post" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owsec.yaml" path="/securityProfiles" method="get" %} -[owsec.yaml](../../.gitbook/assets/owsec.yaml) +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/subuser/{id}" method="put" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owsec.yaml" path="/systemServices" method="get" %} -[owsec.yaml](../../.gitbook/assets/owsec.yaml) +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/subuser/{id}" method="delete" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owsec.yaml" path="/validateToken" method="get" %} -[owsec.yaml](../../.gitbook/assets/owsec.yaml) +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/avatar/{id}" method="get" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owsec.yaml" path="/system" method="get" %} -[owsec.yaml](../../.gitbook/assets/owsec.yaml) +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/avatar/{id}" method="post" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) {% endswagger %} -{% swagger src="../../.gitbook/assets/owsec.yaml" path="/system" method="post" %} -[owsec.yaml](../../.gitbook/assets/owsec.yaml) +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/avatar/{id}" method="delete" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/email" method="post" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/sms" method="post" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/userPreferences" method="get" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/userPreferences" method="post" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/submfa" method="get" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/submfa" method="put" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/totp" method="get" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/totp" method="put" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/signup" method="post" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/signup" method="put" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/securityProfiles" method="get" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/systemServices" method="get" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/validateToken" method="get" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/validateSubToken" method="get" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/system" method="get" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) +{% endswagger %} + +{% swagger src="https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml" path="/system" method="post" %} +[https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml](https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentralsec/release/v2.7.0/openpapi/owsec.yaml) {% endswagger %} diff --git a/openwifi-stack/artifacts.md b/openwifi-stack/artifacts.md index 0173c08..5dcba63 100644 --- a/openwifi-stack/artifacts.md +++ b/openwifi-stack/artifacts.md @@ -17,4 +17,8 @@ These images are then pushed to jfrog in each device specific target directory: The SDK micro-services are built on every pull request on their respective repositories. These images are then containerized and pushed to jfrog here: -[https://tip.jfrog.io/ui/repos/tree/General/tip-wlan-cloud-ucentral](https://tip.jfrog.io/ui/repos/tree/General/tip-wlan-cloud-ucentral)\ +[https://tip.jfrog.io/ui/repos/tree/General/tip-wlan-cloud-ucentral](https://tip.jfrog.io/ui/repos/tree/General/tip-wlan-cloud-ucentral) + + + +**NOTE**: For additional details on CI\&CD and Testing pipelines please click [here](https://telecominfraproject.atlassian.net/l/cp/1UU780gd).\ diff --git a/openwifi-stack/repositories.md b/openwifi-stack/repositories.md index e586eb5..fa4b29a 100644 --- a/openwifi-stack/repositories.md +++ b/openwifi-stack/repositories.md @@ -9,6 +9,8 @@ description: Repository Information License: BSD-3-Clause * Openwrt based APNOS: [https://github.com/Telecominfraproject/wlan-ap](https://github.com/Telecominfraproject/wlan-ap) +* ucentral schema: [https://github.com/Telecominfraproject/wlan-ucentral-schema](https://github.com/Telecominfraproject/wlan-ucentral-schema) +* ucentral client: [https://github.com/Telecominfraproject/wlan-ucentral-client](https://github.com/Telecominfraproject/wlan-ucentral-client) **Controller SDK** @@ -22,6 +24,7 @@ License: BSD-3-Clause * Provisioning UI: [https://github.com/Telecominfraproject/wlan-cloud-owprov-ui](https://github.com/Telecominfraproject/wlan-cloud-owprov-ui) * Analytics Service: [https://github.com/Telecominfraproject/wlan-cloud-analytics](https://github.com/Telecominfraproject/wlan-cloud-analytics) * Subscriber Service: [https://github.com/Telecominfraproject/wlan-cloud-userportal](https://github.com/Telecominfraproject/wlan-cloud-userportal) +* RRM Service: [https://github.com/Telecominfraproject/wlan-cloud-rrm](https://github.com/Telecominfraproject/wlan-cloud-rrm) **Testing** diff --git a/sdk-installation/overview.md b/sdk-installation/overview.md index 43476f6..0962f11 100644 --- a/sdk-installation/overview.md +++ b/sdk-installation/overview.md @@ -9,3 +9,14 @@ The repository is managed using branches where: * main branch: contains references to the latest development SDK images * release/v_**X.Y.Z**_ branch: contains image references specific to the release artifacts. For example: release/**v2.4.0** branch will contain references to SDK images related to 2.4.0 release candidates (RC) and GA. + +``` +// Clone the repo (if not already done so) +// The default branch is main. +git clone git@github.com:Telecominfraproject/wlan-cloud-ucentral-deploy.git + +// Use either main or release branch. Recommend to use release branch once a release is +// GAed. +git checkout -b v2.7.0 origin/release/v2.7.0 + +``` diff --git a/sdk/sdk.md b/sdk/sdk.md index fb6e550..454ba52 100644 --- a/sdk/sdk.md +++ b/sdk/sdk.md @@ -1,10 +1,10 @@ --- -description: TIP OpenWiFi 2.6 +description: TIP OpenWiFi 2.x Architecture --- -# Release 2.6 SDK +# Architecture -Release 2.6 SDK offers a number of ways to consume OpenWiFi. Available as a single Docker for just the uCentralGW or as a set of microservices offering increasing value to consume helps multiple eco-system partners use as much or as little as desired to integrate with or build a commercial product on the TIP OpenWiFi SDK. +Release 2.x SDK offers a number of ways to consume OpenWiFi. Available as a single Docker for just the uCentralGW or as a set of microservices offering increasing value to consume helps multiple eco-system partners use as much or as little as desired to integrate with or build a commercial product on the TIP OpenWiFi SDK. Initial features of the 2.0 SDK at MVP include: