// Package openapi Code generated by swaggo/swag. DO NOT EDIT package openapi import "github.com/swaggo/swag" const docTemplate = `{ "schemes": {{ marshal .Schemes }}, "swagger": "2.0", "info": { "description": "{{escape .Description}}", "title": "{{.Title}}", "contact": { "name": "SMSGate Support", "email": "support@sms-gate.app" }, "version": "{{.Version}}" }, "host": "{{.Host}}", "basePath": "{{.BasePath}}", "paths": { "/3rdparty/v1/devices": { "get": { "security": [ { "ApiAuth": [] } ], "description": "Returns list of registered devices", "produces": [ "application/json" ], "tags": [ "User", "Devices" ], "summary": "List devices", "responses": { "200": { "description": "Device list", "schema": { "type": "array", "items": { "$ref": "#/definitions/smsgateway.Device" } } }, "400": { "description": "Invalid request", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } } } } }, "/3rdparty/v1/devices/{id}": { "delete": { "security": [ { "ApiAuth": [] } ], "description": "Removes device", "produces": [ "application/json" ], "tags": [ "User", "Devices" ], "summary": "Remove device", "parameters": [ { "type": "string", "description": "Device ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "description": "Successfully removed" }, "400": { "description": "Invalid request", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "404": { "description": "Device not found", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } } } } }, "/3rdparty/v1/health": { "get": { "description": "Checks if service is healthy", "produces": [ "application/json" ], "tags": [ "System" ], "summary": "Health check", "responses": { "200": { "description": "Health check result", "schema": { "$ref": "#/definitions/smsgateway.HealthResponse" } }, "500": { "description": "Service is unhealthy", "schema": { "$ref": "#/definitions/smsgateway.HealthResponse" } } } } }, "/3rdparty/v1/logs": { "get": { "security": [ { "ApiAuth": [] } ], "description": "Retrieve a list of log entries within a specified time range.", "produces": [ "application/json" ], "tags": [ "System", "Logs" ], "summary": "Get logs", "parameters": [ { "type": "string", "format": "date-time", "description": "The start of the time range for the logs to retrieve. Logs created after this timestamp will be included.", "name": "from", "in": "query" }, { "type": "string", "format": "date-time", "description": "The end of the time range for the logs to retrieve. Logs created before this timestamp will be included.", "name": "to", "in": "query" } ], "responses": { "200": { "description": "Log entries", "schema": { "type": "array", "items": { "$ref": "#/definitions/smsgateway.LogEntry" } } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "501": { "description": "Not implemented", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } } } } }, "/3rdparty/v1/messages": { "get": { "security": [ { "ApiAuth": [] } ], "description": "Retrieves a list of messages with filtering and pagination", "produces": [ "application/json" ], "tags": [ "User", "Messages" ], "summary": "Get messages", "parameters": [ { "type": "string", "format": "date-time", "description": "Start date in RFC3339 format", "name": "from", "in": "query" }, { "type": "string", "format": "date-time", "description": "End date in RFC3339 format", "name": "to", "in": "query" }, { "type": "string", "description": "Filter messages by processing state", "name": "state", "in": "query" }, { "type": "string", "description": "Filter by device ID", "name": "deviceId", "in": "query" }, { "type": "integer", "default": 50, "description": "Pagination limit", "name": "limit", "in": "query" }, { "type": "integer", "default": 0, "description": "Pagination offset", "name": "offset", "in": "query" } ], "responses": { "200": { "description": "A list of messages", "schema": { "type": "array", "items": { "$ref": "#/definitions/smsgateway.MessageState" } } }, "400": { "description": "Invalid request", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } } } }, "post": { "security": [ { "ApiAuth": [] } ], "description": "Enqueues a message for sending. If ` + "`" + `deviceId` + "`" + ` is set, the specified device is used; otherwise a random registered device is chosen.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "User", "Messages" ], "summary": "Enqueue message", "parameters": [ { "type": "boolean", "description": "Skip phone validation", "name": "skipPhoneValidation", "in": "query" }, { "minimum": 0, "type": "integer", "default": 0, "description": "Filter devices active within the specified number of hours", "name": "deviceActiveWithin", "in": "query" }, { "description": "Send message request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/smsgateway.Message" } } ], "responses": { "202": { "description": "Message enqueued", "schema": { "$ref": "#/definitions/smsgateway.GetMessageResponse" }, "headers": { "Location": { "type": "string", "description": "Get message state URL" } } }, "400": { "description": "Invalid request", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "409": { "description": "Message with such ID already exists", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } } } } }, "/3rdparty/v1/messages/inbox/export": { "post": { "security": [ { "ApiAuth": [] } ], "description": "Initiates process of inbox messages export via webhooks. For each message the ` + "`" + `sms:received` + "`" + ` webhook will be triggered. The webhooks will be triggered without specific order.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "User", "Messages" ], "summary": "Request inbox messages export", "parameters": [ { "description": "Export inbox request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/smsgateway.MessagesExportRequest" } } ], "responses": { "202": { "description": "Inbox export request accepted", "schema": { "type": "object" } }, "400": { "description": "Invalid request", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } } } } }, "/3rdparty/v1/messages/{id}": { "get": { "security": [ { "ApiAuth": [] } ], "description": "Returns message state by ID", "produces": [ "application/json" ], "tags": [ "User", "Messages" ], "summary": "Get message state", "parameters": [ { "type": "string", "description": "Message ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "Message state", "schema": { "$ref": "#/definitions/smsgateway.GetMessageResponse" } }, "400": { "description": "Invalid request", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } } } } }, "/3rdparty/v1/settings": { "get": { "security": [ { "ApiAuth": [] } ], "description": "Returns settings for a specific user", "produces": [ "application/json" ], "tags": [ "User", "Settings" ], "summary": "Get settings", "responses": { "200": { "description": "Settings", "schema": { "$ref": "#/definitions/smsgateway.DeviceSettings" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } } } }, "put": { "security": [ { "ApiAuth": [] } ], "description": "Replaces settings", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "User", "Settings" ], "summary": "Replace settings", "parameters": [ { "description": "Settings", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/smsgateway.DeviceSettings" } } ], "responses": { "200": { "description": "Settings updated", "schema": { "type": "object" } }, "400": { "description": "Invalid request", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } } } }, "patch": { "security": [ { "ApiAuth": [] } ], "description": "Partially updates settings for a specific user", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "User", "Settings" ], "summary": "Partially update settings", "parameters": [ { "description": "Settings", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/smsgateway.DeviceSettings" } } ], "responses": { "200": { "description": "Settings updated", "schema": { "type": "object" } }, "400": { "description": "Invalid request", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } } } } }, "/3rdparty/v1/webhooks": { "get": { "security": [ { "ApiAuth": [] } ], "description": "Returns list of registered webhooks", "produces": [ "application/json" ], "tags": [ "User", "Webhooks" ], "summary": "List webhooks", "responses": { "200": { "description": "Webhook list", "schema": { "type": "array", "items": { "$ref": "#/definitions/smsgateway.Webhook" } } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } } } }, "post": { "security": [ { "ApiAuth": [] } ], "description": "Registers webhook. If webhook with same ID already exists, it will be replaced", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "User", "Webhooks" ], "summary": "Register webhook", "parameters": [ { "description": "Webhook", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/smsgateway.Webhook" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/smsgateway.Webhook" } }, "400": { "description": "Invalid request", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } } } } }, "/3rdparty/v1/webhooks/{id}": { "delete": { "security": [ { "ApiAuth": [] } ], "description": "Deletes webhook", "produces": [ "application/json" ], "tags": [ "User", "Webhooks" ], "summary": "Delete webhook", "parameters": [ { "type": "string", "description": "Webhook ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "description": "Webhook deleted", "schema": { "type": "object" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/smsgateway.ErrorResponse" } } } } } }, "definitions": { "smsgateway.DataMessage": { "type": "object", "required": [ "data", "port" ], "properties": { "data": { "description": "Base64-encoded payload", "type": "string", "format": "byte", "maxLength": 65535, "minLength": 4, "example": "SGVsbG8gV29ybGQh" }, "port": { "description": "Destination port", "type": "integer", "maximum": 65535, "minimum": 1, "example": 53739 } } }, "smsgateway.Device": { "type": "object", "properties": { "createdAt": { "description": "Created at (read only)", "type": "string", "example": "2020-01-01T00:00:00Z" }, "deletedAt": { "description": "Deleted at (read only)", "type": "string", "example": "2020-01-01T00:00:00Z" }, "id": { "description": "ID", "type": "string", "example": "PyDmBQZZXYmyxMwED8Fzy" }, "lastSeen": { "description": "Last seen at (read only)", "type": "string", "example": "2020-01-01T00:00:00Z" }, "name": { "description": "Name", "type": "string", "example": "My Device" }, "updatedAt": { "description": "Updated at (read only)", "type": "string", "example": "2020-01-01T00:00:00Z" } } }, "smsgateway.DeviceSettings": { "type": "object", "properties": { "encryption": { "description": "Encryption contains settings related to message encryption.", "allOf": [ { "$ref": "#/definitions/smsgateway.SettingsEncryption" } ] }, "logs": { "description": "Logs contains settings related to logging.", "allOf": [ { "$ref": "#/definitions/smsgateway.SettingsLogs" } ] }, "messages": { "description": "Messages contains settings related to message handling.", "allOf": [ { "$ref": "#/definitions/smsgateway.SettingsMessages" } ] }, "ping": { "description": "Ping contains settings related to ping functionality.", "allOf": [ { "$ref": "#/definitions/smsgateway.SettingsPing" } ] }, "webhooks": { "description": "Webhooks contains settings related to webhook functionality.", "allOf": [ { "$ref": "#/definitions/smsgateway.SettingsWebhooks" } ] } } }, "smsgateway.ErrorResponse": { "type": "object", "properties": { "code": { "description": "Error code", "type": "integer" }, "data": { "description": "Error context" }, "message": { "description": "Error message", "type": "string", "example": "An error occurred" } } }, "smsgateway.GetMessageResponse": { "type": "object", "required": [ "deviceId", "id", "recipients", "state" ], "properties": { "deviceId": { "description": "Device ID", "type": "string", "maxLength": 21, "example": "PyDmBQZZXYmyxMwED8Fzy" }, "id": { "description": "Message ID", "type": "string", "maxLength": 36, "example": "PyDmBQZZXYmyxMwED8Fzy" }, "isEncrypted": { "description": "Encrypted", "type": "boolean", "example": false }, "isHashed": { "description": "Hashed", "type": "boolean", "example": false }, "recipients": { "description": "Recipients states", "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/smsgateway.RecipientState" } }, "state": { "description": "State", "allOf": [ { "$ref": "#/definitions/smsgateway.ProcessingState" } ], "example": "Pending" }, "states": { "description": "History of states", "type": "object", "additionalProperties": { "type": "string" } } } }, "smsgateway.HealthCheck": { "type": "object", "properties": { "description": { "description": "A human-readable description of the check.", "type": "string" }, "observedUnit": { "description": "Unit of measurement for the observed value.", "type": "string" }, "observedValue": { "description": "Observed value of the check.", "type": "integer" }, "status": { "description": "Status of the check.\nIt can be one of the following values: \"pass\", \"warn\", or \"fail\".", "allOf": [ { "$ref": "#/definitions/smsgateway.HealthStatus" } ] } } }, "smsgateway.HealthChecks": { "type": "object", "additionalProperties": { "$ref": "#/definitions/smsgateway.HealthCheck" } }, "smsgateway.HealthResponse": { "type": "object", "properties": { "checks": { "description": "A map of check names to their respective details.", "allOf": [ { "$ref": "#/definitions/smsgateway.HealthChecks" } ] }, "releaseId": { "description": "Release ID of the application.\nIt is used to identify the version of the application.", "type": "integer" }, "status": { "description": "Overall status of the application.\nIt can be one of the following values: \"pass\", \"warn\", or \"fail\".", "allOf": [ { "$ref": "#/definitions/smsgateway.HealthStatus" } ] }, "version": { "description": "Version of the application.", "type": "string" } } }, "smsgateway.HealthStatus": { "type": "string", "enum": [ "pass", "warn", "fail" ], "x-enum-varnames": [ "HealthStatusPass", "HealthStatusWarn", "HealthStatusFail" ] }, "smsgateway.LimitPeriod": { "type": "string", "enum": [ "Disabled", "PerMinute", "PerHour", "PerDay" ], "x-enum-varnames": [ "Disabled", "PerMinute", "PerHour", "PerDay" ] }, "smsgateway.LogEntry": { "type": "object", "properties": { "context": { "description": "Additional context information related to the log entry, typically including data relevant to the log event.", "type": "object", "additionalProperties": { "type": "string" } }, "createdAt": { "description": "The timestamp when this log entry was created.", "type": "string" }, "id": { "description": "A unique identifier for the log entry.", "type": "integer" }, "message": { "description": "A message describing the log event.", "type": "string" }, "module": { "description": "The module or component of the system that generated the log entry.", "type": "string" }, "priority": { "description": "The priority level of the log entry.", "allOf": [ { "$ref": "#/definitions/smsgateway.LogEntryPriority" } ] } } }, "smsgateway.LogEntryPriority": { "type": "string", "enum": [ "DEBUG", "INFO", "WARN", "ERROR" ], "x-enum-varnames": [ "LogEntryPriorityDebug", "LogEntryPriorityInfo", "LogEntryPriorityWarn", "LogEntryPriorityError" ] }, "smsgateway.Message": { "type": "object", "required": [ "phoneNumbers" ], "properties": { "dataMessage": { "description": "Data message", "allOf": [ { "$ref": "#/definitions/smsgateway.DataMessage" } ] }, "deviceId": { "description": "Optional device ID for explicit selection", "type": "string", "maxLength": 21, "example": "PyDmBQZZXYmyxMwED8Fzy" }, "id": { "description": "ID (if not set - will be generated)", "type": "string", "maxLength": 36, "example": "PyDmBQZZXYmyxMwED8Fzy" }, "isEncrypted": { "description": "Is encrypted", "type": "boolean", "example": true }, "message": { "description": "Message content\nDeprecated: use TextMessage instead", "type": "string", "maxLength": 65535, "example": "Hello World!" }, "phoneNumbers": { "description": "Recipients (phone numbers)", "type": "array", "maxItems": 100, "minItems": 1, "items": { "type": "string" }, "example": [ "79990001234" ] }, "priority": { "description": "Priority, messages with values greater than ` + "`" + `99` + "`" + ` will bypass limits and delays", "default": 0, "maximum": 127, "minimum": -128, "allOf": [ { "$ref": "#/definitions/smsgateway.MessagePriority" } ], "example": 0 }, "simNumber": { "description": "SIM card number (1-3), if not set - default SIM will be used", "type": "integer", "maximum": 3, "example": 1 }, "textMessage": { "description": "Text message", "allOf": [ { "$ref": "#/definitions/smsgateway.TextMessage" } ] }, "ttl": { "description": "Time to live in seconds (conflicts with ` + "`" + `validUntil` + "`" + `)", "type": "integer", "minimum": 5, "example": 86400 }, "validUntil": { "description": "Valid until (conflicts with ` + "`" + `ttl` + "`" + `)", "type": "string", "example": "2020-01-01T00:00:00Z" }, "withDeliveryReport": { "description": "With delivery report", "type": "boolean", "example": true } } }, "smsgateway.MessagePriority": { "type": "integer", "enum": [ -128, 0, 100, 127 ], "x-enum-comments": { "PriorityBypassThreshold": "Threshold at which messages bypass limits and delays" }, "x-enum-varnames": [ "PriorityMinimum", "PriorityDefault", "PriorityBypassThreshold", "PriorityMaximum" ] }, "smsgateway.MessageState": { "type": "object", "required": [ "deviceId", "id", "recipients", "state" ], "properties": { "deviceId": { "description": "Device ID", "type": "string", "maxLength": 21, "example": "PyDmBQZZXYmyxMwED8Fzy" }, "id": { "description": "Message ID", "type": "string", "maxLength": 36, "example": "PyDmBQZZXYmyxMwED8Fzy" }, "isEncrypted": { "description": "Encrypted", "type": "boolean", "example": false }, "isHashed": { "description": "Hashed", "type": "boolean", "example": false }, "recipients": { "description": "Recipients states", "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/smsgateway.RecipientState" } }, "state": { "description": "State", "allOf": [ { "$ref": "#/definitions/smsgateway.ProcessingState" } ], "example": "Pending" }, "states": { "description": "History of states", "type": "object", "additionalProperties": { "type": "string" } } } }, "smsgateway.MessagesExportRequest": { "type": "object", "required": [ "deviceId", "since", "until" ], "properties": { "deviceId": { "description": "DeviceID is the ID of the device to export messages for.", "type": "string", "maxLength": 21, "example": "PyDmBQZZXYmyxMwED8Fzy" }, "since": { "description": "Since is the start of the time range to export.", "type": "string", "example": "2024-01-01T00:00:00Z" }, "until": { "description": "Until is the end of the time range to export.", "type": "string", "example": "2024-01-01T23:59:59Z" } } }, "smsgateway.MessagesProcessingOrder": { "type": "string", "enum": [ "LIFO", "FIFO" ], "x-enum-varnames": [ "LIFO", "FIFO" ] }, "smsgateway.ProcessingState": { "type": "string", "enum": [ "Pending", "Processed", "Sent", "Delivered", "Failed" ], "x-enum-comments": { "ProcessingStateDelivered": "Delivered", "ProcessingStateFailed": "Failed", "ProcessingStatePending": "Pending", "ProcessingStateProcessed": "Processed (received by device)", "ProcessingStateSent": "Sent" }, "x-enum-varnames": [ "ProcessingStatePending", "ProcessingStateProcessed", "ProcessingStateSent", "ProcessingStateDelivered", "ProcessingStateFailed" ] }, "smsgateway.RecipientState": { "type": "object", "required": [ "phoneNumber", "state" ], "properties": { "error": { "description": "Error (for ` + "`" + `Failed` + "`" + ` state)", "type": "string", "example": "timeout" }, "phoneNumber": { "description": "Phone number or first 16 symbols of SHA256 hash", "type": "string", "maxLength": 128, "minLength": 1, "example": "79990001234" }, "state": { "description": "State", "allOf": [ { "$ref": "#/definitions/smsgateway.ProcessingState" } ], "example": "Pending" } } }, "smsgateway.SettingsEncryption": { "type": "object", "properties": { "passphrase": { "description": "Passphrase is the encryption passphrase. If nil or empty, encryption is disabled. Must not be used with Cloud Server.", "type": "string" } } }, "smsgateway.SettingsLogs": { "type": "object", "properties": { "lifetime_days": { "description": "LifetimeDays is the number of days to retain logs.\nMust be at least 1 when provided.", "type": "integer", "minimum": 1 } } }, "smsgateway.SettingsMessages": { "type": "object", "properties": { "limit_period": { "description": "LimitPeriod defines the period for message sending limits.\nValid values are \"Disabled\", \"PerMinute\", \"PerHour\", or \"PerDay\".", "enum": [ "Disabled", "PerMinute", "PerHour", "PerDay" ], "allOf": [ { "$ref": "#/definitions/smsgateway.LimitPeriod" } ] }, "limit_value": { "description": "LimitValue is the maximum number of messages allowed per limit period.\nMust be at least 1 when provided.", "type": "integer", "minimum": 1 }, "log_lifetime_days": { "description": "LogLifetimeDays is the number of days to retain message logs.\nMust be at least 1 when provided.", "type": "integer", "minimum": 1 }, "processing_order": { "description": "MessagesProcessingOrder defines the order in which messages are processed.\nValid values are \"LIFO\" or \"FIFO\".", "enum": [ "LIFO", "FIFO" ], "allOf": [ { "$ref": "#/definitions/smsgateway.MessagesProcessingOrder" } ] }, "send_interval_max": { "description": "SendIntervalMax is the maximum interval between message sends (in seconds).\nMust be at least 1 when provided and greater than or equal to SendIntervalMin.", "type": "integer", "minimum": 1 }, "send_interval_min": { "description": "SendIntervalMin is the minimum interval between message sends (in seconds).\nMust be at least 1 when provided.", "type": "integer", "minimum": 1 }, "sim_selection_mode": { "description": "SimSelectionMode defines how SIM cards are selected for sending messages.\nValid values are \"OSDefault\", \"RoundRobin\", or \"Random\".", "enum": [ "OSDefault", "RoundRobin", "Random" ], "allOf": [ { "$ref": "#/definitions/smsgateway.SimSelectionMode" } ] } } }, "smsgateway.SettingsPing": { "type": "object", "properties": { "interval_seconds": { "description": "IntervalSeconds is the interval between ping requests (in seconds).\nMust be at least 1 when provided.", "type": "integer", "minimum": 1 } } }, "smsgateway.SettingsWebhooks": { "type": "object", "properties": { "internet_required": { "description": "InternetRequired indicates whether internet access is required for webhooks.", "type": "boolean" }, "retry_count": { "description": "RetryCount is the number of times to retry failed webhook deliveries.\nMust be at least 1 when provided.", "type": "integer", "minimum": 1 }, "signing_key": { "description": "SigningKey is the secret key used for signing webhook payloads. Must not be used with Cloud Server.", "type": "string" } } }, "smsgateway.SimSelectionMode": { "type": "string", "enum": [ "OSDefault", "RoundRobin", "Random" ], "x-enum-varnames": [ "OSDefault", "RoundRobin", "Random" ] }, "smsgateway.TextMessage": { "type": "object", "required": [ "text" ], "properties": { "text": { "description": "Message text", "type": "string", "maxLength": 65535, "minLength": 1, "example": "Hello World!" } } }, "smsgateway.Webhook": { "type": "object", "required": [ "event", "url" ], "properties": { "deviceId": { "description": "The unique identifier of the device the webhook is associated with.", "type": "string", "maxLength": 21, "example": "PyDmBQZZXYmyxMwED8Fzy" }, "event": { "description": "The type of event the webhook is triggered for.", "allOf": [ { "$ref": "#/definitions/smsgateway.WebhookEvent" } ], "example": "sms:received" }, "id": { "description": "The unique identifier of the webhook.", "type": "string", "maxLength": 36, "example": "123e4567-e89b-12d3-a456-426614174000" }, "url": { "description": "The URL the webhook will be sent to.", "type": "string", "example": "https://example.com/webhook" } } }, "smsgateway.WebhookEvent": { "type": "string", "enum": [ "sms:received", "sms:data-received", "sms:sent", "sms:delivered", "sms:failed", "system:ping", "mms:received" ], "x-enum-varnames": [ "WebhookEventSmsReceived", "WebhookEventSmsDataReceived", "WebhookEventSmsSent", "WebhookEventSmsDelivered", "WebhookEventSmsFailed", "WebhookEventSystemPing", "WebhookEventMmsReceived" ] } }, "securityDefinitions": { "ApiAuth": { "type": "basic" }, "MobileToken": { "description": "Mobile device token", "type": "apiKey", "name": "Authorization", "in": "header" }, "ServerKey": { "description": "Private server authentication", "type": "apiKey", "name": "Authorization", "in": "header" }, "UserCode": { "description": "User one-time code authentication", "type": "apiKey", "name": "Authorization", "in": "header" } } }` // SwaggerInfo holds exported Swagger Info so clients can modify it var SwaggerInfo = &swag.Spec{ Version: "{APP_VERSION}", Host: "api.sms-gate.app", BasePath: "", Schemes: []string{"https"}, Title: "SMS Gateway for Androidâ„¢ API", Description: "This API provides programmatic access to sending SMS messages on Android devices. Features include sending SMS, checking message status, device management, webhook configuration, and system health checks.", InfoInstanceName: "swagger", SwaggerTemplate: docTemplate, LeftDelim: "{{", RightDelim: "}}", } func init() { swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo) }