` object containing the rules for the address book.
If the address book does not exist or the user is not authorized to access it, this function returns a `status::Unauthorized` error.
\n\n## Errors\n\nThis function will return an error if the system is in maintenance mode, or if the address book does not exist or the user is not authorized to access it.",
"operationId": "ab_rules",
"parameters": [
{
"name": "current",
"in": "query",
"required": true,
"schema": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
}
},
{
"name": "pageSize",
"in": "query",
"required": true,
"schema": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
}
},
{
"name": "ab",
"in": "query",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AbRulesResponse"
}
}
}
},
"401": {
"description": ""
}
},
"security": [
{
"authorization": []
}
]
}
},
"/api/ab/rule": {
"post": {
"tags": [
"address book"
],
"summary": "Add a Rule",
"description": "This function is an API endpoint that adds a new rule to a shared address book. It is tagged with \"address book\" for OpenAPI documentation.\n\n## Parameters\n\n- `request`: The request containing the details of the rule to be added.\n\n## Returns\n\nIf successful, this function returns an `ActionResponse::Empty` indicating that the rule was successfully added.
If the system is in maintenance mode, this function returns a `status::Unauthorized` error.\n\n## Errors\n\nThis function will return an error if the system is in maintenance mode.",
"operationId": "ab_rule_add",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AbRuleAddRequest"
}
}
},
"required": true
},
"responses": {
"422": {
"description": "# [422 Unprocessable Entity](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/422)\nThis response is given when you request body is not correctly formatted. "
},
"200": {
"description": "\\\n # [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/200) \n This response is given when the request is successful. \n The body is empty if there is no error, \n The body contains a json object with the error {\"error\":\"Error message\"} \n "
},
"401": {
"description": ""
}
},
"security": [
{
"authorization_admin": []
}
]
},
"delete": {
"tags": [
"address book"
],
"summary": "Delete a Rule",
"description": "This function is an API endpoint that deletes a rule from a shared address book. It is tagged with \"address book\" for OpenAPI documentation.\n\n## Parameters\n\n- `request`: The request containing the GUID of the rule to be deleted.\n\n## Returns\n\nIf successful, this function returns an `ActionResponse::Empty` indicating that the rule was successfully deleted.
If the system is in maintenance mode, this function returns a `status::Unauthorized` error.\n\n## Errors\n\nThis function will return an error if the system is in maintenance mode.",
"operationId": "ab_rule_delete",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AbRuleDeleteRequest"
}
}
},
"required": true
},
"responses": {
"422": {
"description": "# [422 Unprocessable Entity](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/422)\nThis response is given when you request body is not correctly formatted. "
},
"200": {
"description": "\\\n # [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/200) \n This response is given when the request is successful. \n The body is empty if there is no error, \n The body contains a json object with the error {\"error\":\"Error message\"} \n "
},
"401": {
"description": ""
}
},
"security": [
{
"authorization_admin": []
}
]
}
},
"/api/software/client-download-link/{key}": {
"get": {
"tags": [
"software"
],
"description": "Get the software download url\n\n# Arguments\n\n* `key` - The key to the software download link, it can be `osx`, `w64` or `ios`\n\n# Usage\n\n* it needs a valid S3 configuration file defined with the `S3_CONFIG_FILE` environment variable\n\n [s3config]
Endpoint = \"https://compat.objectstorage.eu-london-1.oraclecloud.com\"
Region = \"eu-london-1\"
AccessKey = \"c324ead11faa0d87337c07ddc4a1129fab76188d\"
SecretKey = \"GJurV55f/LD36kjZFpchZMj/uvgTqxHyFkBchUUa8KA=\"
Bucket = \"aezoz24elapn\"
Windows64Key = \"master/sctgdesk-releases/sctgdesk-1.2.4-x86_64.exe\"
Windows32Key = \"master/sctgdesk-releases/sctgdesk-1.2.4-i686.exe\"
OSXKey = \"master/sctgdesk-releases/sctgdesk-1.2.4.dmg\"
OSXArm64Key = \"master/sctgdesk-releases/sctgdesk-1.2.4.dmg\"
IOSKey = \"master/sctgdesk-releases/sctgdesk-1.2.4.ipa\"
",
"operationId": "software",
"parameters": [
{
"name": "key",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SoftwareResponse"
}
}
}
},
"404": {
"description": ""
}
}
}
},
"/api/software/version/server": {
"get": {
"tags": [
"software"
],
"description": "Retrieve the server version",
"operationId": "software_version",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SoftwareVersionResponse"
}
}
}
}
}
}
},
"/": {
"get": {
"tags": [
"webconsole"
],
"operationId": "webconsole_index",
"responses": {
"500": {
"description": ""
}
}
}
},
"/index.html": {
"get": {
"tags": [
"webconsole"
],
"operationId": "webconsole_index_html",
"responses": {
"500": {
"description": ""
}
}
}
}
},
"components": {
"schemas": {
"LoginReply": {
"type": "object",
"required": [
"access_token",
"type",
"user"
],
"properties": {
"type": {
"type": "string"
},
"user": {
"$ref": "#/components/schemas/UserInfo"
},
"access_token": {
"$ref": "#/components/schemas/Token"
}
}
},
"UserInfo": {
"type": "object",
"required": [
"admin",
"name"
],
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string",
"nullable": true
},
"admin": {
"type": "boolean"
}
}
},
"Token": {
"type": "array",
"items": {
"type": "integer",
"format": "uint8",
"minimum": 0.0
},
"maxItems": 32,
"minItems": 32
},
"LoginRequest": {
"type": "object",
"required": [
"id",
"password",
"username",
"uuid"
],
"properties": {
"username": {
"type": "string"
},
"password": {
"type": "string"
},
"id": {
"type": "string"
},
"uuid": {
"type": "string"
}
}
},
"AbGetResponse": {
"type": "object",
"required": [
"data"
],
"properties": {
"error": {
"type": "boolean",
"nullable": true
},
"updated_at": {
"type": "string",
"nullable": true
},
"data": {
"type": "string"
}
}
},
"AbRequest": {
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"type": "string"
}
}
},
"CurrentUserResponse": {
"type": "object",
"required": [
"admin",
"error",
"name"
],
"properties": {
"error": {
"type": "boolean"
},
"name": {
"type": "string"
},
"email": {
"type": "string",
"nullable": true
},
"admin": {
"type": "boolean"
}
}
},
"CurrentUserRequest": {
"type": "object",
"required": [
"id",
"uuid"
],
"properties": {
"id": {
"type": "string"
},
"uuid": {
"type": "string"
}
}
},
"AuditRequest": {
"type": "object",
"properties": {
"Id": {
"default": 0,
"type": "integer",
"format": "uint",
"minimum": 0.0
},
"action": {
"default": "",
"type": "string"
},
"id": {
"default": "",
"type": "string"
},
"ip": {
"default": "",
"type": "string"
},
"uuid": {
"default": "",
"type": "string"
}
}
},
"LogoutReply": {
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"type": "string"
}
}
},
"HeartbeatRequest": {
"type": "object",
"required": [
"id",
"modified_at",
"uuid",
"ver"
],
"properties": {
"id": {
"type": "string"
},
"modified_at": {
"type": "integer",
"format": "uint64",
"minimum": 0.0
},
"uuid": {
"type": "string"
},
"ver": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
}
}
},
"SystemInfo": {
"type": "object",
"properties": {
"cpu": {
"type": "string",
"nullable": true
},
"hostname": {
"type": "string",
"nullable": true
},
"id": {
"type": "string",
"nullable": true
},
"memory": {
"type": "string",
"nullable": true
},
"os": {
"type": "string",
"nullable": true
},
"username": {
"type": "string",
"nullable": true
},
"uuid": {
"type": "string",
"nullable": true
},
"version": {
"type": "string",
"nullable": true
},
"ip": {
"type": "string",
"nullable": true
}
}
},
"GroupsResponse": {
"type": "object",
"required": [
"data",
"msg",
"total"
],
"properties": {
"msg": {
"type": "string"
},
"total": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Group"
}
}
}
},
"Group": {
"type": "object",
"required": [
"access_to",
"accessed_from",
"created_at",
"guid",
"info",
"name",
"team"
],
"properties": {
"guid": {
"type": "string"
},
"name": {
"type": "string"
},
"team": {
"type": "string"
},
"created_at": {
"type": "string"
},
"access_to": {
"type": "array",
"items": {
"type": "string"
}
},
"accessed_from": {
"type": "array",
"items": {
"type": "string"
}
},
"note": {
"type": "string",
"nullable": true
},
"info": {
"type": "string"
}
}
},
"UsersResponse": {
"type": "object",
"required": [
"data",
"msg",
"total"
],
"properties": {
"msg": {
"type": "string"
},
"total": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"data": {
"type": "string"
}
}
},
"AddUserRequest": {
"type": "object",
"required": [
"confirm-password",
"email",
"group_name",
"is_admin",
"name",
"password"
],
"properties": {
"name": {
"type": "string"
},
"password": {
"type": "string"
},
"confirm-password": {
"type": "string"
},
"email": {
"type": "string"
},
"is_admin": {
"type": "boolean"
},
"group_name": {
"type": "string"
}
}
},
"UserList": {
"type": "object",
"required": [
"data",
"msg",
"total"
],
"properties": {
"msg": {
"type": "string"
},
"total": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/UserListResponse"
}
}
}
},
"UserListResponse": {
"type": "object",
"required": [
"email",
"group_name",
"guid",
"is_admin",
"name",
"status"
],
"properties": {
"guid": {
"type": "string"
},
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"note": {
"type": "string",
"nullable": true
},
"status": {
"type": "integer",
"format": "int32"
},
"group_name": {
"type": "string"
},
"is_admin": {
"type": "boolean"
}
}
},
"EnableUserRequest": {
"type": "object",
"required": [
"disable",
"rows"
],
"properties": {
"rows": {
"type": "array",
"items": {
"type": "string"
}
},
"disable": {
"type": "boolean"
}
}
},
"UpdateUserRequest": {
"type": "object",
"required": [
"uuid"
],
"properties": {
"uuid": {
"type": "string"
},
"name": {
"type": "string",
"nullable": true
},
"password": {
"type": "string",
"nullable": true
},
"confirm-password": {
"type": "string",
"nullable": true
},
"email": {
"type": "string",
"nullable": true
},
"is_admin": {
"type": "boolean",
"nullable": true
},
"group_name": {
"type": "string",
"nullable": true
},
"note": {
"type": "string",
"nullable": true
},
"status": {
"type": "integer",
"format": "int32",
"nullable": true
}
}
},
"PeersResponse": {
"type": "object",
"required": [
"data",
"msg",
"total"
],
"properties": {
"msg": {
"type": "string"
},
"total": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Peer"
}
}
}
},
"Peer": {
"type": "object",
"required": [
"guid",
"id",
"info",
"last_online",
"status",
"strategy_name"
],
"properties": {
"guid": {
"type": "string"
},
"id": {
"type": "string"
},
"status": {
"type": "integer",
"format": "int32"
},
"strategy_name": {
"type": "string"
},
"last_online": {
"type": "string"
},
"info": {
"$ref": "#/components/schemas/PeerInfo"
}
}
},
"PeerInfo": {
"type": "object",
"properties": {
"cpu": {
"type": "string",
"nullable": true
},
"hostname": {
"type": "string",
"nullable": true
},
"id": {
"type": "string",
"nullable": true
},
"memory": {
"type": "string",
"nullable": true
},
"os": {
"type": "string",
"nullable": true
},
"username": {
"type": "string",
"nullable": true
},
"uuid": {
"type": "string",
"nullable": true
},
"version": {
"type": "string",
"nullable": true
},
"ip": {
"type": "string",
"nullable": true
}
}
},
"OidcAuthUrl": {
"type": "object",
"required": [
"code",
"url"
],
"properties": {
"code": {
"type": "string"
},
"url": {
"type": "string"
}
}
},
"OidcAuthRequest": {
"type": "object",
"required": [
"deviceInfo",
"id",
"op",
"uuid"
],
"properties": {
"deviceInfo": {
"$ref": "#/components/schemas/OidcDeviceInfo"
},
"id": {
"type": "string"
},
"op": {
"type": "string"
},
"uuid": {
"type": "string"
}
}
},
"OidcDeviceInfo": {
"type": "object",
"required": [
"name",
"os",
"type"
],
"properties": {
"name": {
"type": "string"
},
"os": {
"type": "string"
},
"type": {
"type": "string"
}
}
},
"OidcResponse": {
"type": "object",
"required": [
"access_token",
"secret",
"tfa_type",
"type",
"user"
],
"properties": {
"access_token": {
"type": "string"
},
"type": {
"type": "string"
},
"tfa_type": {
"type": "string"
},
"secret": {
"type": "string"
},
"user": {
"$ref": "#/components/schemas/OidcUser"
}
}
},
"OidcUser": {
"type": "object",
"required": [
"email",
"info",
"is_admin",
"name",
"note",
"status",
"third_auth_type"
],
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"note": {
"type": "string"
},
"status": {
"type": "integer",
"format": "int64"
},
"info": {
"$ref": "#/components/schemas/OidcUserInfo"
},
"is_admin": {
"type": "boolean"
},
"third_auth_type": {
"type": "string"
}
}
},
"OidcUserInfo": {
"type": "object",
"required": [
"email_alarm_notification",
"email_verification",
"login_device_whitelist",
"other"
],
"properties": {
"email_verification": {
"type": "boolean"
},
"email_alarm_notification": {
"type": "boolean"
},
"login_device_whitelist": {
"type": "array",
"items": {
"type": "string"
}
},
"other": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
},
"OidcSettingsResponse": {
"type": "object",
"required": [
"callback_url",
"max_auth_count",
"providers"
],
"properties": {
"max_auth_count": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"callback_url": {
"type": "string"
},
"providers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Provider"
}
}
}
},
"Provider": {
"type": "object",
"required": [
"authorization_endpoint",
"client_id",
"client_secret",
"enabled",
"name",
"order_index",
"token_endpoint",
"userinfo_endpoint"
],
"properties": {
"name": {
"type": "string"
},
"order_index": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"enabled": {
"type": "boolean"
},
"client_id": {
"type": "string"
},
"client_secret": {
"type": "string"
},
"authorization_endpoint": {
"type": "string"
},
"token_endpoint": {
"type": "string"
},
"userinfo_endpoint": {
"type": "string"
}
}
},
"AbPeer": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
},
"hash": {
"type": "string",
"nullable": true
},
"password": {
"type": "string",
"nullable": true
},
"username": {
"type": "string",
"nullable": true
},
"hostname": {
"type": "string",
"nullable": true
},
"platform": {
"type": "string",
"nullable": true
},
"alias": {
"type": "string",
"nullable": true
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true
},
"forceAlwaysRelay": {
"type": "boolean",
"nullable": true
},
"rdpPort": {
"type": "string",
"nullable": true
},
"rdpUsername": {
"type": "string",
"nullable": true
},
"loginName": {
"type": "string",
"nullable": true
},
"same_server": {
"type": "boolean",
"nullable": true
}
}
},
"AbPeersResponse": {
"type": "object",
"required": [
"data",
"total"
],
"properties": {
"error": {
"type": "string",
"nullable": true
},
"total": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AbPeer"
}
}
}
},
"AbPersonal": {
"type": "object",
"required": [
"guid"
],
"properties": {
"guid": {
"type": "string"
},
"error": {
"type": "string",
"nullable": true
}
}
},
"AbTag": {
"type": "object",
"required": [
"color",
"name"
],
"properties": {
"name": {
"type": "string"
},
"color": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
}
}
},
"AbTagRenameRequest": {
"type": "object",
"required": [
"new",
"old"
],
"properties": {
"old": {
"type": "string"
},
"new": {
"type": "string"
}
}
},
"AbSharedProfilesResponse": {
"type": "object",
"required": [
"data",
"total"
],
"properties": {
"error": {
"type": "string",
"nullable": true
},
"total": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AbProfile"
}
}
}
},
"AbProfile": {
"type": "object",
"required": [
"guid",
"name",
"owner",
"rule"
],
"properties": {
"guid": {
"type": "string"
},
"name": {
"type": "string"
},
"owner": {
"type": "string"
},
"note": {
"type": "string",
"nullable": true
},
"rule": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
}
}
},
"AbSharedAddRequest": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
},
"note": {
"type": "string",
"nullable": true
}
}
},
"AbSettingsResponse": {
"type": "object",
"required": [
"max_peer_one_ab"
],
"properties": {
"error": {
"type": "string",
"nullable": true
},
"max_peer_one_ab": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
}
}
},
"AbRulesResponse": {
"type": "object",
"required": [
"data",
"msg",
"total"
],
"properties": {
"msg": {
"type": "string"
},
"total": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AbRule"
}
}
}
},
"AbRule": {
"type": "object",
"required": [
"guid",
"rule"
],
"properties": {
"guid": {
"type": "string"
},
"user": {
"type": "string",
"nullable": true
},
"group": {
"type": "string",
"nullable": true
},
"rule": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
}
}
},
"AbRuleAddRequest": {
"type": "object",
"required": [
"guid",
"rule"
],
"properties": {
"guid": {
"type": "string"
},
"user": {
"type": "string",
"nullable": true
},
"group": {
"type": "string",
"nullable": true
},
"rule": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
}
}
},
"AbRuleDeleteRequest": {
"type": "object",
"required": [
"guid"
],
"properties": {
"guid": {
"type": "string"
}
}
},
"SoftwareResponse": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string"
}
}
},
"SoftwareVersionResponse": {
"type": "object",
"properties": {
"server": {
"type": "string",
"nullable": true
},
"client": {
"type": "string",
"nullable": true
}
}
}
},
"securitySchemes": {
"authorization": {
"description": "Requires an API key to access, format the key as a 256 bit base64 encoded string like `Ak4DJ9IDYTpaceqBlAlK5pGJq595ERpq6haBaADg_lA`.",
"type": "http",
"scheme": "bearer",
"bearerFormat": "256 bit base64 encoded string"
},
"authorization_admin": {
"description": "Requires an Admin API key to access, format the key as a 256 bit base64 encoded string like `o5Zci3V8o2QIWBDrRgDNxXwrfmX3Gk3sRjY5I302dzU=`.",
"type": "http",
"scheme": "bearer",
"bearerFormat": "256 bit base64 encoded string"
}
}
}
}