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://github.com/Telecominfraproject/wlan-cloud-ucentralsec/blob/main/openpapi/owsec.yaml#/components/responses/NotFound' Unauthorized: $ref: 'https://github.com/Telecominfraproject/wlan-cloud-ucentralsec/blob/main/openpapi/owsec.yaml#/components/responses/Unauthorized' Success: $ref: 'https://github.com/Telecominfraproject/wlan-cloud-ucentralsec/blob/main/openpapi/owsec.yaml#/components/responses/Success' BadRequest: $ref: 'https://github.com/Telecominfraproject/wlan-cloud-ucentralsec/blob/main/openpapi/owsec.yaml#/components/responses/BadRequest' schemas: 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 imported: type: integer format: int64 connected: type: integer format: int64 platform: type: string enum: - AP - SWITCH 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' ConfigurationOverride: type: object properties: source: type: string reason: type: string parameterName: type: string parameterType: enum: - string - integer - boolean parameterValue: type: string modified: type: integer format: int64 ConfigurationOverrideList: type: object properties: serialNumber: type: string managementPolicy: type: string format: uuid overrides: type: array items: $ref: '#/components/schemas/ConfigurationOverride' ######################################################################################### ## ## These are endpoints that all services in the OPenWiFI stack must provide ## ######################################################################################### ExtraSystemConfiguration: type: array items: type: object properties: parameterName: type: string parameterValue: type: string AnyPayload: type: object properties: Document: type: string StringList: type: object properties: list: type: array items: type: string TagValuePair: type: object properties: tag: type: string value: type: string TagValuePairList: type: object properties: tagList: type: array items: $ref: '#/components/schemas/TagValuePair' TagIntPair: type: object properties: tag: type: string value: type: integer format: int64 TagIntPairList: type: object properties: tagList: type: array items: $ref: '#/components/schemas/TagIntPair' SystemCommandDetails: type: object properties: command: type: string enum: - setloglevels - getloglevels - getSubSystemNames - getLogLevelNames - stats parameters: oneOf: - $ref: '#/components/schemas/StringList' - $ref: '#/components/schemas/TagValuePairList' NoteInfo: type: object properties: created: type: integer format: int64 createdBy: type: string note: type: string SystemInfoResults: type: object properties: version: type: string uptime: type: integer format: integer64 start: type: integer format: integer64 os: type: string processors: type: integer hostname: type: string certificates: type: array items: type: object properties: filename: type: string expires: type: integer format: int64 SystemResources: type: object properties: numberOfFileDescriptors: type: integer format: int64 currRealMem: type: integer format: int64 peakRealMem: type: integer format: int64 currVirtMem: type: integer format: int64 peakVirtMem: type: integer format: int64 SystemCommandResults: type: object oneOf: - $ref: '#/components/schemas/SystemResources' - $ref: '#/components/schemas/SystemInfoResults' - $ref: '#/components/schemas/StringList' - $ref: '#/components/schemas/TagValuePairList' 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 for a subscriber name: subscriber schema: type: string format: uuid 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 - in: query description: return RRM settings for a specific device name: rrmSettings schema: type: boolean default: false 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' /configurationOverrides/{serialNumber}: get: tags: - Configuration Overrides operationId: getConfigurationOverrides summary: retrieve a list of configuration overrides for a given device parameters: - in: path name: serialNumber schema: type: string required: true responses: 200: description: Return a list of configuration overrides. content: application/json: schema: $ref: '#/components/schemas/ConfigurationOverrideList' 400: $ref: '#/components/responses/BadRequest' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' delete: tags: - Configuration Overrides operationId: deleteConfigurationOverrides summary: delete all configuration overrides for a given device from a given source parameters: - in: path name: serialNumber schema: type: string required: true - in: query name: source schema: type: string required: true responses: 200: $ref: '#/components/responses/Success' 400: $ref: '#/components/responses/BadRequest' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' put: tags: - Configuration Overrides operationId: modifyConfigurationOverrides summary: modify configuration overrides for a given device for a given source parameters: - in: path name: serialNumber schema: type: string required: true - in: query name: source schema: type: string required: true requestBody: description: Information used to modify the override list content: application/json: schema: $ref: '#/components/schemas/ConfigurationOverrideList' responses: 200: description: Return the modified configuration overrides. content: application/json: schema: $ref: '#/components/schemas/ConfigurationOverrideList' 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 - in: query description: list venues that use a specific RRM vendor name: RRMvendor schema: type: string example: - this is the shortname of the RRM vendor 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 - in: query name: revisionsAvailable schema: type: boolean default: false required: false - in: query name: revision schema: type: string 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 - in: query name: deviceType schema: type: string enum: - AP - SWITCH required: false default: AP 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 - in: query name: deviceType schema: type: string enum: - AP - SWITCH required: false default: AP 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 - extraConfiguration - resources required: true responses: 200: $ref: '#/components/schemas/SystemCommandResults' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' /systemConfiguration: get: tags: - SystemConfiguration summary: Retrieve system configuration items operationId: getSystemConfiguration parameters: - in: query description: Which parameters you want to retrieve name: entries schema: type: string example: - element1 - element1,element2,element3 required: false responses: 200: description: List of configuration elements content: application/json: schema: type: array items: $ref: '#/components/schemas/ExtraSystemConfiguration' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' put: tags: - SystemConfiguration summary: Set some or all system configuration operationId: setSystemConfiguration requestBody: content: application/json: schema: $ref: '#/components/schemas/ExtraSystemConfiguration' responses: 200: $ref: '#/components/schemas/ExtraSystemConfiguration' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound' delete: tags: - SystemConfiguration summary: Delete all additional system configuration operationId: deleteSystemConfiguration responses: 200: $ref: '#/components/responses/Success' 403: $ref: '#/components/responses/Unauthorized' 404: $ref: '#/components/responses/NotFound'