InteleServiceStack

<back to all web services

RestSmsRequest

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

VB.NET RestSmsRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other

HTTP + 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"}}]}