mirror of
https://github.com/makayabou/asg-server.git
synced 2026-05-02 17:43:36 +02:00
1644 lines
44 KiB
YAML
1644 lines
44 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.GetMessageResponse:
|
|
properties:
|
|
deviceId:
|
|
description: Device ID
|
|
example: PyDmBQZZXYmyxMwED8Fzy
|
|
maxLength: 21
|
|
type: string
|
|
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:
|
|
- deviceId
|
|
- id
|
|
- recipients
|
|
- state
|
|
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
|
|
deviceId:
|
|
description: Optional device ID for explicit selection
|
|
example: PyDmBQZZXYmyxMwED8Fzy
|
|
maxLength: 21
|
|
type: string
|
|
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:
|
|
deviceId:
|
|
description: Device ID
|
|
example: PyDmBQZZXYmyxMwED8Fzy
|
|
maxLength: 21
|
|
type: string
|
|
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:
|
|
- deviceId
|
|
- id
|
|
- 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
|
|
deviceId:
|
|
description: Optional device ID for explicit selection
|
|
example: PyDmBQZZXYmyxMwED8Fzy
|
|
maxLength: 21
|
|
type: string
|
|
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.MobilePatchMessageItem:
|
|
properties:
|
|
id:
|
|
description: Message ID
|
|
example: PyDmBQZZXYmyxMwED8Fzy
|
|
maxLength: 36
|
|
type: string
|
|
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:
|
|
- id
|
|
- recipients
|
|
- state
|
|
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:
|
|
get:
|
|
description: Retrieves a list of messages with filtering and pagination
|
|
parameters:
|
|
- description: Start date in RFC3339 format
|
|
format: date-time
|
|
in: query
|
|
name: from
|
|
type: string
|
|
- description: End date in RFC3339 format
|
|
format: date-time
|
|
in: query
|
|
name: to
|
|
type: string
|
|
- description: Filter messages by processing state
|
|
in: query
|
|
name: state
|
|
type: string
|
|
- description: Filter by device ID
|
|
in: query
|
|
name: deviceId
|
|
type: string
|
|
- default: 50
|
|
description: Pagination limit
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- default: 0
|
|
description: Pagination offset
|
|
in: query
|
|
name: offset
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: A list of messages
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/smsgateway.MessageState'
|
|
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: Get messages
|
|
tags:
|
|
- User
|
|
- Messages
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Enqueues a message for sending. If `deviceId` is set, the specified
|
|
device is used; otherwise a random registered device is chosen.
|
|
parameters:
|
|
- description: Skip phone validation
|
|
in: query
|
|
name: skipPhoneValidation
|
|
type: boolean
|
|
- default: 0
|
|
description: Filter devices active within the specified number of hours
|
|
in: query
|
|
minimum: 0
|
|
name: deviceActiveWithin
|
|
type: integer
|
|
- 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.GetMessageResponse'
|
|
"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.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'
|
|
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/events:
|
|
get:
|
|
description: Returns events stream for a device
|
|
produces:
|
|
- text/event-stream
|
|
responses:
|
|
"200":
|
|
description: Event
|
|
schema:
|
|
type: string
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/smsgateway.ErrorResponse'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/smsgateway.ErrorResponse'
|
|
security:
|
|
- MobileToken: []
|
|
summary: Get events
|
|
tags:
|
|
- Device
|
|
- Events
|
|
x-sse: true
|
|
/mobile/v1/message:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns list of pending messages
|
|
parameters:
|
|
- default: lifo
|
|
description: 'Message processing order: lifo (default) or fifo'
|
|
enum:
|
|
- lifo
|
|
- fifo
|
|
in: query
|
|
name: order
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: List of pending messages
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/smsgateway.MobileMessage'
|
|
type: array
|
|
"400":
|
|
description: Invalid request
|
|
schema:
|
|
$ref: '#/definitions/smsgateway.ErrorResponse'
|
|
"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: List of message state updates
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/smsgateway.MobilePatchMessageItem'
|
|
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"
|