{
    "schemes": [
        "http"
    ],
    "swagger": "2.0",
    "info": {
        "description": "This is the Signal Cli REST API documentation.",
        "title": "Signal Cli REST API",
        "contact": {},
        "version": "1.0"
    },
    "host": "localhost:8080",
    "basePath": "/",
    "paths": {
        "/v1/about": {
            "get": {
                "description": "Returns the supported API versions and the internal build nr",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "General"
                ],
                "summary": "Lists general information about the API",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/client.About"
                        }
                    }
                }
            }
        },
        "/v1/accounts": {
            "get": {
                "description": "Lists all of the accounts linked or registered",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Accounts"
                ],
                "summary": "List all accounts",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/accounts/{number}/pin": {
            "post": {
                "description": "Sets a new Signal Pin",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Accounts"
                ],
                "summary": "Set Pin",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Request",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.SetPinRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            },
            "delete": {
                "description": "Removes a Signal Pin",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Accounts"
                ],
                "summary": "Remove Pin",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/accounts/{number}/rate-limit-challenge": {
            "post": {
                "description": "When running into rate limits, sometimes the limit can be lifted, by solving a CAPTCHA. To get the captcha token, go to https://signalcaptchas.org/challenge/generate.html For the staging environment, use: https://signalcaptchas.org/staging/registration/generate.html. The \"challenge_token\" is the token from the failed send attempt. The \"captcha\" is the captcha result, starting with signalcaptcha://",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Accounts"
                ],
                "summary": "Lift rate limit restrictions by solving a captcha.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Request",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.RateLimitChallengeRequest"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/accounts/{number}/settings": {
            "put": {
                "description": "Update the account attributes on the signal server.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Accounts"
                ],
                "summary": "Update the account settings.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Request",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.UpdateAccountSettingsRequest"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/accounts/{number}/username": {
            "post": {
                "description": "Allows to set the username that should be used for this account. This can either be just the nickname (e.g. test) or the complete username with discriminator (e.g. test.123). Returns the new username with discriminator and the username link.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Accounts"
                ],
                "summary": "Set a username.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Request",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.SetUsernameRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/client.SetUsernameResponse"
                        }
                    },
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete the username associated with this account.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Accounts"
                ],
                "summary": "Remove a username.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/attachments": {
            "get": {
                "description": "List all downloaded attachments",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Attachments"
                ],
                "summary": "List all attachments.",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/attachments/{attachment}": {
            "get": {
                "description": "Serve the attachment with the given id",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Attachments"
                ],
                "summary": "Serve Attachment.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Attachment ID",
                        "name": "attachment",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            },
            "delete": {
                "description": "Remove the attachment with the given id from filesystem.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Attachments"
                ],
                "summary": "Remove attachment.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Attachment ID",
                        "name": "attachment",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/configuration": {
            "get": {
                "description": "List the REST API configuration.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "General"
                ],
                "summary": "List the REST API configuration.",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/api.Configuration"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            },
            "post": {
                "description": "Set the REST API configuration.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "General"
                ],
                "summary": "Set the REST API configuration.",
                "parameters": [
                    {
                        "description": "Configuration",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.Configuration"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/configuration/{number}/settings": {
            "get": {
                "description": "List account specific settings.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "General"
                ],
                "summary": "List account specific settings.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Request",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.TrustModeResponse"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            },
            "post": {
                "description": "Set account specific settings.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "General"
                ],
                "summary": "Set account specific settings.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Request",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.TrustModeRequest"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/contacts/{number}": {
            "get": {
                "description": "List all contacts for the given number.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Contacts"
                ],
                "summary": "List Contacts",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/client.ListContactsResponse"
                            }
                        }
                    }
                }
            },
            "put": {
                "description": "Updates the info associated to a number on the contact list.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Contacts"
                ],
                "summary": "Updates the info associated to a number on the contact list. If the contact doesn’t exist yet, it will be added.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Contact",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.UpdateContactRequest"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/contacts/{number}/sync": {
            "post": {
                "description": "Send a synchronization message with the local contacts list to all linked devices. This command should only be used if this is the primary device.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Contacts"
                ],
                "summary": "Send a synchronization message with the local contacts list to all linked devices.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/devices/{number}": {
            "get": {
                "description": "List linked devices associated to this device.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Devices"
                ],
                "summary": "List linked devices.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/client.ListDevicesResponse"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            },
            "post": {
                "description": "Links another device to this device. Only works, if this is the master device.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Devices"
                ],
                "summary": "Links another device to this device.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Request",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.AddDeviceRequest"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/groups/{number}": {
            "get": {
                "description": "List all Signal Groups.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Groups"
                ],
                "summary": "List all Signal Groups.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/client.GroupEntry"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            },
            "post": {
                "description": "Create a new Signal Group with the specified members.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Groups"
                ],
                "summary": "Create a new Signal Group.",
                "parameters": [
                    {
                        "description": "Input Data",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.CreateGroupRequest"
                        }
                    },
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/api.CreateGroupResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/groups/{number}/{groupid}": {
            "get": {
                "description": "List a specific Signal Group.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Groups"
                ],
                "summary": "List a Signal Group.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Group ID",
                        "name": "groupid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/client.GroupEntry"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            },
            "put": {
                "description": "Update the state of a Signal Group.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Groups"
                ],
                "summary": "Update the state of a Signal Group.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Group ID",
                        "name": "groupid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Input Data",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.UpdateGroupRequest"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete the specified Signal Group.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Groups"
                ],
                "summary": "Delete a Signal Group.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Group Id",
                        "name": "groupid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/groups/{number}/{groupid}/admins": {
            "post": {
                "description": "Add one or more admins to an existing Signal Group.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Groups"
                ],
                "summary": "Add one or more admins to an existing Signal Group.",
                "parameters": [
                    {
                        "description": "Admins",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.ChangeGroupAdminsRequest"
                        }
                    },
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Group ID",
                        "name": "groupid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            },
            "delete": {
                "description": "Remove one or more admins from an existing Signal Group.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Groups"
                ],
                "summary": "Remove one or more admins from an existing Signal Group.",
                "parameters": [
                    {
                        "description": "Admins",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.ChangeGroupAdminsRequest"
                        }
                    },
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Group ID",
                        "name": "groupid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/groups/{number}/{groupid}/block": {
            "post": {
                "description": "Block the specified Signal Group.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Groups"
                ],
                "summary": "Block a Signal Group.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Group ID",
                        "name": "groupid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/groups/{number}/{groupid}/join": {
            "post": {
                "description": "Join the specified Signal Group.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Groups"
                ],
                "summary": "Join a Signal Group.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Group ID",
                        "name": "groupid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/groups/{number}/{groupid}/members": {
            "post": {
                "description": "Add one or more members to an existing Signal Group.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Groups"
                ],
                "summary": "Add one or more members to an existing Signal Group.",
                "parameters": [
                    {
                        "description": "Members",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.ChangeGroupMembersRequest"
                        }
                    },
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Group ID",
                        "name": "groupid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            },
            "delete": {
                "description": "Remove one or more members from an existing Signal Group.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Groups"
                ],
                "summary": "Remove one or more members from an existing Signal Group.",
                "parameters": [
                    {
                        "description": "Members",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.ChangeGroupMembersRequest"
                        }
                    },
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Group ID",
                        "name": "groupid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/groups/{number}/{groupid}/quit": {
            "post": {
                "description": "Quit the specified Signal Group.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Groups"
                ],
                "summary": "Quit a Signal Group.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Group ID",
                        "name": "groupid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/health": {
            "get": {
                "description": "Internally used by the docker container to perform the health check.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "General"
                ],
                "summary": "API Health Check",
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/v1/identities/{number}": {
            "get": {
                "description": "List all identities for the given number.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Identities"
                ],
                "summary": "List Identities",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/client.IdentityEntry"
                            }
                        }
                    }
                }
            }
        },
        "/v1/identities/{number}/trust/{numberToTrust}": {
            "put": {
                "description": "Trust an identity. When 'trust_all_known_keys' is set to' true', all known keys of this user are trusted. **This is only recommended for testing.**",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Identities"
                ],
                "summary": "Trust Identity",
                "parameters": [
                    {
                        "description": "Input Data",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.TrustIdentityRequest"
                        }
                    },
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Number To Trust",
                        "name": "numberToTrust",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/v1/profiles/{number}": {
            "put": {
                "description": "Set your name and optional an avatar.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Profiles"
                ],
                "summary": "Update Profile.",
                "parameters": [
                    {
                        "description": "Profile Data",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.UpdateProfileRequest"
                        }
                    },
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/qrcodelink": {
            "get": {
                "description": "Link device and generate QR code",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Devices"
                ],
                "summary": "Link device and generate QR code.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Device Name",
                        "name": "device_name",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "QRCode Version (defaults to 10)",
                        "name": "qrcode_version",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Image",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/reactions/{number}": {
            "post": {
                "description": "React to a message",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Reactions"
                ],
                "summary": "Send a reaction.",
                "parameters": [
                    {
                        "description": "Reaction",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.Reaction"
                        }
                    },
                    {
                        "type": "string",
                        "description": "Registered phone number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            },
            "delete": {
                "description": "Remove a reaction",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Reactions"
                ],
                "summary": "Remove a reaction.",
                "parameters": [
                    {
                        "description": "Reaction",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.Reaction"
                        }
                    },
                    {
                        "type": "string",
                        "description": "Registered phone number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/receipts/{number}": {
            "post": {
                "description": "Send a read or viewed receipt",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Receipts"
                ],
                "summary": "Send a receipt.",
                "parameters": [
                    {
                        "description": "Receipt",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.Receipt"
                        }
                    },
                    {
                        "type": "string",
                        "description": "Registered phone number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/receive/{number}": {
            "get": {
                "description": "Receives Signal Messages from the Signal Network. If you are running the docker container in normal/native mode, this is a GET endpoint. In json-rpc mode this is a websocket endpoint.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Messages"
                ],
                "summary": "Receive Signal Messages.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Receive timeout in seconds (default: 1)",
                        "name": "timeout",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Specify whether the attachments of the received message should be ignored",
                        "name": "ignore_attachments",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Specify whether stories should be ignored when receiving messages",
                        "name": "ignore_stories",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Specify the maximum number of messages to receive (default: unlimited)",
                        "name": "max_messages",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Specify whether read receipts should be sent when receiving messages",
                        "name": "send_read_receipts",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/register/{number}": {
            "post": {
                "description": "Register a phone number with the signal network.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Devices"
                ],
                "summary": "Register a phone number.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Additional Settings",
                        "name": "data",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/api.RegisterNumberRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/register/{number}/verify/{token}": {
            "post": {
                "description": "Verify a registered phone number with the signal network.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Devices"
                ],
                "summary": "Verify a registered phone number.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Additional Settings",
                        "name": "data",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/api.VerifyNumberSettings"
                        }
                    },
                    {
                        "type": "string",
                        "description": "Verification Code",
                        "name": "token",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "201": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/search/{number}": {
            "get": {
                "description": "Check if one or more phone numbers are registered with the Signal Service.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Search"
                ],
                "summary": "Check if one or more phone numbers are registered with the Signal Service.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "description": "Numbers to check",
                        "name": "numbers",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.SearchResponse"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/send": {
            "post": {
                "description": "Send a signal message",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Messages"
                ],
                "summary": "Send a signal message.",
                "deprecated": true,
                "parameters": [
                    {
                        "description": "Input Data",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.SendMessageV1"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/sticker-packs/{number}": {
            "get": {
                "description": "List Installed Sticker Packs.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Sticker Packs"
                ],
                "summary": "List Installed Sticker Packs.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/client.ListInstalledStickerPacksResponse"
                            }
                        }
                    },
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            },
            "post": {
                "description": "In order to add a sticker pack, browse to https://signalstickers.org/ and select the sticker pack you want to add. Then, press the \"Add to Signal\" button. If you look at the address bar in your browser you should see an URL in this format: https://signal.art/addstickers/#pack_id=XXX\u0026pack_key=YYY, where XXX is the pack_id and YYY is the pack_key.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Sticker Packs"
                ],
                "summary": "Add Sticker Pack.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Request",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.AddStickerPackRequest"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/typing-indicator/{number}": {
            "put": {
                "description": "Show Typing Indicator.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Messages"
                ],
                "summary": "Show Typing Indicator.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Type",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.TypingIndicatorRequest"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            },
            "delete": {
                "description": "Hide Typing Indicator.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Messages"
                ],
                "summary": "Hide Typing Indicator.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Type",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.TypingIndicatorRequest"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v1/unregister/{number}": {
            "post": {
                "description": "Disables push support for this device. **WARNING:** If *delete_account* is set to *true*, the account will be deleted from the Signal Server. This cannot be undone without loss.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Devices"
                ],
                "summary": "Unregister a phone number.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Registered Phone Number",
                        "name": "number",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Additional Settings",
                        "name": "data",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/api.UnregisterNumberRequest"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.Error"
                        }
                    }
                }
            }
        },
        "/v2/send": {
            "post": {
                "description": "Send a signal message. Set the text_mode to 'styled' in case you want to add formatting to your text message. Styling Options: \\*italic text\\*, \\*\\*bold text\\*\\*, ~strikethrough text~, ||spoiler||, \\`monospace\\`. If you want to escape a formatting character, prefix it with two backslashes.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Messages"
                ],
                "summary": "Send a signal message.",
                "parameters": [
                    {
                        "description": "Input Data",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.SendMessageV2"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/api.SendMessageResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/api.SendMessageError"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "api.AddDeviceRequest": {
            "type": "object",
            "properties": {
                "uri": {
                    "type": "string"
                }
            }
        },
        "api.AddStickerPackRequest": {
            "type": "object",
            "properties": {
                "pack_id": {
                    "type": "string",
                    "example": "9a32eda01a7a28574f2eb48668ae0dc4"
                },
                "pack_key": {
                    "type": "string",
                    "example": "19546e18eba0ff69dea78eb591465289d39e16f35e58389ae779d4f9455aff3a"
                }
            }
        },
        "api.ChangeGroupAdminsRequest": {
            "type": "object",
            "properties": {
                "admins": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "api.ChangeGroupMembersRequest": {
            "type": "object",
            "properties": {
                "members": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "api.Configuration": {
            "type": "object",
            "properties": {
                "logging": {
                    "$ref": "#/definitions/api.LoggingConfiguration"
                }
            }
        },
        "api.CreateGroupRequest": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "expiration_time": {
                    "type": "integer"
                },
                "group_link": {
                    "type": "string",
                    "enum": [
                        "disabled",
                        "enabled",
                        "enabled-with-approval"
                    ]
                },
                "members": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "name": {
                    "type": "string"
                },
                "permissions": {
                    "$ref": "#/definitions/api.GroupPermissions"
                }
            }
        },
        "api.CreateGroupResponse": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                }
            }
        },
        "api.Error": {
            "type": "object",
            "properties": {
                "error": {
                    "type": "string"
                }
            }
        },
        "api.GroupPermissions": {
            "type": "object",
            "properties": {
                "add_members": {
                    "type": "string",
                    "enum": [
                        "only-admins",
                        "every-member"
                    ]
                },
                "edit_group": {
                    "type": "string",
                    "enum": [
                        "only-admins",
                        "every-member"
                    ]
                }
            }
        },
        "api.LoggingConfiguration": {
            "type": "object",
            "properties": {
                "Level": {
                    "type": "string"
                }
            }
        },
        "api.RateLimitChallengeRequest": {
            "type": "object",
            "properties": {
                "captcha": {
                    "type": "string",
                    "example": "signalcaptcha://{captcha value}"
                },
                "challenge_token": {
                    "type": "string",
                    "example": "\u003cchallenge token\u003e"
                }
            }
        },
        "api.Reaction": {
            "type": "object",
            "properties": {
                "reaction": {
                    "type": "string"
                },
                "recipient": {
                    "type": "string"
                },
                "target_author": {
                    "type": "string"
                },
                "timestamp": {
                    "type": "integer"
                }
            }
        },
        "api.Receipt": {
            "type": "object",
            "properties": {
                "receipt_type": {
                    "type": "string",
                    "enum": [
                        "read",
                        "viewed"
                    ]
                },
                "recipient": {
                    "type": "string"
                },
                "timestamp": {
                    "type": "integer"
                }
            }
        },
        "api.RegisterNumberRequest": {
            "type": "object",
            "properties": {
                "captcha": {
                    "type": "string"
                },
                "use_voice": {
                    "type": "boolean"
                }
            }
        },
        "api.SearchResponse": {
            "type": "object",
            "properties": {
                "number": {
                    "type": "string"
                },
                "registered": {
                    "type": "boolean"
                }
            }
        },
        "api.SendMessageError": {
            "type": "object",
            "properties": {
                "account": {
                    "type": "string"
                },
                "challenge_tokens": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "error": {
                    "type": "string"
                }
            }
        },
        "api.SendMessageResponse": {
            "type": "object",
            "properties": {
                "timestamp": {
                    "type": "string"
                }
            }
        },
        "api.SendMessageV1": {
            "type": "object",
            "properties": {
                "base64_attachment": {
                    "type": "string",
                    "example": "'\u003cBASE64 ENCODED DATA\u003e' OR 'data:\u003cMIME-TYPE\u003e;base64,\u003cBASE64 ENCODED DATA\u003e' OR 'data:\u003cMIME-TYPE\u003e;filename=\u003cFILENAME\u003e;base64,\u003cBASE64 ENCODED DATA\u003e'"
                },
                "is_group": {
                    "type": "boolean"
                },
                "message": {
                    "type": "string"
                },
                "number": {
                    "type": "string"
                },
                "recipients": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "api.SendMessageV2": {
            "type": "object",
            "properties": {
                "base64_attachments": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "\u003cBASE64 ENCODED DATA\u003e",
                        "data:\u003cMIME-TYPE\u003e;base64\u003ccomma\u003e\u003cBASE64 ENCODED DATA\u003e",
                        "data:\u003cMIME-TYPE\u003e;filename=\u003cFILENAME\u003e;base64\u003ccomma\u003e\u003cBASE64 ENCODED DATA\u003e"
                    ]
                },
                "edit_timestamp": {
                    "type": "integer"
                },
                "link_preview": {
                    "$ref": "#/definitions/data.LinkPreviewType"
                },
                "mentions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/data.MessageMention"
                    }
                },
                "message": {
                    "type": "string"
                },
                "notify_self": {
                    "type": "boolean"
                },
                "number": {
                    "type": "string"
                },
                "quote_author": {
                    "type": "string"
                },
                "quote_mentions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/data.MessageMention"
                    }
                },
                "quote_message": {
                    "type": "string"
                },
                "quote_timestamp": {
                    "type": "integer"
                },
                "recipients": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "sticker": {
                    "type": "string"
                },
                "text_mode": {
                    "type": "string",
                    "enum": [
                        "normal",
                        "styled"
                    ]
                }
            }
        },
        "api.SetPinRequest": {
            "type": "object",
            "properties": {
                "pin": {
                    "type": "string"
                }
            }
        },
        "api.SetUsernameRequest": {
            "type": "object",
            "properties": {
                "username": {
                    "type": "string",
                    "example": "test"
                }
            }
        },
        "api.TrustIdentityRequest": {
            "type": "object",
            "properties": {
                "trust_all_known_keys": {
                    "type": "boolean",
                    "example": false
                },
                "verified_safety_number": {
                    "type": "string"
                }
            }
        },
        "api.TrustModeRequest": {
            "type": "object",
            "properties": {
                "trust_mode": {
                    "type": "string"
                }
            }
        },
        "api.TrustModeResponse": {
            "type": "object",
            "properties": {
                "trust_mode": {
                    "type": "string"
                }
            }
        },
        "api.TypingIndicatorRequest": {
            "type": "object",
            "properties": {
                "recipient": {
                    "type": "string"
                }
            }
        },
        "api.UnregisterNumberRequest": {
            "type": "object",
            "properties": {
                "delete_account": {
                    "type": "boolean",
                    "example": false
                },
                "delete_local_data": {
                    "type": "boolean",
                    "example": false
                }
            }
        },
        "api.UpdateAccountSettingsRequest": {
            "type": "object",
            "properties": {
                "discoverable_by_number": {
                    "type": "boolean"
                },
                "share_number": {
                    "type": "boolean"
                }
            }
        },
        "api.UpdateContactRequest": {
            "type": "object",
            "properties": {
                "expiration_in_seconds": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "recipient": {
                    "type": "string"
                }
            }
        },
        "api.UpdateGroupRequest": {
            "type": "object",
            "properties": {
                "base64_avatar": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "expiration_time": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "api.UpdateProfileRequest": {
            "type": "object",
            "properties": {
                "about": {
                    "type": "string"
                },
                "base64_avatar": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "api.VerifyNumberSettings": {
            "type": "object",
            "properties": {
                "pin": {
                    "type": "string"
                }
            }
        },
        "client.About": {
            "type": "object",
            "properties": {
                "build": {
                    "type": "integer"
                },
                "capabilities": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "mode": {
                    "type": "string"
                },
                "version": {
                    "type": "string"
                },
                "versions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "client.ContactProfile": {
            "type": "object",
            "properties": {
                "about": {
                    "type": "string"
                },
                "given_name": {
                    "type": "string"
                },
                "has_avatar": {
                    "type": "boolean"
                },
                "last_updated_timestamp": {
                    "type": "integer"
                },
                "lastname": {
                    "type": "string"
                }
            }
        },
        "client.GroupEntry": {
            "type": "object",
            "properties": {
                "admins": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "blocked": {
                    "type": "boolean"
                },
                "description": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "internal_id": {
                    "type": "string"
                },
                "invite_link": {
                    "type": "string"
                },
                "members": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "name": {
                    "type": "string"
                },
                "pending_invites": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "pending_requests": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "client.IdentityEntry": {
            "type": "object",
            "properties": {
                "added": {
                    "type": "string"
                },
                "fingerprint": {
                    "type": "string"
                },
                "number": {
                    "type": "string"
                },
                "safety_number": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                }
            }
        },
        "client.ListContactsResponse": {
            "type": "object",
            "properties": {
                "blocked": {
                    "type": "boolean"
                },
                "color": {
                    "type": "string"
                },
                "given_name": {
                    "type": "string"
                },
                "message_expiration": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "nickname": {
                    "$ref": "#/definitions/client.Nickname"
                },
                "note": {
                    "type": "string"
                },
                "number": {
                    "type": "string"
                },
                "profile": {
                    "$ref": "#/definitions/client.ContactProfile"
                },
                "profile_name": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                },
                "uuid": {
                    "type": "string"
                }
            }
        },
        "client.ListDevicesResponse": {
            "type": "object",
            "properties": {
                "creation_timestamp": {
                    "type": "integer"
                },
                "last_seen_timestamp": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "client.ListInstalledStickerPacksResponse": {
            "type": "object",
            "properties": {
                "author": {
                    "type": "string"
                },
                "installed": {
                    "type": "boolean"
                },
                "pack_id": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                },
                "url": {
                    "type": "string"
                }
            }
        },
        "client.Nickname": {
            "type": "object",
            "properties": {
                "family_name": {
                    "type": "string"
                },
                "given_name": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "client.SetUsernameResponse": {
            "type": "object",
            "properties": {
                "username": {
                    "type": "string"
                },
                "username_link": {
                    "type": "string"
                }
            }
        },
        "data.LinkPreviewType": {
            "type": "object",
            "properties": {
                "base64_thumbnail": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                },
                "url": {
                    "type": "string"
                }
            }
        },
        "data.MessageMention": {
            "type": "object",
            "properties": {
                "author": {
                    "type": "string"
                },
                "length": {
                    "type": "integer"
                },
                "start": {
                    "type": "integer"
                }
            }
        }
    },
    "tags": [
        {
            "description": "Some general endpoints.",
            "name": "General"
        },
        {
            "description": "Register and link Devices.",
            "name": "Devices"
        },
        {
            "description": "List registered and linked accounts",
            "name": "Accounts"
        },
        {
            "description": "Create, List and Delete Signal Groups.",
            "name": "Groups"
        },
        {
            "description": "Send and Receive Signal Messages.",
            "name": "Messages"
        },
        {
            "description": "List and Delete Attachments.",
            "name": "Attachments"
        },
        {
            "description": "Update Profile.",
            "name": "Profiles"
        },
        {
            "description": "List and Trust Identities.",
            "name": "Identities"
        },
        {
            "description": "React to messages.",
            "name": "Reactions"
        },
        {
            "description": "Send receipts for messages.",
            "name": "Receipts"
        },
        {
            "description": "Search the Signal Service.",
            "name": "Search"
        },
        {
            "description": "List and Install Sticker Packs",
            "name": "Sticker Packs"
        }
    ]
}