Imports System
Imports System.IO
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports InteleServiceStack.ServiceModel
Namespace Global
Namespace InteleServiceStack.ServiceModel
<DataContract(Namespace:="http://schemas.datacontract.org/2004/07/PushSmsLib.Dto")>
Public Partial Class RestSmsMessageReq
'''<Summary>
'''Gateway number. Default 99700999 for cross country delivery, non premium messages
'''</Summary>
<DataMember(Name:="Gateway")>
<ApiMember(DataType:="integer", Description:="Gateway number. Default 99700999 for cross country delivery, non premium messages", IsRequired:=true, Name:="Gateway", ParameterType:="form")>
Public Overridable Property Gateway As Object
'''<Summary>
'''Originator address. Defaults to gateway number if not set. Maximum 11 chars if using alphanumeric value. See documentation for full details.
'''</Summary>
<DataMember(Name:="OriginatorAddress")>
<ApiMember(DataType:="string", Description:="Originator address. Defaults to gateway number if not set. Maximum 11 chars if using alphanumeric value. See documentation for full details.", Name:="OriginatorAddress", ParameterType:="form")>
Public Overridable Property OriginatorAddress As Object
'''<Summary>
'''Destination address.The recipient of the message. Must be a valid MSISDN
'''</Summary>
<DataMember(Name:="DestinationAddress")>
<ApiMember(DataType:="integer", Description:="Destination address.The recipient of the message. Must be a valid MSISDN", IsRequired:=true, Name:="DestinationAddress", ParameterType:="form")>
Public Overridable Property DestinationAddress As Object
'''<Summary>
'''Price to bill recipient. Premium messaging. Leave value to 0 if not using premium. Premium is only available on short number gateway number for each country available in documentation
'''</Summary>
<DataMember(Name:="Price")>
<ApiMember(DataType:="integer", Description:="Price to bill recipient. Premium messaging. Leave value to 0 if not using premium. Premium is only available on short number gateway number for each country available in documentation", IsRequired:=true, Name:="Price", ParameterType:="form")>
Public Overridable Property Price As Object
'''<Summary>
'''Message type according to documentation. Defaults to 00 if not set. If text length is above 160 chars, it defaults to value 11
'''</Summary>
<DataMember(Name:="MessageType")>
<ApiMember(DataType:="string", Description:="Message type according to documentation. Defaults to 00 if not set. If text length is above 160 chars, it defaults to value 11", Name:="MessageType", ParameterType:="form")>
Public Overridable Property MessageType As String
'''<Summary>
'''Delivery expire timestamp (yyyymmddhhmmss) or relative value. See documentation and default value if not defined
'''</Summary>
<DataMember(Name:="ValidationPeriod")>
<ApiMember(DataType:="string", Description:="Delivery expire timestamp (yyyymmddhhmmss) or relative value. See documentation and default value if not defined", Name:="ValidationPeriod", ParameterType:="form")>
Public Overridable Property ValidationPeriod As Object
'''<Summary>
'''Your unique message id to track delivery status and response from sending process
'''</Summary>
<DataMember(Name:="MessageId")>
<ApiMember(DataType:="string", Description:="Your unique message id to track delivery status and response from sending process", Name:="MessageId", ParameterType:="form")>
Public Overridable Property MessageId As String
'''<Summary>
'''GSM User Data Header (HEX)
'''</Summary>
<DataMember(Name:="UserDataHeader")>
<ApiMember(DataType:="string", Description:="GSM User Data Header (HEX)", Name:="UserDataHeader", ParameterType:="form")>
Public Overridable Property UserDataHeader As String
'''<Summary>
'''GSM User Data. Plain text or hex encoded. Depending on the used MessageType
'''</Summary>
<DataMember(Name:="UserData")>
<ApiMember(DataType:="string", Description:="GSM User Data. Plain text or hex encoded. Depending on the used MessageType", IsRequired:=true, Name:="UserData", ParameterType:="form")>
Public Overridable Property UserData As String
'''<Summary>
'''Parameter to categorize messages on payment bill from Intele
'''</Summary>
<DataMember(Name:="Category")>
<ApiMember(DataType:="string", Description:="Parameter to categorize messages on payment bill from Intele", Name:="Category", ParameterType:="form")>
Public Overridable Property Category As String
'''<Summary>
'''Custom key/value attributes for the Sms Text Message. See documentation for further details
'''</Summary>
<DataMember(Name:="CustomData")>
<ApiMember(DataType:="string", Description:="Custom key/value attributes for the Sms Text Message. See documentation for further details", Name:="CustomData", ParameterType:="form")>
Public Overridable Property CustomData As Dictionary(Of String, Object)
'''<Summary>
'''Url where Intele should send delivery report. See documentation for url formatting
'''</Summary>
<DataMember(Name:="DeliveryReportUrl")>
<ApiMember(DataType:="string", Description:="Url where Intele should send delivery report. See documentation for url formatting", Name:="DeliveryReportUrl", ParameterType:="form")>
Public Overridable Property DeliveryReportUrl As String
'''<Summary>
'''For Premium messaging only. See documentation for further details
'''</Summary>
<DataMember(Name:="ServiceCode")>
<ApiMember(DataType:="string", Description:="For Premium messaging only. See documentation for further details", Name:="ServiceCode", ParameterType:="form")>
Public Overridable Property ServiceCode As String
'''<Summary>
'''For Premium messaging only. See documentation for further details
'''</Summary>
<DataMember(Name:="ServiceDescription")>
<ApiMember(DataType:="string", Description:="For Premium messaging only. See documentation for further details", Name:="ServiceDescription", ParameterType:="form")>
Public Overridable Property ServiceDescription As String
End Class
<DataContract(Namespace:="http://schemas.datacontract.org/2004/07/PushSmsLib.Dto")>
Public Partial Class RestSmsMessageResp
'''<Summary>
'''Result of sending message. 0 if success. See documentation for full list of codes
'''</Summary>
<DataMember(Name:="StatusCode")>
<ApiMember(DataType:="integer", Description:="Result of sending message. 0 if success. See documentation for full list of codes", IsRequired:=true, Name:="StatusCode", ParameterType:="form")>
Public Overridable Property StatusCode As Integer
'''<Summary>
'''Describes the result of sending Sms text message
'''</Summary>
<DataMember(Name:="StatusDescription")>
<ApiMember(DataType:="string", Description:="Describes the result of sending Sms text message", IsRequired:=true, Name:="StatusDescription", ParameterType:="form")>
Public Overridable Property StatusDescription As String
'''<Summary>
'''Your unique message id from send request message item. Will be empty if you did not provide any id in the request item.
'''</Summary>
<DataMember(Name:="MessageId")>
<ApiMember(DataType:="string", Description:="Your unique message id from send request message item. Will be empty if you did not provide any id in the request item.", Name:="MessageId", ParameterType:="form")>
Public Overridable Property MessageId As String
'''<Summary>
'''Unique transaction id from server
'''</Summary>
<DataMember(Name:="TransactionId")>
<ApiMember(DataType:="string", Description:="Unique transaction id from server", IsRequired:=true, Name:="TransactionId", ParameterType:="form")>
Public Overridable Property TransactionId As String
'''<Summary>
'''Key/Value attributes returned from server. E.g. subnumref and the server name that processed the message. Eg. subnumref=19331234567891,server=smsgw1
'''</Summary>
<DataMember(Name:="ExtraInfo")>
<ApiMember(DataType:="string", Description:="Key/Value attributes returned from server. E.g. subnumref and the server name that processed the message. Eg. subnumref=19331234567891,server=smsgw1", Name:="ExtraInfo", ParameterType:="form")>
Public Overridable Property ExtraInfo As Dictionary(Of String, String)
End Class
<DataContract(Namespace:="http://schemas.datacontract.org/2004/07/PushSmsLib.Dto")>
Public Partial Class RestSmsRequest
'''<Summary>
'''API Username. Usually your customer id
'''</Summary>
<DataMember(Name:="Username")>
<ApiMember(DataType:="string", Description:="API Username. Usually your customer id", IsRequired:=true, Name:="Username", ParameterType:="form")>
<StringLength(128)>
Public Overridable Property Username As Object
'''<Summary>
'''API Password
'''</Summary>
<DataMember(Name:="Password")>
<ApiMember(DataType:="string", Description:="API Password", IsRequired:=true, Name:="Password", ParameterType:="form")>
<StringLength(128)>
Public Overridable Property Password As String
'''<Summary>
'''Collection of messages to send
'''</Summary>
<DataMember(Name:="Messages")>
<ApiMember(Description:="Collection of messages to send", IsRequired:=true, Name:="Messages", ParameterType:="form")>
Public Overridable Property Messages As RestSmsMessageReq() = New RestSmsMessageReq(){}
End Class
<DataContract(Namespace:="http://schemas.datacontract.org/2004/07/PushSmsLib.Dto")>
Public Partial Class RestSmsResponse
'''<Summary>
'''Overall status of processing the request. Each message will have it's own status. This value indicates if any other error occured or not
'''</Summary>
<DataMember(Name:="ProcessResult")>
<ApiMember(DataType:="boolean", Description:="Overall status of processing the request. Each message will have it's own status. This value indicates if any other error occured or not", IsRequired:=true, Name:="ProcessResult", ParameterType:="form")>
Public Overridable Property ProcessResult As Boolean
'''<Summary>
'''Description of any error occured, if ProcessResult equals false
'''</Summary>
<DataMember(Name:="ProcessResultDescription")>
<ApiMember(DataType:="string", Description:="Description of any error occured, if ProcessResult equals false", Name:="ProcessResultDescription", ParameterType:="form")>
<StringLength(2048)>
Public Overridable Property ProcessResultDescription As String
'''<Summary>
'''Collection of messages sent or failed
'''</Summary>
<DataMember(Name:="Messages")>
<ApiMember(Description:="Collection of messages sent or failed", Name:="Description", ParameterType:="form")>
Public Overridable Property Messages As RestSmsMessageResp() = New RestSmsMessageResp(){}
End Class
End Namespace
End Namespace
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /jsonl/reply/RestSmsRequest HTTP/1.1
Host: smsgw.intele.no
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length
{"Username":{},"Password":"String","Messages":[{"Gateway":{},"OriginatorAddress":{},"DestinationAddress":{},"Price":{},"MessageType":"String","ValidationPeriod":{},"MessageId":"String","UserDataHeader":"String","UserData":"String","Category":"String","CustomData":{"String":{}},"DeliveryReportUrl":"String","ServiceCode":"String","ServiceDescription":"String"}]}
HTTP/1.1 200 OK Content-Type: text/jsonl Content-Length: length {"ProcessResult":false,"ProcessResultDescription":"String","Messages":[{"StatusCode":0,"StatusDescription":"String","MessageId":"String","TransactionId":"String","ExtraInfo":{"String":"String"}}]}