asg-server/pkg/swagger/docs/swagger.yaml
2025-07-07 05:43:54 +07:00

1470 lines
40 KiB
YAML

definitions:
smsgateway.DataMessage:
properties:
data:
description: Base64-encoded payload
example: SGVsbG8gV29ybGQh
format: byte
maxLength: 65535
minLength: 4
type: string
port:
description: Destination port
example: 53739
maximum: 65535
minimum: 1
type: integer
required:
- data
- port
type: object
smsgateway.Device:
properties:
createdAt:
description: Created at (read only)
example: "2020-01-01T00:00:00Z"
type: string
deletedAt:
description: Deleted at (read only)
example: "2020-01-01T00:00:00Z"
type: string
id:
description: ID
example: PyDmBQZZXYmyxMwED8Fzy
type: string
lastSeen:
description: Last seen at (read only)
example: "2020-01-01T00:00:00Z"
type: string
name:
description: Name
example: My Device
type: string
updatedAt:
description: Updated at (read only)
example: "2020-01-01T00:00:00Z"
type: string
type: object
smsgateway.DeviceSettings:
properties:
encryption:
allOf:
- $ref: "#/definitions/smsgateway.SettingsEncryption"
description: Encryption contains settings related to message encryption.
logs:
allOf:
- $ref: "#/definitions/smsgateway.SettingsLogs"
description: Logs contains settings related to logging.
messages:
allOf:
- $ref: "#/definitions/smsgateway.SettingsMessages"
description: Messages contains settings related to message handling.
ping:
allOf:
- $ref: "#/definitions/smsgateway.SettingsPing"
description: Ping contains settings related to ping functionality.
webhooks:
allOf:
- $ref: "#/definitions/smsgateway.SettingsWebhooks"
description: Webhooks contains settings related to webhook functionality.
type: object
smsgateway.ErrorResponse:
properties:
code:
description: Error code
type: integer
data:
description: Error context
message:
description: Error message
example: An error occurred
type: string
type: object
smsgateway.HealthCheck:
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:
allOf:
- $ref: "#/definitions/smsgateway.HealthStatus"
description: |-
Status of the check.
It can be one of the following values: "pass", "warn", or "fail".
type: object
smsgateway.HealthChecks:
additionalProperties:
$ref: "#/definitions/smsgateway.HealthCheck"
type: object
smsgateway.HealthResponse:
properties:
checks:
allOf:
- $ref: "#/definitions/smsgateway.HealthChecks"
description: A map of check names to their respective details.
releaseId:
description: |-
Release ID of the application.
It is used to identify the version of the application.
type: integer
status:
allOf:
- $ref: "#/definitions/smsgateway.HealthStatus"
description: |-
Overall status of the application.
It can be one of the following values: "pass", "warn", or "fail".
version:
description: Version of the application.
type: string
type: object
smsgateway.HealthStatus:
enum:
- pass
- warn
- fail
type: string
x-enum-varnames:
- HealthStatusPass
- HealthStatusWarn
- HealthStatusFail
smsgateway.LimitPeriod:
enum:
- Disabled
- PerMinute
- PerHour
- PerDay
type: string
x-enum-varnames:
- Disabled
- PerMinute
- PerHour
- PerDay
smsgateway.LogEntry:
properties:
context:
additionalProperties:
type: string
description:
Additional context information related to the log entry, typically
including data relevant to the log event.
type: object
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:
allOf:
- $ref: "#/definitions/smsgateway.LogEntryPriority"
description: The priority level of the log entry.
type: object
smsgateway.LogEntryPriority:
enum:
- DEBUG
- INFO
- WARN
- ERROR
type: string
x-enum-varnames:
- LogEntryPriorityDebug
- LogEntryPriorityInfo
- LogEntryPriorityWarn
- LogEntryPriorityError
smsgateway.Message:
properties:
dataMessage:
allOf:
- $ref: "#/definitions/smsgateway.DataMessage"
description: Data message
id:
description: ID (if not set - will be generated)
example: PyDmBQZZXYmyxMwED8Fzy
maxLength: 36
type: string
isEncrypted:
description: Is encrypted
example: true
type: boolean
message:
description: |-
Message content
Deprecated: use TextMessage instead
example: Hello World!
maxLength: 65535
type: string
phoneNumbers:
description: Recipients (phone numbers)
example:
- "79990001234"
items:
type: string
maxItems: 100
minItems: 1
type: array
priority:
allOf:
- $ref: "#/definitions/smsgateway.MessagePriority"
default: 0
description:
Priority, messages with values greater than `99` will bypass
limits and delays
example: 0
maximum: 127
minimum: -128
simNumber:
description: SIM card number (1-3), if not set - default SIM will be used
example: 1
maximum: 3
type: integer
textMessage:
allOf:
- $ref: "#/definitions/smsgateway.TextMessage"
description: Text message
ttl:
description: Time to live in seconds (conflicts with `validUntil`)
example: 86400
minimum: 5
type: integer
validUntil:
description: Valid until (conflicts with `ttl`)
example: "2020-01-01T00:00:00Z"
type: string
withDeliveryReport:
description: With delivery report
example: true
type: boolean
required:
- phoneNumbers
type: object
smsgateway.MessagePriority:
enum:
- -128
- 0
- 100
- 127
type: integer
x-enum-comments:
PriorityBypassThreshold: Threshold at which messages bypass limits and delays
x-enum-varnames:
- PriorityMinimum
- PriorityDefault
- PriorityBypassThreshold
- PriorityMaximum
smsgateway.MessageState:
properties:
id:
description: Message ID
example: PyDmBQZZXYmyxMwED8Fzy
maxLength: 36
type: string
isEncrypted:
description: Encrypted
example: false
type: boolean
isHashed:
description: Hashed
example: false
type: boolean
recipients:
description: Recipients states
items:
$ref: "#/definitions/smsgateway.RecipientState"
minItems: 1
type: array
state:
allOf:
- $ref: "#/definitions/smsgateway.ProcessingState"
description: State
example: Pending
states:
additionalProperties:
type: string
description: History of states
type: object
required:
- recipients
- state
type: object
smsgateway.MessagesExportRequest:
properties:
deviceId:
description: DeviceID is the ID of the device to export messages for.
example: PyDmBQZZXYmyxMwED8Fzy
maxLength: 21
type: string
since:
description: Since is the start of the time range to export.
example: "2024-01-01T00:00:00Z"
type: string
until:
description: Until is the end of the time range to export.
example: "2024-01-01T23:59:59Z"
type: string
required:
- deviceId
- since
- until
type: object
smsgateway.MobileChangePasswordRequest:
properties:
currentPassword:
description: Current password
example: cp2pydvxd2zwpx
type: string
newPassword:
description: New password, at least 14 characters
example: cp2pydvxd2zwpx
minLength: 14
type: string
required:
- currentPassword
- newPassword
type: object
smsgateway.MobileDeviceResponse:
properties:
device:
allOf:
- $ref: "#/definitions/smsgateway.Device"
description:
Device information, empty if device is not registered on the
server
externalIp:
description: External IP
type: string
type: object
smsgateway.MobileMessage:
properties:
createdAt:
description: Message creation time
example: "2020-01-01T00:00:00Z"
type: string
dataMessage:
allOf:
- $ref: "#/definitions/smsgateway.DataMessage"
description: Data message
id:
description: ID (if not set - will be generated)
example: PyDmBQZZXYmyxMwED8Fzy
maxLength: 36
type: string
isEncrypted:
description: Is encrypted
example: true
type: boolean
message:
description: |-
Message content
Deprecated: use TextMessage instead
example: Hello World!
maxLength: 65535
type: string
phoneNumbers:
description: Recipients (phone numbers)
example:
- "79990001234"
items:
type: string
maxItems: 100
minItems: 1
type: array
priority:
allOf:
- $ref: "#/definitions/smsgateway.MessagePriority"
default: 0
description:
Priority, messages with values greater than `99` will bypass
limits and delays
example: 0
maximum: 127
minimum: -128
simNumber:
description: SIM card number (1-3), if not set - default SIM will be used
example: 1
maximum: 3
type: integer
textMessage:
allOf:
- $ref: "#/definitions/smsgateway.TextMessage"
description: Text message
ttl:
description: Time to live in seconds (conflicts with `validUntil`)
example: 86400
minimum: 5
type: integer
validUntil:
description: Valid until (conflicts with `ttl`)
example: "2020-01-01T00:00:00Z"
type: string
withDeliveryReport:
description: With delivery report
example: true
type: boolean
required:
- phoneNumbers
type: object
smsgateway.MobileRegisterRequest:
properties:
name:
description: Device name
example: Android Phone
maxLength: 128
type: string
pushToken:
description: FCM token
example: gHz-T6NezDlOfllr7F-Be
maxLength: 256
type: string
type: object
smsgateway.MobileRegisterResponse:
properties:
id:
description: New device ID
example: QslD_GefqiYV6RQXdkM6V
type: string
login:
description: User login
example: VQ4GII
type: string
password:
description: User password, empty for existing user
example: cp2pydvxd2zwpx
type: string
token:
description: Device access token
example: bP0ZdK6rC6hCYZSjzmqhQ
type: string
type: object
smsgateway.MobileUpdateRequest:
properties:
id:
description: ID
example: QslD_GefqiYV6RQXdkM6V
type: string
pushToken:
description: FCM token
example: gHz-T6NezDlOfllr7F-Be
maxLength: 256
type: string
type: object
smsgateway.MobileUserCodeResponse:
properties:
code:
description: One-time code
example: "123456"
type: string
validUntil:
description: One-time code expiration time
example: "2020-01-01T00:00:00Z"
type: string
type: object
smsgateway.ProcessingState:
enum:
- Pending
- Processed
- Sent
- Delivered
- Failed
type: string
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.PushEventType:
enum:
- MessageEnqueued
- WebhooksUpdated
- MessagesExportRequested
- SettingsUpdated
type: string
x-enum-varnames:
- PushMessageEnqueued
- PushWebhooksUpdated
- PushMessagesExportRequested
- PushSettingsUpdated
smsgateway.PushNotification:
properties:
data:
additionalProperties:
type: string
description: The additional data associated with the event.
type: object
event:
allOf:
- $ref: "#/definitions/smsgateway.PushEventType"
default: MessageEnqueued
description: The type of event.
enum:
- MessageEnqueued
- WebhooksUpdated
- MessagesExportRequested
- SettingsUpdated
example: MessageEnqueued
token:
description: The token of the device that receives the notification.
example: PyDmBQZZXYmyxMwED8Fzy
type: string
required:
- token
type: object
smsgateway.RecipientState:
properties:
error:
description: Error (for `Failed` state)
example: timeout
type: string
phoneNumber:
description: Phone number or first 16 symbols of SHA256 hash
example: "79990001234"
maxLength: 128
minLength: 1
type: string
state:
allOf:
- $ref: "#/definitions/smsgateway.ProcessingState"
description: State
example: Pending
required:
- phoneNumber
- state
type: object
smsgateway.SettingsEncryption:
properties:
passphrase:
description:
Passphrase is the encryption passphrase. If nil or empty, encryption
is disabled.
type: string
type: object
smsgateway.SettingsLogs:
properties:
lifetime_days:
description: |-
LifetimeDays is the number of days to retain logs.
Must be at least 1 when provided.
minimum: 1
type: integer
type: object
smsgateway.SettingsMessages:
properties:
limit_period:
allOf:
- $ref: "#/definitions/smsgateway.LimitPeriod"
description: |-
LimitPeriod defines the period for message sending limits.
Valid values are "Disabled", "PerMinute", "PerHour", or "PerDay".
enum:
- Disabled
- PerMinute
- PerHour
- PerDay
limit_value:
description: |-
LimitValue is the maximum number of messages allowed per limit period.
Must be at least 1 when provided.
minimum: 1
type: integer
log_lifetime_days:
description: |-
LogLifetimeDays is the number of days to retain message logs.
Must be at least 1 when provided.
minimum: 1
type: integer
send_interval_max:
description: |-
SendIntervalMax is the maximum interval between message sends (in seconds).
Must be at least 1 when provided and greater than or equal to SendIntervalMin.
minimum: 1
type: integer
send_interval_min:
description: |-
SendIntervalMin is the minimum interval between message sends (in seconds).
Must be at least 1 when provided.
minimum: 1
type: integer
sim_selection_mode:
allOf:
- $ref: "#/definitions/smsgateway.SimSelectionMode"
description: |-
SimSelectionMode defines how SIM cards are selected for sending messages.
Valid values are "OSDefault", "RoundRobin", or "Random".
enum:
- OSDefault
- RoundRobin
- Random
type: object
smsgateway.SettingsPing:
properties:
interval_seconds:
description: |-
IntervalSeconds is the interval between ping requests (in seconds).
Must be at least 1 when provided.
minimum: 1
type: integer
type: object
smsgateway.SettingsWebhooks:
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.
Must be at least 1 when provided.
minimum: 1
type: integer
signing_key:
description: SigningKey is the secret key used for signing webhook payloads.
type: string
type: object
smsgateway.SimSelectionMode:
enum:
- OSDefault
- RoundRobin
- Random
type: string
x-enum-varnames:
- OSDefault
- RoundRobin
- Random
smsgateway.TextMessage:
properties:
text:
description: Message text
example: Hello World!
maxLength: 65535
minLength: 1
type: string
required:
- text
type: object
smsgateway.Webhook:
properties:
deviceId:
description:
The unique identifier of the device the webhook is associated
with.
example: PyDmBQZZXYmyxMwED8Fzy
maxLength: 21
type: string
event:
allOf:
- $ref: "#/definitions/smsgateway.WebhookEvent"
description: The type of event the webhook is triggered for.
example: sms:received
id:
description: The unique identifier of the webhook.
example: 123e4567-e89b-12d3-a456-426614174000
maxLength: 36
type: string
url:
description: The URL the webhook will be sent to.
example: https://example.com/webhook
type: string
required:
- event
- url
type: object
smsgateway.WebhookEvent:
enum:
- sms:received
- sms:data-received
- sms:sent
- sms:delivered
- sms:failed
- system:ping
type: string
x-enum-varnames:
- WebhookEventSmsReceived
- WebhookEventSmsDataReceived
- WebhookEventSmsSent
- WebhookEventSmsDelivered
- WebhookEventSmsFailed
- WebhookEventSystemPing
host: api.sms-gate.app
info:
contact:
email: support@sms-gate.app
name: SMSGate Support
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.
title: SMS Gateway for Android™ API
version: "{APP_VERSION}"
paths:
/3rdparty/v1/devices:
get:
description: Returns list of registered devices
produces:
- application/json
responses:
"200":
description: Device list
schema:
items:
$ref: "#/definitions/smsgateway.Device"
type: array
"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"
security:
- ApiAuth: []
summary: List devices
tags:
- User
- Devices
/3rdparty/v1/devices/{id}:
delete:
description: Removes device
parameters:
- description: Device ID
in: path
name: id
required: true
type: string
produces:
- application/json
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"
security:
- ApiAuth: []
summary: Remove device
tags:
- User
- Devices
/3rdparty/v1/health:
get:
description: Checks if service is healthy
produces:
- application/json
responses:
"200":
description: Health check result
schema:
$ref: "#/definitions/smsgateway.HealthResponse"
"500":
description: Service is unhealthy
schema:
$ref: "#/definitions/smsgateway.HealthResponse"
summary: Health check
tags:
- System
/3rdparty/v1/inbox/export:
post:
consumes:
- application/json
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.
parameters:
- description: Export inbox request
in: body
name: request
required: true
schema:
$ref: "#/definitions/smsgateway.MessagesExportRequest"
produces:
- application/json
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"
security:
- ApiAuth: []
summary: Request inbox messages export
tags:
- User
- Messages
/3rdparty/v1/logs:
get:
description: Retrieve a list of log entries within a specified time range.
parameters:
- description:
The start of the time range for the logs to retrieve. Logs created
after this timestamp will be included.
format: date-time
in: query
name: from
type: string
- description:
The end of the time range for the logs to retrieve. Logs created
before this timestamp will be included.
format: date-time
in: query
name: to
type: string
produces:
- application/json
responses:
"200":
description: Log entries
schema:
items:
$ref: "#/definitions/smsgateway.LogEntry"
type: array
"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"
security:
- ApiAuth: []
summary: Get logs
tags:
- System
- Logs
/3rdparty/v1/messages:
post:
consumes:
- application/json
description:
Enqueues message for sending. If multiple devices are registered,
it will be sent via a random one
parameters:
- description: Skip phone validation
in: query
name: skipPhoneValidation
type: boolean
- description: Send message request
in: body
name: request
required: true
schema:
$ref: "#/definitions/smsgateway.Message"
produces:
- application/json
responses:
"202":
description: Message enqueued
headers:
Location:
description: Get message state URL
type: string
schema:
$ref: "#/definitions/smsgateway.MessageState"
"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"
security:
- ApiAuth: []
summary: Enqueue message
tags:
- User
- Messages
/3rdparty/v1/messages/{id}:
get:
description: Returns message state by ID
parameters:
- description: Message ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: Message state
schema:
$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"
security:
- ApiAuth: []
summary: Get message state
tags:
- User
- Messages
/3rdparty/v1/settings:
get:
description: Returns settings for a specific user
produces:
- application/json
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"
security:
- ApiAuth: []
summary: Get settings
tags:
- User
- Settings
patch:
consumes:
- application/json
description: Partially updates settings for a specific user
parameters:
- description: Settings
in: body
name: request
required: true
schema:
$ref: "#/definitions/smsgateway.DeviceSettings"
produces:
- application/json
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"
security:
- ApiAuth: []
summary: Partially update settings
tags:
- User
- Settings
put:
consumes:
- application/json
description: Replaces settings
parameters:
- description: Settings
in: body
name: request
required: true
schema:
$ref: "#/definitions/smsgateway.DeviceSettings"
produces:
- application/json
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"
security:
- ApiAuth: []
summary: Replace settings
tags:
- User
- Settings
/3rdparty/v1/webhooks:
get:
description: Returns list of registered webhooks
produces:
- application/json
responses:
"200":
description: Webhook list
schema:
items:
$ref: "#/definitions/smsgateway.Webhook"
type: array
"401":
description: Unauthorized
schema:
$ref: "#/definitions/smsgateway.ErrorResponse"
"500":
description: Internal server error
schema:
$ref: "#/definitions/smsgateway.ErrorResponse"
security:
- ApiAuth: []
summary: List webhooks
tags:
- User
- Webhooks
post:
consumes:
- application/json
description:
Registers webhook. If webhook with same ID already exists, it will
be replaced
parameters:
- description: Webhook
in: body
name: request
required: true
schema:
$ref: "#/definitions/smsgateway.Webhook"
produces:
- application/json
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"
security:
- ApiAuth: []
summary: Register webhook
tags:
- User
- Webhooks
/3rdparty/v1/webhooks/{id}:
delete:
description: Deletes webhook
parameters:
- description: Webhook ID
in: path
name: id
required: true
type: string
produces:
- application/json
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"
security:
- ApiAuth: []
summary: Delete webhook
tags:
- User
- Webhooks
/mobile/v1/device:
get:
description: Returns device information
produces:
- application/json
responses:
"200":
description: Device information
schema:
$ref: "#/definitions/smsgateway.MobileDeviceResponse"
"500":
description: Internal server error
schema:
$ref: "#/definitions/smsgateway.ErrorResponse"
summary: Get device information
tags:
- Device
patch:
consumes:
- application/json
description: Updates push token for device
parameters:
- description: Device update request
in: body
name: request
required: true
schema:
$ref: "#/definitions/smsgateway.MobileUpdateRequest"
responses:
"204":
description: Successfully updated
"400":
description: Invalid request
schema:
$ref: "#/definitions/smsgateway.ErrorResponse"
"403":
description: Forbidden (wrong device ID)
schema:
$ref: "#/definitions/smsgateway.ErrorResponse"
"500":
description: Internal server error
schema:
$ref: "#/definitions/smsgateway.ErrorResponse"
security:
- MobileToken: []
summary: Update device
tags:
- Device
post:
consumes:
- application/json
description:
Registers new device for new or existing user. Returns user credentials
only for new users
parameters:
- description: Device registration request
in: body
name: request
required: true
schema:
$ref: "#/definitions/smsgateway.MobileRegisterRequest"
produces:
- application/json
responses:
"201":
description: Device registered
schema:
$ref: "#/definitions/smsgateway.MobileRegisterResponse"
"400":
description: Invalid request
schema:
$ref: "#/definitions/smsgateway.ErrorResponse"
"401":
description: Unauthorized (private mode only)
schema:
$ref: "#/definitions/smsgateway.ErrorResponse"
"429":
description: Too many requests
schema:
$ref: "#/definitions/smsgateway.ErrorResponse"
"500":
description: Internal server error
schema:
$ref: "#/definitions/smsgateway.ErrorResponse"
security:
- ApiAuth: []
- UserCode: []
- ServerKey: []
summary: Register device
tags:
- Device
/mobile/v1/message:
get:
consumes:
- application/json
description: Returns list of pending messages
produces:
- application/json
responses:
"200":
description: List of pending messages
schema:
items:
$ref: "#/definitions/smsgateway.MobileMessage"
type: array
"500":
description: Internal server error
schema:
$ref: "#/definitions/smsgateway.ErrorResponse"
security:
- MobileToken: []
summary: Get messages for sending
tags:
- Device
- Messages
patch:
consumes:
- application/json
description: Updates message state
parameters:
- description: New message state
in: body
name: request
required: true
schema:
items:
$ref: "#/definitions/smsgateway.MessageState"
type: array
produces:
- application/json
responses:
"204":
description: Successfully updated
"400":
description: Invalid request
schema:
$ref: "#/definitions/smsgateway.ErrorResponse"
"500":
description: Internal server error
schema:
$ref: "#/definitions/smsgateway.ErrorResponse"
security:
- MobileToken: []
summary: Update message state
tags:
- Device
- Messages
/mobile/v1/settings:
get:
description: Returns settings for a device
produces:
- application/json
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"
security:
- MobileToken: []
summary: Get settings
tags:
- Device
- Settings
/mobile/v1/user/code:
get:
consumes:
- application/json
description: Returns one-time code for device registration
produces:
- application/json
responses:
"200":
description: User code
schema:
$ref: "#/definitions/smsgateway.MobileUserCodeResponse"
"500":
description: Internal server error
schema:
$ref: "#/definitions/smsgateway.ErrorResponse"
security:
- ApiAuth: []
summary: Get one-time code for device registration
tags:
- Device
/mobile/v1/user/password:
patch:
consumes:
- application/json
description: Changes the user's password
parameters:
- description: Password change request
in: body
name: request
required: true
schema:
$ref: "#/definitions/smsgateway.MobileChangePasswordRequest"
produces:
- application/json
responses:
"204":
description: Password changed successfully
"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"
security:
- MobileToken: []
summary: Change password
tags:
- Device
/mobile/v1/webhooks:
get:
description: Returns list of registered webhooks for device
produces:
- application/json
responses:
"200":
description: Webhook list
schema:
items:
$ref: "#/definitions/smsgateway.Webhook"
type: array
"401":
description: Unauthorized
schema:
$ref: "#/definitions/smsgateway.ErrorResponse"
"500":
description: Internal server error
schema:
$ref: "#/definitions/smsgateway.ErrorResponse"
security:
- MobileToken: []
summary: List webhooks
tags:
- Device
- Webhooks
/upstream/v1/push:
post:
consumes:
- application/json
description: Enqueues notifications for sending to devices
parameters:
- description: Push request
in: body
name: request
required: true
schema:
items:
$ref: "#/definitions/smsgateway.PushNotification"
type: array
produces:
- application/json
responses:
"202":
description: Notification enqueued
"400":
description: Invalid request
schema:
$ref: "#/definitions/smsgateway.ErrorResponse"
"429":
description: Too many requests
schema:
$ref: "#/definitions/smsgateway.ErrorResponse"
"500":
description: Internal server error
schema:
$ref: "#/definitions/smsgateway.ErrorResponse"
summary: Send push notifications
tags:
- Upstream
schemes:
- https
securityDefinitions:
ApiAuth:
type: basic
MobileToken:
description: Mobile device token
in: header
name: Authorization
type: apiKey
ServerKey:
description: Private server authentication
in: header
name: Authorization
type: apiKey
UserCode:
description: User one-time code authentication
in: header
name: Authorization
type: apiKey
swagger: "2.0"